铸云 AI

视觉理解

了解如何在 Mint Cloud AI 平台使用视觉理解功能,让模型能够分析和理解图像内容。

支持视觉的模型

以下模型支持图像输入功能:

gpt-4ogpt-4o-miniclaude-3-opusclaude-3-sonnetclaude-3.5-sonnetgemini-pro-visiongemini-1.5-progemini-1.5-flash

发送图片方式

你可以通过两种方式发送图片:

Base64 编码

将图片转换为 base64 字符串,适合小图片或临时生成的图像。

格式:data:image/jpeg;base64,/9j/4AAQ...

URL 地址

提供图片的公开 URL,模型将自动获取并分析图片内容。

格式:https://example.com/image.jpg

Message 格式

使用 content 数组发送包含文本和图片的消息:

消息格式
messages=[
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "描述这张图片"},
            {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}
        ]
    }
]

支持的图片格式

JPEGPNGGIFWebP

注意:不同模型可能对图片格式有特定限制,请参考各模型的官方文档。

示例代码

发送图片请求
import base64

# 读取图片并转换为 base64
with open("image.jpg", "rb") as f:
    image_data = base64.b64encode(f.read()).decode("utf-8")

messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "描述这张图片"},
            {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_data}"}}
        ]
    }
]

response = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=messages
)

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

多图片输入

你可以在一次请求中发送多张图片,模型会同时分析所有图片:

messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "比较这两张图片的异同"},
            {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,第一张图片..."}},
            {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,第二张图片..."}}
        ]
    }
]

最佳实践

图片大小限制

建议图片大小不超过 20MB。大型图片会增加请求延迟和成本。

压缩建议

  • 使用适当的分辨率,过高的分辨率不会提升识别效果
  • JPEG 格式通常足够满足大多数视觉识别任务
  • 避免使用过于模糊或低质量的图片

提示词技巧

在提示词中明确说明你希望模型关注的内容,例如"描述图片中的物体"、 "提取图片中的文字"等,可以获得更准确的回答。