Поделиться через


Использование моделей чата с поддержкой визуального зрения

Модели чата с поддержкой визуального распознавания — это большие многомодальные модели (LMM), разработанные OpenAI, которые могут анализировать изображения и предоставлять текстовые ответы на вопросы о них. Они включают как обработку естественного языка, так и визуальное понимание. Текущие модели с поддержкой визуального зрения: o1, GPT-4o, GPT-4o-mini и GPT-4 Turbo с Vision.

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

Совет

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

Вызов API завершения чата

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

Отправка запроса POST на https://{RESOURCE_NAME}.openai.azure.com/openai/deployments/{DEPLOYMENT_NAME}/chat/completions?api-version=2024-02-15-preview место

  • RESOURCE_NAME — это имя ресурса Azure OpenAI
  • DEPLOYMENT_NAME — это имя вашего развертывания модели

Обязательные заголовки:

  • Content-Type: application/json
  • api-key: {API_KEY}

Текст: ниже приведен пример текста запроса. Формат совпадает с API завершения чата для GPT-4, за исключением того, что содержимое сообщения может быть массивом, содержащим текст и изображения (допустимый URL-адрес HTTP или HTTPS для изображения или изображение в кодировке base-64).

Внимание

Не забудьте задать "max_tokens" значение или вырезать возвращаемые выходные данные.

Внимание

При отправке изображений на запрос чата ограничено 10 изображений.

{
    "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 
} 

Совет

Использование локального образа

Если вы хотите использовать локальный образ, можно использовать следующий код Python для преобразования его в base64, чтобы его можно было передать в API. Альтернативные средства преобразования файлов доступны в Интернете.

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)

Когда данные образа base64 готовы, его можно передать в API в тексте запроса следующим образом:

...
"type": "image_url",
"image_url": {
   "url": "data:image/jpeg;base64,<your_image_data>"
}
...

Детализация параметров

При необходимости можно определить "detail" параметр в "image_url" поле. Выберите одно из трех значений, lowhighилиauto, чтобы настроить способ интерпретации и обработки изображений модели.

  • auto параметр: параметр по умолчанию. Модель принимает решение между низкими или высокими параметрами на основе размера входного изображения.
  • low параметр: модель не активирует режим высокого размера, а обрабатывает более низкую версию 512x512, что приводит к более быстрому ответу и снижению потребления маркеров для сценариев, где подробные сведения не имеют решающего значения.
  • high настройка: модель активирует режим "высокое разрешение". Здесь модель изначально просматривает изображение с низким разрешением, а затем создает подробные сегменты 512x512 из входного образа. Каждый сегмент использует двойной бюджет токена, что позволяет более подробно интерпретировать изображение.

Задайте значение с помощью формата, показанного в этом примере:

{ 
    "type": "image_url",
    "image_url": {
        "url": "<image URL>",
        "detail": "high"
    }
}

Дополнительные сведения о том, как параметры изображения влияют на используемые маркеры и цены, см. в статье "Что такое Azure OpenAI? Маркеры изображений

Выходные данные

Ответ API должен выглядеть следующим образом.

{
    "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
    }
}

Каждый ответ содержит "finish_reason" поле. У него есть следующие возможные значения:

  • stop: API вернул полные выходные данные модели.
  • length: Неполный вывод модели из-за ограничения входного параметра или лимита токенов модели.
  • content_filter: Контент пропущен из-за срабатывания наших фильтров.

Выходные данные

Ответы чата, полученные от модели, теперь должны включать расширенные сведения о изображении, такие как метки объектов и ограничивающие прямоугольники, а также результаты OCR. Ответ API должен выглядеть следующим образом.

{
    "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
    }
}

Каждый ответ содержит "finish_reason" поле. У него есть следующие возможные значения:

  • stop: API вернул полные выходные данные модели.
  • length: неполный вывод модели из-за ограничений на входной параметр max_tokens или на количество токенов модели.
  • content_filter: Содержимое было удалено из-за того, что его обозначили фильтры содержимого.

Обновление модели GPT-4 Turbo

Последний в общем доступе выпуск GPT-4 Turbo:

  • gpt-4 Версия:turbo-2024-04-09

Это замена для следующих моделей предварительной версии:

  • gpt-4 Версия:1106-Preview
  • gpt-4 Версия:0125-Preview
  • gpt-4 Версия:vision-preview

Различия между моделями OpenAI и Azure OpenAI GPT-4 Turbo GA

  • Версия новейшей модели turbo от OpenAI поддерживает режим JSON и вызов функций для всех запросов на интерпретацию.
  • Версия Azure OpenAI последняя turbo-2024-04-09 в настоящее время не поддерживает использование режима JSON и вызова функций при выполнении запросов на вывод данных с входными изображениями (визуальными данными). Текстовые запросы (запросы без image_url и встроенных изображений) поддерживают JSON-режим и вызов функции.

Различия от gpt-4 vision-preview

  • Интеграция специфических для Azure AI улучшений Vision с GPT-4 Turbo with Vision не поддерживается для gpt-4версии:turbo-2024-04-09. К ним относятся оптическое распознавание символов (OCR), заземление объектов, запросы видео и улучшенная обработка данных с помощью изображений.

Внимание

Улучшения в визуальном распознавании, включая оптическое распознавание символов (OCR), заземление объектов и видео-подсказки, которые были частью предварительных возможностей, будут отключены и станут недоступными после обновления с версии gpt-4vision-preview на turbo-2024-04-09. Если вы используете какие-либо из этих предварительных версий функций, это автоматическое обновление модели будет критическим изменением.

GPT-4 Turbo предоставленная контролируемая доступность

  • gpt-4 Версия:turbo-2024-04-09 доступен как для стандартных, так и подготовленных развертываний. В настоящее время подготовленная версия этой модели не поддерживает запросы на вывод изображений и визуального зрения. Подготовленные развертывания этой модели принимают только текстовые входные данные. Развертывания стандартной модели принимают как текстовые, так и запросы вывода изображений и визуального распознавания.

Развертывание GPT-4 Turbo с помощью версии Vision GA в общем доступе

Чтобы развернуть модель GA (общедоступной версии) на портале Azure AI Foundry, выберите GPT-4, а затем извлеките версию turbo-2024-04-09 из раскрывающегося меню. Квота по умолчанию для gpt-4-turbo-2024-04-09 модели будет совпадать с текущей квотой для GPT-4-Turbo. См. ограничения региональной квоты.

Следующие шаги