Utvikle en visjonsbasert chatapp

Fullført

Tips

Se fanen Tekst og bilder for mer informasjon!

Hvis du vil utvikle en klientapp som deltar i visjonsbaserte chatter med en flermodal modell, kan du bruke de samme grunnleggende teknikkene som brukes til tekstbaserte chatter. Du krever en tilkobling til endepunktet der modellen distribueres, og du bruker dette endepunktet til å sende ledetekster som består av meldinger til modellen og behandler svarene.

Den viktigste forskjellen er at promptene for en visjonsbasert chat inkluderer flerdelte brukermeldinger som inneholder både et tekstinnhold og et bildeinnhold .

Diagram over en ledetekst i flere deler som sendes til en modell.

Send inn en bildebasert prompt ved hjelp av Responses API

For å inkludere et bilde i en prompt ved hjelp av Responses API, spesifiser en URL for en nettbasert bildefil, eller last inn et lokalt bilde og koder dataene i Base64-format og send inn en URL i formatet data:image/jpeg;base64,{image_data} (erstatt "jpeg" med "png" eller andre formater etter behov).

Følgende Python-eksempel viser hvordan man sender inn et bilde i en prompt ved hjelp av Responses API:

# 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)

Send inn en bildebasert prompt ved hjelp av ChatCompletions API

Når du bruker Azure OpenAI-endepunktet for å sende prompts til modeller som ikke støtter Responses API, kan du bruke CatCompletions API; Slik:

# 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)