Запрос визуальных моделей

В этой статье вы узнаете, как писать запросы к моделям фундамента, оптимизированных для задач визуализации и обслуживаемых Unity Gateway.

Tip

Код Genie (режим агента) может сделать это для вас. Попробуйте следующий пример запроса:

Query the databricks-claude-sonnet-4-5 model using the OpenAI client, sending a base64-encoded image from a URL alongside a text question, and print the response.

Служба моделей предоставляет единый API для понимания и анализа изображений с помощью различных базовых моделей, разблокировки мощных многомодальных возможностей. Эта функция доступна через выбор размещенных в Databricks моделей в рамках API-интерфейсов модели Foundation и обслуживания конечных точек, которые служат внешним моделям.

Требования

Примеры запросов

Note

Следующие примеры основаны на Unity Gateway и модельных сервисах. Если вы используете конечные точки обслуживания моделей вместо служб моделей, замените имя службы модели именем конечной точки. См. Базовые модели, размещенные в Databricks и доступные в API Foundation Model, чтобы просмотреть список доступных базовых моделей, а также названия сервисов моделей и конечных точек.

Клиент OpenAI

Чтобы использовать клиент OpenAI, укажите имя службы модели в качестве model входных данных.


from openai import OpenAI
import base64
import requests

# Get the workspace API URL and token from the notebook context
API_ROOT = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiUrl().get()
API_TOKEN = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()

client = OpenAI(
    api_key=API_TOKEN,
    base_url=f"{API_ROOT}/ai-gateway/mlflow/v1",
)

# Download and encode image
image_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
resp = requests.get(image_url)
resp.raise_for_status()
image_data = base64.b64encode(resp.content).decode("utf-8")

# OpenAI request
completion = client.chat.completions.create(
    model="system.ai.claude-sonnet-4-5",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "what's in this image?"},
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/jpeg;base64,{image_data}"},
                },
            ],
        }
    ],
)

print(completion.choices[0].message.content)

API завершения чата поддерживает несколько входных данных изображения, что позволяет модели анализировать каждое изображение и синтезировать информацию из всех входных данных, чтобы создать ответ на запрос.


from openai import OpenAI
import base64
import requests

# Get the workspace API URL and token from the notebook context
API_ROOT = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiUrl().get()
API_TOKEN = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()

client = OpenAI(
    api_key=API_TOKEN,
    base_url=f"{API_ROOT}/ai-gateway/mlflow/v1",
)

# Download and encode multiple images
image1_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
resp1 = requests.get(image1_url)
resp1.raise_for_status()
image1_data = base64.b64encode(resp1.content).decode("utf-8")

image2_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
resp2 = requests.get(image2_url)
resp2.raise_for_status()
image2_data = base64.b64encode(resp2.content).decode("utf-8")

# OpenAI request
completion = client.chat.completions.create(
    model="system.ai.claude-sonnet-4-5",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "What are in these images? Is there any difference between them?"},
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/jpeg;base64,{image1_data}"},
                },
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/jpeg;base64,{image2_data}"},
                },
            ],
        }
    ],
)

print(completion.choices[0].message.content)

SQL

Это важно

В следующем примере используется встроенная функция SQL, ai_query. Эта функция находится в общедоступной предварительной версии , и определение может измениться.

Следующие запросы обращаются к базовой модели, поддерживаемой API модели Databricks Foundation для многомодальных входных данных с использованием функции ИИ ai_query().

SELECT *, ai_query(
  'system.ai.llama-4-maverick',
  'what is this image about?', files => content)
as output FROM READ_FILES("/Volumes/main/multimodal/unstructured/image.jpeg");

Поддерживаемые модели

См. типы моделей Foundation для поддерживаемых моделей визуального зрения.

Требования к входным изображениям

Модели Поддерживаемые форматы Несколько изображений на запрос Ограничения размера изображения Рекомендации по изменении размера изображений Рекомендации по качеству изображения
databricks-gpt-5
  • JPEG
  • PNG
  • WebP
  • GIF (не анимированные GIF)
До 500 отдельных изображений на запрос Ограничение размера файла: до 10 МБ общего размера полезных данных на запрос N/A
  • Нет подложек или логотипов
  • Достаточно ясно, чтобы человек понимал
databricks-gpt-5-mini
  • JPEG
  • PNG
  • WebP
  • GIF (не анимированные GIF)
До 500 отдельных изображений на запрос Ограничение размера файла: до 10 МБ общего размера полезных данных на запрос N/A
  • Нет подложек или логотипов
  • Достаточно ясно, чтобы человек понимал
