Vision API (图像理解) 开发教程

现在的顶尖大模型(如 GPT-4o, Claude 3.5 Sonnet, Gemini 1.5 Pro)基本都是多模态模型,它们不仅能读文字,还能“看”图片。通过 Vision API,你可以实现图像识别、OCR、看图写代码等功能。

5分钟
2025-12-26
AI教程Vision

Vision API (图像理解) 开发教程

现在的顶尖大模型(如 GPT-4o, Claude 3.5 Sonnet, Gemini 1.5 Pro)基本都是多模态模型,它们不仅能读文字,还能“看”图片。通过 Vision API,你可以实现图像识别、OCR、看图写代码等功能。

1. 核心能力

  • 视觉问答 (VQA):上传一张冰箱的照片,问 AI "里面有什么食材可以做菜?"
  • OCR (文字提取):精准提取图片中的手写体、表格、文档。
  • 看图写代码:上传一张网页的设计图,让 AI 直接生成 HTML/CSS 代码。

2. 如何调用 (OpenAI 示例)

调用 Vision API 非常简单,你只需要在 messages 中把 content 改成一个列表,包含 text 和 image_url 即可。

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "这张图里有什么?请详细描述。"},
                {
                    "type": "image_url",
                    "image_url": {
                        "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",
                        "detail": "high" # high: 高清模式,消耗更多Token但细节更好
                    },
                },
            ],
        }
    ],
    max_tokens=300,
)

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

3. 本地图片上传 (Base64)

如果图片在本地,需要先转成 Base64 格式。

import base64

def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

base64_image = encode_image("test.jpg")

# 在 image_url 中使用 data uri
# "url": f"data:image/jpeg;base64,{base64_image}"

4. 成本与限制

  • 计费:Vision API 通常是按图片的分辨率计费的。图片越大,消耗的 Token 越多(例如 GPT-4o 处理一张 1080p 图片可能消耗 1000+ Tokens)。
  • 细节控制detail: low 模式更便宜,但 AI 会把图片压缩得很小,适合只看大概构图;detail: high 适合看文字细节。

Vision API 让 AI 拥有了眼睛,开启了从“文本交互”到“多模态交互”的新时代。

AI导航助手

Powered by DeepSeek

你好!我是AI导航助手,由DeepSeek驱动。

我可以帮你: • 推荐适合你的AI模型 • 解答AI相关问题 • 直接带你跳转到相关页面

试试点击下方问题,或直接输入你的问题!

快捷提问:

哪个AI模型最好?有免费的AI吗?写代码用哪个?API怎么接入?

点击按钮可直接跳转到相关页面