功能介绍

视觉语言模型(Vision-Language Model, VLM)是一类同时支持图像与文本输入的多模态大模型,具备对图像内容的理解与跨模态信息处理能力。模型能够基于图片与文本的组合信息,输出高质量的响应内容,广泛应用于图像识别、内容理解、智能问答等场景。

典型应用场景

  • 图像内容识别与描述:自动识别图片中的物体、颜色、场景与空间关系,生成自然语言描述。
  • 图文综合理解:结合图像与文本输入,实现上下文相关的多轮对话与复杂任务响应。
  • 视觉辅助问答:可作为 OCR 工具补充,识别图像中嵌入的文本信息并完成问答。
  • 未来拓展应用:适用于智能视觉助手、机器人感知、增强现实等交互场景。

API 调用说明

调用视觉语言模型需通过 /chat/completions 接口,支持图文混合输入。

图片处理参数

通过 detail 字段设置图像处理精度,支持以下选项:

  • high:高分辨率,保留更多细节,适合精细化任务。
  • low:低分辨率,处理速度快,适合实时响应。
  • auto:系统自动选择合适模式。

消息格式示例

URL 图片形式

{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/image.png",
        "detail": "high"
      }
    },
    {
      "type": "text",
      "text": "请描述图片中的场景。"
    }
  ]
}

Base64 图片形式

{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "data:image/jpeg;base64,{base64_image}",
        "detail": "low"
      }
    },
    {
      "type": "text",
      "text": "图片中有哪些文字内容?"
    }
  ]
}

Base64 图像编码示例代码(Python)

import base64
from PIL import Image
import io

def image_to_base64(image_path):
    with Image.open(image_path) as img:
        buffered = io.BytesIO()
        img.save(buffered, format="JPEG")
        return base64.b64encode(buffered.getvalue()).decode('utf-8')

base64_image = image_to_base64("path/to/your/image.jpg")

多图模式

支持发送多张图片与文本共同作为输入,建议最多两张以获得更佳性能与理解效果。

{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/image1.png"
      }
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "data:image/jpeg;base64,{base64_image}"
      }
    },
    {
      "type": "text",
      "text": "比较这两张图片的共同特征。"
    }
  ]
}

支持模型

以下为当前平台支持的视觉语言模型(VLM):

  • qwen/qwen2.5-vl-72b-instruct

请在模型广场中查看完整模型列表与更新情况。

计费方式

视觉语言模型的图像输入将转换为 Tokens 与文本共同计算调用费用:

  • 每个模型的图像 Token 估算规则略有不同;
  • 详细的计费标准可在对应模型介绍页中查看。

API 调用示例代码

单图像描述

from openai import OpenAI

client = OpenAI(api_key="YOUR_KEY", base_url="https://api.ppinfra.com/v3/openai")

response = client.chat.completions.create(
    model="qwen/qwen2.5-vl-72b-instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image_url", "image_url": {"url": "https://example.com/cityscape.jpg"}},
                {"type": "text", "text": "描述图片中的主要建筑物。"}
            ]
        }
    ],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

多图像对比分析

response = client.chat.completions.create(
    model="qwen/qwen2.5-vl-72b-instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image_url", "image_url": {"url": "https://example.com/product1.jpg"}},
                {"type": "image_url", "image_url": {"url": "https://example.com/product2.jpg"}},
                {"type": "text", "text": "请对比一下这两个产品的主要区别。"}
            ]
        }
    ],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

常见问题与说明

  • 图像分辨率与清晰度会影响模型识别准确率,推荐使用清晰图源。
  • Base64 编码体积较大,建议图片不超过 1MB。
  • 如遇问题请参考平台开发者文档或提交工单获取支持。