Udvikl en visionsbaseret chatapp

Fuldført

Hvis du vil udvikle en klientapp, der interagerer med visionsbaserede chats med en multimodal model, kan du bruge de samme grundlæggende teknikker, der bruges til tekstbaserede chats. Du kræver en forbindelse til det slutpunkt, hvor modellen er installeret, og du bruger dette slutpunkt til at sende prompter, der består af meddelelser til modellen og behandler svarene.

Den væsentlige forskel er, at prompts til en visionsbaseret chat inkluderer flerdelte brugerbeskeder, der indeholder både et tekstindholdselement og et billedindhold.

Diagram over en prompt med flere dele, der sendes til en model.

Indsend en billedbaseret prompt ved hjælp af Responses API'en

For at inkludere et billede i en prompt ved hjælp af Responses API, angiv en URL til en webbaseret billedfil, eller indlæs et lokalt billede og kod dets data i Base64-format og indsend en URL i formatet data:image/jpeg;base64,{image_data} (erstat "jpeg" med "png" eller andre formater efter behov).

Følgende Python-eksempel viser, hvordan man indsender et billede i en prompt ved hjælp af Responses API'en:

# Read the image data from a local file
image_path = Path("dragon-fruit.jpeg")
image_format = "jpeg"
with open(image_path, "rb") as image_file:
    image_data = base64.b64encode(image_file.read()).decode("utf-8")

data_url = f"data:image/{image_format};base64,{image_data}" # You can also use a web URL

# Send the image data in a prompt to the model
response = client.responses.create(
    model="gpt-4.1",
    input=[
        {"role": "developer", "content": "You are an AI assistant for chefs planning recipes."},
        {"role": "user", "content": [  
            { "type": "input_text", "text": "What desserts could I make with this?"},
            { "type": "input_image", "image_url": data_url}
        ] } 
    ]
)
print(response.output_text)

Indsend en billedbaseret prompt ved hjælp af ChatCompletions API'en

Når du bruger Azure OpenAI-endpointet til at indsende prompts til modeller, der ikke understøtter Responses API'en, kan du bruge CatCompletions API'en; Sådan her:

# Read the image data from a local file
image_path = Path("orange.jpeg")
image_format = "jpeg"
with open(image_path, "rb") as image_file:
    image_data = base64.b64encode(image_file.read()).decode("utf-8")

data_url = f"data:image/{image_format};base64,{image_data}" # You can also use a web URL

# Send the image data in a prompt to the model
response = client.chat.completions.create(
    model="Phi-4-multimodal-instruct",
    messages=[
        {"role": "system", "content": "You are an AI assistant for chefs planning recipes."},
        { "role": "user", "content": [  
            { "type": "text", "text": "What can I make with this fruit?"},
            { "type": "image_url", "image_url": {"url": data_url}}
        ] }
    ]
)
print(response.choices[0].message.content)