songquanpeng / one-api

OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用. OpenAI key management & redistribution system, using a single API for all LLMs, and features an English UI.
https://openai.justsong.cn/
MIT License
18.22k stars 4.12k forks source link

Gemini 报错 #1385

Open IAn2018cs opened 5 months ago

IAn2018cs commented 5 months ago

例行检查

问题描述 当请求带着 AI 的回答内容时,出现如下错误:

{
    "error": {
        "message":"Please use a valid role: user, model. (request id: 2024042802193772510846373438869)",
        "type":"",
        "param":"",
       "code":400
    }
}

发现流式请求返回中,没有带 role 字段

复现步骤 请求带着 AI 的回答内容

QAbot-zh commented 5 months ago

使用的oneapi版本和gemini模型是什么,我没有复现出来,提供一下你的请求内容看看 ?

image

IAn2018cs commented 5 months ago

使用的oneapi版本和gemini模型是什么,我没有复现出来,提供一下你的请求内容看看 ?

image

oneapi 用的 main 分支最新的代码:1c2654320e5b6268b13b6efca40ce37a523d032b gemini 用的 1.5 pro

请求是没问题,问题是流式响应里,第一条没有返回 role 信息,我 role 解析成 null 了, 然后再去添加到 messages 里,role 的值成 null,就报错了

QAbot-zh commented 5 months ago

嗯确实算一个bug gpt 能返回role参数 image gemini 不能返回role参数 image (话说为什么要根据响应的role来解析呢,理论上响应的内容不就肯定是assistant了吗哈哈)

IAn2018cs commented 5 months ago

嗯确实算一个bug gpt 能返回role参数 image gemini 不能返回role参数 image (话说为什么要根据响应的role来解析呢,理论上响应的内容不就肯定是assistant了吗哈哈)

因为这样就能直接根据响应结果,拼到 message 列表里😂,不过我在自己程序里已经兼容处理这种情况了