Azure OpenAI GPT-4 API图片转文本报错问题咨询
Azure OpenAI GPT-4 图片转文本描述实现方案
可行性说明
可以实现图片转文本描述,但前提是你部署的是GPT-4 Turbo with Vision(即GPT-4V)模型,普通的GPT-4文本模型不具备视觉识别能力。
错误原因分析
你当前代码报错是因为使用了错误的请求格式:GPT-4V需要通过messages参数传递对话内容,而非旧版的prompt参数,且图片必须以结构化格式传入,直接在prompt里拼接URL会被识别为无效数据类型。
修正后的代码
import openai # 配置Azure OpenAI参数 openai.api_type = "azure" openai.api_version = "2024-02-15-preview" # 推荐使用较新的API版本 openai.api_base = 'https://xxxxxx.openai.azure.com/' openai.api_key = "xxxxxxxxxxxxx" image_url = "https://cdn.repliers.io/IMG-X5925532_9.jpg" def generate_image_description(image_url): response = openai.ChatCompletion.create( engine="GPT4v0314", # 确保该部署名称对应GPT-4V模型 messages=[ { "role": "user", "content": [ {"type": "text", "text": "What is in this image?"}, {"type": "image_url", "image_url": {"url": image_url}} ] } ], max_tokens=1024, temperature=0.0 ) description = response.choices[0].message.content.strip() return description # 调用函数测试 print(generate_image_description(image_url))
关键改动说明
- 替换
prompt参数为messages数组,符合Chat Completion标准交互格式 - 用户消息的
content改为数组结构,同时包含文本指令和图片URL的结构化对象 - 升级API版本至较新的
2024-02-15-preview,避免旧版本的兼容性问题 - 从
response.choices[0].message.content获取返回结果,而非旧版的text字段
内容的提问来源于stack exchange,提问作者Zohaib Ramzan
相关产品推荐
相关产品推荐

