查询视觉模型

本文介绍如何为针对针对视觉任务优化的基础模型编写查询请求,并将其发送到模型服务终结点。

马赛克 AI 模型服务提供统一的 API,用于使用各种基础模型来理解和分析图像,从而解锁强大的多模式功能。 该功能可通过特定的 Databricks 托管模型获得,作为 基础模型 API 的一部分,并通过终结点为 外部模型 提供服务。

要求

查询示例

OpenAI 客户端

要使用 OpenAI 客户端,需将模型服务终结点名称指定为 model 输入。


from openai import OpenAI
import base64
import httpx

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

# encode image
image_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image_data = base64.standard_b64encode(httpx.get(image_url).content).decode("utf-8")

# OpenAI request
completion = client.chat.completions.create(
    model="databricks-claude-3-7-sonnet",
    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 httpx

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

# 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"
image1_data = base64.standard_b64encode(httpx.get(image1_url).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"
image2_data = base64.standard_b64encode(httpx.get(image1_url).content).decode("utf-8")

# OpenAI request

completion = client.chat.completions.create(
    model="databricks-claude-3-7-sonnet",
    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。 此函数为 公共预览版 ,定义可能会更改。

以下查询 Databricks Foundation 模型 API 支持的基础模型,以使用 AI 函数 ai_query()进行多模式输入。


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

支持的模型

有关支持的视觉模型,请参阅 基础模型类型

输入图像要求

型号(单个/多个) 支持的格式 每个请求存在多个映像 图像大小限制 图像大小调整建议 图像质量注意事项
databricks-gpt-5
  • JPEG
  • PNG
  • WebP
  • GIF (非动画 GIF
每个请求最多可包含 500 个独立图像输入 文件大小限制:每个请求最多 10 MB 的总有效负载大小 N/A
  • 无水印或徽标
  • 足够清晰,使人能够理解
databricks-gpt-5-mini
  • JPEG
  • PNG
  • WebP
  • GIF (非动画 GIF
每个请求最多可包含 500 个独立图像输入 文件大小限制:每个请求最多 10 MB 的总有效负载大小 N/A
  • 无水印或徽标
  • 足够清晰,使人能够理解
databricks-gpt-5-nano
  • JPEG
  • PNG
  • WebP
  • GIF (非动画 GIF
每个请求最多可包含 500 个独立图像输入 文件大小限制:每个请求最多 10 MB 的总有效负载大小 N/A
  • 无水印或徽标
  • 足够清晰,使人能够理解
databricks-gemma-3-12b
  • JPEG
  • PNG
  • WebP
  • GIF
API 请求最多 5 幅图像
  • 所有提供的图像都在请求中处理。
文件大小限制:每个 API 请求的所有映像总数为 10 MB N/A N/A
databricks-llama-4-maverick
  • JPEG
  • PNG
  • WebP
  • GIF
API 请求最多 5 幅图像
  • 所有提供的图像都在请求中处理。
文件大小限制:每个 API 请求的所有映像总数为 10 MB N/A N/A
  • databricks-claude-sonnet-4-5
  • databricks-claude-opus-4-1
  • databricks-claude-sonnet-4
  • databricks-claude-3-7-sonnet
  • JPEG
  • PNG
  • GIF
  • WebP
  • 最多 20 张图像 用于 Claude.ai
  • API 请求可最多处理 100 张图像
  • 所有提供的图像都在请求中进行处理,这对于比较或对比它们很有用。
  • 大于 8000x8000 像素 的图像被拒绝。
  • 如果在一个 API 请求中提交超过 20 个图像, 则每个图像允许的最大大小2000 x 2000 像素
为了获得最佳性能,在上传图像之前调整图像的大小(如果图像太大)。
  • 如果图像的 长边缘超过 1568 像素 ,或者其 大小超过约 1,600 个标记,则会在保留纵横比的同时 自动缩减
  • 非常小的图像任何边缘的 200 像素以下)可能会 降低性能
  • 为了降低延迟,请将图像保持在 1.15 万像素 以内,同时在两个维度中最多保留 1568 像素。
  • 清晰度:避免模糊或像素化图像。
  • 图像中的文本:
    • 确保文本 清晰可读 ,不会过小。
    • 避免裁剪关键视觉上下文,只是为了放大文本。

将图像转换为令牌

本部分仅适用于基础模型 API。 有关外部模型,请参阅提供程序的文档。

对基础模型的请求中的每个图像都会添加到令牌使用情况。 请参阅 定价计算器 ,根据所使用的令牌使用情况和模型估算映像定价。

图像理解的限制

本部分仅适用于基础模型 API。 有关外部模型,请参阅提供程序的文档。

以下是受支持 Databricks 托管的基础模型的映像理解限制:

型号 局限性
支持以下 Claude 模型:
  • databricks-claude-sonnet-4-5
  • databricks-claude-opus-4-1
  • databricks-claude-sonnet-4
  • databricks-claude-3-7-sonnet
以下是 Databricks 上的 Claude 模型的限制:
  • 避免将 Claude 用于需要完美精度或敏感分析的任务,而无需人工监督。
  • 人员标识:无法识别或命名图像中的人员。
  • 准确性:可能误解了低质量、旋转或非常小的图像(200 像素)。
  • 空间推理:在处理精确布局时遇到困难,例如读懂模拟时钟或国际象棋的位置。
  • 计数:提供近似计数,但对于许多小型对象来说可能不准确。
  • AI 生成的图像:无法可靠地检测合成或假图像。
  • 不适当的内容:阻止裸露或违反策略的图像。
  • 医疗保健:不适合复杂的医疗扫描(例如 CT 和 MRIs)。 这不是诊断工具。

其他资源