V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
caohuihe31
V2EX  ›  OpenAI

gpt-4o-mini vision gpt 图片识别时, openai 接口 不允许多轮会话,大家遇到过吗?

  •  
  •   caohuihe31 · 33 天前 · 952 次点击
    这是一个创建于 33 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如我要识别一个图片,我的消息体大概是这样: { "model": "gpt-4o-mini", "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}" } } ] }

    但是如果我获取请求结果后,发现不合适,我想要带着这次的请求结果重新提问,按照非 vision 的方式是,插入一个 assistant 角色的内容,但是 vision 是不支持的,请问大家遇到过吗? openai 好像接口不允许这么做。
    
    9 条回复    2024-08-26 09:45:29 +08:00
    zhhmax
        1
    zhhmax  
       33 天前
    先识别一次图,然后将得到的结果复制过去,形成一条 role=assistant 的 message ,请求结果如下:

    先识别一次图,然后将得到的结果复制过去,形成一条 role=assistant 的 message ,后面再跟一条 role=user 的 message ,请求结果如下:

    先识别一次图,然后将得到的结果复制过去,形成一条 role=assistant 的 message ,后面再跟一条 role=user 的 message ,message 强调重新识别,请求结果如下:

    这三个截图,不知道你说的是哪种情况。
    vacuitym
        2
    vacuitym  
       33 天前
    没有吧,我刚试了我的正常
    vacuitym
        3
    vacuitym  
       33 天前
    可以发下你第二次请求的整个数据结构看下
    caohuihe31
        4
    caohuihe31  
    OP
       33 天前
    我的
    @vacuitym 数据结构是这样的:{
    "messages": [
    {
    "role": "system",
    "content": ""
    },
    {
    "role": "user",
    "content": [
    {
    "text": "这是 什么",
    "type": "text"
    },
    {
    "image_url": {
    "url": "https://api.weixin.qq.com/cgi-bin/media/get?access_token=83_3Dw6qeFf4VCRenwRBujuT0Bv5Fx3eqzeaMtnd6I7xrM8rSYLUeURaqK5NfZo2iozpLKP48khO9W-52en-jWNIiM9X-70URX2LPIl6dDew5dBjDyOxdzV5JRAZLwCXLjAEAMHV&media_id=7x9khwKTGSQG2YH335nYudEAacGXal9X-riJcm0L9EcllALJyhYO5Dsa918ZySIX"
    },
    "type": "image_url",
    "detail": "low"
    }
    ]
    },
    {
    "role": "assistant",
    "content": "这是一个水族箱,里面有鱼和水草。水族箱整体摆放在一个黑色的架子上,旁边还有一些植物和工具。窗外可以看到一些城市的景色。"
    },
    {
    "role": "user",
    "content": "可以认出是什么鱼吗"
    }
    ],
    "model": "gpt-4o-mini"
    }

    接口的响应是这样的:


    {
    "error": {
    "message": "Invalid chat format. Unexpected keys in a message content image dict.",
    "type": "invalid_request_error",
    "param": null,
    "code": null
    }
    }

    @zhhmax
    yinmin
        5
    yinmin  
       33 天前 via Android
    image url 改变 base64
    vacuitym
        6
    vacuitym  
       33 天前
    @caohuihe31 你的 detail 写错地方了吧,应该在 image_url 里面
    yinmin
        7
    yinmin  
       33 天前 via Android
    image url 改成包含完整图片的 base64 格式
    caohuihe31
        8
    caohuihe31  
    OP
       33 天前
    @vacuitym 感谢解答,是的,是我搞错了
    caohuihe31
        9
    caohuihe31  
    OP
       33 天前
    @yinmin 感谢解答,是放错位置了 detail
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2368 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:26 · PVG 19:26 · LAX 04:26 · JFK 07:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.