databricks-gpt-5-nano
  • JPEG
  • PNG
  • WebP
  • GIF (не анимированные GIF)
До 500 отдельных изображений на запрос Ограничение размера файла: до 10 МБ общего размера полезных данных на запрос N/A
  • Нет подложек или логотипов
  • Достаточно ясно, чтобы человек понимал
databricks-gemma-3-12b
  • JPEG
  • PNG
  • WebP
  • GIF
До 5 образов для запросов API
  • Все предоставленные изображения обрабатываются в запросе.
Ограничение размера файлов: в сумме 10 МБ для всех изображений в одном запросе API N/A N/A
databricks-llama-4-maverick
  • JPEG
  • PNG
  • WebP
  • GIF
До 5 образов для запросов API
  • Все предоставленные изображения обрабатываются в запросе.
Ограничение размера файлов: в сумме 10 МБ для всех изображений в одном запросе API N/A N/A
  • databricks-claude-fable-5-1
  • databricks-claude-sonnet-5
  • databricks-claude-sonnet-4-6
  • databricks-claude-sonnet-4-5
  • databricks-claude-haiku-4-5
  • databricks-claude-opus-5
  • databricks-claude-opus-4-8
  • databricks-claude-opus-4-7
  • databricks-claude-opus-4-6
  • databricks-claude-opus-4-5
  • databricks-claude-opus-4-1
  • databricks-claude-sonnet-4
  • JPEG
  • PNG
  • GIF
  • WebP
  • До 20 изображений для Claude.ai
  • До 100 изображений для запросов API
  • Все предоставленные изображения обрабатываются в запросе, который полезен для сравнения или контрастирования изображений.
  • Изображения размером более 8000x8000 пикселей отклоняются.
  • Если более 20 изображений отправляются в одном запросе API, максимальный допустимый размер каждого изображения составляет 2000 x 2000 пикселей.
Для оптимальной производительности измените размер изображений перед отправкой, если они слишком большие.
  • Если длинный край изображения превышает 1568 пикселей или его размер превышает ~1600 токенов, он автоматически уменьшается с сохранением пропорций.
  • Очень маленькие изображения (до 200 пикселей на любом краю) могут снизить производительность.
  • Чтобы уменьшить задержку, сохраните изображения в пределах 1,15 мегапикселей и не более 1568 пикселей в обоих измерениях.
  • Ясность. Избегайте размытости или пиксельных изображений.
  • Текст в изображениях:
    • Убедитесь, что текст разборчив и не слишком маленьким.
    • Избегайте обрезки ключевого визуального контекста для того, чтобы увеличить текст.

Преобразование изображения в токен

Этот раздел применяется только к API-интерфейсам модели Foundation. Сведения о внешних моделях см. в документации поставщика.

Каждое изображение в запросе к фундаментальной модели учитывается при подсчёте использования маркера. Ознакомьтесь с калькулятором цен , чтобы оценить цены на изображения на основе использования маркеров и модели, используемой вами.

Ограничения понимания изображений

Этот раздел применяется только к API-интерфейсам модели Foundation. Сведения о внешних моделях см. в документации поставщика.

Ниже приведены ограничения на понимание изображений для поддерживаемых моделей баз данных, размещенных в Databricks:

Модель Ограничения
Поддерживаются следующие модели Claude:
  • databricks-claude-fable-5-1
  • databricks-claude-sonnet-5
  • databricks-claude-sonnet-4-6
  • databricks-claude-sonnet-4-5
  • databricks-claude-opus-4-1
  • databricks-claude-sonnet-4
Ниже приведены ограничения для моделей Claude в Databricks:
  • Избегайте использования Claude для задач, требующих идеальной точности или конфиденциального анализа без контроля человека.
  • Идентификация людей: не удается определить или назвать людей в изображениях.
  • Точность: может неправильно интерпретировать изображения с низким качеством, повернутые или очень маленькие (200 пикселей).
  • Пространственное мышление: испытывает трудности с точным расположением, такими как чтение аналоговых часов или положений шахматных фигур.
  • Подсчет: предоставляет приблизительные подсчеты, но может быть неточным для многих небольших объектов.
  • Созданные искусственным интеллектом изображения: не удается надежно обнаружить искусственные или поддельные изображения.
  • Недопустимое содержимое: блокирует явные или нарушающие политику изображения.
  • Здравоохранение: не подходит для сложных медицинских проверок (например, CTS и МРТ). Это не средство диагностики.

Дополнительные ресурсы