AIStudio SSH 公钥管理,一处配置,处处可用AIStudio SSH 公钥管理,一处配置,处处可用 ,只为更佳开发体验如何配置
Skip to content

图像识别与视觉模型

学习如何使用 VL 模型理解图像。

概述

GenStudio 的 API 提供了 VL 模型,支持多种图像相关的功能,例如图像生成、图像分析和多模态交互。本指南将帮助你了解如何通过聊天模式(Chat)使用这些功能。

支持的模型

以下模型支持将图像作为输入。可以通过 API 上传图像,并结合文本提示让模型生成描述、分类或分析结果。

  • qwen2.5-vl-7b-instruct
  • qwen2.5-vl-72b-instruct

查看全部视觉模型,请前往 GenStudio 模型广场进行筛选。

初始化客户端

GenStudio API 服务提供一个实现 OpenAI 的 /v1/chat/completions 的 API 接口。可使用 OpenAI Python 客户端接入。

  • GENSTUDIO_API_KEY :GenStudio API Key。
  • DEFAULT_BASE_URL:使用默认接口时,为 https://cloud.infini-ai.com/maas/v1
python
import os
from openai import OpenAI

API_KEY = os.getenv("GENSTUDIO_API_KEY")
BASE_URL = os.getenv("DEFAULT_BASE_URL")  

client = OpenAI(api_key=API_KEY, base_url=BASE_URL)

model_name = "qwen2.5-vl-7b-instruct"

处理图片和视频输入

图像输入支持为 Base64 编码格式,或图像的 URL。图像输入最多 10 个。

支持类似 OpenAI 的视频输入,入参为 video_url。视频输入最多 10 个。

暂不支持通过 detail 参数控制图像识别质量。

BASE64

python
import base64
from openai import OpenAI

client = OpenAI(api_key=API_KEY, base_url=BASE_URL)

# Function to encode the image
def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode("utf-8")


# Path to your image
image_path = "path_to_your_image.jpg"

# Getting the Base64 string
base64_image = encode_image(image_path)

completion = client.chat.completions.create(
    model=model_name,
    messages=[
        {
            "role": "user",
            "content": [
                { "type": "text", "text": "what's in this image?" },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/jpeg;base64,{base64_image}",
                    },
                },
            ],
        }
    ],
)

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

URL

使用 URL 方式发送图片/视频时,仅支持来自阿里云 OSS / AWS S3 的 URL。

python
def get_messages():
    return [
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://imagesforgeneation.oss-cn-beijing.aliyuncs.com/TOJ00551.jpg"
                    }
                },
                {
                    "type": "text",
                    "text": "请简要描述图片是什么内容?"  
                }
            ]
        }
    ]

# Get the messages
messages = get_messages()

获取响应

python
# Non-streaming mode test
response_non_stream = client.chat.completions.create(
    model="qwen2.5-vl-7b-instruct",  # Model specified in the curl request
    messages=messages,
    temperature=0.7,                  # Matches the curl request
    stream=False,                    # Non-streaming, as in the curl request
)

# Print the response
print("Non-stream response:")
print(response_non_stream)

# Print specific parts of the response (adjust based on actual response structure)
print("==== content ====")
print(response_non_stream.choices[0].message.content)

多模态应用

通过结合图像输入和文本输出,您可以实现丰富的多模态应用,例如:

  • 图像描述:上传图片,让模型生成详细的文字描述。例如「请识别以下图片中的文本内容,表格部分以markdown的格式呈现」
  • 图像问答:上传图片并提问,例如“这张图片里有什么动物?”。
  • 图像分析:让模型识别图片中的情绪、物体或场景。例如「在图像中检测出所有汽车,并以坐标的形式返回他们的位置」

限制

  • mage_url / video_url 单文件大小限制 5 MB。
  • 由于 GenStudio 安全策略,不接受任意 URL。暂仅以下服务商的 URL:
    • 阿里云 OSS
    • AWS S3
  • 单图/单视频最多读取 16384 个 Token。

常见问题

为什么我无法生成图像?

视觉模型 API 专注于文本交互。如果需要生成图像,请使用图像生成模型,例如 GenStudio ComfyUI 托管服务。。

哪些模型支持图像输入?

GenStudio 支持 Qwen2.5 VL 系列模型,可以图像作为输入。

  • qwen2.5-vl-7b-instruct
  • qwen2.5-vl-72b-instruct

查看全部视觉模型,请前往 GenStudio 模型广场进行筛选。

如何处理大文件图像?

建议将图像压缩到合理大小(例如 <4MB),或使用 URL 而非 Base64 编码。