Använda visionsaktiverade chattmodeller
Visionsaktiverade chattmodeller är stora multimodala modeller (LMM) som utvecklats av OpenAI och som kan analysera bilder och ge textsvar på frågor om dem. De omfattar både bearbetning av naturligt språk och visuell förståelse. De aktuella visionsaktiverade modellerna är GPT-4 Turbo med Vision, GPT-4o och GPT-4o-mini.
De visionsaktiverade modellerna svarar på allmänna frågor om vad som finns i bilderna du laddar upp.
Dricks
Om du vill använda visionsaktiverade modeller anropar du API:et för chattens slutförande på en modell som stöds som du har distribuerat. Om du inte är bekant med API:et för chattens slutförande kan du läsa guiden För visionsaktiverad chatt.
GPT-4 Turbo-modelluppgradering
Den senaste GA-versionen av GPT-4 Turbo är:
gpt-4
Version:turbo-2024-04-09
Detta är ersättningen för följande förhandsversionsmodeller:
gpt-4
Version:1106-Preview
gpt-4
Version:0125-Preview
gpt-4
Version:vision-preview
Skillnader mellan OpenAI- och Azure OpenAI GPT-4 Turbo GA-modeller
- OpenAI:s version av den senaste
0409
turbomodellen stöder JSON-läge och funktionsanrop för alla slutsatsdragningsbegäranden. - Azure OpenAI:s version av den senaste
turbo-2024-04-09
stöder för närvarande inte användning av JSON-läge och funktionsanrop när du gör slutsatsdragningsbegäranden med bildindata (vision). Textbaserade indatabegäranden (begäranden utanimage_url
och infogade bilder) stöder JSON-läge och funktionsanrop.
Skillnader från gpt-4 vision-preview
- Integrering av Azure AI-specifika visionsförbättringar med GPT-4 Turbo med Vision stöds inte för
gpt-4
version:turbo-2024-04-09
. Detta inkluderar optisk teckenigenkänning (OCR), objekt grounding, video prompts och förbättrad hantering av dina data med bilder.
Viktigt!
Vision förbättringar förhandsversionsfunktioner inklusive optisk teckenigenkänning (OCR), objekt jordning, video prompter kommer att dras tillbaka och inte längre tillgänglig när gpt-4
Version: vision-preview
uppgraderas till turbo-2024-04-09
. Om du för närvarande förlitar dig på någon av dessa förhandsversionsfunktioner blir den här automatiska modelluppgraderingen en icke-bakåtkompatibel ändring.
GPT-4 Turbo-etablerad hanterad tillgänglighet
gpt-4
Version:turbo-2024-04-09
är tillgängligt för både standarddistributioner och etablerade distributioner. Den etablerade versionen av den här modellen stöder för närvarande inte begäranden om bild-/syninferens. Etablerade distributioner av den här modellen accepterar endast textinmatning. Standardmodelldistributioner accepterar både begäranden om text- och bild-/visionsinferens.
Distribuera GPT-4 Turbo med Vision GA
Om du vill distribuera GA-modellen från Azure AI Foundry-portalen väljer du GPT-4
och väljer turbo-2024-04-09
sedan versionen på den nedrullningsbara menyn. Standardkvoten för gpt-4-turbo-2024-04-09
modellen är samma som den aktuella kvoten för GPT-4-Turbo. Se de regionala kvotgränserna.
Anropa API:erna för chattens slutförande
Följande kommando visar det mest grundläggande sättet att använda GPT-4 Turbo med Vision-modellen med kod. Om det här är första gången du använder dessa modeller programmatiskt rekommenderar vi att du börjar med snabbstarten GPT-4 Turbo med Vision.
Skicka en POST-begäran till https://{RESOURCE_NAME}.openai.azure.com/openai/deployments/{DEPLOYMENT_NAME}/chat/completions?api-version=2024-02-15-preview
där
- RESOURCE_NAME är namnet på din Azure OpenAI-resurs
- DEPLOYMENT_NAME är namnet på din GPT-4 Turbo med Vision-modelldistribution
Nödvändiga rubriker:
Content-Type
: application/jsonapi-key
: {API_KEY}
Brödtext: Följande är ett exempel på begärandetext. Formatet är samma som API:et för chattavslut för GPT-4, förutom att meddelandeinnehållet kan vara en matris som innehåller text och bilder (antingen en giltig HTTP- eller HTTPS-URL till en bild eller en base-64-kodad bild).
Viktigt!
Kom ihåg att ange ett "max_tokens"
värde, annars avbryts returutdata.
Viktigt!
När du laddar upp bilder finns det en gräns på 10 bilder per chattbegäran.
{
"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
}
Dricks
Använda en lokal avbildning
Om du vill använda en lokal avbildning kan du använda följande Python-kod för att konvertera den till base64 så att den kan skickas till API:et. Alternativa filkonverteringsverktyg är tillgängliga 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)
När dina base64-avbildningsdata är klara kan du skicka dem till API:et i begärandetexten så här:
...
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,<your_image_data>"
}
...
Output
API-svaret bör se ut så här.
{
"id": "chatcmpl-8VAVx58veW9RCm5K1ttmxU6Cm4XDX",
"object": "chat.completion",
"created": 1702439277,
"model": "gpt-4",
"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
}
}
Varje svar innehåller ett "finish_reason"
fält. Den har följande möjliga värden:
stop
: API returnerade fullständiga modellutdata.length
: Ofullständiga modellutdata på grund avmax_tokens
indataparametern eller modellens tokengräns.content_filter
: Utelämnat innehåll på grund av en flagga från våra innehållsfilter.
Detaljerade parameterinställningar i bildbearbetning: Låg, Hög, Automatisk
Detaljparametern i modellen erbjuder tre alternativ: low
, high
eller auto
, för att justera hur modellen tolkar och bearbetar bilder. Standardinställningen är automatisk, där modellen bestämmer mellan låg eller hög baserat på storleken på bildindata.
low
inställning: modellen aktiverar inte läget "high res" utan bearbetar i stället en version med lägre upplösning 512x512, vilket resulterar i snabbare svar och minskad tokenförbrukning för scenarier där detaljerad information inte är avgörande.high
inställning: modellen aktiverar läget "high res". Här visar modellen först avbildningen med låg upplösning och genererar sedan detaljerade segment på 512x512 från indatabilden. Varje segment använder dubbla tokenbudgeten, vilket möjliggör en mer detaljerad tolkning av bilden."
Mer information om hur bildparametrarna påverkar token som används och priser finns i – Vad är Azure OpenAI? Bildtoken
Output
Chattsvaren som du får från modellen bör nu innehålla förbättrad information om bilden, till exempel objektetiketter och avgränsningsrutor och OCR-resultat. API-svaret bör se ut så här.
{
"id": "chatcmpl-8UyuhLfzwTj34zpevT3tWlVIgCpPg",
"object": "chat.completion",
"created": 1702394683,
"model": "gpt-4",
"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
}
}
Varje svar innehåller ett "finish_reason"
fält. Den har följande möjliga värden:
stop
: API returnerade fullständiga modellutdata.length
: Ofullständiga modellutdata på grund avmax_tokens
indataparametern eller modellens tokengräns.content_filter
: Utelämnat innehåll på grund av en flagga från våra innehållsfilter.