本文介绍如何为针对针对视觉任务优化的基础模型编写查询请求,并将其发送到模型服务终结点。
马赛克 AI 模型服务提供统一的 API,用于使用各种基础模型来理解和分析图像,从而解锁强大的多模式功能。 该功能可通过特定的 Databricks 托管模型获得,作为 基础模型 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 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)
支持的模型
有关支持的视觉模型,请参阅 基础模型类型 。
输入图像要求
本部分仅适用于基础模型 API。 有关外部模型,请参阅提供程序的文档。
每个请求存在多个映像
- 最多 20 张图像 用于 Claude.ai
- API 请求可最多处理 100 张图像
- 所有提供的图像都在请求中进行处理,这对于比较或对比它们很有用。
大小限制
- 大于 8000x8000 像素 的图像将被拒绝。
- 如果在一个 API 请求中提交超过 20 个图像, 则每个图像允许的最大大小 为 2000 x 2000 像素。
图像大小调整建议
- 为了获得最佳性能,在上传图像之前调整图像的大小(如果图像太大)。
- 如果图像的长边超过1568像素或其大小超过约1600个标记,图像将会自动缩小,同时保持纵横比。
- 非常小的图像 ( 任何边缘的 200 像素以下)可能会 降低性能。
- 为了降低延迟,请将图像保持在 1.15 万像素 以内,同时在两个维度中最多保留 1568 像素。
图像质量注意事项
- 支持的格式: JPEG、PNG、GIF、WebP。
- 清晰: 避免模糊或像素化图像。
-
图像中的文本:
- 确保文本 清晰明了 ,而且不太小。
- 避免裁剪关键视觉上下文,只是为了放大文本。
计算成本
本部分仅适用于基础模型 API。 有关外部模型,请参阅提供程序的文档。
系统会将对基础模型的请求中的每个映像添加到令牌使用情况。
令牌计数和估计值
如果不需要调整大小,请使用以下公式估算令牌:令牌 =(宽 px × 高 px)/750
不同映像大小的近似令牌计数:
图像大小 | 令牌 |
---|---|
200×200 像素 (0.04 MP) | ~54 |
1000×1000 像素 (1 MP) | ~1334 |
1092×1092 像素 (1.19 MP) | ~1590 |
图像理解的限制
本部分仅适用于基础模型 API。 有关外部模型,请参阅提供程序的文档。
对 Databricks 上的 Claude 模型的高级图像理解有一些限制:
- 人员标识:无法识别或命名图像中的人员。
- 准确性:可能误解了低质量、旋转或非常小的图像(<200 像素)。
- 空间推理:与精确布局作斗争,如读取模拟时钟或棋盘位置。
- 计数:提供近似计数,但对于许多小型对象来说可能不准确。
- AI 生成的图像:无法可靠地检测合成或假图像。
- 不适当的内容:阻止显式或违反策略的映像。
- 医疗保健:不适合复杂的医疗扫描(例如 CT 和 MRIs)。 这不是诊断工具。
仔细查看所有输出,尤其是对于高风险用例。 避免将 Claude 用于需要完美精度或敏感分析的任务,而无需人工监督。