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 pesquisa visual são um grandes modelos multimodais (LMM) desenvolvidos pela OpenAI que podem analisar imagens e fornecer respostas textuais a perguntas sobre elas. Eles incorporam tanto o processamento de linguagem natural quanto o reconhecimento visual. Os modelos atuais habilitados para visão são os modelos de raciocínio da série o, série GPT-5, série GPT-4.1, série GPT-4.5, série GPT-4o.
Os modelos habilitados para visão atuais podem responder a perguntas de caráter geral sobre o que está presente nas imagens que você carrega.
Dica
Para usar os modelos habilitados para pesquisa visual, você chama a API de Conclusão de Chat em um modelo compatível que tenha sido implantado. Se você não estiver familiarizado com a API de Conclusão de Chat, consulte o Guia de instruções do chat habilitado para pesquisa visual.
Chamar as APIs de Conclusão de Chat
O comando a seguir mostra a maneira mais básica de usar um modelo de chat habilitado para pesquisa visual com código. Se esta for sua primeira vez usando esses modelos programaticamente, recomendamos que comece com nosso Início rápido do chat com imagens.
Enviar uma solicitação POST para https://{RESOURCE_NAME}.openai.azure.com/openai/v1/chat/completions onde
- RESOURCE_NAME é o nome do recurso do OpenAI do Azure
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 para "max_tokens" ou max_completion_tokens, ou a saída de retorno será cortada.
Importante
Ao carregar imagens, há um limite de dez imagens por solicitação de chat.
{
"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 seguinte código Python 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>"
}
...
Detalhar as configurações de parâmetro
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. -
Configuração
low: o modelo não ativa o modo "alta res", em vez disso, processa uma versão de resolução 512x512 mais baixa, 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. -
Configuração
high: o modelo ativa o modo "alta 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"
}
}
Para obter detalhes sobre como os parâmetros de imagem afetam os tokens usados e os preços, consulte – O que é o OpenAI do Azure? Tokens de imagem
Saída
A resposta da API deve ser semelhante à seguinte.
{
"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
}
}
Todas as respostas incluem um campo "finish_reason". Tem os seguintes valores possíveis:
-
stop: a API retornou a saída completa do modelo. -
length: saída do modelo incompleta devido ao parâmetro de entradamax_tokensou limite de tokens do modelo. -
content_filter: conteúdo omitido devido a um sinalizador dos nossos filtros de conteúdo.
Saída
As respostas de chat recebidas do modelo agora devem incluir informações aprimoradas sobre a imagem, como rótulos de objeto e caixas delimitadoras, e resultados do OCR. A resposta da API deve ser semelhante à seguinte.
{
"id": "chatcmpl-8UyuhLfzwTj34zpevT3tWlVIgCpPg",
"object": "chat.completion",
"created": 1702394683,
"model": "gpt-4o",
"choices":
[
{
"finish_reason": {
"type": "stop",
"stop": "<|fim_suffix|>"
},
"index": 0,
"message":
{
"role": "assistant",
"content": "The image shows a close-up of an individual with dark hair and what appears to be a short haircut. The person has visible ears and a bit of their neckline. The background is a neutral light color, providing a contrast to the dark hair."
}
}
],
"usage":
{
"prompt_tokens": 816,
"completion_tokens": 49,
"total_tokens": 865
}
}
Todas as respostas incluem um campo "finish_reason". Tem os seguintes valores possíveis:
-
stop: a API retornou a saída completa do modelo. -
length: saída do modelo incompleta devido ao parâmetro de entradamax_tokensou limite de tokens do modelo. -
content_filter: conteúdo omitido devido a um sinalizador dos nossos filtros de conteúdo.