视觉理解
向多模态大模型发送图片进行分析和理解,支持截图分析、文档 OCR、图表解读等场景。UloveGPT 兼容 OpenAI、Anthropic、Gemini 三大视觉接口。
支持的模型
| 模型 | 图片格式 | URL | 最大尺寸 |
|---|---|---|---|
gpt-5.4 | PNG, JPEG, GIF, WebP | ✅ | 20MB |
claude-sonnet-4.6 | PNG, JPEG, GIF, WebP | ❌ | Base64 编码 |
gemini-3.1-pro | PNG, JPEG, GIF, WebP, BMP | ✅ | 20MB |
OpenAI 视觉接口
OpenAI 协议使用 image_url 内容类型,支持 URL 和 base64 两种方式。
使用 URL
通过 URL 发送图片Python
from openai import OpenAI
client = OpenAI(
base_url="https://www.ulovegpt.com/v1",
api_key="<你的 API_KEY>"
)
response = client.chat.completions.create(
model="openai/gpt-5.4",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "这张图片里有什么?"},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg",
"detail": "high"
}
}
]
}
],
max_tokens=1024
)
print(response.choices[0].message.content)使用 Base64
通过 Base64 发送本地图片Python
import base64
from openai import OpenAI
client = OpenAI(
base_url="https://www.ulovegpt.com/v1",
api_key="<你的 API_KEY>"
)
# 将本地图片编码为 base64
def encode_image(image_path: str) -> str:
with open(image_path, "rb") as f:
return base64.b64encode(f.read()).decode("utf-8")
base64_image = encode_image("screenshot.png")
response = client.chat.completions.create(
model="openai/gpt-5.4",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "分析这张截图的界面布局"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/png;base64,{base64_image}"
}
}
]
}
]
)
print(response.choices[0].message.content)Claude 视觉接口
Claude 使用独立的 image content block,目前只支持 base64 编码。
Claude 视觉分析Python
import anthropic
client = anthropic.Anthropic(
base_url="https://www.ulovegpt.com/anthropic",
api_key="<你的 API_KEY>"
)
# Claude 使用 base64 发送图片
import base64
with open("diagram.png", "rb") as f:
image_data = base64.b64encode(f.read()).decode("utf-8")
message = client.messages.create(
model="anthropic/claude-sonnet-4.6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data
}
},
{
"type": "text",
"text": "请描述这个架构图的关键组件和它们之间的关系"
}
]
}
]
)
print(message.content[0].text)Gemini 视觉接口
Gemini 视觉分析Python
from google import genai
client = genai.Client(
http_options={"base_url": "www.ulovegpt.com"},
api_key="<你的 API_KEY>"
)
# Gemini 支持 inline_data 格式
import base64
with open("photo.jpg", "rb") as f:
image_bytes = f.read()
response = client.models.generate_content(
model="google/gemini-3.1-pro",
contents=[
"描述这张图片中的场景",
{
"mime_type": "image/jpeg",
"data": base64.b64encode(image_bytes).decode("utf-8")
}
]
)
print(response.text)图片精度参数
OpenAI 协议的 detail 参数控制图片处理精度:
| 值 | 说明 | Token 消耗 |
|---|---|---|
low | 低分辨率,图片缩放到 512x512 | 较少 |
high | 高分辨率,先缩到 2048 再裁切为 768 方块 | 较多 |
auto | 默认,根据图片大小自动选择 | 自动 |
最佳实践
- 压缩图片:发送前适当压缩,减少 base64 编码后的大小
- URL 优先:图片可公开访问时优先用 URL,节省 token
- 多图片:可以在一条消息中发送多张图片,模型会综合分析
- Prompt 清晰:明确告诉模型需要关注什么(如"识别文字"、"描述场景")