Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os modelos de chat habilitados para visão são grandes modelos multimodal (LMM) desenvolvidos pela OpenAI que podem analisar imagens e fornecer respostas textuais a perguntas sobre elas. Eles incorporam o processamento de linguagem natural e a compreensão visual. Os modelos atuais habilitados para visão são os modelos de raciocínio da série O, GPT-5 série, GPT-4.1 série, GPT-4.5, GPT-4o série.
Os modelos habilitados para visão podem responder perguntas gerais sobre o que está presente nas imagens que você carrega.
Dica
Para usar modelos habilitados para visão, você chama a API de Conclusão de Chat em um modelo suportado que você implantou. Se você não estiver familiarizado com a API de Conclusão de Chat, consulte o guia de chat com recursos de Visão.
Início Rápido
Comece a usar imagens em seus chats com o Azure OpenAI no Microsoft Foundry Models.
Use este artigo para começar a usar Microsoft Foundry para implantar e testar um modelo de conclusão de chat com compreensão de imagem.
Pré-requisitos
- Uma assinatura Azure. Crie um gratuitamente.
- Depois de ter sua assinatura do Azure, criar um recurso Azure OpenAI. Para obter mais informações sobre a criação de recursos, consulte o guia de implantação de recursos.
- Um projeto Foundry com o recurso Azure OpenAI adicionado como conexão.
Prepare sua mídia
Você precisa de uma imagem para concluir este início rápido. Você pode usar essa imagem de exemplo ou qualquer outra imagem disponível.
Ir para o Foundry
Dica
Se você já tiver um modelo com capacidade de visão implantado, vá para Iniciar uma sessão de chat para analisar imagens.
- Navegue até Foundry e entre com as credenciais associadas ao recurso Azure OpenAI. Durante ou após o fluxo de trabalho de entrada, selecione o diretório apropriado, a assinatura do Azure e o recurso Azure OpenAI.
- Selecione o projeto no qual você gostaria de trabalhar.
- No menu de navegação à esquerda, selecione Modelos + pontos de extremidade e selecione + Implantar modelo.
- Escolha uma implantação com capacidade para imagens selecionando o nome do modelo: gpt-4o ou gpt-4o-mini. Na janela exibida, selecione um nome e um tipo de implantação. Verifique se o recurso Azure OpenAI está conectado. Para obter mais informações sobre a implantação do modelo, consulte o guia de implantação de recursos.
- Selecione Implantar.
- Em seguida, selecione seu novo modelo e selecione Abrir no playground. No playground de chat, a implantação que você criou deve ser selecionada no menu suspenso Implantação.
Parque infantil
Nesta sessão de chat, você instrui o assistente a ajudá-lo a entender as imagens que você inseriu.
Para obter ajuda geral com a configuração do assistente, sessões de chat, configurações e painéis, consulte o início rápido do Chat.
Iniciar uma sessão de chat para analisar imagens
Nesta sessão de chat, você está instruindo o assistente a ajudar a entender as imagens que você inseriu.
Para começar, verifique se a implantação com capacidade para imagens está selecionada na lista suspensa implantação .
Na caixa de texto de contexto no painel Instalação , forneça este prompt para orientar o assistente:
"You're an AI assistant that helps people find information."Ou, você pode adaptar o prompt à sua imagem ou cenário.Nota
Recomendamos que você atualize a Mensagem do Sistema para ser específica para a tarefa, a fim de evitar respostas inúteis do modelo.
Selecione Aplicar alterações para salvar suas alterações.
No painel de sessão de chat, selecione o botão anexo e, em seguida, carregue a imagem. Escolha sua imagem.
Adicione o seguinte prompt no campo de chat:
Describe this imagee selecione o ícone de envio para enviá-lo.O ícone de envio é substituído por um botão parar. Se você selecioná-la, o assistente interromperá o processamento da solicitação. Para este início rápido, deixe o assistente concluir sua resposta.
O assistente responde com uma descrição da imagem.
Faça uma pergunta de acompanhamento relacionada à análise de sua imagem. Você poderia entrar,
"What should I highlight about this image to my insurance company?".Você deve receber uma resposta relevante semelhante ao mostrado aqui:
When reporting the incident to your insurance company, you should highlight the following key points from the image: 1. **Location of Damage**: Clearly state that the front end of the car, particularly the driver's side, is damaged. Mention the crumpled hood, broken front bumper, and the damaged left headlight. 2. **Point of Impact**: Indicate that the car has collided with a guardrail, which may suggest that no other vehicles were involved in the accident. 3. **Condition of the Car**: Note that the damage seems to be concentrated on the front end, and there is no visible damage to the windshield or rear of the car from this perspective. 4. **License Plate Visibility**: Mention that the license plate is intact and can be used for identification purposes. 5. **Environment**: Report that the accident occurred near a roadside with a guardrail, possibly in a rural or semi-rural area, which might help in establishing the accident location and context. 6. **Other Observations**: If there were any other circumstances or details not visible in the image that may have contributed to the accident, such as weather conditions, road conditions, or any other relevant information, be sure to include those as well. Remember to be factual and descriptive, avoiding speculation about the cause of the accident, as the insurance company will conduct its own investigation.
Exibir e exportar código
A qualquer momento da sessão de chat, você pode habilitar a opção Mostrar JSON bruto na parte superior da janela de chat para ver a conversa formatada como JSON. Aqui está a aparência no início da sessão de chat de início rápido:
[
{
"role": "system",
"content": [
"You are an AI assistant that helps people find information."
]
},
]
Limpar recursos
Se você quiser limpar e remover um recurso Azure OpenAI, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui outros recursos associados a ele.
Use este artigo para começar a usar as APIs REST do Azure OpenAI para implantar e usar modelos de chat habilitados para visão.
Pré-requisitos
- Uma assinatura Azure. Crie um gratuitamente.
- Python versão 3.8 ou posterior.
- As seguintes bibliotecas de Python:
requests,json. - Um recurso Azure OpenAI no Microsoft Foundry Models com um modelo habilitado para visão implantado. Consulte a disponibilidade do modelo para regiões disponíveis. Para obter mais informações sobre a criação de recursos, consulte o guia de implantação de recursos.
Nota
Atualmente, não há suporte para desativar a filtragem de conteúdo para o modelo GPT-4 Turbo com Visão.
Recuperar chave e ponto de extremidade
Para chamar com êxito as APIs do Azure OpenAI, você precisa das seguintes informações sobre o recurso Azure OpenAI:
| Variável | Nome | Valor |
|---|---|---|
| Ponto de acesso | api_base |
O valor do ponto de extremidade está localizado em Chaves e Ponto de Extremidade para seu recurso no portal do Azure. Você também pode encontrar o endpoint por meio da página Implantações no portal do Foundry. Um exemplo de ponto de extremidade é: https://docs-test-001.openai.azure.com/. |
| Chave | api_key |
O valor da chave também está localizado em Keys and Endpoint para o recurso no portal Azure. Azure gera duas chaves para o recurso. Você pode usar qualquer um dos valores. |
Acesse seu recurso no portal do Azure. No painel de navegação, selecione Chaves e Endpoint no Gerenciamento de Recursos. Copie o valor do Endpoint e um valor de chave de acesso. Você pode usar o valor KEY 1 ou KEY 2 . Ter duas chaves permite girar e regenerar chaves com segurança sem causar uma interrupção de serviço.
Criar um novo aplicativo Python
Crie um novo arquivo de Python chamado quickstart.py. Abra o novo arquivo em seu editor ou IDE preferencial.
Substitua o conteúdo de quickstart.py pelo código a seguir.
# Packages required: import requests import json api_base = '<your_azure_openai_endpoint>' deployment_name = '<your_deployment_name>' API_KEY = '<your_azure_openai_key>' base_url = f"{api_base}openai/deployments/{deployment_name}" headers = { "Content-Type": "application/json", "api-key": API_KEY } # Prepare endpoint, headers, and request body endpoint = f"{base_url}/chat/completions?api-version=2023-12-01-preview" data = { "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": [ { "type": "text", "text": "Describe this picture:" }, { "type": "image_url", "image_url": { "url": "<image URL>" } } ] } ], "max_tokens": 2000 } # Make the API call response = requests.post(endpoint, headers=headers, data=json.dumps(data)) print(f"Status Code: {response.status_code}") print(response.text)Faça as seguintes alterações:
- Insira a URL do endpoint e a chave nos campos apropriados.
- Insira o nome da implantação do modelo no campo apropriado.
- Altere o valor do
"image"campo para a URL acessível publicamente de sua imagem.Dica
Você também pode usar dados de imagem codificados em base 64 em vez de uma URL. Para obter mais informações, consulte o guia de instruções de chats da Visão.
Execute o aplicativo com o
pythoncomando:python quickstart.py
Limpar recursos
Se você quiser limpar e remover um recurso Azure OpenAI, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui outros recursos associados a ele.
Use este artigo para começar a usar o SDK do Azure OpenAI Python para implantar e usar um modelo de chat habilitado para visão.
Código-fonte da biblioteca | Pacote (PyPi) |
Pré-requisitos
- Uma assinatura Azure. Crie um gratuitamente.
- Python versão 3.8 ou posterior.
- Um recurso do Azure OpenAI nos Microsoft Foundry Models com um modelo de chat com suporte a visão implantado. Consulte a disponibilidade do modelo para regiões disponíveis. Para obter mais informações sobre a criação de recursos, consulte o guia de implantação de recursos.
Microsoft Entra ID pré-requisitos
Para a autenticação sem chave recomendada com Microsoft Entra ID, você precisa:
- Instale o CLI do Azure usado para autenticação sem chave com Microsoft Entra ID.
- Atribua a
Cognitive Services Userfunção à sua conta de usuário. Você pode atribuir funções no portal do Azure em Controle de Acesso (IAM)>Adicionar atribuição de função.
Configurar
Instale a biblioteca de clientes do Python OpenAI com:
pip install openai
Nota
Essa biblioteca é mantida pelo OpenAI. Consulte o histórico de lançamentos para acompanhar as atualizações mais recentes na biblioteca.
Recuperar chave e ponto de extremidade
Para fazer uma chamada com êxito contra Azure OpenAI, você precisa de um endpoint e um key.
| Nome da variável | Valor |
|---|---|
ENDPOINT |
O ponto de extremidade de serviço pode ser encontrado na seção https://docs-test-001.openai.azure.com/. |
API-KEY |
Esse valor pode ser encontrado na seção KEY1 ou KEY2. |
Acesse seu recurso no portal do Azure. A seção KEY1 ou KEY2. Sempre ter duas chaves permite girar e regenerar chaves com segurança sem causar uma interrupção de serviço.
Variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.
Importante
Recomendamos a autenticação Microsoft Entra ID com identidades gerenciadas para os recursos Azure para evitar armazenar credenciais nos seus aplicativos que são executados na nuvem.
Use chaves de API com cuidado. Não inclua a chave de API diretamente em seu código e nunca a publique publicamente. Se estiver usando chaves de API, armazene-as com segurança em Azure Key Vault, gire as chaves regularmente e restrinja o acesso a Azure Key Vault usando controle de acesso baseado em função e restrições de acesso à rede. Para obter mais informações sobre como usar chaves de API com segurança em seus aplicativos, consulte as chaves API com Azure Key Vault.
Para obter mais informações sobre a segurança dos serviços de IA, consulte Autenticar solicitações para Serviços de IA do Azure.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Criar um novo aplicativo Python
Crie um novo arquivo de Python chamado quickstart.py. Abra o novo arquivo em seu editor ou IDE preferencial.
Substitua o conteúdo de quickstart.py pelo código a seguir.
import os from openai import AzureOpenAI api_base = os.getenv("AZURE_OPENAI_ENDPOINT") api_key= os.getenv("AZURE_OPENAI_API_KEY") deployment_name = '<your_deployment_name>' api_version = '2023-12-01-preview' # this might change in the future client = AzureOpenAI( api_key=api_key, api_version=api_version, base_url=f"{api_base}/openai/deployments/{deployment_name}" ) response = client.chat.completions.create( model=deployment_name, messages=[ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": [ { "type": "text", "text": "Describe this picture:" }, { "type": "image_url", "image_url": { "url": "<image URL>" } } ] } ], max_tokens=2000 ) print(response)Faça as seguintes alterações:
- Verifique se as variáveis de ambiente
AZURE_OPENAI_ENDPOINTeAZURE_OPENAI_API_KEYestão definidas. - Insira o nome da implantação do modelo na
deployment_namevariável. - Altere o valor do
"url"campo para a URL acessível publicamente de sua imagem.Dica
Você também pode usar dados de imagem codificados em base 64 em vez de uma URL. Para obter mais informações, consulte o guia de instruções de chats da Visão.
- Verifique se as variáveis de ambiente
Execute o aplicativo com o
pythoncomando:python quickstart.py
Importante
Use chaves de API com cuidado. Não inclua a chave de API diretamente em seu código e nunca a publique publicamente. Se você usar uma chave de API, armazene-a com segurança em Azure Key Vault. Para obter mais informações sobre como usar chaves de API com segurança em seus aplicativos, consulte as chaves API com Azure Key Vault.
Para obter mais informações sobre a segurança dos serviços de IA, consulte Autenticar solicitações para Serviços de IA do Azure.
Limpar recursos
Se você quiser limpar e remover um recurso Azure OpenAI, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui outros recursos associados a ele.
Use este artigo para começar a usar o SDK do JavaScript OpenAI para implantar e usar um modelo de chat habilitado para visão.
Esse SDK é fornecido pela OpenAI com tipos específicos do Azure fornecidos pelo Azure.
Reference documentation | Library source code | Package (npm) | Samples
Pré-requisitos
- Uma assinatura Azure – Criar uma gratuitamente
- Versões LTS de Node.js
- CLI do Azure usado para autenticação sem senha em um ambiente de desenvolvimento local, crie o contexto necessário entrando com o CLI do Azure.
- Um recurso Azure OpenAI criado em uma região com suporte (consulte disponibilidade de região). Para obter mais informações, consulte Criar um recurso e implantar um modelo com Azure OpenAI.
Nota
Essa biblioteca é mantida pelo OpenAI. Consulte o histórico de lançamentos para acompanhar as atualizações mais recentes na biblioteca.
Microsoft Entra ID pré-requisitos
Para a autenticação sem chave recomendada com Microsoft Entra ID, você precisa:
- Instale o CLI do Azure usado para autenticação sem chave com Microsoft Entra ID.
- Atribua a
Cognitive Services Userfunção à sua conta de usuário. Você pode atribuir funções no portal do Azure em Controle de Acesso (IAM)>Adicionar atribuição de função.
Configurar
Crie uma nova pasta
vision-quickstarte vá para a pasta de início rápido com o seguinte comando:mkdir vision-quickstart && cd vision-quickstartCrie o
package.jsoncom o seguinte comando:npm init -yInstale a biblioteca de clientes OpenAI para JavaScript com:
npm install openaiPara a autenticação sem senha recomendada :
npm install @azure/identity
Recuperar informações do recurso
Você precisa recuperar as seguintes informações para autenticar seu aplicativo com seu Azure recurso OpenAI:
| Nome da variável | Valor |
|---|---|
AZURE_OPENAI_ENDPOINT |
Esse valor pode ser encontrado na seção Keys e Endpoint ao examinar o recurso do portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Esse valor corresponderá ao nome personalizado escolhido para sua implantação quando você implantou um modelo. Esse valor pode ser encontrado em Resource Management>Model Deployments no portal Azure. |
Saiba mais sobre autenticação sem chave e configuração de variáveis de ambiente.
Cuidado
Para usar a autenticação sem chave recomendada com o SDK, verifique se a AZURE_OPENAI_API_KEY variável de ambiente não está definida.
Criar um novo aplicativo JavaScript para prompts de imagem
Selecione uma imagem no azure-samples/cognitive-services-sample-data-files. Insira sua URL de imagem acessível publicamente no código abaixo ou defina a variável de IMAGE_URL ambiente como ela.
Importante
Se você usar uma URL SAS para uma imagem armazenada no armazenamento de blobs Azure, será necessário habilitar a Identidade Gerenciada e atribuir a função Storage Blob Reader ao recurso Azure OpenAI (faça isso no portal Azure). Isso permite que o modelo acesse a imagem no armazenamento de blobs.
Dica
Você também pode usar dados de imagem codificados em base 64 em vez de uma URL. Para obter mais informações, consulte o guia de instruções de chats da Visão.
Crie o
index.jsarquivo com o seguinte código:const AzureOpenAI = require('openai').AzureOpenAI; const { DefaultAzureCredential, getBearerTokenProvider } = require('@azure/identity'); // You will need to set these environment variables or edit the following values const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint"; const imageUrl = process.env.IMAGE_URL || "<image url>"; // Required Azure OpenAI deployment name and API version const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01-preview"; const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4-with-turbo"; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://ai.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); function getClient(): AzureOpenAI { return new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment: deploymentName, }); } function createMessages() { return { messages: [ { role: "system", content: "You are a helpful assistant." }, { role: "user", content: [ { type: "text", text: "Describe this picture:", }, { type: "image_url", image_url: { url: imageUrl, }, }, ], }, ], model: "", max_tokens: 2000, }; } async function printChoices(completion) { for (const choice of completion.choices) { console.log(choice.message); } } export async function main() { console.log("== Get Vision chats Sample =="); const client = getClient(); const messages = createMessages(); const completion = await client.chat.completions.create(messages); await printChoices(completion); } main().catch((err) => { console.error("Error occurred:", err); });Entre no Azure com o seguinte comando:
az loginExecute o arquivo JavaScript.
node index.js
Limpar recursos
Se você quiser limpar e remover um recurso Azure OpenAI, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui outros recursos associados a ele.
Use este artigo para começar a usar o SDK do JavaScript OpenAI para implantar e usar um modelo de chat habilitado para visão.
Esse SDK é fornecido pela OpenAI com tipos específicos do Azure fornecidos pelo Azure.
Reference documentation | Library source code | Package (npm) | Samples
Pré-requisitos
- Uma assinatura Azure – Criar uma gratuitamente
- Versões LTS de Node.js
- TypeScript
- CLI do Azure usado para autenticação sem senha em um ambiente de desenvolvimento local, crie o contexto necessário entrando com o CLI do Azure.
- Um recurso Azure OpenAI criado em uma região com suporte (consulte disponibilidade de região). Para obter mais informações, consulte Criar um recurso e implantar um modelo com Azure OpenAI.
Nota
Essa biblioteca é mantida pelo OpenAI. Consulte o histórico de lançamentos para acompanhar as atualizações mais recentes na biblioteca.
Microsoft Entra ID pré-requisitos
Para a autenticação sem chave recomendada com Microsoft Entra ID, você precisa:
- Instale o CLI do Azure usado para autenticação sem chave com Microsoft Entra ID.
- Atribua a
Cognitive Services Userfunção à sua conta de usuário. Você pode atribuir funções no portal do Azure em Controle de Acesso (IAM)>Adicionar atribuição de função.
Configurar
Crie uma nova pasta
vision-quickstarte vá para a pasta de início rápido com o seguinte comando:mkdir vision-quickstart && cd vision-quickstartCrie o
package.jsoncom o seguinte comando:npm init -yAtualize o
package.jsonpara o ECMAScript com o seguinte comando:npm pkg set type=moduleInstale a biblioteca de clientes OpenAI para JavaScript com:
npm install openaiPara a autenticação sem senha recomendada :
npm install @azure/identity
Recuperar informações do recurso
Você precisa recuperar as seguintes informações para autenticar seu aplicativo com seu Azure recurso OpenAI:
| Nome da variável | Valor |
|---|---|
AZURE_OPENAI_ENDPOINT |
Esse valor pode ser encontrado na seção Keys e Endpoint ao examinar o recurso do portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Esse valor corresponderá ao nome personalizado escolhido para sua implantação quando você implantou um modelo. Esse valor pode ser encontrado em Resource Management>Model Deployments no portal Azure. |
Saiba mais sobre autenticação sem chave e configuração de variáveis de ambiente.
Cuidado
Para usar a autenticação sem chave recomendada com o SDK, verifique se a AZURE_OPENAI_API_KEY variável de ambiente não está definida.
Criar um novo aplicativo JavaScript para prompts de imagem
Selecione uma imagem no azure-samples/cognitive-services-sample-data-files. Use a URL da imagem no código abaixo ou defina a variável de IMAGE_URL ambiente como a URL da imagem.
Dica
Você também pode usar dados de imagem codificados em base 64 em vez de uma URL. Para obter mais informações, consulte o guia de instruções de chats da Visão.
Crie o
index.tsarquivo com o seguinte código:import { AzureOpenAI } from "openai"; import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; import type { ChatCompletion, ChatCompletionCreateParamsNonStreaming, } from "openai/resources/index"; // You will need to set these environment variables or edit the following values const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint"; const imageUrl = process.env["IMAGE_URL"] || "<image url>"; // Required Azure OpenAI deployment name and API version const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01-preview"; const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4-with-turbo"; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://ai.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); function getClient(): AzureOpenAI { return new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment: deploymentName, }); } function createMessages(): ChatCompletionCreateParamsNonStreaming { return { messages: [ { role: "system", content: "You are a helpful assistant." }, { role: "user", content: [ { type: "text", text: "Describe this picture:", }, { type: "image_url", image_url: { url: imageUrl, }, }, ], }, ], model: "", max_tokens: 2000, }; } async function printChoices(completion: ChatCompletion): Promise<void> { for (const choice of completion.choices) { console.log(choice.message); } } export async function main() { console.log("== Get Vision chat Sample =="); const client = getClient(); const messages = createMessages(); const completion = await client.chat.completions.create(messages); await printChoices(completion); } main().catch((err) => { console.error("Error occurred:", err); });Crie o
tsconfig.jsonarquivo para transpilar o código TypeScript e copiar o código a seguir para ECMAScript.{ "compilerOptions": { "module": "NodeNext", "target": "ES2022", // Supports top-level await "moduleResolution": "NodeNext", "skipLibCheck": true, // Avoid type errors from node_modules "strict": true // Enable strict type-checking options }, "include": ["*.ts"] }Transpile de TypeScript para JavaScript.
tscEntre no Azure com o seguinte comando:
az loginExecute o código com o seguinte comando:
node index.js
Limpar recursos
Se você quiser limpar e remover um recurso Azure OpenAI, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui outros recursos associados a ele.
Use este artigo para começar a usar o Azure OpenAI .NET SDK para implantar e usar um modelo de chat habilitado para visão.
Pré-requisitos
- Uma assinatura Azure. Você pode criar um gratuitamente.
- O SDK do .NET 8.0
- Um recurso do Azure OpenAI nos Microsoft Foundry Models com um modelo de chat com suporte a visão implantado. Consulte a disponibilidade do modelo para regiões disponíveis. Para obter mais informações sobre a criação de recursos, consulte o guia de implantação de recursos.
Microsoft Entra ID pré-requisitos
Para a autenticação sem chave recomendada com Microsoft Entra ID, você precisa:
- Instale o CLI do Azure usado para autenticação sem chave com Microsoft Entra ID.
- Atribua a
Cognitive Services Userfunção à sua conta de usuário. Você pode atribuir funções no portal do Azure em Controle de Acesso (IAM)>Adicionar atribuição de função.
Configurar
Crie uma nova pasta
vision-quickstarte vá para a pasta de início rápido com o seguinte comando:mkdir vision-quickstart && cd vision-quickstartCrie um novo aplicativo de console com o seguinte comando:
dotnet new consoleInstale a biblioteca de clientes .NET OpenAI com o comando dotnet add package:
dotnet add package Azure.AI.OpenAIPara a autenticação recomendada sem chave com Microsoft Entra ID, instale o pacote Azure.Identity com:
dotnet add package Azure.IdentityPara a recomendada autenticação sem chave com Microsoft Entra ID, faça logon no Azure com o seguinte comando:
az login
Recuperar informações do recurso
Você precisa recuperar as seguintes informações para autenticar seu aplicativo com seu Azure recurso OpenAI:
| Nome da variável | Valor |
|---|---|
AZURE_OPENAI_ENDPOINT |
Esse valor pode ser encontrado na seção Keys e Endpoint ao examinar o recurso do portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Esse valor corresponderá ao nome personalizado escolhido para sua implantação quando você implantou um modelo. Esse valor pode ser encontrado em Resource Management>Model Deployments no portal Azure. |
Saiba mais sobre autenticação sem chave e configuração de variáveis de ambiente.
Executar o início rápido
O código de exemplo neste início rápido usa Microsoft Entra ID para a autenticação sem chave recomendada. Se você preferir usar uma chave de API, poderá substituir o DefaultAzureCredential objeto por um AzureKeyCredential objeto.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
Para executar o início rápido, siga estas etapas:
Substitua o conteúdo de
Program.cscom o seguinte código e atualize os valores de espaço reservado com seus próprios valores.using Azure; using Azure.AI.OpenAI; using Azure.Identity; using OpenAI.Chat; // Required for Passwordless auth string deploymentName = "gpt-4"; string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/"; string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>"; // Use the recommended keyless credential instead of the AzureKeyCredential credential. AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key)); var chatClient = openAIClient.GetChatClient(deploymentName); var imageUrl = "YOUR_IMAGE_URL"; var textPart = ChatMessageContentPart.CreateTextPart("Describe this picture:"); var imgPart = ChatMessageContentPart.CreateImagePart(imageUrl); var chatMessages = new List<ChatMessage> { new SystemChatMessage("You are a helpful assistant."), new UserChatMessage(textPart, imgPart) }; ChatCompletion chatCompletion = await chatClient.CompleteChatAsync(chatMessages); Console.WriteLine($"[ASSISTANT]:"); Console.WriteLine($"{chatCompletion.Content[0].Text}");Substitua
YOUR_IMAGE_URLpela imagem publicamente acessível que você deseja carregar.Execute o aplicativo usando o comando
dotnet runou o botão executar na parte superior do Visual Studio:dotnet run
Saída
A saída do aplicativo será uma descrição da imagem fornecida na imageUri variável. O assistente analisará a imagem e fornecerá uma descrição detalhada com base em seu conteúdo.
Limpar recursos
Se você quiser limpar e remover um recurso Azure OpenAI, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui outros recursos associados a ele.
Detalhes da API
Os comandos a seguir mostram como usar a API de Preenchimento de Chat com modelos com suporte para visão. Para obter mais informações, consulte a referência de API.
Enviar uma solicitação POST para https://{RESOURCE_NAME}.openai.azure.com/openai/v1/chat/completions onde
- RESOURCE_NAME é o nome do recurso Azure OpenAI
Cabeçalhos necessários:
-
Content-Type: application/json -
api-key: {API_KEY}
Corpo: O seguinte é um corpo de solicitação de exemplo. O formato é o mesmo que a API de conclusões de chat para GPT-4o, exceto que o conteúdo da mensagem pode ser uma matriz que contém texto e imagens (uma URL HTTP ou HTTPS acessível publicamente válida para uma imagem ou uma imagem codificada em base 64).
Importante
Lembre-se de definir um valor "max_tokens" ou max_completion_tokens, ou a saída de retorno será cortada. Para modelos de raciocínio de série o, use max_completion_tokens em vez de max_tokens.
Importante
Ao carregar imagens, há um limite de 10 imagens por solicitação de chat.
Nota
Os formatos de imagem com suporte incluem JPEG, PNG, GIF (somente primeiro quadro) e WEBP.
{
"model": "MODEL-DEPLOYMENT-NAME",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "Describe this picture:"
},
{
"type": "image_url",
"image_url": {
"url": "<image URL>"
}
}
]
}
],
"max_tokens": 100,
"stream": false
}
Dica
Usar uma imagem local
Se você quiser usar uma imagem local, poderá usar o código Python a seguir para convertê-la em base64 para que ela possa ser passada para a API. Ferramentas alternativas de conversão de arquivo estão disponíveis online.
import base64
from mimetypes import guess_type
# Function to encode a local image into data URL
def local_image_to_data_url(image_path):
# Guess the MIME type of the image based on the file extension
mime_type, _ = guess_type(image_path)
if mime_type is None:
mime_type = 'application/octet-stream' # Default MIME type if none is found
# Read and encode the image file
with open(image_path, "rb") as image_file:
base64_encoded_data = base64.b64encode(image_file.read()).decode('utf-8')
# Construct the data URL
return f"data:{mime_type};base64,{base64_encoded_data}"
# Example usage
image_path = '<path_to_image>'
data_url = local_image_to_data_url(image_path)
print("Data URL:", data_url)
Quando os dados de imagem base64 estiverem prontos, você poderá passá-los para a API no corpo da solicitação da seguinte maneira:
...
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,<your_image_data>"
}
...
Configurar o nível de detalhes da imagem
Opcionalmente, você pode definir um "detail" parâmetro no "image_url" campo. Escolha um dos três valores, lowouhighauto, para ajustar a maneira como o modelo interpreta e processa imagens.
-
autoconfiguração: a configuração padrão. O modelo decide entre baixo ou alto com base no tamanho da entrada da imagem. -
lowconfiguração: o modelo não ativa o modo "alta res", em vez disso processa uma versão de resolução 512x512 de resolução inferior, resultando em respostas mais rápidas e redução do consumo de token para cenários em que detalhes finos não são cruciais. -
highconfiguração: o modelo ativa o modo "altas res". Aqui, o modelo exibe inicialmente a imagem de baixa resolução e, em seguida, gera segmentos detalhados de 512 x 512 da imagem de entrada. Cada segmento usa o dobro do orçamento do token, permitindo uma interpretação mais detalhada da imagem.
Defina o valor usando o formato mostrado neste exemplo:
{
"type": "image_url",
"image_url": {
"url": "<image URL>",
"detail": "high"
}
}
Saída
Quando você envia uma imagem para um modelo com capacidade de visão, a API retorna uma resposta de conclusão do chat com a análise do modelo. A resposta inclui resultados de filtro de conteúdo específicos para Azure OpenAI.
{
"id": "chatcmpl-8VAVx58veW9RCm5K1ttmxU6Cm4XDX",
"object": "chat.completion",
"created": 1702439277,
"model": "gpt-4o",
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"hate": {
"filtered": false,
"severity": "safe"
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"choices": [
{
"finish_reason":"stop",
"index": 0,
"message": {
"role": "assistant",
"content": "The picture shows an individual dressed in formal attire, which includes a black tuxedo with a black bow tie. There is an American flag on the left lapel of the individual's jacket. The background is predominantly blue with white text that reads \"THE KENNEDY PROFILE IN COURAGE AWARD\" and there are also visible elements of the flag of the United States placed behind the individual."
},
"content_filter_results": {
"hate": {
"filtered": false,
"severity": "safe"
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"usage": {
"prompt_tokens": 1156,
"completion_tokens": 80,
"total_tokens": 1236
}
}
Cada resposta inclui um "finish_reason" campo. Ele tem os seguintes valores possíveis:
-
stop: a API retornou a saída completa do modelo. -
length: saída de modelo incompleta devido aomax_tokensparâmetro de entrada ou ao limite de token do modelo. -
content_filter: conteúdo omitido devido a um sinalizador de nossos filtros de conteúdo.
Limitações de entrada
Esta seção descreve as limitações dos modelos de chat com funcionalidades de visão.
Suporte à imagem
- Tamanho máximo da imagem de entrada: o tamanho máximo para imagens de entrada é restrito a 20 MB.
- Precisão de baixa resolução: quando as imagens são analisadas usando a configuração de "baixa resolução", ela permite respostas mais rápidas e usa menos tokens de entrada para determinados casos de uso. No entanto, isso pode afetar a precisão do reconhecimento de objeto e texto dentro da imagem.
- Restrição de chat de imagem
: Quando você carrega imagens no portal Microsoft Foundry ou na API, você está limitado a 10 imagens por chamada de chat.
Informações de preços especiais
Importante
O conteúdo a seguir é apenas um exemplo e os preços estão sujeitos a alterações no futuro.
Modelos habilitados por visão acumulam encargos como outros modelos de chat do Azure OpenAI. Você paga uma taxa por token para os prompts e conclusões, detalhados na página de Preços. Os encargos base e outros recursos são descritos aqui:
O preço base do GPT-4 Turbo com Visão é:
- Entrada: $0,01 por 1.000 tokens
- Saída: US$ 0,03 por 1.000 tokens
Consulte a seção Tokens da visão geral para obter informações sobre como texto e imagens se traduzem em tokens.
Cálculo de preço de imagem de exemplo
Para um caso de uso típico, capture uma imagem com objetos visíveis e texto e um prompt de entrada com 100 tokens. Quando o serviço processa o prompt, ele gera 100 tokens como resultado. Na imagem, texto e objetos podem ser detectados. O preço dessa transação seria:
| Item | Detalhe | Custo |
|---|---|---|
| Entrada de prompt de texto | 100 tokens de texto | $0,001 |
| Entrada de imagem de exemplo (consulte tokens de imagem) | 170 + 85 tokens de imagem | US$ 0,00255 |
| Recursos avançados de complemento para OCR | US$ 1,50 / 1.000 transações | US$ 0,0015 |
| Recursos de complemento aprimorados para aterramento de objeto | US$ 1,50 / 1.000 transações | US$ 0,0015 |
| Tokens de saída | 100 tokens (presumido) | US$ 0,003 |
| Total | $0,00955 |
Solucionando problemas
| Questão | Resolução |
|---|---|
| Saída truncada | Aumentar max_tokens ou max_completion_tokens valor |
| Imagem não processada | Verificar se a URL está acessível publicamente ou se a codificação base64 está correta |
| Limite de taxa excedido | Implementar lógica de reintento com retardo exponencial |