diff --git a/README.md b/README.md index fb05fe246..d15570c5a 100644 --- a/README.md +++ b/README.md @@ -50,22 +50,22 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b ## 💡 RoadMap `1` 应用编排能力 - - [x] 提供简易模式,无需操作编排 - - [x] 工作流编排 + - [x] 对话工作流、插件工作流 - [x] 工具调用 - - [x] 插件 - 工作流封装能力 - [x] Code sandbox - - [ ] 循环调用 + - [x] 循环调用 + - [x] 用户选择 + - [ ] 表单输入 `2` 知识库能力 - [x] 多库复用,混用 - [x] chunk 记录修改和删除 - - [x] 源文件存储 - [x] 支持手动输入,直接分段,QA 拆分导入 - [x] 支持 txt,md,html,pdf,docx,pptx,csv,xlsx (有需要更多可 PR file loader) - [x] 支持 url 读取、CSV 批量导入 - [x] 混合检索 & 重排 - - [ ] 标签过滤 + - [ ] 自定义文件读取服务 + - [ ] 自定义分块服务 `3` 应用调试能力 - [x] 知识库单点搜索测试 @@ -88,7 +88,7 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b `6` 其他 - [x] 支持语音输入和输出 (可配置语音输入语音回答) - [x] 模糊输入提示 - - [ ] 模板市场 + - [x] 模板市场 # diff --git a/docSite/content/zh-cn/docs/development/configuration.md b/docSite/content/zh-cn/docs/development/configuration.md index 652a1293b..4d2441504 100644 --- a/docSite/content/zh-cn/docs/development/configuration.md +++ b/docSite/content/zh-cn/docs/development/configuration.md @@ -13,9 +13,7 @@ weight: 708 这个配置文件中包含了系统参数和各个模型配置: -## 4.6.8+ 版本新配置文件 - -llm模型全部合并 +## 4.6.8+ 版本新配置文件示例 ```json { @@ -29,16 +27,16 @@ llm模型全部合并 }, "llmModels": [ { - "model": "gpt-3.5-turbo", // 模型名(对应OneAPI中渠道的模型名) - "name": "gpt-3.5-turbo", // 别名 + "model": "gpt-4o-mini", // 模型名(对应OneAPI中渠道的模型名) + "name": "gpt-4o-mini", // 模型别名 "avatar": "/imgs/model/openai.svg", // 模型的logo - "maxContext": 16000, // 最大上下文 - "maxResponse": 4000, // 最大回复 - "quoteMaxToken": 13000, // 最大引用内容 + "maxContext": 125000, // 最大上下文 + "maxResponse": 16000, // 最大回复 + "quoteMaxToken": 120000, // 最大引用内容 "maxTemperature": 1.2, // 最大温度 - "charsPointsPrice": 0, // n积分/1k token(商业版) + "charsPointsPrice": 0, // n积分/1k token(商业版) "censor": false, // 是否开启敏感校验(商业版) - "vision": false, // 是否支持图片输入 + "vision": true, // 是否支持图片输入 "datasetProcess": true, // 是否设置为知识库处理模型(QA),务必保证至少有一个为true,否则知识库会报错 "usedInClassify": true, // 是否用于问题分类(务必保证至少有一个为true) "usedInExtractFields": true, // 是否用于内容提取(务必保证至少有一个为true) @@ -49,19 +47,19 @@ llm模型全部合并 "customCQPrompt": "", // 自定义文本分类提示词(不支持工具和函数调用的模型 "customExtractPrompt": "", // 自定义内容提取提示词 "defaultSystemChatPrompt": "", // 对话默认携带的系统提示词 - "defaultConfig":{} // 请求API时,挟带一些默认配置(比如 GLM4 的 top_p) + "defaultConfig": {} // 请求API时,挟带一些默认配置(比如 GLM4 的 top_p) }, { - "model": "gpt-4-0125-preview", - "name": "gpt-4-turbo", + "model": "gpt-4o", + "name": "gpt-4o", "avatar": "/imgs/model/openai.svg", "maxContext": 125000, "maxResponse": 4000, - "quoteMaxToken": 100000, + "quoteMaxToken": 120000, "maxTemperature": 1.2, "charsPointsPrice": 0, "censor": false, - "vision": false, + "vision": true, "datasetProcess": false, "usedInClassify": true, "usedInExtractFields": true, @@ -72,30 +70,61 @@ llm模型全部合并 "customCQPrompt": "", "customExtractPrompt": "", "defaultSystemChatPrompt": "", - "defaultConfig":{} + "defaultConfig": {} }, { - "model": "gpt-4-vision-preview", - "name": "gpt-4-vision", + "model": "o1-mini", + "name": "o1-mini", "avatar": "/imgs/model/openai.svg", - "maxContext": 128000, + "maxContext": 125000, "maxResponse": 4000, - "quoteMaxToken": 100000, + "quoteMaxToken": 120000, "maxTemperature": 1.2, "charsPointsPrice": 0, "censor": false, - "vision": true, + "vision": false, "datasetProcess": false, - "usedInClassify": false, - "usedInExtractFields": false, - "usedInToolCall": false, - "usedInQueryExtension": false, - "toolChoice": true, + "usedInClassify": true, + "usedInExtractFields": true, + "usedInToolCall": true, + "usedInQueryExtension": true, + "toolChoice": false, "functionCall": false, "customCQPrompt": "", "customExtractPrompt": "", "defaultSystemChatPrompt": "", - "defaultConfig":{} + "defaultConfig": { + "temperature": 1, + "max_tokens": null, + "stream": false + } + }, + { + "model": "o1-preview", + "name": "o1-preview", + "avatar": "/imgs/model/openai.svg", + "maxContext": 125000, + "maxResponse": 4000, + "quoteMaxToken": 120000, + "maxTemperature": 1.2, + "charsPointsPrice": 0, + "censor": false, + "vision": false, + "datasetProcess": false, + "usedInClassify": true, + "usedInExtractFields": true, + "usedInToolCall": true, + "usedInQueryExtension": true, + "toolChoice": false, + "functionCall": false, + "customCQPrompt": "", + "customExtractPrompt": "", + "defaultSystemChatPrompt": "", + "defaultConfig": { + "temperature": 1, + "max_tokens": null, + "stream": false + } } ], "vectorModels": [ @@ -107,9 +136,30 @@ llm模型全部合并 "defaultToken": 700, // 默认文本分割时候的 token "maxToken": 3000, // 最大 token "weight": 100, // 优先训练权重 - "defaultConfig":{}, // 自定义额外参数。例如,如果希望使用 embedding3-large 的话,可以传入 dimensions:1024,来返回1024维度的向量。(目前必须小于1536维度) + "defaultConfig": {}, // 自定义额外参数。例如,如果希望使用 embedding3-large 的话,可以传入 dimensions:1024,来返回1024维度的向量。(目前必须小于1536维度) "dbConfig": {}, // 存储时的额外参数(非对称向量模型时候需要用到) "queryConfig": {} // 参训时的额外参数 + }, + { + "model": "text-embedding-3-large", + "name": "text-embedding-3-large", + "avatar": "/imgs/model/openai.svg", + "charsPointsPrice": 0, + "defaultToken": 512, + "maxToken": 3000, + "weight": 100, + "defaultConfig": { + "dimensions": 1024 + } + }, + { + "model": "text-embedding-3-small", + "name": "text-embedding-3-small", + "avatar": "/imgs/model/openai.svg", + "charsPointsPrice": 0, + "defaultToken": 512, + "maxToken": 3000, + "weight": 100 } ], "reRankModels": [], diff --git a/docSite/content/zh-cn/docs/development/faq.md b/docSite/content/zh-cn/docs/development/faq.md index 9bae37d4c..dc167d49a 100644 --- a/docSite/content/zh-cn/docs/development/faq.md +++ b/docSite/content/zh-cn/docs/development/faq.md @@ -121,4 +121,150 @@ OneAPI 的 API Key 配置错误,需要修改`OPENAI_API_KEY`环境变量,并 1. 模型服务不可用 2. 模型接口参数异常(温度、max token等可能不适配) -3. .... \ No newline at end of file +3. .... + + +## 四、常见模型问题 + +### 报错 - 模型响应为空 + +该错误是由于 stream 模式下,oneapi 直接结束了流请求,并且未返回任何内容导致。 + +4.8.10 版本新增了错误日志,报错时,会在日志中打印出实际发送的 Body 参数,可以复制该参数后,通过 curl 向 oneapi 发起请求测试。 + +由于 oneapi 在 stream 模式下,无法正确捕获错误,可以设置成 `stream=false` 后进行测试。 + +### 如何测试模型是否支持工具调用 + +需要模型提供商和 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-4o-mini", + "temperature": 0.01, + "max_completion_tokens": 8000, + "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-4o-mini-2024-07-18", + "system_fingerprint": "fp_483d39d857", + "choices": [ + { + "index": 0, + "delta": { + "role": "assistant", + "content": null, + "tool_calls": [ + { + "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-4o-mini", + "temperature": 0.01, + "max_completion_tokens": 8000, + "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" +}' +``` \ No newline at end of file diff --git a/docSite/content/zh-cn/docs/development/upgrading/4811.md b/docSite/content/zh-cn/docs/development/upgrading/4811.md index 06523f258..18649f9a5 100644 --- a/docSite/content/zh-cn/docs/development/upgrading/4811.md +++ b/docSite/content/zh-cn/docs/development/upgrading/4811.md @@ -81,14 +81,15 @@ weight: 813 ## V4.8.11 更新说明 1. -2. 新增 - 聊天记录滚动加载,不再只加载 30 条。 -3. 新增 - 工作流增加触摸板优先模式。 -4. 新增 - 沙盒增加字符串转 base64 全局方法。 -5. 新增 - 支持 openai o1 模型,需增加模型的 `defaultConfig` 配置,覆盖 `temperature`、`max_tokens` 和 `stream`配置,o1 不支持 stream 模式, 详细可重新拉取 `config.json` 配置文件查看。 -6. 优化 - 工作流嵌套层级限制 20 层,避免因编排不合理导致的无限死循环。 -7. 优化 - 工作流 handler 性能优化。 -8. 优化 - 工作流快捷键,避免调试测试时也会触发。 -9. 优化 - 流输出,切换 tab 时仍可以继续输出。 -10. 修复 - 知识库选择权限问题。 -11. 修复 - 空 chatId 发起对话,首轮携带用户选择时会异常。 -12. 修复 - createDataset 接口,intro 为赋值。 +2. 新增 - 循环运行节点,可传入数组进行批量调用,目前最多支持 50 长度的数组串行执行。 +3. 新增 - 聊天记录滚动加载,不再只加载 30 条。 +4. 新增 - 工作流增加触摸板优先模式。 +5. 新增 - 沙盒增加字符串转 base64 全局方法。 +6. 新增 - 支持 Openai o1 模型,需增加模型的 `defaultConfig` 配置,覆盖 `temperature`、`max_tokens` 和 `stream`配置,o1 不支持 stream 模式, 详细可重新拉取 `config.json` 配置文件查看。 +7. 优化 - 工作流嵌套层级限制 20 层,避免因编排不合理导致的无限死循环。 +8. 优化 - 工作流 handler 性能优化。 +9. 优化 - 工作流快捷键,避免调试测试时也会触发。 +10. 优化 - 流输出,切换 tab 时仍可以继续输出。 +11. 修复 - 知识库选择权限问题。 +12. 修复 - 空 chatId 发起对话,首轮携带用户选择时会异常。 +13. 修复 - createDataset 接口,intro 为赋值。 diff --git a/packages/web/i18n/zh/workflow.json b/packages/web/i18n/zh/workflow.json index 36faed658..ff7f27578 100644 --- a/packages/web/i18n/zh/workflow.json +++ b/packages/web/i18n/zh/workflow.json @@ -91,7 +91,7 @@ "length_not_equal_to": "长度不等于", "less_than": "小于", "less_than_or_equal_to": "小于等于", - "loop": "批量执行(测试)", + "loop": "循环运行(测试)", "loop_body": "循环体", "loop_end": "循环体结束", "loop_input_array": "数组",