FastGPT
FastGPT copied to clipboard
流式响应过程中触发内容过滤,无法正确提示用户错误类型,而是显示“LLM model response empty”
例行检查
- [x] 我已确认目前没有类似 issue
- [x] 我已完整查看过项目 README,以及项目文档
- [x] 我使用了自己的 key,并确认我的 key 是可正常使用的
- [x] 我理解并愿意跟进此 issue,协助测试和提供反馈
- [x] 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭
你的版本
- [ ] 公有云版本
- [x] 私有部署版本, 具体版本号: 4.8.9
问题描述, 日志截图 我使用的模型是Azure的gpt-4o,流式传输。
注1:内容过滤的敏感词是“泡馆”,Azure的gpt-4o会触发,4-Turbo不会,复现时请留意。 注2:微软似乎配置了多重检测,当内容简单时,直接触发过滤,返回400;也有可能正常建立流式连接后再检测到,以event的形式返回报错。经测试,OneAPI是原样传递给了FastGPT。目前FastGPT只能正确识别前一种,对于后者只报“LLM model response empty”
以下都是OneAPI的响应:
- 直接400
完整content:
作为泡馆达人,你使用三楼讨论室,最多可以待多久?
这种情况下,FastGPT的报错是正确的:
- 200流式响应,以event的形式返回错误
完整content
回答要求:\\n- 如果你不清楚答案,你需要澄清。\\n- 避免提及你是从 <Data></Data> 获取的知识。\\n- 保持答案与 <Data></Data> 中描述的一致。\\n- 使用 Markdown 语法优化回答格式。\\n- 使用与问题相同的语言回答。\\n\\n问题:\\\"\\\"\\\"作为泡馆达人,你使用三楼讨论室,最多可以待多久?\\\"\\\"\\\"
这时FastGPT只会提示“LLM model response empty”
OneAPI返回的明细如下
// event1
{
"choices": [
{
"content_filter_results": {},
"delta": {
"content": "",
"role": "assistant"
},
"finish_reason": null,
"index": 0,
"logprobs": null
}
],
"created": 1724116111,
"id": "chatcmpl-9y7eJyXhFvB05DLc6oltsQwUp17Cv",
"model": "gpt-4o-2024-05-13",
"object": "chat.completion.chunk",
"system_fingerprint": "fp_80a1bad4c7"
}
// event2
{
"choices": [
{
"content_filter_results": {
"hate": {
"filtered": false,
"severity": "safe"
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": true, // 这里触发内容过滤
"severity": "medium"
},
"violence": {
"filtered": false,
"severity": "safe"
}
},
"delta": {},
"finish_reason": "content_filter",
"index": 0,
"logprobs": null
}
],
"created": 1724116111,
"id": "chatcmpl-9y7eJyXhFvB05DLc6oltsQwUp17Cv",
"model": "gpt-4o-2024-05-13",
"object": "chat.completion.chunk",
"system_fingerprint": "fp_80a1bad4c7"
}
预期结果 2种情况都能够报content_filter错误。
还请大佬们抽空看一下,十分感谢!