跳到主要内容

图生文

我们部分模型拥有兼容OpenAI协议的图生文能力,能够对图像进行深度解析并生成详细的文本描述。

功能特点

  • 图像内容识别:能够识别图像中的物体、场景、人物等元素
  • 细节描述:提供图像中重要细节的详细描述
  • 多语言支持:支持中英文输出

使用示例

基础示例

import os
from openai import OpenAI
import base64

client = OpenAI(
base_url="https://api.infly.cn/v1",
api_key=os.getenv("INF_OPENAPI_API_KEY"),
)

# 读取图片文件并转换为base64
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')

# 准备图片
image_path = "path/to/your/image.jpg"
base64_image = encode_image(image_path)

# 调用模型
response = client.chat.completions.create(
model="inf-image-chat-v1",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "请详细描述这张图片中的内容"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
}
]
)

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

多轮对话示例

# 第一轮对话
response1 = client.chat.completions.create(
model="inf-image-chat-v1",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "这张图片里有什么?"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
}
]
)

# 第二轮对话
response2 = client.chat.completions.create(
model="inf-image-chat-v1",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "这张图片里有什么?"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
},
{
"role": "assistant",
"content": response1.choices[0].message.content
},
{
"role": "user",
"content": "能详细描述一下图片中的人物表情吗?"
}
]
)

注意事项

  1. 图片格式支持:

    • 支持的图片格式:JPEG、PNG、GIF
    • 建议图片大小不超过10MB
    • 建议图片分辨率在1024x1024以内
  2. 使用限制:

    • 图片内容需要符合相关法律法规
    • 建议在请求中包含具体的分析需求,以获得更精准的结果
  3. 最佳实践:

    • 提供清晰的图片,避免模糊或过度压缩
    • 在请求中明确说明需要关注的重点内容
    • 对于复杂场景,可以分步骤进行描述
    • 使用多轮对话来获取更详细的信息
    • 根据实际需求调整提示词,以获得更精准的结果