Разработка приложения чата на основе визуального зрения

Завершено

Tip

Дополнительные сведения см. на вкладке "Текст и изображения ".

Чтобы разработать клиентское приложение, которое участвует в чатах на основе машинного зрения с мультимодальной моделью, вы можете использовать те же основные методы, что и для текстовых чатов. Вам требуется подключение к конечной точке, в которой развернута модель, и вы используете эту конечную точку для отправки запросов, состоящих из сообщений в модель и обработки ответов.

Ключевое отличие заключается в том, что запросы чата на основе визуального распознавания включают в себя многокомпонентные пользовательские сообщения, содержащие как элемент текстового содержимого, так и элемент содержимого изображения .

Схема многокомпонентного запроса, отправляемого в модель.

Отправка запроса на основе образа с помощью API ответов

Чтобы включить изображение в запрос с помощью API ответов , укажите URL-адрес файла изображения на основе веб-сайта или загрузите локальное изображение и закодируйте его данные в формате Base64 и отправьте URL-адрес в формате data:image/jpeg;base64,{image_data} (заменив "jpeg" на "png" pr других форматов соответствующим образом).

В следующем примере Python показано, как отправить изображение в запросе с помощью 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)

Отправка запроса на основе образа с помощью API ChatCompletions

При использовании конечной точки Azure OpenAI для отправки запросов в модели, не поддерживающие API ответов, можно использовать API CatCompletions.

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