Closed maquannene closed 7 months ago
看看模型报错日志?没法复现。
看看模型报错日志?没法复现。
我是使用的 one-api 的 docker 部署,one-api 里面的日志都是正常的:
使用 fast-gpt v4.7-alpha3 版本源码启动,发现了一个重现规律,创建应用的时候,如果选择的是简易模板,保存并预览,然后调试预览中提问,会报这个错误:
但是如果选择 知识库+对话引导,保存并预览,然后调试预览中提问,就是正常的:
看看模型报错日志?没法复现。
我是使用的 one-api 的 docker 部署,one-api 里面的日志都是正常的:
使用 fast-gpt v4.7-alpha3 版本源码启动,发现了一个重现规律,创建应用的时候,如果选择的是简易模板,保存并预览,然后调试预览中提问,会报这个错误:
但是如果选择 知识库+对话引导,保存并预览,然后调试预览中提问,就是正常的:
用 gpt moonshot 星火 glm 都没发现问题。检查下模型?
可以尝试一下 qwen-turbo,其他的模型我也再试试。
试了试,也没问题。配置如下:
{
"model": "qwen-turbo",
"name": "qwen-turbo",
"avatar": "/imgs/model/openai.svg",
"maxContext": 16000,
"maxResponse": 4000,
"quoteMaxToken": 13000,
"maxTemperature": 1.2,
"charsPointsPrice": 1,
"censor": true,
"vision": false,
"datasetProcess": true,
"usedInClassify": true,
"usedInExtractFields": true,
"usedInToolCall": true,
"usedInQueryExtension": true,
"toolChoice": true,
"functionCall": false,
"customCQPrompt": "",
"customExtractPrompt": "",
"defaultSystemChatPrompt": ""
}
ok。那问题先关了吧,后面我再 debug 试试。 感谢。
您好,请问您解决了吗,我也遇到了和你一模一样的情况,也是简易模板不行,但是知识库的可以(qwen-turbo)
您好,请问您解决了吗,我也遇到了和你一模一样的情况,也是简易模板不行,但是知识库的可以(qwen-turbo)
我还没解决。。
我的72b和14b都能正常对话,但是到了fastgpt里面,72b的可以正常对话,14b和7b的都报你一样的错误,并且简易版和知识库都不行。版本是4.7
同样的报错!为啥issue没人解决?
同样的报错!为啥issue没人解决?
因为没遇到
同样的报错!为啥issue没人解决?
因为没遇到
我的情况是:本地服务器部署的Qwen1.5-7B-Chat,通过FastChat的vllm_worker构建的API,接入one-api,然后在最新拉取的FastGPT中使用。FastGPT中利用简易模板创建了极简的应用。
这起码说明,文档FAQ中提到的几个关键点中:
同样的报错!为啥issue没人解决?
因为没遇到
我的情况是:本地服务器部署的Qwen1.5-7B-Chat,通过FastChat的vllm_worker构建的API,接入one-api,然后在最新拉取的FastGPT中使用。FastGPT中利用简易模板创建了极简的应用。
- 当设置了提示词的情况下,在新对话中问“你好”或者“你是谁”等比较短的问题的时候,回复都是报错!当先用比较长的问题,比如“介绍一下清华大学”,能够正常获取响应。然后再接着问“你好”或者“你是谁”等比较短的问题的时候都能正常回答。
- 同样的应用,如果把提示词去掉,即使新对话中第一个问题是“你好”或者“你是谁”等比较短的问题的时候,回答也都是正常的。
这起码说明,文档FAQ中提到的几个关键点中:
- Key是没问题的;
- 参数应该也是没问题的;
- 问”或者“你是谁”这种问题,不至于触发风控。
你自己都说了应该,为啥不会打印下参数,然后用这些参数curl下呢?
同样的报错!为啥issue没人解决?
因为没遇到
我的情况是:本地服务器部署的Qwen1.5-7B-Chat,通过FastChat的vllm_worker构建的API,接入one-api,然后在最新拉取的FastGPT中使用。FastGPT中利用简易模板创建了极简的应用。
- 当设置了提示词的情况下,在新对话中问“你好”或者“你是谁”等比较短的问题的时候,回复都是报错!当先用比较长的问题,比如“介绍一下清华大学”,能够正常获取响应。然后再接着问“你好”或者“你是谁”等比较短的问题的时候都能正常回答。
- 同样的应用,如果把提示词去掉,即使新对话中第一个问题是“你好”或者“你是谁”等比较短的问题的时候,回答也都是正常的。
这起码说明,文档FAQ中提到的几个关键点中:
- Key是没问题的;
- 参数应该也是没问题的;
- 问”或者“你是谁”这种问题,不至于触发风控。
同样的报错!为啥issue没人解决?
因为没遇到
我的情况是:本地服务器部署的Qwen1.5-7B-Chat,通过FastChat的vllm_worker构建的API,接入one-api,然后在最新拉取的FastGPT中使用。FastGPT中利用简易模板创建了极简的应用。
- 当设置了提示词的情况下,在新对话中问“你好”或者“你是谁”等比较短的问题的时候,回复都是报错!当先用比较长的问题,比如“介绍一下清华大学”,能够正常获取响应。然后再接着问“你好”或者“你是谁”等比较短的问题的时候都能正常回答。
- 同样的应用,如果把提示词去掉,即使新对话中第一个问题是“你好”或者“你是谁”等比较短的问题的时候,回答也都是正常的。
这起码说明,文档FAQ中提到的几个关键点中:
- Key是没问题的;
- 参数应该也是没问题的;
- 问”或者“你是谁”这种问题,不至于触发风控。
你自己都说了应该,为啥不会打印下参数,然后用这些参数curl下呢?
这个毫无疑问,肯定是做过了,确定参数没问题
同样的报错!为啥issue没人解决?
因为没遇到
我的情况是:本地服务器部署的Qwen1.5-7B-Chat,通过FastChat的vllm_worker构建的API,接入one-api,然后在最新拉取的FastGPT中使用。FastGPT中利用简易模板创建了极简的应用。
- 当设置了提示词的情况下,在新对话中问“你好”或者“你是谁”等比较短的问题的时候,回复都是报错!当先用比较长的问题,比如“介绍一下清华大学”,能够正常获取响应。然后再接着问“你好”或者“你是谁”等比较短的问题的时候都能正常回答。
- 同样的应用,如果把提示词去掉,即使新对话中第一个问题是“你好”或者“你是谁”等比较短的问题的时候,回答也都是正常的。
这起码说明,文档FAQ中提到的几个关键点中:
- Key是没问题的;
- 参数应该也是没问题的;
- 问”或者“你是谁”这种问题,不至于触发风控。
你自己都说了应该,为啥不会打印下参数,然后用这些参数curl下呢?
这个毫无疑问,肯定是做过了,确定参数没问题
测试记录呢?
同样的报错!为啥issue没人解决?
因为没遇到
我的情况是:本地服务器部署的Qwen1.5-7B-Chat,通过FastChat的vllm_worker构建的API,接入one-api,然后在最新拉取的FastGPT中使用。FastGPT中利用简易模板创建了极简的应用。
- 当设置了提示词的情况下,在新对话中问“你好”或者“你是谁”等比较短的问题的时候,回复都是报错!当先用比较长的问题,比如“介绍一下清华大学”,能够正常获取响应。然后再接着问“你好”或者“你是谁”等比较短的问题的时候都能正常回答。
- 同样的应用,如果把提示词去掉,即使新对话中第一个问题是“你好”或者“你是谁”等比较短的问题的时候,回答也都是正常的。
这起码说明,文档FAQ中提到的几个关键点中:
- Key是没问题的;
- 参数应该也是没问题的;
- 问”或者“你是谁”这种问题,不至于触发风控。
你自己都说了应该,为啥不会打印下参数,然后用这些参数curl下呢?
这个毫无疑问,肯定是做过了,确定参数没问题
测试记录呢?
FastGPT中问“你好”的后台API中日志打印:
curl测试: curl --location --request POST 'http://192.168.XX.XX:XXX/v1/chat/completions' \ --header 'Authorization: Bearer None' \ --header 'Content-Type: application/json' \ -d '{ "model": "iChosenGPT-t-s08-v0", "stream": true, "n": 1, "best_of": 1, "presence_penalty": 0.0, "frequency_penalty": 0.0, "repetition_penalty": 1.0, "temperature": 0.01, "top_p": 1.0, "top_k": -1, "min_p": 0.0, "use_beam_search": false, "length_penalty": 1.0, "early_stopping": false, "include_stop_str_in_output": false, "ignore_eos": false, "max_tokens": 8000, "min_tokens": 0, "skip_special_tokens": true, "spaces_between_special_tokens": true, "messages": [{"role": "user", "content": "你好"}] }' 执行结果:
同样的报错!为啥issue没人解决?
因为没遇到
我的情况是:本地服务器部署的Qwen1.5-7B-Chat,通过FastChat的vllm_worker构建的API,接入one-api,然后在最新拉取的FastGPT中使用。FastGPT中利用简易模板创建了极简的应用。
- 当设置了提示词的情况下,在新对话中问“你好”或者“你是谁”等比较短的问题的时候,回复都是报错!当先用比较长的问题,比如“介绍一下清华大学”,能够正常获取响应。然后再接着问“你好”或者“你是谁”等比较短的问题的时候都能正常回答。
- 同样的应用,如果把提示词去掉,即使新对话中第一个问题是“你好”或者“你是谁”等比较短的问题的时候,回答也都是正常的。
这起码说明,文档FAQ中提到的几个关键点中:
- Key是没问题的;
- 参数应该也是没问题的;
- 问”或者“你是谁”这种问题,不至于触发风控。
你自己都说了应该,为啥不会打印下参数,然后用这些参数curl下呢?
这个毫无疑问,肯定是做过了,确定参数没问题
测试记录呢?
- FastGPT中问“你好”的后台API中日志打印:
- curl测试: curl --location --request POST 'http://192.168.XX.XX:XXX/v1/chat/completions' --header 'Authorization: Bearer None' --header 'Content-Type: application/json' -d '{ "model": "iChosenGPT-t-s08-v0", "stream": true, "n": 1, "best_of": 1, "presence_penalty": 0.0, "frequency_penalty": 0.0, "repetition_penalty": 1.0, "temperature": 0.01, "top_p": 1.0, "top_k": -1, "min_p": 0.0, "use_beam_search": false, "length_penalty": 1.0, "early_stopping": false, "include_stop_str_in_output": false, "ignore_eos": false, "max_tokens": 8000, "min_tokens": 0, "skip_special_tokens": true, "spaces_between_special_tokens": true, "messages": [{"role": "user", "content": "你好"}] }' 执行结果:
提示词没加?curl后再看参数,是否一致。
问题+1. gpt4all enable REST API,使用llama3-8b,端口:4891。使用如下python进行测试。
import openai
openai.api_base = "http://localhost:4891/v1"
#openai.api_base = "https://api.openai.com/v1"
openai.api_key = "not needed for a local LLM"
# Set up the prompt and other parameters for the API request
prompt = "Who is Michael Jordan?"
# model = "gpt-3.5-turbo"
#model = "mpt-7b-chat"
model = "mistral-7b-openorca.Q4_0.gguf"
# Make the API request
response = openai.Completion.create(
model=model,
prompt=prompt,
max_tokens=50,
temperature=0.28,
top_p=0.95,
n=1,
echo=True,
stream=False
)
# Print the generated completion
print(response)
证明oneapi暴露了兼容openAI的接口。
使用config.json配置如下:
{
"model": "llama3-8b-8192",
"name": "meta-llama3-8b",
"maxContext": 16000,
"avatar": "/imgs/model/openai.svg",
"maxResponse": 4000,
"quoteMaxToken": 13000,
"maxTemperature": 1.2,
"charsPointsPrice": 0,
"censor": false,
"vision": false,
"datasetProcess": true,
"usedInClassify": true,
"usedInExtractFields": true,
"usedInToolCall": true,
"usedInQueryExtension": true,
"toolChoice": true,
"functionCall": true,
"customCQPrompt": "",
"customExtractPrompt": "",
"defaultSystemChatPrompt": "",
"defaultConfig": {}
}
一样报上面的错误。
问题+1. gpt4all enable REST API,使用llama3-8b,端口:4891。使用如下python进行测试。
import openai openai.api_base = "http://localhost:4891/v1" #openai.api_base = "https://api.openai.com/v1" openai.api_key = "not needed for a local LLM" # Set up the prompt and other parameters for the API request prompt = "Who is Michael Jordan?" # model = "gpt-3.5-turbo" #model = "mpt-7b-chat" model = "mistral-7b-openorca.Q4_0.gguf" # Make the API request response = openai.Completion.create( model=model, prompt=prompt, max_tokens=50, temperature=0.28, top_p=0.95, n=1, echo=True, stream=False ) # Print the generated completion print(response)
证明oneapi暴露了兼容openAI的接口。
使用config.json配置如下:
{ "model": "llama3-8b-8192", "name": "meta-llama3-8b", "maxContext": 16000, "avatar": "/imgs/model/openai.svg", "maxResponse": 4000, "quoteMaxToken": 13000, "maxTemperature": 1.2, "charsPointsPrice": 0, "censor": false, "vision": false, "datasetProcess": true, "usedInClassify": true, "usedInExtractFields": true, "usedInToolCall": true, "usedInQueryExtension": true, "toolChoice": true, "functionCall": true, "customCQPrompt": "", "customExtractPrompt": "", "defaultSystemChatPrompt": "", "defaultConfig": {} }
一样报上面的错误。
oneapi的console有如下内容:
[ERR] 2024/04/25 - 13:33:30 | 202404251333086857455403765941 | relay error happen, status code is 200, won't retry in this case [ERR] 2024/04/25 - 13:33:30 | 202404251333086857455403765941 | relay error (channel #5): bad response status code 200 [GIN] 2024/04/25 - 13:33:30 | 202404251333086857455403765941 | 200 | 22.033721843s | 172.22.0.6 | POST /v1/chat/completions
问题+1. gpt4all enable REST API,使用llama3-8b,端口:4891。使用如下python进行测试。
import openai openai.api_base = "http://localhost:4891/v1" #openai.api_base = "https://api.openai.com/v1" openai.api_key = "not needed for a local LLM" # Set up the prompt and other parameters for the API request prompt = "Who is Michael Jordan?" # model = "gpt-3.5-turbo" #model = "mpt-7b-chat" model = "mistral-7b-openorca.Q4_0.gguf" # Make the API request response = openai.Completion.create( model=model, prompt=prompt, max_tokens=50, temperature=0.28, top_p=0.95, n=1, echo=True, stream=False ) # Print the generated completion print(response)
证明oneapi暴露了兼容openAI的接口。
使用config.json配置如下:
{ "model": "llama3-8b-8192", "name": "meta-llama3-8b", "maxContext": 16000, "avatar": "/imgs/model/openai.svg", "maxResponse": 4000, "quoteMaxToken": 13000, "maxTemperature": 1.2, "charsPointsPrice": 0, "censor": false, "vision": false, "datasetProcess": true, "usedInClassify": true, "usedInExtractFields": true, "usedInToolCall": true, "usedInQueryExtension": true, "toolChoice": true, "functionCall": true, "customCQPrompt": "", "customExtractPrompt": "", "defaultSystemChatPrompt": "", "defaultConfig": {} }
一样报上面的错误。
文档说了,要测试stream模式,并且通过外部curl测试。
问题+1. gpt4all enable REST API,使用llama3-8b,端口:4891。使用如下python进行测试。
import openai openai.api_base = "http://localhost:4891/v1" #openai.api_base = "https://api.openai.com/v1" openai.api_key = "not needed for a local LLM" # Set up the prompt and other parameters for the API request prompt = "Who is Michael Jordan?" # model = "gpt-3.5-turbo" #model = "mpt-7b-chat" model = "mistral-7b-openorca.Q4_0.gguf" # Make the API request response = openai.Completion.create( model=model, prompt=prompt, max_tokens=50, temperature=0.28, top_p=0.95, n=1, echo=True, stream=False ) # Print the generated completion print(response)
证明oneapi暴露了兼容openAI的接口。 使用config.json配置如下:
{ "model": "llama3-8b-8192", "name": "meta-llama3-8b", "maxContext": 16000, "avatar": "/imgs/model/openai.svg", "maxResponse": 4000, "quoteMaxToken": 13000, "maxTemperature": 1.2, "charsPointsPrice": 0, "censor": false, "vision": false, "datasetProcess": true, "usedInClassify": true, "usedInExtractFields": true, "usedInToolCall": true, "usedInQueryExtension": true, "toolChoice": true, "functionCall": true, "customCQPrompt": "", "customExtractPrompt": "", "defaultSystemChatPrompt": "", "defaultConfig": {} }
一样报上面的错误。
文档说了,要测试stream模式,并且通过外部curl测试。
哦,就我的问题(不知道是不是和楼上一样),我是通过gpt4all提供其claim的openai兼容的接口,然后注册在oneapi上,看起来不是很ok。gpt4all不支持stream,也请其他同学注意。
https://github.com/nomic-ai/gpt4all/issues/1513
感谢你的提醒。@c121914yu
最后再提醒一次。 出现这个问题都是因为接口未直接通过 status 报错,而是正常结束请求,但未返回任何内容导致。FastGPT中接口中,如果对话接口为返回任何内容,则会提示该错误。
出现该错误情况比较复杂,但是都可以通过 curl 测试来测出来,可以从几个方面进行排查:
最后再提醒一次。 出现这个问题都是因为接口未直接通过 status 报错,而是正常结束请求,但未返回任何内容导致。FastGPT中接口中,如果对话接口为返回任何内容,则会提示该错误。
出现该错误情况比较复杂,但是都可以通过 curl 测试来测出来,可以从几个方面进行排查:
- 检查接口是否支持 stream 模式。
- 检查网关是否支持 stream 模式(如果有网关)。
- 国内模型可能命中风控(讯飞这种风控,oneapi就没有捕获,而是直接结束请求)。
- 模型参数特殊。例如 GLM4 中 topk 不能等于1,或者百度的 temperature 不能等于0,阿里的temperature 不能2位小数之类的。 上述几个例子是之前遇到过的,但不一定每个人都遇到。 基本排查思路是,先 curl 通模型,然后打印下 FastGPT 传过来的参数,然后排查法,看看是哪个参数导致接口报错。
用curl每次都能调通。但在fastGPT界面里,就还是报错。
最后再提醒一次。 出现这个问题都是因为接口未直接通过 status 报错,而是正常结束请求,但未返回任何内容导致。FastGPT中接口中,如果对话接口为返回任何内容,则会提示该错误。 出现该错误情况比较复杂,但是都可以通过 curl 测试来测出来,可以从几个方面进行排查:
- 检查接口是否支持 stream 模式。
- 检查网关是否支持 stream 模式(如果有网关)。
- 国内模型可能命中风控(讯飞这种风控,oneapi就没有捕获,而是直接结束请求)。
- 模型参数特殊。例如 GLM4 中 topk 不能等于1,或者百度的 temperature 不能等于0,阿里的temperature 不能2位小数之类的。 上述几个例子是之前遇到过的,但不一定每个人都遇到。 基本排查思路是,先 curl 通模型,然后打印下 FastGPT 传过来的参数,然后排查法,看看是哪个参数导致接口报错。
用curl每次都能调通。但在fastGPT界面里,就还是报错。
说明没curl明白~测的太简单
最后再提醒一次。 出现这个问题都是因为接口未直接通过 status 报错,而是正常结束请求,但未返回任何内容导致。FastGPT中接口中,如果对话接口为返回任何内容,则会提示该错误。 出现该错误情况比较复杂,但是都可以通过 curl 测试来测出来,可以从几个方面进行排查:
- 检查接口是否支持 stream 模式。
- 检查网关是否支持 stream 模式(如果有网关)。
- 国内模型可能命中风控(讯飞这种风控,oneapi就没有捕获,而是直接结束请求)。
- 模型参数特殊。例如 GLM4 中 topk 不能等于1,或者百度的 temperature 不能等于0,阿里的temperature 不能2位小数之类的。 上述几个例子是之前遇到过的,但不一定每个人都遇到。 基本排查思路是,先 curl 通模型,然后打印下 FastGPT 传过来的参数,然后排查法,看看是哪个参数导致接口报错。
用curl每次都能调通。但在fastGPT界面里,就还是报错。
说明没curl明白~测的太简单
兄弟,求解。
curl --location --request POST "http://192.168.31.26:9997/v1/chat/completions" --header "Authorization: Bearer sk-fastgpt" --header "Content-Type: application/json" --data-raw "{\"model\": \"qwen1.5-chat\", \"stream\": true, \"temperature\": 1, \"max_tokens\": 3000, \"messages\": [{\"role\": \"user\", \"content\": \"你是谁\"}]}"
curl --location --request POST "http://192.168.31.26:9997/v1/chat/completions" --header "Authorization: Bearer sk-fastgpt" --header "Content-Type: application/json" --data-raw "{\"model\": \"qwen1.5-chat\", \"stream\": true, \"temperature\": 1, \"max_tokens\": 3000, \"messages\": [{\"role\": \"user\", \"content\": \"你是谁\"}]}"
emm,我又请求不到,而且看不到日志,难知道是啥问题~
curl --location --request POST "http://192.168.31.26:9997/v1/chat/completions" --header "Authorization: Bearer sk-fastgpt" --header "Content-Type: application/json" --data-raw "{"model": "qwen1.5-chat", "stream": true, "temperature": 1, "max_tokens": 3000, "messages": [{"role": "user", "content": "你是谁"}]}"
emm,我又请求不到,而且看不到日志,难知道是啥问题~
我更新到最新的one-api,然后重启一下项目。问题好像解决了。。。。。。。。。。
llama3-70b同样遇到了这个问题 是不支持这个模型吗?fastgpt是4.8.4的版本
知道为啥了 stream为true就返回为空了
我也是升级到4.8.7出现了这个问题,之前4.8.5用得好好的,请问有解决方法吗?
例行检查
你的版本
问题描述 在 v4.4.6 版本,对接通义 ak,chat 功能正常。 切换到 tag: v4.7 版本,报错:
复现步骤 clone 源码,checkout 到 v4.7; api 使用的是 one-api 镜像版本,配置 OPENAI_BASE_URL 和 CHAT_API_KEY 参数,确定 ak 没问题。
预期结果
相关截图