图生文
我们部分模型拥有兼容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": "能详细描述一下图片中的人物表情吗?"
}
]
)
注意事项
-
图片格式支持:
- 支持的图片格式:JPEG、PNG、GIF
- 建议图片大小不超过10MB
- 建议图片分辨率在1024x1024以内
-
使用 限制:
- 图片内容需要符合相关法律法规
- 建议在请求中包含具体的分析需求,以获得更精准的结果
-
最佳实践:
- 提供清晰的图片,避免模糊或过度压缩
- 在请求中明确说明需要关注的重点内容
- 对于复杂场景,可以分步骤进行描述
- 使用多轮对话来获取更详细的信息
- 根据实际需求调整提示词,以获得更精准的结果