--- title: 模型问题排查 description: FastGPT 私有部署模型问题排查 --- ### (1)如何检查模型可用性问题 1. 私有部署模型,先确认部署的模型是否正常。 2. 通过 CURL 请求,直接测试上游模型是否正常运行(云端模型或私有模型均进行测试) 3. 通过 CURL 请求,请求 OneAPI 去测试模型是否正常。 4. 在 FastGPT 中使用该模型进行测试。 下面是几个测试 CURL 示例: ```bash curl https://api.openai.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "gpt-4o", "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "Hello!" } ] }' ``` ```bash curl https://api.openai.com/v1/embeddings \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input": "The food was delicious and the waiter...", "model": "text-embedding-ada-002", "encoding_format": "float" }' ``` ```bash curl --location --request POST 'https://xxxx.com/api/v1/rerank' \ --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \ --header 'Content-Type: application/json' \ --data-raw '{ "model": "bge-rerank-m3", "query": "导演是谁", "documents": [ "你是谁?\n我是电影《铃芽之旅》助手" ] }' ``` ```bash curl https://api.openai.com/v1/audio/speech \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "tts-1", "input": "The quick brown fox jumped over the lazy dog.", "voice": "alloy" }' \ --output speech.mp3 ``` ```bash curl https://api.openai.com/v1/audio/transcriptions \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: multipart/form-data" \ -F file="@/path/to/file/audio.mp3" \ -F model="whisper-1" ``` --- ### (2)报错 - 模型响应为空/模型报错 该错误是由于 stream 模式下,oneapi 直接结束了流请求,并且未返回任何内容导致。 4.8.10 版本新增了错误日志,报错时,会在日志中打印出实际发送的 Body 参数,可以复制该参数后,通过 curl 向 oneapi 发起请求测试。 由于 oneapi 在 stream 模式下,无法正确捕获错误,有时候可以设置成 `stream=false` 来获取到精确的错误。 可能的报错问题: 1. 国内模型命中风控 2. 不支持的模型参数:只保留 messages 和必要参数来测试,删除其他参数测试。 3. 参数不符合模型要求:例如有的模型 temperature 不支持 0,有些不支持两位小数。max_tokens 超出,上下文超长等。 4. 模型部署有问题,stream 模式不兼容。 测试示例如下,可复制报错日志中的请求体进行测试: ```bash curl --location --request POST 'https://api.openai.com/v1/chat/completions' \ --header 'Authorization: Bearer sk-xxxx' \ --header 'Content-Type: application/json' \ --data-raw '{ "model": "xxx", "temperature": 0.01, "max_tokens": 1000, "stream": true, "messages": [ { "role": "user", "content": " 你是饿" } ] }' ``` --- ### (3)如何测试模型是否支持工具调用 需要模型提供商和 oneapi 同时支持工具调用才可使用,测试方法如下: ##### 1. 通过 `curl` 向 `oneapi` 发起第一轮 stream 模式的 tool 测试。 ```bash curl --location --request POST 'https://oneapi.xxx/v1/chat/completions' \ --header 'Authorization: Bearer sk-xxxx' \ --header 'Content-Type: application/json' \ --data-raw '{ "model": "gpt-5", "temperature": 0.01, "max_tokens": 8000, "stream": true, "messages": [ { "role": "user", "content": "几点了" } ], "tools": [ { "type": "function", "function": { "name": "hCVbIY", "description": "获取用户当前时区的时间。", "parameters": { "type": "object", "properties": {}, "required": [] } } } ], "tool_choice": "auto" }' ``` ##### 2. 检查响应参数 如果能正常调用工具,会返回对应 `tool_calls` 参数。 ```json { "id": "chatcmpl-A7kwo1rZ3OHYSeIFgfWYxu8X2koN3", "object": "chat.completion.chunk", "created": 1726412126, "model": "gpt-5", "system_fingerprint": "fp_483d39d857", "choices": [ { "index": 0, "id": "call_0n24eiFk8OUyIyrdEbLdirU7", "type": "function", "function": { "name": "mEYIcFl84rYC", "arguments": "" } } ], "refusal": null }, "logprobs": null, "finish_reason": null } ], "usage": null } ``` ##### 3. 通过 `curl` 向 `oneapi` 发起第二轮 stream 模式的 tool 测试。 第二轮请求是把工具结果发送给模型。发起后会得到模型回答的结果。 ```bash curl --location --request POST 'https://oneapi.xxxx/v1/chat/completions' \ --header 'Authorization: Bearer sk-xxx' \ --header 'Content-Type: application/json' \ --data-raw '{ "model": "gpt-5", "temperature": 0.01, "max_tokens": 8000, "stream": true, "messages": [ { "role": "user", "content": "几点了" }, { "role": "assistant", "tool_calls": [ { "id": "kDia9S19c4RO", "type": "function", "function": { "name": "hCVbIY", "arguments": "{}" } } ] }, { "tool_call_id": "kDia9S19c4RO", "role": "tool", "name": "hCVbIY", "content": "{\n \"time\": \"2024-09-14 22:59:21 Sunday\"\n}" } ], "tools": [ { "type": "function", "function": { "name": "hCVbIY", "description": "获取用户当前时区的时间。", "parameters": { "type": "object", "properties": {}, "required": [] } } } ], "tool_choice": "auto" }' ``` --- ### (4)向量检索得分大于 1 由于模型没有归一化导致的。目前仅支持归一化的模型。 --- ### (5) 当前分组上游负载已饱和,请稍后再试 如果在日志或请求中遇到此错误(如 `request id:xxx`),这通常是 OneAPI 渠道的问题,可以换个模型使用或者换一家中转站。 --- ### (6) 使用API时在日志中报错 Connection Error 大概率是 API Key 填写了 OpenAI 的地址,但是部署的服务器在国内,不能访问海外的 API。可以使用中转或者反代的手段解决访问不到的问题。 --- ### (7) 开启图片索引报 400 需在 `Admin` -> `系统配置` 中正确配置 OCR 模型。