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
17.51k stars 3.99k forks source link

使用claude3的三个模型时会报错 #1187

Open Payne-Wang opened 5 months ago

Payne-Wang commented 5 months ago

例行检查

问题描述 使用claude3时,如果切换成其他模型,产生回答,然后再切换回来,会报错:

{ "error": { "message": "messages: roles must alternate between \"user\" and \"assistant\", but found multiple \"assistant\" roles in a row (request id: 2024031723534437452008774496313)", "type": "invalid_request_error", "param": "", "code": null }, "endpoint": "https://newapi.op****20.top/v1", "provider": "openai" }

复现步骤

预期结果

相关截图 如果没有的话,请删除此节。

QAbot-zh commented 5 months ago

这是 api 调用的问题,claude对上下文的role很严格,system只能出现在第一条且最多出现一次,user和assistant必须交替出现,别的模型就没那么严格。所以一些 ui 的上下文消息管理逻辑写的不严格的话,就会出现不满足的情况,你可以 F12 抓一下看看。