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