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

В этой статье вы узнаете, как писать запросы к моделям фундамента, оптимизированных для задач визуализации и обслуживаемых 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 и модельных сервисах. Если вы используете конечные точки обслуживания моделей вместо служб моделей, замените имя службы модели именем конечной точки. См. подробный список моделей, поддерживаемых API Databricks 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-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 пикселей в обоих измерениях.
  • Ясность. Избегайте размытости или пиксельных изображений.
  • Текст в изображениях:
    • Убедитесь, что текст разборчив и не слишком маленьким.
    • Избегайте обрезки ключевого визуального контекста для того, чтобы увеличить текст.
databricks-deepseek-v4-1-flash
  • JPEG
  • PNG
  • WebP
  • GIF (только первый кадр)
До 30 изображений на один запрос API До 67 108 864 пикселей на изображение (ширина × высота). Запросы также подчиняются ограничению полезной нагрузки запроса. Изменяйте размер изображений, превышающих лимит пикселей, перед отправкой запроса. N/A

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

Этот раздел применяется только к 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 и МРТ). Это не средство диагностики.

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