+和上一个问题一样,curl 测试。知识库索引没有进度/索引很慢 link 先看日志报错信息。有以下几种情况:
可以对话,但是索引没有进度:没有配置向量模型(vectorModels) 不能对话,也不能索引:API调用失败。可能是没连上OneAPI或OpenAI 有进度,但是非常慢:api key不行,OpenAI的免费号,一分钟只有3次还是60次。一天上限200次。 Connection error link 网络异常。国内服务器无法请求OpenAI,自行检查与AI模型的连接是否正常。
或者是FastGPT请求不到 OneAPI(没放同一个网络)
修改了 vectorModels 但是没有生效 link 重启容器,确保模型配置已经加载(可以在日志或者新建知识库时候看到新模型) 记得刷新一次浏览器。 如果是已经创建的知识库,需要删除重建。向量模型是创建时候绑定的,不会动态更新。 三、常见的 OneAPI 错误 link 带有 requestId 的都是 OneAPI 的报错。
insufficient_user_quota user quota is not enough link OneAPI 账号的余额不足,默认 root 用户只有 200 刀,可以手动修改。
路径:打开OneAPI -> 用户 -> root用户右边的编辑 -> 剩余余额调大
xxx渠道找不到 link FastGPT 模型配置文件中的 model 必须与 OneAPI 渠道中的模型对应上,否则就会提示这个错误。可检查下面内容:
OneAPI 中没有配置该模型渠道,或者被禁用了。 FastGPT 配置文件有 OneAPI 没有配置的模型。如果 OneAPI 没有配置对应模型的,配置文件中也不要写。 使用旧的向量模型创建了知识库,后又更新了向量模型。这时候需要删除以前的知识库,重建。 如果OneAPI中,没有配置对应的模型,config.json中也不要配置,否则容易报错。
点击模型测试失败 link OneAPI 只会测试渠道的第一个模型,并且只会测试对话模型,向量模型无法自动测试,需要手动发起请求进行测试。查看测试模型命令示例
get request url failed: Post “https://xxx dial tcp: xxxx link OneAPI 与模型网络不通,需要检查网络配置。
Incorrect API key provided: sk-xxxx.You can find your api Key at xxx link OneAPI 的 API Key 配置错误,需要修改OPENAI_API_KEY环境变量,并重启容器(先 docker-compose down 然后再 docker-compose up -d 运行一次)。
可以exec进入容器,env查看环境变量是否生效。
bad_response_status_code bad response status code 503 link 模型服务不可用 模型接口参数异常(温度、max token等可能不适配) …. Tiktoken 下载失败 link 由于 OneAPI 会在启动时从网络下载一个 tiktoken 的依赖,如果网络异常,就会导致启动失败。可以参考OneAPI 离线部署 解决。
四、常见模型问题 link 如何检查模型可用性问题 link 私有部署模型,先确认部署的模型是否正常。 通过 CURL 请求,直接测试上游模型是否正常运行(云端模型或私有模型均进行测试) 通过 CURL 请求,请求 OneAPI 去测试模型是否正常。 在 FastGPT 中使用该模型进行测试。 下面是几个测试 CURL 示例:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
@@ -57,7 +57,7 @@ Table of Contents
curl https://api.openai.com/v1/embeddings \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
@@ -66,7 +66,7 @@ Table of Contents
curl --location --request POST 'https://xxxx.com/api/v1/rerank' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
--header 'Content-Type: application/json' \
@@ -77,7 +77,7 @@ Table of Contents
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
@@ -87,7 +87,7 @@ Table of Contents
curl https://api.openai.com/v1/audio/transcriptions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
diff --git a/docs/development/openapi/chat/index.html b/docs/development/openapi/chat/index.html
index 5d3442f0e..87051a69a 100644
--- a/docs/development/openapi/chat/index.html
+++ b/docs/development/openapi/chat/index.html
@@ -34,9 +34,9 @@ FAQ
-Table of Contents
chat
对话接口 FastGPT OpenAPI 对话接口
如何获取 AppId link 可在应用详情的路径里获取 AppId。
该接口的 API Key 需使用应用特定的 key,否则会报错。 请求简易应用和工作流 link v1对话接口兼容GPT的接口!如果你的项目使用的是标准的GPT官方接口,可以直接通过修改BaseUrl和 Authorization来访问 FastGpt 应用,不过需要注意下面几个规则:
chat
对话接口 FastGPT OpenAPI 对话接口
如何获取 AppId link 可在应用详情的路径里获取 AppId。
该接口的 API Key 需使用应用特定的 key,否则会报错。 请求简易应用和工作流 link v1对话接口兼容GPT的接口!如果你的项目使用的是标准的GPT官方接口,可以直接通过修改BaseUrl和 Authorization来访问 FastGpt 应用,不过需要注意下面几个规则:
curl --location --request POST 'http://localhost:3000/api/v1/chat/completions' \
--header 'Authorization: Bearer fastgpt-xxxxxx' \
--header 'Content-Type: application/json' \
@@ -56,7 +56,7 @@ Table of Contents 仅messages有部分区别,其他参数一致。 目前不支持上传文件,需上传到自己的对象存储中,获取对应的文件链接。 仅messages有部分区别,其他参数一致。 目前不支持上传文件,需上传到自己的对象存储中,获取对应的文件链接。
curl --location --request POST 'http://localhost:3000/api/v1/chat/completions' \
--header 'Authorization: Bearer fastgpt-xxxxxx' \
--header 'Content-Type: application/json' \
@@ -86,11 +86,11 @@ Table of Contents info
headers.Authorization: Bearer {{apikey}} chatId: string | undefined 。为 undefined 时(不传入),不使用 FastGpt 提供的上下文功能,完全通过传入的 messages 构建上下文。 为非空字符串时,意味着使用 chatId 进行对话,自动从 FastGpt 数据库取历史记录,并使用 messages 数组最后一个内容作为用户问题,其余 message 会被忽略。请自行确保 chatId 唯一,长度小于250,通常可以是自己系统的对话框ID。 messages: 结构与 GPT接口 chat模式一致。 responseChatItemId: string | undefined 。如果传入,则会将该值作为本次对话的响应消息的 ID,FastGPT 会自动将该 ID 存入数据库。请确保,在当前chatId下,responseChatItemId是唯一的。 detail: 是否返回中间值(模块状态,响应的完整结果等),stream模式下会通过event进行区分,非stream模式结果保存在responseData中。 variables: 模块变量,一个对象,会替换模块中,输入框内容里的{{key}} info
headers.Authorization: Bearer {{apikey}} chatId: string | undefined 。为 undefined 时(不传入),不使用 FastGpt 提供的上下文功能,完全通过传入的 messages 构建上下文。 为非空字符串时,意味着使用 chatId 进行对话,自动从 FastGpt 数据库取历史记录,并使用 messages 数组最后一个内容作为用户问题,其余 message 会被忽略。请自行确保 chatId 唯一,长度小于250,通常可以是自己系统的对话框ID。 messages: 结构与 GPT接口 chat模式一致。 responseChatItemId: string | undefined 。如果传入,则会将该值作为本次对话的响应消息的 ID,FastGPT 会自动将该 ID 存入数据库。请确保,在当前chatId下,responseChatItemId是唯一的。 detail: 是否返回中间值(模块状态,响应的完整结果等),stream模式下会通过event进行区分,非stream模式结果保存在responseData中。 variables: 模块变量,一个对象,会替换模块中,输入框内容里的{{key}}
{
"id": "adsfasf",
"model": "",
@@ -110,7 +110,7 @@ Table of Contents
data: {"id":"","object":"","created":0,"choices":[{"delta":{"content":""},"index":0,"finish_reason":null}]}
data: {"id":"","object":"","created":0,"choices":[{"delta":{"content":"电"},"index":0,"finish_reason":null}]}
@@ -118,7 +118,7 @@ data: {"id":"","object":"","created":0,&
data: {"id":"","object":"","created":0,"choices":[{"delta":{"content":"影"},"index":0,"finish_reason":null}]}
data: {"id":"","object":"","created":0,"choices":[{"delta":{"content":"《"},"index":0,"finish_reason":null}]}
-
{
"responseData": [ // 不同模块的响应值, 不同版本具体值可能有差异,可先 log 自行查看最新值。
{
@@ -202,7 +202,7 @@ data: {"id":"","object":"","created":0,&
}
]
}
-
event: flowNodeStatus
data: {"status":"running","name":"知识库搜索"}
@@ -232,8 +232,8 @@ data: [DONE]
event: flowResponses
data: [{"moduleName":"知识库搜索","moduleType":"datasetSearchNode","runningTime":1.78},{"question":"导演是谁","quoteList":[{"id":"654f2e49b64caef1d9431e8b","q":"电影《铃芽之旅》的导演是谁?","a":"电影《铃芽之旅》的导演是新海诚!","indexes":[{"type":"qa","dataId":"3515487","text":"电影《铃芽之旅》的导演是谁?","_id":"654f2e49b64caef1d9431e8c","defaultIndex":true}],"datasetId":"646627f4f7b896cfd8910e38","collectionId":"653279b16cd42ab509e766e8","sourceName":"data (81).csv","sourceId":"64fd3b6423aa1307b65896f6","score":0.8935586214065552},{"id":"6552e14c50f4a2a8e632af11","q":"导演是谁?","a":"电影《铃芽之旅》的导演是新海诚。","indexes":[{"defaultIndex":true,"type":"qa","dataId":"3644565","text":"导演是谁?\n电影《铃芽之旅》的导演是新海诚。","_id":"6552e14dde5cc7ba3954e417"}],"datasetId":"646627f4f7b896cfd8910e38","collectionId":"653279b16cd42ab509e766e8","sourceName":"data (81).csv","sourceId":"64fd3b6423aa1307b65896f6","score":0.8890955448150635},{"id":"654f34a0b64caef1d946337e","q":"本作的主人公是谁?","a":"本作的主人公是名叫铃芽的少女。","indexes":[{"type":"qa","dataId":"3515541","text":"本作的主人公是谁?","_id":"654f34a0b64caef1d946337f","defaultIndex":true}],"datasetId":"646627f4f7b896cfd8910e38","collectionId":"653279b16cd42ab509e766e8","sourceName":"data (81).csv","sourceId":"64fd3b6423aa1307b65896f6","score":0.8738770484924316},{"id":"654f3002b64caef1d944207a","q":"电影《铃芽之旅》男主角是谁?","a":"电影《铃芽之旅》男主角是宗像草太,由松村北斗配音。","indexes":[{"type":"qa","dataId":"3515538","text":"电影《铃芽之旅》男主角是谁?","_id":"654f3002b64caef1d944207b","defaultIndex":true}],"datasetId":"646627f4f7b896cfd8910e38","collectionId":"653279b16cd42ab509e766e8","sourceName":"data (81).csv","sourceId":"64fd3b6423aa1307b65896f6","score":0.8607980012893677},{"id":"654f2fc8b64caef1d943fd46","q":"电影《铃芽之旅》的编剧是谁?","a":"新海诚是本片的编剧。","indexes":[{"defaultIndex":true,"type":"qa","dataId":"3515550","text":"电影《铃芽之旅》的编剧是谁?22","_id":"654f2fc8b64caef1d943fd47"}],"datasetId":"646627f4f7b896cfd8910e38","collectionId":"653279b16cd42ab509e766e8","sourceName":"data (81).csv","sourceId":"64fd3b6423aa1307b65896f6","score":0.8468944430351257}],"moduleName":"AI 对话","moduleType":"chatNode","runningTime":1.86}]
- event取值:
answer: 返回给客户端的文本(最终会算作回答) fastAnswer: 指定回复返回给客户端的文本(最终会算作回答) toolCall: 执行工具 toolParams: 工具参数 toolResponse: 工具返回 flowNodeStatus: 运行到的节点状态 flowResponses: 节点完整响应 updateVariables: 更新变量 error: 报错 如果工作流中包含交互节点,依然是调用该 API 接口,需要设置detail=true,并可以从event=interactive的数据中获取交互节点的配置信息。如果是stream=false,则可以从 choice 中获取type=interactive的元素,获取交互节点的选择信息。
当你调用一个带交互节点的工作流时,如果工作流遇到了交互节点,那么会直接返回,你可以得到下面的信息:
event取值:
answer: 返回给客户端的文本(最终会算作回答) fastAnswer: 指定回复返回给客户端的文本(最终会算作回答) toolCall: 执行工具 toolParams: 工具参数 toolResponse: 工具返回 flowNodeStatus: 运行到的节点状态 flowResponses: 节点完整响应 updateVariables: 更新变量 error: 报错 如果工作流中包含交互节点,依然是调用该 API 接口,需要设置detail=true,并可以从event=interactive的数据中获取交互节点的配置信息。如果是stream=false,则可以从 choice 中获取type=interactive的元素,获取交互节点的选择信息。
当你调用一个带交互节点的工作流时,如果工作流遇到了交互节点,那么会直接返回,你可以得到下面的信息:
{
"interactive": {
"type": "userSelect",
@@ -252,7 +252,7 @@ data: [{"moduleName":"知识库搜索","moduleType":"
}
}
}
-
{
"interactive": {
"type": "userInput",
@@ -295,8 +295,8 @@ data: [{"moduleName":"知识库搜索","moduleType":"
}
}
}
- 交互节点继续运行 link 紧接着上一节,当你接收到交互节点信息后,可以根据这些数据进行 UI 渲染,引导用户输入或选择相关信息。然后需要再次发起对话,来继续工作流。调用的接口与仍是该接口,你需要按以下格式来发起请求:
对于用户选择,你只需要直接传递一个选择的结果给 messages 即可。
交互节点继续运行 link 紧接着上一节,当你接收到交互节点信息后,可以根据这些数据进行 UI 渲染,引导用户输入或选择相关信息。然后需要再次发起对话,来继续工作流。调用的接口与仍是该接口,你需要按以下格式来发起请求:
对于用户选择,你只需要直接传递一个选择的结果给 messages 即可。
curl --location --request POST 'https://api.fastgpt.in/api/v1/chat/completions' \
--header 'Authorization: Bearer fastgpt-xxx' \
--header 'Content-Type: application/json' \
@@ -311,7 +311,7 @@ data: [{"moduleName":"知识库搜索","moduleType":"
}
]
}'
- 表单输入稍微麻烦一点,需要将输入的内容,以对象形式并序列化成字符串,作为messages的值。对象的 key 对应表单的 key,value 为用户输入的值。务必确保chatId是一致的。
表单输入稍微麻烦一点,需要将输入的内容,以对象形式并序列化成字符串,作为messages的值。对象的 key 对应表单的 key,value 为用户输入的值。务必确保chatId是一致的。
curl --location --request POST 'https://api.fastgpt.in/api/v1/chat/completions' \
--header 'Authorization: Bearer fastgpt-xxxx' \
--header 'Content-Type: application/json' \
@@ -337,9 +337,9 @@ data: [{"moduleName":"知识库搜索","moduleType":"
"query":"你好" # 我的插件输入有一个参数,变量名叫 query
}
}'
- 插件的输出可以通过查找responseData中, moduleType=pluginOutput的元素,其pluginOutput是插件的输出。 流输出,仍可以通过choices进行获取。 插件的输出可以通过查找responseData中, moduleType=pluginOutput的元素,其pluginOutput是插件的输出。 流输出,仍可以通过choices进行获取。
{
"responseData": [
{
@@ -396,7 +396,7 @@ data: [{"moduleName":"知识库搜索","moduleType":"
}
]
}
- 插件的输出可以通过获取event=flowResponses中的字符串,并将其反序列化后得到一个数组。同样的,查找 moduleType=pluginOutput的元素,其pluginOutput是插件的输出。 流输出,仍和对话接口一样获取。 插件的输出可以通过获取event=flowResponses中的字符串,并将其反序列化后得到一个数组。同样的,查找 moduleType=pluginOutput的元素,其pluginOutput是插件的输出。 流输出,仍和对话接口一样获取。
event: flowNodeStatus
data: {"status":"running","name":"AI 对话"}
@@ -453,9 +453,9 @@ data: [DONE]
event: flowResponses
data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对话","moduleType":"chatNode","totalPoints":0.033,"model":"FastAI-3.5","tokens":33,"query":"你好","maxToken":2000,"historyPreview":[{"obj":"Human","value":"你好"},{"obj":"AI","value":"你好!有什么可以帮助你的吗?"}],"contextTotalLen":2,"runningTime":1.42},{"nodeId":"pluginOutput","moduleName":"插件输出","moduleType":"pluginOutput","totalPoints":0,"pluginOutput":{"result":"你好!有什么可以帮助你的吗?"},"runningTime":0}]
- event取值:
answer: 返回给客户端的文本(最终会算作回答) fastAnswer: 指定回复返回给客户端的文本(最终会算作回答) toolCall: 执行工具 toolParams: 工具参数 toolResponse: 工具返回 flowNodeStatus: 运行到的节点状态 flowResponses: 节点完整响应 updateVariables: 更新变量 error: 报错 以下接口可使用任意API Key调用。
4.8.12 以上版本才能使用
重要字段
chatId - 指一个应用下,某一个对话窗口的 ID dataId - 指一个对话窗口下,某一个对话记录的 ID 获取某个应用历史记录 link event取值:
answer: 返回给客户端的文本(最终会算作回答) fastAnswer: 指定回复返回给客户端的文本(最终会算作回答) toolCall: 执行工具 toolParams: 工具参数 toolResponse: 工具返回 flowNodeStatus: 运行到的节点状态 flowResponses: 节点完整响应 updateVariables: 更新变量 error: 报错 以下接口可使用任意API Key调用。
4.8.12 以上版本才能使用
重要字段
chatId - 指一个应用下,某一个对话窗口的 ID dataId - 指一个对话窗口下,某一个对话记录的 ID 获取某个应用历史记录 link
curl --location --request POST 'http://localhost:3000/api/core/chat/getHistories' \
--header 'Authorization: Bearer {{apikey}}' \
--header 'Content-Type: application/json' \
@@ -465,7 +465,7 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
"pageSize": 20,
"source": "api"
}'
-
appId - 应用 Id offset - 偏移量,即从第几条数据开始取 pageSize - 记录数量 source - 对话源。source=api,表示获取通过 API 创建的对话(不会获取到页面上的对话记录)
appId - 应用 Id offset - 偏移量,即从第几条数据开始取 pageSize - 记录数量 source - 对话源。source=api,表示获取通过 API 创建的对话(不会获取到页面上的对话记录)
{
"code": 200,
"statusText": "",
@@ -492,9 +492,9 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
"total": 2
}
}
- 修改某个对话的标题 link 修改某个对话的标题 link
curl --location --request POST 'http://localhost:3000/api/core/chat/updateHistory' \
--header 'Authorization: Bearer {{apikey}}' \
--header 'Content-Type: application/json' \
@@ -503,16 +503,16 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
"chatId": "chatId",
"customTitle": "自定义标题"
}'
-
appId - 应用 Id chatId - 历史记录 Id customTitle - 自定义对话名
appId - 应用 Id chatId - 历史记录 Id customTitle - 自定义对话名
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
- 置顶 / 取消置顶 link 置顶 / 取消置顶 link
curl --location --request POST 'http://localhost:3000/api/core/chat/updateHistory' \
--header 'Authorization: Bearer {{apikey}}' \
--header 'Content-Type: application/json' \
@@ -521,43 +521,43 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
"chatId": "chatId",
"top": true
}'
-
appId - 应用Id chatId - 历史记录 Id top - 是否置顶,ture 置顶,false 取消置顶
appId - 应用Id chatId - 历史记录 Id top - 是否置顶,ture 置顶,false 取消置顶
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
- 删除某个历史记录 link 删除某个历史记录 link
curl --location --request DELETE 'http://localhost:3000/api/core/chat/delHistory?chatId={{chatId}}&appId={{appId}}' \
--header 'Authorization: Bearer {{apikey}}'
-
appId - 应用 Id chatId - 历史记录 Id
appId - 应用 Id chatId - 历史记录 Id
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
- 清空所有历史记录 link 仅会情况通过 API Key 创建的对话历史记录,不会清空在线使用、分享链接等其他来源的对话历史记录。
清空所有历史记录 link 仅会情况通过 API Key 创建的对话历史记录,不会清空在线使用、分享链接等其他来源的对话历史记录。
curl --location --request DELETE 'http://localhost:3000/api/core/chat/clearHistories?appId={{appId}}' \
--header 'Authorization: Bearer {{apikey}}'
-
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
- 指的是某个 chatId 下的对话记录操作。
获取单个对话初始化信息 link 指的是某个 chatId 下的对话记录操作。
获取单个对话初始化信息 link
curl --location --request GET 'http://localhost:3000/api/core/chat/init?appId={{appId}}&chatId={{chatId}}' \
--header 'Authorization: Bearer {{apikey}}'
-
appId - 应用 Id chatId - 历史记录 Id
appId - 应用 Id chatId - 历史记录 Id
{
"code": 200,
"statusText": "",
@@ -611,9 +611,9 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
}
}
}
- 获取对话记录列表 link 获取对话记录列表 link
curl --location --request POST 'http://localhost:3000/api/core/chat/getPaginationRecords' \
--header 'Authorization: Bearer {{apikey}}' \
--header 'Content-Type: application/json' \
@@ -624,7 +624,7 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
"pageSize": 10,
"loadCustomFeedbacks": true
}'
-
appId - 应用 Id chatId - 历史记录 Id offset - 偏移量 pageSize - 记录数量 loadCustomFeedbacks - 是否读取自定义反馈(可选)
appId - 应用 Id chatId - 历史记录 Id offset - 偏移量 pageSize - 记录数量 loadCustomFeedbacks - 是否读取自定义反馈(可选)
{
"code": 200,
"statusText": "",
@@ -673,12 +673,12 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
"total": 2
}
}
- 获取单个对话记录运行详情 link 获取单个对话记录运行详情 link
curl --location --request GET 'http://localhost:3000/api/core/chat/getResData?appId={{appId}}&chatId={{chatId}}&dataId={{dataId}}' \
--header 'Authorization: Bearer {{apikey}}'
-
appId - 应用 Id chatId - 对话 Id dataId - 对话记录 Id
appId - 应用 Id chatId - 对话 Id dataId - 对话记录 Id
{
"code": 200,
"statusText": "",
@@ -724,21 +724,21 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
}
]
}
-
curl --location --request DELETE 'http://localhost:3000/api/core/chat/item/delete?contentId={{contentId}}&chatId={{chatId}}&appId={{appId}}' \
--header 'Authorization: Bearer {{apikey}}'
-
appId - 应用 Id chatId - 历史记录 Id contentId - 对话记录 Id
appId - 应用 Id chatId - 历史记录 Id contentId - 对话记录 Id
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
- 点赞 / 取消点赞 link 点赞 / 取消点赞 link
curl --location --request POST 'http://localhost:3000/api/core/chat/feedback/updateUserFeedback' \
--header 'Authorization: Bearer {{apikey}}' \
--header 'Content-Type: application/json' \
@@ -748,16 +748,16 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
"dataId": "dataId",
"userGoodFeedback": "yes"
}'
-
appId - 应用 Id chatId - 历史记录 Id dataId - 对话记录 Id userGoodFeedback - 用户点赞时的信息(可选),取消点赞时不填此参数即可
appId - 应用 Id chatId - 历史记录 Id dataId - 对话记录 Id userGoodFeedback - 用户点赞时的信息(可选),取消点赞时不填此参数即可
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
- 点踩 / 取消点踩 link 点踩 / 取消点踩 link
curl --location --request POST 'http://localhost:3000/api/core/chat/feedback/updateUserFeedback' \
--header 'Authorization: Bearer {{apikey}}' \
--header 'Content-Type: application/json' \
@@ -767,16 +767,16 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
"dataId": "dataId",
"userBadFeedback": "yes"
}'
-
appId - 应用 Id chatId - 历史记录 Id dataId - 对话记录 Id userBadFeedback - 用户点踩时的信息(可选),取消点踩时不填此参数即可
appId - 应用 Id chatId - 历史记录 Id dataId - 对话记录 Id userBadFeedback - 用户点踩时的信息(可选),取消点踩时不填此参数即可
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
- 4.8.16 后新版接口
新版猜你想问,必须包含 appId 和 chatId 的参数才可以进行使用。会自动根据 chatId 去拉取最近 6 轮对话记录作为上下文来引导回答。
4.8.16 后新版接口
新版猜你想问,必须包含 appId 和 chatId 的参数才可以进行使用。会自动根据 chatId 去拉取最近 6 轮对话记录作为上下文来引导回答。
curl --location --request POST 'http://localhost:3000/api/core/ai/agent/v2/createQuestionGuide' \
--header 'Authorization: Bearer {{apikey}}' \
--header 'Content-Type: application/json' \
@@ -789,7 +789,7 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
"customPrompt": "你是一个智能助手,请根据用户的问题生成猜你想问。"
}
}'
-
参数名 类型 必填 说明 appId string ✅ 应用 Id chatId string ✅ 对话 Id questionGuide object 自定义配置,不传的话,则会根据 appId,取最新发布版本的配置
参数名 类型 必填 说明 appId string ✅ 应用 Id chatId string ✅ 对话 Id questionGuide object 自定义配置,不传的话,则会根据 appId,取最新发布版本的配置
type CreateQuestionGuideParams = OutLinkChatAuthProps & {
appId: string;
chatId: string;
@@ -799,7 +799,7 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
customPrompt?: string;
};
};
-
{
"code": 200,
"statusText": "",
@@ -810,9 +810,9 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
"你希望AI能做什么?"
]
}
- 4.8.16 前旧版接口:
4.8.16 前旧版接口:
curl --location --request POST 'http://localhost:3000/api/core/ai/agent/createQuestionGuide' \
--header 'Authorization: Bearer {{apikey}}' \
--header 'Content-Type: application/json' \
@@ -828,7 +828,7 @@ data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对
}
]
}'
-
messages - 对话消息,提供给 AI 的消息记录
messages - 对话消息,提供给 AI 的消息记录
{
"code": 200,
"statusText": "",
diff --git a/docs/development/openapi/dataset/index.html b/docs/development/openapi/dataset/index.html
index 3952cc974..8bc28c84f 100644
--- a/docs/development/openapi/dataset/index.html
+++ b/docs/development/openapi/dataset/index.html
@@ -34,8 +34,8 @@ FAQ
-Table of Contents
dataset
知识库接口 FastGPT OpenAPI 知识库接口
如何获取知识库ID(datasetId) 如何获取文件集合ID(collection_id)
新例子
dataset
知识库接口 FastGPT OpenAPI 知识库接口
如何获取知识库ID(datasetId) 如何获取文件集合ID(collection_id)
新例子
curl --location --request POST 'http://localhost:3000/api/support/wallet/usage/createTrainingUsage' \
--header 'Authorization: Bearer {{apikey}}' \
--header 'Content-Type: application/json' \
@@ -43,16 +43,16 @@ Table of Contents data 为 billId,可用于添加知识库数据时进行账单聚合。
data 为 billId,可用于添加知识库数据时进行账单聚合。
{
"code": 200,
"statusText": "",
"message": "",
"data": "65112ab717c32018f4156361"
}
-
curl --location --request POST 'http://localhost:3000/api/core/dataset/create' \
--header 'Authorization: Bearer {{authorization}}' \
--header 'Content-Type: application/json' \
@@ -65,23 +65,23 @@ Table of Contents
parentId - 父级ID,用于构建目录结构。通常可以为 null 或者直接不传。 type - dataset或者folder,代表普通知识库和文件夹。不传则代表创建普通知识库。 name - 知识库名(必填) intro - 介绍(可选) avatar - 头像地址(可选) vectorModel - 向量模型(建议传空,用系统默认的) agentModel - 文本处理模型(建议传空,用系统默认的)
parentId - 父级ID,用于构建目录结构。通常可以为 null 或者直接不传。 type - dataset或者folder,代表普通知识库和文件夹。不传则代表创建普通知识库。 name - 知识库名(必填) intro - 介绍(可选) avatar - 头像地址(可选) vectorModel - 向量模型(建议传空,用系统默认的) agentModel - 文本处理模型(建议传空,用系统默认的)
{
"code": 200,
"statusText": "",
"message": "",
"data": "65abc9bd9d1448617cba5e6c"
}
-
curl --location --request POST 'http://localhost:3000/api/core/dataset/list?parentId=' \
--header 'Authorization: Bearer xxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"parentId":""
}'
-
parentId - 父级ID,传空字符串或者null,代表获取根目录下的知识库
parentId - 父级ID,传空字符串或者null,代表获取根目录下的知识库
{
"code": 200,
"statusText": "",
@@ -108,12 +108,12 @@ Table of Contents
curl --location --request GET 'http://localhost:3000/api/core/dataset/detail?id=6593e137231a2be9c5603ba7' \
--header 'Authorization: Bearer {{authorization}}' \
-
{
"code": 200,
"statusText": "",
@@ -149,21 +149,21 @@ Table of Contents
curl --location --request DELETE 'http://localhost:3000/api/core/dataset/delete?id=65abc8729d1448617cba5df6' \
--header 'Authorization: Bearer {{authorization}}' \
-
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
- 通用创建参数说明(必看) link 入参
参数 说明 必填 datasetId 知识库ID ✅ parentId: 父级ID,不填则默认为根目录 trainingType 数据处理方式。chunk: 按文本长度进行分割;qa: 问答对提取 ✅ autoIndexes 是否自动生成索引(仅商业版支持) imageIndex 是否自动生成图片索引(仅商业版支持) chunkSettingMode 分块参数模式。auto: 系统默认参数; custom: 手动指定参数 chunkSplitMode 分块拆分模式。size: 按长度拆分; char: 按字符拆分。chunkSettingMode=auto时不生效。 chunkSize 分块大小,默认 1500。chunkSettingMode=auto时不生效。 indexSize 索引大小,默认 512,必须小于索引模型最大token。chunkSettingMode=auto时不生效。 chunkSplitter 自定义最高优先分割符号,除非超出文件处理最大上下文,否则不会进行进一步拆分。chunkSettingMode=auto时不生效。 qaPrompt qa拆分提示词 tags 集合标签(字符串数组) createTime 文件创建时间(Date / String)
出参
collectionId - 新建的集合ID insertLen:插入的块数量 创建一个空的集合 link 通用创建参数说明(必看) link 入参
参数 说明 必填 datasetId 知识库ID ✅ parentId: 父级ID,不填则默认为根目录 trainingType 数据处理方式。chunk: 按文本长度进行分割;qa: 问答对提取 ✅ autoIndexes 是否自动生成索引(仅商业版支持) imageIndex 是否自动生成图片索引(仅商业版支持) chunkSettingMode 分块参数模式。auto: 系统默认参数; custom: 手动指定参数 chunkSplitMode 分块拆分模式。size: 按长度拆分; char: 按字符拆分。chunkSettingMode=auto时不生效。 chunkSize 分块大小,默认 1500。chunkSettingMode=auto时不生效。 indexSize 索引大小,默认 512,必须小于索引模型最大token。chunkSettingMode=auto时不生效。 chunkSplitter 自定义最高优先分割符号,除非超出文件处理最大上下文,否则不会进行进一步拆分。chunkSettingMode=auto时不生效。 qaPrompt qa拆分提示词 tags 集合标签(字符串数组) createTime 文件创建时间(Date / String)
出参
collectionId - 新建的集合ID insertLen:插入的块数量 创建一个空的集合 link
curl --location --request POST 'http://localhost:3000/api/core/dataset/collection/create' \
--header 'Authorization: Bearer {{authorization}}' \
--header 'Content-Type: application/json' \
@@ -176,16 +176,16 @@ Table of Contents
datasetId: 知识库的ID(必填) parentId: 父级ID,不填则默认为根目录 name: 集合名称(必填) type:folder:文件夹 virtual:虚拟集合(手动集合) metadata: 元数据(暂时没啥用)
datasetId: 知识库的ID(必填) parentId: 父级ID,不填则默认为根目录 name: 集合名称(必填) type:folder:文件夹 virtual:虚拟集合(手动集合) metadata: 元数据(暂时没啥用) data 为集合的 ID。
{
"code": 200,
"statusText": "",
"message": "",
"data": "65abcd009d1448617cba5ee1"
}
- 创建一个纯文本集合 link 传入一段文字,创建一个集合,会根据传入的文字进行分割。
创建一个纯文本集合 link 传入一段文字,创建一个集合,会根据传入的文字进行分割。
curl --location --request POST 'http://localhost:3000/api/core/dataset/collection/create/text' \
--header 'Authorization: Bearer {{authorization}}' \
--header 'Content-Type: application/json' \
@@ -201,7 +201,7 @@ Table of Contents
text: 原文本 datasetId: 知识库的ID(必填) parentId: 父级ID,不填则默认为根目录 name: 集合名称(必填) metadata: 元数据(暂时没啥用)
text: 原文本 datasetId: 知识库的ID(必填) parentId: 父级ID,不填则默认为根目录 name: 集合名称(必填) metadata: 元数据(暂时没啥用) data 为集合的 ID。
{
"code": 200,
"statusText": "",
@@ -216,9 +216,9 @@ Table of Contents 创建一个链接集合 link 传入一个网络链接,创建一个集合,会先去对应网页抓取内容,再抓取的文字进行分割。
创建一个链接集合 link 传入一个网络链接,创建一个集合,会先去对应网页抓取内容,再抓取的文字进行分割。
curl --location --request POST 'http://localhost:3000/api/core/dataset/collection/create/link' \
--header 'Authorization: Bearer {{authorization}}' \
--header 'Content-Type: application/json' \
@@ -235,7 +235,7 @@ Table of Contents
link: 网络链接 datasetId: 知识库的ID(必填) parentId: 父级ID,不填则默认为根目录 metadata.webPageSelector: 网页选择器,用于指定网页中的哪个元素作为文本(可选)
link: 网络链接 datasetId: 知识库的ID(必填) parentId: 父级ID,不填则默认为根目录 metadata.webPageSelector: 网页选择器,用于指定网页中的哪个元素作为文本(可选) data 为集合的 ID。
{
"code": 200,
"statusText": "",
@@ -250,14 +250,14 @@ Table of Contents 创建一个文件集合 link 传入一个文件,创建一个集合,会读取文件内容进行分割。目前支持:pdf, docx, md, txt, html, csv。
使用代码上传时,请注意中文 filename 需要进行 encode 处理,否则容易乱码。
创建一个文件集合 link 传入一个文件,创建一个集合,会读取文件内容进行分割。目前支持:pdf, docx, md, txt, html, csv。
使用代码上传时,请注意中文 filename 需要进行 encode 处理,否则容易乱码。
curl --location --request POST 'http://localhost:3000/api/core/dataset/collection/create/localFile' \
--header 'Authorization: Bearer {{authorization}}' \
--form 'file=@"C:\\Users\\user\\Desktop\\fastgpt测试文件\\index.html"' \
--form 'data="{\"datasetId\":\"6593e137231a2be9c5603ba7\",\"parentId\":null,\"trainingType\":\"chunk\",\"chunkSize\":512,\"chunkSplitter\":\"\",\"qaPrompt\":\"\",\"metadata\":{}}"'
- 需要使用 POST form-data 的格式上传。包含 file 和 data 两个字段。
file: 文件 data: 知识库相关信息(json序列化后传入),参数说明见上方“通用创建参数说明” 需要使用 POST form-data 的格式上传。包含 file 和 data 两个字段。
file: 文件 data: 知识库相关信息(json序列化后传入),参数说明见上方“通用创建参数说明” data 为集合的 ID。
{
"code": 200,
"statusText": "",
@@ -272,9 +272,9 @@ Table of Contents 创建一个API集合 link 传入一个文件的 id,创建一个集合,会读取文件内容进行分割。目前支持:pdf, docx, md, txt, html, csv。
使用代码上传时,请注意中文 filename 需要进行 encode 处理,否则容易乱码。
创建一个API集合 link 传入一个文件的 id,创建一个集合,会读取文件内容进行分割。目前支持:pdf, docx, md, txt, html, csv。
使用代码上传时,请注意中文 filename 需要进行 encode 处理,否则容易乱码。
curl --location --request POST 'http://localhost:3000/api/core/dataset/collection/create/apiCollection' \
--header 'Authorization: Bearer fastgpt-xxx' \
--header 'Content-Type: application/json' \
@@ -290,7 +290,7 @@ Table of Contents 需要使用 POST form-data 的格式上传。包含 file 和 data 两个字段。
name: 集合名,建议就用文件名,必填。 apiFileId: 文件的ID,必填。 datasetId: 知识库的ID(必填) parentId: 父级ID,不填则默认为根目录 trainingType:训练模式(必填) chunkSize: 每个 chunk 的长度(可选). chunk模式:100~3000; qa模式: 4000~模型最大token(16k模型通常建议不超过10000) chunkSplitter: 自定义最高优先分割符号(可选) qaPrompt: qa拆分自定义提示词(可选) 需要使用 POST form-data 的格式上传。包含 file 和 data 两个字段。
name: 集合名,建议就用文件名,必填。 apiFileId: 文件的ID,必填。 datasetId: 知识库的ID(必填) parentId: 父级ID,不填则默认为根目录 trainingType:训练模式(必填) chunkSize: 每个 chunk 的长度(可选). chunk模式:100~3000; qa模式: 4000~模型最大token(16k模型通常建议不超过10000) chunkSplitter: 自定义最高优先分割符号(可选) qaPrompt: qa拆分自定义提示词(可选) data 为集合的 ID。
{
"code": 200,
"statusText": "",
@@ -305,9 +305,9 @@ Table of Contents 创建一个外部文件库集合(商业版) link 创建一个外部文件库集合(商业版) link
curl --location --request POST 'http://localhost:3000/api/proApi/core/dataset/collection/create/externalFileUrl' \
--header 'Authorization: Bearer {{authorization}}' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
@@ -326,7 +326,7 @@ Table of Contents 参数 说明 必填 externalFileUrl 文件访问链接(可以是临时链接) ✅ externalFileId 外部文件ID filename 自定义文件名,需要带后缀 createTime 文件创建时间(Date ISO 字符串都 ok)
参数 说明 必填 externalFileUrl 文件访问链接(可以是临时链接) ✅ externalFileId 外部文件ID filename 自定义文件名,需要带后缀 createTime 文件创建时间(Date ISO 字符串都 ok)
data 为集合的 ID。
{
"code": 200,
"statusText": "",
@@ -341,9 +341,9 @@ Table of Contents 4.8.19+
curl --location --request POST 'http://localhost:3000/api/core/dataset/collection/listV2' \
--header 'Authorization: Bearer {{authorization}}' \
--header 'Content-Type: application/json' \
@@ -365,7 +365,7 @@ Table of Contents
offset: 偏移量 pageSize: 每页数量,最大30(选填) datasetId: 知识库的ID(必填) parentId: 父级Id(选填) searchText: 模糊搜索文本(选填)
offset: 偏移量 pageSize: 每页数量,最大30(选填) datasetId: 知识库的ID(必填) parentId: 父级Id(选填) searchText: 模糊搜索文本(选填)
{
"code": 200,
"statusText": "",
@@ -425,12 +425,12 @@ Table of Contents
curl --location --request GET 'http://localhost:3000/api/core/dataset/collection/detail?id=65abcfab9d1448617cba5f0d' \
--header 'Authorization: Bearer {{authorization}}' \
-
{
"code": 200,
"statusText": "",
@@ -469,9 +469,9 @@ Table of Contents 通过集合 ID 修改集合信息
curl --location --request PUT 'http://localhost:3000/api/core/dataset/collection/update' \
--header 'Authorization: Bearer {{authorization}}' \
--header 'Content-Type: application/json' \
@@ -496,29 +496,29 @@ Table of Contents
id: 集合的ID parentId: 修改父级ID(可选) name: 修改集合名称(可选) tags: 修改集合标签(可选) forbid: 修改集合禁用状态(可选) createTime: 修改集合创建时间(可选)
id: 集合的ID parentId: 修改父级ID(可选) name: 修改集合名称(可选) tags: 修改集合标签(可选) forbid: 修改集合禁用状态(可选) createTime: 修改集合创建时间(可选)
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
-
curl --location --request DELETE 'http://localhost:3000/api/core/dataset/collection/delete?id=65aa2a64e6cb9b8ccdc00de8' \
--header 'Authorization: Bearer {{authorization}}' \
-
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
- Data结构
字段 类型 说明 必填 teamId String 团队ID ✅ tmbId String 成员ID ✅ datasetId String 知识库ID ✅ collectionId String 集合ID ✅ q String 主要数据 ✅ a String 辅助数据 ✖ fullTextToken String 分词 ✖ indexes Index[] 向量索引 ✅ updateTime Date 更新时间 ✅ chunkIndex Number 分块下表 ✖
Index结构
每组数据的自定义索引最多5个
字段 类型 说明 必填 type String 可选索引类型:default-默认索引; custom-自定义索引; summary-总结索引; question-问题索引; image-图片索引 dataId String 关联的向量ID,变更数据时候传入该 ID,会进行差量更新,而不是全量更新 text String 文本内容 ✅
type 不填则默认为 custom 索引,还会基于 q/a 组成一个默认索引。如果传入了默认索引,则不会额外创建。
为集合批量添加添加数据 link 注意,每次最多推送 200 组数据。
Data结构
字段 类型 说明 必填 teamId String 团队ID ✅ tmbId String 成员ID ✅ datasetId String 知识库ID ✅ collectionId String 集合ID ✅ q String 主要数据 ✅ a String 辅助数据 ✖ fullTextToken String 分词 ✖ indexes Index[] 向量索引 ✅ updateTime Date 更新时间 ✅ chunkIndex Number 分块下表 ✖
Index结构
每组数据的自定义索引最多5个
字段 类型 说明 必填 type String 可选索引类型:default-默认索引; custom-自定义索引; summary-总结索引; question-问题索引; image-图片索引 dataId String 关联的向量ID,变更数据时候传入该 ID,会进行差量更新,而不是全量更新 text String 文本内容 ✅
type 不填则默认为 custom 索引,还会基于 q/a 组成一个默认索引。如果传入了默认索引,则不会额外创建。
为集合批量添加添加数据 link 注意,每次最多推送 200 组数据。
curl --location --request POST 'https://api.fastgpt.in/api/core/dataset/data/pushData' \
--header 'Authorization: Bearer apikey' \
--header 'Content-Type: application/json' \
@@ -546,7 +546,7 @@ Table of Contents
collectionId: 集合ID(必填) trainingType:训练模式(必填) prompt: 自定义 QA 拆分提示词,需严格按照模板,建议不要传入。(选填) data:(具体数据)q: 主要数据(必填) a: 辅助数据(选填) indexes: 自定义索引(选填)。可以不传或者传空数组,默认都会使用q和a组成一个索引。
collectionId: 集合ID(必填) trainingType:训练模式(必填) prompt: 自定义 QA 拆分提示词,需严格按照模板,建议不要传入。(选填) data:(具体数据)q: 主要数据(必填) a: 辅助数据(选填) indexes: 自定义索引(选填)。可以不传或者传空数组,默认都会使用q和a组成一个索引。
{
"code": 200,
"statusText": "",
@@ -557,7 +557,7 @@ Table of Contents {{theme}} 里的内容可以换成数据的主题。默认为:它们可能包含多个主题内容
{{theme}} 里的内容可以换成数据的主题。默认为:它们可能包含多个主题内容
我会给你一段文本,{{theme}},学习它们,并整理学习成果,要求为:
1. 提出最多 25 个问题。
2. 给出每个问题的答案。
@@ -571,9 +571,9 @@ A2:
……
我的文本:"""{{text}}"""
- 获取集合的数据列表 link 获取集合的数据列表 link 4.8.11+
curl --location --request POST 'http://localhost:3000/api/core/dataset/data/v2/list' \
--header 'Authorization: Bearer {{authorization}}' \
--header 'Content-Type: application/json' \
@@ -593,7 +593,7 @@ A2:
"collectionId":"65abd4ac9d1448617cba6171",
"searchText":""
}'
-
offset: 偏移量(选填) pageSize: 每页数量,最大30(选填) collectionId: 集合的ID(必填) searchText: 模糊搜索词(选填)
offset: 偏移量(选填) pageSize: 每页数量,最大30(选填) collectionId: 集合的ID(必填) searchText: 模糊搜索词(选填)
{
"code": 200,
"statusText": "",
@@ -620,12 +620,12 @@ A2:
"total": 63
}
}
- 获取单条数据详情 link 获取单条数据详情 link
curl --location --request GET 'http://localhost:3000/api/core/dataset/data/detail?id=65abd4b29d1448617cba61db' \
--header 'Authorization: Bearer {{authorization}}' \
-
{
"code": 200,
"statusText": "",
@@ -651,9 +651,9 @@ A2:
"canWrite": true
}
}
-
curl --location --request PUT 'http://localhost:3000/api/core/dataset/data/update' \
--header 'Authorization: Bearer {{authorization}}' \
--header 'Content-Type: application/json' \
@@ -678,28 +678,28 @@ A2:
}
]
}'
-
dataId: 数据的id q: 主要数据(选填) a: 辅助数据(选填) indexes: 自定义索引(选填),类型参考为集合批量添加添加数据。如果创建时候有自定义索引,
dataId: 数据的id q: 主要数据(选填) a: 辅助数据(选填) indexes: 自定义索引(选填),类型参考为集合批量添加添加数据。如果创建时候有自定义索引,
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
-
curl --location --request DELETE 'http://localhost:3000/api/core/dataset/data/delete?id=65abd4b39d1448617cba624d' \
--header 'Authorization: Bearer {{authorization}}' \
-
{
"code": 200,
"statusText": "",
"message": "",
"data": "success"
}
-
curl --location --request POST 'https://api.fastgpt.in/api/core/dataset/searchTest' \
--header 'Authorization: Bearer fastgpt-xxxxx' \
--header 'Content-Type: application/json' \
@@ -715,7 +715,7 @@ A2:
"datasetSearchExtensionModel": "gpt-4o-mini",
"datasetSearchExtensionBg": ""
}'
-
datasetId - 知识库ID text - 需要测试的文本 limit - 最大 tokens 数量 similarity - 最低相关度(0~1,可选) searchMode - 搜索模式:embedding | fullTextRecall | mixedRecall usingReRank - 使用重排 datasetSearchUsingExtensionQuery - 使用问题优化 datasetSearchExtensionModel - 问题优化模型 datasetSearchExtensionBg - 问题优化背景描述 返回 top k 结果, limit 为最大 Tokens 数量,最多 20000 tokens。
datasetId - 知识库ID text - 需要测试的文本 limit - 最大 tokens 数量 similarity - 最低相关度(0~1,可选) searchMode - 搜索模式:embedding | fullTextRecall | mixedRecall usingReRank - 使用重排 datasetSearchUsingExtensionQuery - 使用问题优化 datasetSearchExtensionModel - 问题优化模型 datasetSearchExtensionBg - 问题优化背景描述 返回 top k 结果, limit 为最大 Tokens 数量,最多 20000 tokens。
{
"code": 200,
"statusText": "",
diff --git a/docs/development/openapi/share/index.html b/docs/development/openapi/share/index.html
index 8619f7422..958636ebc 100644
--- a/docs/development/openapi/share/index.html
+++ b/docs/development/openapi/share/index.html
@@ -43,43 +43,43 @@ Table of Contents FastGPT 将会判断success是否为true决定是允许用户继续操作。message与msg是等同的,你可以选择返回其中一个,当success不为true时,将会提示这个错误。
uid是用户的唯一凭证,将会用于拉取对话记录以及保存对话记录。可参考下方实践案例。
1. 配置身份校验地址 link
配置校验地址后,在每次分享链接使用时,都会向对应的地址发起校验和上报请求。
2. 分享链接中增加额外 query link 在分享链接的地址中,增加一个额外的参数: authToken。例如:
原始的链接:https://share.tryfastgpt.ai/chat/share?shareId=648aaf5ae121349a16d62192
完整链接: https://share.tryfastgpt.ai/chat/share?shareId=648aaf5ae121349a16d62192&authToken=userid12345
这个authToken通常是你系统生成的用户唯一凭证(Token之类的)。FastGPT 会在鉴权接口的body中携带 token={{authToken}} 的参数。
3. 编写聊天初始化校验接口 link FastGPT 将会判断success是否为true决定是允许用户继续操作。message与msg是等同的,你可以选择返回其中一个,当success不为true时,将会提示这个错误。
uid是用户的唯一凭证,将会用于拉取对话记录以及保存对话记录。可参考下方实践案例。
1. 配置身份校验地址 link
配置校验地址后,在每次分享链接使用时,都会向对应的地址发起校验和上报请求。
2. 分享链接中增加额外 query link 在分享链接的地址中,增加一个额外的参数: authToken。例如:
原始的链接:https://share.tryfastgpt.ai/chat/share?shareId=648aaf5ae121349a16d62192
完整链接: https://share.tryfastgpt.ai/chat/share?shareId=648aaf5ae121349a16d62192&authToken=userid12345
这个authToken通常是你系统生成的用户唯一凭证(Token之类的)。FastGPT 会在鉴权接口的body中携带 token={{authToken}} 的参数。
3. 编写聊天初始化校验接口 link
curl --location --request POST '{{host}}/shareAuth/init' \
--header 'Content-Type: application/json' \
--data-raw '{
"token": "{{authToken}}"
}'
-
{
"success": true,
"data": {
"uid": "用户唯一凭证"
}
}
- 系统会拉取该分享链接下,uid 为 username123 的对话记录。
系统会拉取该分享链接下,uid 为 username123 的对话记录。
{
"success": false,
"message": "身份错误",
}
- 4. 编写对话前校验接口 link 4. 编写对话前校验接口 link
curl --location --request POST '{{host}}/shareAuth/start' \
--header 'Content-Type: application/json' \
--data-raw '{
"token": "{{authToken}}",
"question": "用户问题",
}'
-
{
"success": true,
"data": {
"uid": "用户唯一凭证"
}
}
-
{
"success": false,
"message": "身份验证失败",
@@ -202,9 +202,9 @@ Table of Contents 我们以Laf作为服务器为例 ,简单展示这 3 个接口的使用方式。
1. 创建3个Laf接口 link
这个接口中,我们设置了token必须等于fastgpt才能通过校验。(实际生产中不建议固定写死)
我们以Laf作为服务器为例 ,简单展示这 3 个接口的使用方式。
1. 创建3个Laf接口 link
这个接口中,我们设置了token必须等于fastgpt才能通过校验。(实际生产中不建议固定写死)
import cloud from '@lafjs/cloud'
export default async function (ctx: FunctionContext) {
@@ -217,7 +217,7 @@ export default async function (ctx: FunctionContext) {
return { success: false,message:"身份错误" }
}
- 这个接口中,我们设置了token必须等于fastgpt才能通过校验。并且如果问题中包含了你字,则会报错,用于模拟敏感校验。
这个接口中,我们设置了token必须等于fastgpt才能通过校验。并且如果问题中包含了你字,则会报错,用于模拟敏感校验。
import cloud from '@lafjs/cloud'
export default async function (ctx: FunctionContext) {
@@ -235,7 +235,7 @@ export default async function (ctx: FunctionContext) {
return { success: true, data: { uid: "user1" } }
}
- 结果上报接口可自行进行逻辑处理。
import cloud from '@lafjs/cloud'
export default async function (ctx: FunctionContext) {
diff --git a/docs/development/upgrading/497/index.html b/docs/development/upgrading/497/index.html
index 4683ff831..5965a7033 100644
--- a/docs/development/upgrading/497/index.html
+++ b/docs/development/upgrading/497/index.html
@@ -34,7 +34,7 @@ FAQ
-Table of Contents
upgrade
V4.9.7(进行中) FastGPT V4.9.7 更新说明
MCP 工具支持 HTTP Streamable 协议。 MCP server 支持编辑工具名,适配部分客户端不支持中文名问题。 工作流右键可自动对齐节点。 支持生产环境自定义config.json路径。 API 调用,支持传递一个特殊 chatId(NO_RECORD_HISTORIES),使得系统不会进行历史记录存储。 支持 Rerank 模型按量计费。 套餐兑换码功能 支付宝支付 Doc2x 文档解析,增加报错信息捕获,增加超时时长。 调整 PG vector 查询语句,强制使用向量索引。 对话时间统计,准确返回工作流整体运行时间。 从 ai_proxy 获取音频解析时长。 AI 模型 Token 值均优先采用 API usage,确保 tokens 值准确,若为空,则再采用 GPT3.5 的估算方式。 文件上传分块大小限制,避免超出 MongoDB 限制。 使用记录仪表盘,无法获取指定成员的使用统计。 仪表盘接口,因未考虑时区问题,统计异常。 LLM 模型测试接口,无法测试未启用的 LLM。同时修复,模型测试接口会把模型自定义请求地址去除问题。 Copy app 权限问题。 导出对话记录,限制单条对话记录消息上限 1000 组,避免导出失败。 工作流变量下一段文本仍是工作流变量,不触发渲染。 调试知识库检索模块,提示无权操作知识库。 文本内容提取节点,默认值赋值逻辑。 分享链接中,会强制返回嵌套应用中的引用内容。 知识库集合元数据过滤时,不同知识库的同名标签使用 $and 筛选无法获取结果。 © 2025 the FastGPT Authors.
云操作系统 Sealos
+Table of Contents
upgrade
V4.9.7(进行中) FastGPT V4.9.7 更新说明
知识库回答时,回答段落末尾增加引用。 MCP 工具支持 HTTP Streamable 协议。 MCP server 支持编辑工具名,适配部分客户端不支持中文名问题。 工作流右键可自动对齐节点。 支持生产环境自定义config.json路径。 API 调用,支持传递一个特殊 chatId(NO_RECORD_HISTORIES),使得系统不会进行历史记录存储。 支持 Rerank 模型按量计费。 套餐兑换码功能。 支付宝支付。 短链数据埋点。 新增 Jina AI 模型系统配置。 Doc2x 文档解析,增加报错信息捕获,增加超时时长。 调整 PG vector 查询语句,强制使用向量索引。 对话时间统计,准确返回工作流整体运行时间。 从 ai_proxy 获取音频解析时长。 AI 模型 Token 值均优先采用 API usage,确保 tokens 值准确,若为空,则再采用 GPT3.5 的估算方式。 文件上传分块大小限制,避免超出 MongoDB 限制。 使用记录仪表盘,无法获取指定成员的使用统计。 仪表盘接口,因未考虑时区问题,统计异常。 LLM 模型测试接口,无法测试未启用的 LLM。同时修复,模型测试接口会把模型自定义请求地址去除问题。 Copy app 权限问题。 导出对话记录,限制单条对话记录消息上限 1000 组,避免导出失败。 工作流变量下一段文本仍是工作流变量,不触发渲染。 调试知识库检索模块,提示无权操作知识库。 文本内容提取节点,默认值赋值逻辑。 分享链接中,会强制返回嵌套应用中的引用内容。 知识库集合元数据过滤时,不同知识库的同名标签使用 $and 筛选无法获取结果。
diff --git a/docs/development/upgrading/index.xml b/docs/development/upgrading/index.xml
index beae4985b..03574cd28 100644
--- a/docs/development/upgrading/index.xml
+++ b/docs/development/upgrading/index.xml
@@ -9,7 +9,7 @@ docker-compose pull docker-compose up -d 执行升级初始化脚本 link镜像
QA link为什么需要执行升级脚本 link数据表出现大幅度变更,无法通过设置默认值,或复杂度较高时,会通过升级脚本来更新部分数据表字段。 严格按初始化步骤进行操作,不会造成旧数据丢失。但在初始化过程中,如果数据量大,需要初始化的时间较长,这段时间可能会造成服务无法正常使用。
{{host}} 是什么 link{{}} 代表变量, {{host}}代表一个名为 host 的变量。指的是你服务器的域名或 IP。
Sealos 中,你可以在下图中找到你的域名:
-如何获取 rootkey link从docker-compose.yml中的environment中获取,对应的是ROOT_KEY的值。
V4.9.7(进行中) https://doc.tryfastgpt.ai/docs/development/upgrading/497/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/497/ 🚀 新增内容 link MCP 工具支持 HTTP Streamable 协议。 MCP server 支持编辑工具名,适配部分客户端不支持中文名问题。 工作流右键可自动对齐节点。 支持生产环境自定义config.json路径。 API 调用,支持传递一个特殊 chatId(NO_RECORD_HISTORIES),使得系统不会进行历史记录存储。 支持 Rerank 模型按量计费。 套餐兑换码功能 支付宝支付 ⚙️ 优化 link Doc2x 文档解析,增加报错信息捕获,增加超时时长。 调整 PG vector 查询语句,强制使用向量索引。 对话时间统计,准确返回工作流整体运行时间。 从 ai_proxy 获取音频解析时长。 AI 模型 Token 值均优先采用 API usage,确保 tokens 值准确,若为空,则再采用 GPT3.5 的估算方式。 🐛 修复 link 文件上传分块大小限制,避免超出 MongoDB 限制。 使用记录仪表盘,无法获取指定成员的使用统计。 仪表盘接口,因未考虑时区问题,统计异常。 LLM 模型测试接口,无法测试未启用的 LLM。同时修复,模型测试接口会把模型自定义请求地址去除问题。 Copy app 权限问题。 导出对话记录,限制单条对话记录消息上限 1000 组,避免导出失败。 工作流变量下一段文本仍是工作流变量,不触发渲染。 调试知识库检索模块,提示无权操作知识库。 文本内容提取节点,默认值赋值逻辑。 分享链接中,会强制返回嵌套应用中的引用内容。 知识库集合元数据过滤时,不同知识库的同名标签使用 $and 筛选无法获取结果。 V4.9.6 https://doc.tryfastgpt.ai/docs/development/upgrading/496/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/496/ 🚀 新增内容 link 以 MCP 方式对外提供应用调用。 支持以 MCP SSE 协议创建工具。 批量执行节点支持交互节点,可实现每一轮循环都人工参与。 增加工作台二级菜单,合并工具箱。 增加 grok3、GPT4.1、o系列、Gemini2.5 模型系统配置。 ⚙️ 优化 link 工作流数据类型转化鲁棒性和兼容性增强。 Python sandbox 代码,支持大数据输入。 路径组件支持配置最后一步是否可点击。 知识库工具调用结果,自动补充图片域名。 Github action runner 升级成 unbuntu24 去除飞书、公众号等三方渠道,回复时,可能前后多一个换行的问题。 调整分块策略,大表格时,不进行超大块合并,而是独立拆块。 Iframe 嵌套组件,内置允许麦克风声明。 🐛 修复 link 修复子工作流包含交互节点时,未成功恢复子工作流所有数据。 completion v1 接口,未接受 interactive 参数,导致 API 调用失败。 连续工具调用,上下文截断异常 升级指南 link1. 做好数据备份 link2. 部署 MCP server 服务 linkDocker 部署 link在docker-compose.yml文件中,加入fastgpt-mcp-server服务:
+如何获取 rootkey link从docker-compose.yml中的environment中获取,对应的是ROOT_KEY的值。 V4.9.7(进行中) https://doc.tryfastgpt.ai/docs/development/upgrading/497/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/497/ 🚀 新增内容 link 知识库回答时,回答段落末尾增加引用。 MCP 工具支持 HTTP Streamable 协议。 MCP server 支持编辑工具名,适配部分客户端不支持中文名问题。 工作流右键可自动对齐节点。 支持生产环境自定义config.json路径。 API 调用,支持传递一个特殊 chatId(NO_RECORD_HISTORIES),使得系统不会进行历史记录存储。 支持 Rerank 模型按量计费。 套餐兑换码功能。 支付宝支付。 短链数据埋点。 新增 Jina AI 模型系统配置。 ⚙️ 优化 link Doc2x 文档解析,增加报错信息捕获,增加超时时长。 调整 PG vector 查询语句,强制使用向量索引。 对话时间统计,准确返回工作流整体运行时间。 从 ai_proxy 获取音频解析时长。 AI 模型 Token 值均优先采用 API usage,确保 tokens 值准确,若为空,则再采用 GPT3.5 的估算方式。 🐛 修复 link 文件上传分块大小限制,避免超出 MongoDB 限制。 使用记录仪表盘,无法获取指定成员的使用统计。 仪表盘接口,因未考虑时区问题,统计异常。 LLM 模型测试接口,无法测试未启用的 LLM。同时修复,模型测试接口会把模型自定义请求地址去除问题。 Copy app 权限问题。 导出对话记录,限制单条对话记录消息上限 1000 组,避免导出失败。 工作流变量下一段文本仍是工作流变量,不触发渲染。 调试知识库检索模块,提示无权操作知识库。 文本内容提取节点,默认值赋值逻辑。 分享链接中,会强制返回嵌套应用中的引用内容。 知识库集合元数据过滤时,不同知识库的同名标签使用 $and 筛选无法获取结果。 V4.9.6 https://doc.tryfastgpt.ai/docs/development/upgrading/496/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/496/ 🚀 新增内容 link 以 MCP 方式对外提供应用调用。 支持以 MCP SSE 协议创建工具。 批量执行节点支持交互节点,可实现每一轮循环都人工参与。 增加工作台二级菜单,合并工具箱。 增加 grok3、GPT4.1、o系列、Gemini2.5 模型系统配置。 ⚙️ 优化 link 工作流数据类型转化鲁棒性和兼容性增强。 Python sandbox 代码,支持大数据输入。 路径组件支持配置最后一步是否可点击。 知识库工具调用结果,自动补充图片域名。 Github action runner 升级成 unbuntu24 去除飞书、公众号等三方渠道,回复时,可能前后多一个换行的问题。 调整分块策略,大表格时,不进行超大块合并,而是独立拆块。 Iframe 嵌套组件,内置允许麦克风声明。 🐛 修复 link 修复子工作流包含交互节点时,未成功恢复子工作流所有数据。 completion v1 接口,未接受 interactive 参数,导致 API 调用失败。 连续工具调用,上下文截断异常 升级指南 link1. 做好数据备份 link2. 部署 MCP server 服务 linkDocker 部署 link在docker-compose.yml文件中,加入fastgpt-mcp-server服务:
fastgpt-mcp-server: container_name: fastgpt-mcp-server image: ghcr.io/labring/fastgpt-mcp_server:v4.9.6 ports: - 3005:3000 networks: - fastgpt restart: always environment: - FASTGPT_ENDPOINT=http://fastgpt:3000 Sealos 部署 link直接在应用管理中,增加一个fastgpt-mcp-server应用,镜像为ghcr. V4.9.5 https://doc.tryfastgpt.ai/docs/development/upgrading/495/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/495/ 升级指南 link1. 做好数据备份 link2. 更新镜像 tag link 更新 FastGPT 镜像 tag: v4.9.5 更新 FastGPT 商业版镜像 tag: v4.9.5 Sandbox 无需更新 AIProxy 无需更新 🚀 新增内容 link 团队成员权限细分,可分别控制是否可创建在根目录应用/知识库以及 API Key 支持交互节点在嵌套工作流中使用。 团队成员操作日志。 用户输入节点支持多选框。 ⚙️ 优化 link 繁体中文翻译。 Arm 镜像打包 🐛 修复 link password 检测规则错误。 分享链接无法隐藏知识库检索结果。 IOS 低版本正则兼容问题。 修复问答提取队列错误后,计数器未清零问题,导致问答提取队列失效。 Debug 模式交互节点下一步可能造成死循环。 V4.9.4 https://doc.tryfastgpt.ai/docs/development/upgrading/494/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/494/ 升级指南 link1. 做好数据备份 link2. 安装 Redis link docker 部署的用户,参考最新的 docker-compose.yml 文件增加 Redis 配置。增加一个 redis 容器,并配置fastgpt,fastgpt-pro的环境变量,增加 REDIS_URL 环境变量。 Sealos 部署的用户,在数据库里新建一个redis数据库,并复制内网地址的 connection 作为 redis 的链接串。然后配置fastgpt,fastgpt-pro的环境变量,增加 REDIS_URL 环境变量。 3. 更新镜像 tag link 更新 FastGPT 镜像 tag: v4.9.4 更新 FastGPT 商业版镜像 tag: v4.9.4 Sandbox 无需更新 AIProxy 无需更新 4. 执行升级脚本 link该脚本仅需商业版用户执行。
从任意终端,发起 1 个 HTTP 请求。其中 {{rootkey}} 替换成环境变量里的 rootkey;{{host}} 替换成FastGPT 域名。
curl --location --request POST 'https://{{host}}/api/admin/initv494' \ --header 'rootkey: {{rootkey}}' \ --header 'Content-Type: application/json' 脚本功能 V4.9.3 https://doc.tryfastgpt.ai/docs/development/upgrading/493/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/493/ 更新指南 link1. 做好数据库备份 link2. 更新镜像 link 更新 FastGPT 镜像 tag: v4.9.3 更新 FastGPT 商业版镜像 tag: v4.9.3 Sandbox 镜像tag: v4.9.3 AIProxy 镜像tag: v0.1.5 🚀 新增内容 link 工作流 debug 模式支持交互节点。 代码运行支持 Python3 代码。 🐛 修复 link 工作流格式转化异常。 V4.9.2 https://doc.tryfastgpt.ai/docs/development/upgrading/492/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/492/ 更新指南 link可直接升级v4.9.3,v4.9.2存在一个工作流数据类型转化错误。
diff --git a/docs/guide/admin/sso/index.html b/docs/guide/admin/sso/index.html
index 67698908c..3013952f2 100644
--- a/docs/guide/admin/sso/index.html
+++ b/docs/guide/admin/sso/index.html
@@ -176,12 +176,12 @@ Table of Contents 以下是 FastGPT-pro 中,SSO 和成员同步的标准接口文档,如果需要对接非标准系统,可以参考该章节进行开发。
FastGPT 提供如下标准接口支持:
https://example.com/login/oauth/getAuthURL 获取鉴权重定向地址https://example.com/login/oauth/getUserInfo?code=xxxxx 消费 code,换取用户信息https://example.com/org/list 获取组织列表https://example.com/user/list 获取成员列表获取 SSO 登录重定向地址 link 返回一个重定向登录地址,fastgpt 会自动重定向到该地址。redirect_uri 会自动拼接到该地址的 query中。
以下是 FastGPT-pro 中,SSO 和成员同步的标准接口文档,如果需要对接非标准系统,可以参考该章节进行开发。
FastGPT 提供如下标准接口支持:
https://example.com/login/oauth/getAuthURL 获取鉴权重定向地址https://example.com/login/oauth/getUserInfo?code=xxxxx 消费 code,换取用户信息https://example.com/org/list 获取组织列表https://example.com/user/list 获取成员列表获取 SSO 登录重定向地址 link 返回一个重定向登录地址,fastgpt 会自动重定向到该地址。redirect_uri 会自动拼接到该地址的 query中。
curl -X GET "https://redict.example/login/oauth/getAuthURL?redirect_uri=xxx&state=xxxx" \
-H "Authorization: Bearer your_token_here" \
-H "Content-Type: application/json"
- 成功:
{
"success": true,
"message": "",
@@ -193,12 +193,12 @@ Table of Contents SSO 获取用户信息 link 该接口接受一个 code 参数作为鉴权,消费 code 返回用户信息。
SSO 获取用户信息 link 该接口接受一个 code 参数作为鉴权,消费 code 返回用户信息。
curl -X GET "https://oauth.example/login/oauth/getUserInfo?code=xxxxxx" \
-H "Authorization: Bearer your_token_here" \
-H "Content-Type: application/json"
- 成功:
{
"success": true,
"message": "",
@@ -215,12 +215,12 @@ Table of Contents
curl -X GET "https://example.com/org/list" \
-H "Authorization: Bearer your_token_here" \
-H "Content-Type: application/json"
- ⚠️注意:只能存在一个根部门。如果你的系统中存在多个根部门,需要先进行处理,加一个虚拟的根部门。返回值类型:
⚠️注意:只能存在一个根部门。如果你的系统中存在多个根部门,需要先进行处理,加一个虚拟的根部门。返回值类型:
type OrgListResponseType = {
message?: string; // 报错信息
success: boolean;
@@ -247,12 +247,12 @@ Table of Contents
curl -X GET "https://example.com/user/list" \
-H "Authorization: Bearer your_token_here" \
-H "Content-Type: application/json"
- 返回值类型:
type UserListResponseListType = {
message?: string; // 报错信息
success: boolean;
diff --git a/docs/guide/dashboard/workflow/http/index.html b/docs/guide/dashboard/workflow/http/index.html
index 2c93dc80b..abed4992e 100644
--- a/docs/guide/dashboard/workflow/http/index.html
+++ b/docs/guide/dashboard/workflow/http/index.html
@@ -34,9 +34,9 @@ FAQ
-Table of Contents
http
HTTP 请求 FastGPT HTTP 模块介绍
HTTP 模块会向对应的地址发送一个 HTTP 请求,实际操作与 Postman 和 ApiFox 这类直流工具使用差不多。
Params 为路径请求参数,GET请求中用的居多。 Body 为请求体,POST/PUT请求中用的居多。 Headers 为请求头,用于传递一些特殊的信息。 自定义变量中可以接收前方节点的输出作为变量 3 种数据中均可以通过 {{}} 来引用变量。 url 也可以通过 {{}} 来引用变量。 变量来自于全局变量、系统变量、前方节点输出 你可以将鼠标放置在请求参数旁边的问号中,里面会提示你可用的变量。
appId: 应用的ID chatId: 当前对话的ID,测试模式下不存在。 responseChatItemId: 当前对话中,响应的消息ID,测试模式下不存在。 variables: 当前对话的全局变量。 cTime: 当前时间。 histories: 历史记录(默认最多取10条,无法修改长度) 不多描述,使用方法和Postman, ApiFox 基本一致。
可通过 {{key}} 来引入变量。例如:
key value appId {{appId}} Authorization Bearer {{token}}
只有特定请求类型下会生效。
可以写一个自定义的 Json,并通过 {{key}} 来引入变量。例如:
http
HTTP 请求 FastGPT HTTP 模块介绍
HTTP 模块会向对应的地址发送一个 HTTP 请求,实际操作与 Postman 和 ApiFox 这类直流工具使用差不多。
Params 为路径请求参数,GET请求中用的居多。 Body 为请求体,POST/PUT请求中用的居多。 Headers 为请求头,用于传递一些特殊的信息。 自定义变量中可以接收前方节点的输出作为变量 3 种数据中均可以通过 {{}} 来引用变量。 url 也可以通过 {{}} 来引用变量。 变量来自于全局变量、系统变量、前方节点输出 你可以将鼠标放置在请求参数旁边的问号中,里面会提示你可用的变量。
appId: 应用的ID chatId: 当前对话的ID,测试模式下不存在。 responseChatItemId: 当前对话中,响应的消息ID,测试模式下不存在。 variables: 当前对话的全局变量。 cTime: 当前时间。 histories: 历史记录(默认最多取10条,无法修改长度) 不多描述,使用方法和Postman, ApiFox 基本一致。
可通过 {{key}} 来引入变量。例如:
key value appId {{appId}} Authorization Bearer {{token}}
只有特定请求类型下会生效。
可以写一个自定义的 Json,并通过 {{key}} 来引入变量。例如:
{
"string": "字符串",
"number": 123,
@@ -47,7 +47,7 @@ Table of Contents 注意,在 Body 中,你如果引用字符串,则需要加上"",例如:"{{string}}"。
注意,在 Body 中,你如果引用字符串,则需要加上"",例如:"{{string}}"。
{
"string": "{{string}}",
"token": "Bearer {{string}}",
@@ -57,7 +57,7 @@ Table of Contents
{
"string": "字符串",
"token": "Bearer 字符串",
@@ -70,8 +70,8 @@ Table of Contents 从图中可以看出,FastGPT可以添加多个返回值,这个返回值并不代表接口的返回值,而是代表如何解析接口返回值,可以通过 JSON path 的语法,来提取接口响应的值。
语法可以参考: https://github.com/JSONPath-Plus/JSONPath?tab=readme-ov-file
从图中可以看出,FastGPT可以添加多个返回值,这个返回值并不代表接口的返回值,而是代表如何解析接口返回值,可以通过 JSON path 的语法,来提取接口响应的值。
语法可以参考: https://github.com/JSONPath-Plus/JSONPath?tab=readme-ov-file
{
"message": "测试",
"data":{
@@ -89,7 +89,7 @@ Table of Contents
{
"$.message": "测试",
"$.data.user": { "name": "xxx", "age": 12 },
diff --git a/docs/guide/knowledge_base/api_dataset/index.html b/docs/guide/knowledge_base/api_dataset/index.html
index f9ae5f8f2..8815fc4cf 100644
--- a/docs/guide/knowledge_base/api_dataset/index.html
+++ b/docs/guide/knowledge_base/api_dataset/index.html
@@ -50,8 +50,8 @@ type FileListItem = {
updateTime: Date;
createTime: Date;
}
- 1. 获取文件树 link
parentId - 父级 id,可选,或者 null。 searchKey - 检索词,可选 1. 获取文件树 link
parentId - 父级 id,可选,或者 null。 searchKey - 检索词,可选
curl --location --request POST '{{baseURL}}/v1/file/list' \
--header 'Authorization: Bearer {{authorization}}' \
--header 'Content-Type: application/json' \
@@ -59,7 +59,7 @@ type FileListItem = {
"parentId": null,
"searchKey": ""
}'
-
{
"code": 200,
"success": true,
@@ -75,12 +75,12 @@ type FileListItem = {
}
]
}
- 2. 获取单个文件内容(文本内容或访问链接) link 2. 获取单个文件内容(文本内容或访问链接) link
curl --location --request GET '{{baseURL}}/v1/file/content?id=xx' \
--header 'Authorization: Bearer {{authorization}}'
-
{
"code": 200,
"success": true,
@@ -91,11 +91,11 @@ type FileListItem = {
"previewUrl": "xxxx"
}
}
-
title - 文件标题。 content - 文件内容,直接拿来用。 previewUrl - 文件链接,系统会请求该地址获取文件内容。 content和previewUrl二选一返回,如果同时返回则 content 优先级更高,返回 previewUrl时,则会访问该链接进行文档内容读取。
3. 获取文件阅读链接(用于查看原文) link id 为文件的 id。
title - 文件标题。 content - 文件内容,直接拿来用。 previewUrl - 文件链接,系统会请求该地址获取文件内容。 content和previewUrl二选一返回,如果同时返回则 content 优先级更高,返回 previewUrl时,则会访问该链接进行文档内容读取。
3. 获取文件阅读链接(用于查看原文) link id 为文件的 id。
curl --location --request GET '{{baseURL}}/v1/file/read?id=xx' \
--header 'Authorization: Bearer {{authorization}}'
-
{
"code": 200,
"success": true,
diff --git a/docs/use-cases/external-integration/dingtalk/index.html b/docs/use-cases/external-integration/dingtalk/index.html
index d5f06d2c1..e1ea597ad 100644
--- a/docs/use-cases/external-integration/dingtalk/index.html
+++ b/docs/use-cases/external-integration/dingtalk/index.html
@@ -33,8 +33,8 @@ FAQ
-Table of Contents
chat
接入钉钉机器人教程 FastGPT 接入钉钉机器人教程
从 4.8.16 版本起,FastGPT 商业版支持直接接入钉钉机器人,无需额外的 API。
1. 创建钉钉企业内部应用 link 在钉钉开发者后台 创建企业内部应用。
获取Client ID 和Client Secret 。
2. 为 FastGPT 添加发布渠道 link 在 FastGPT 中选择要接入的应用,在发布渠道 页面,新建一个接入钉钉机器人的发布渠道。
将前面拿到的 Client ID 和 Client Secret 填入配置弹窗中。
创建完成后,点击请求地址 按钮,然后复制回调地址。
3. 为应用添加机器人 应用能力。 link 在钉钉开发者后台,点击左侧添加应用能力 ,为刚刚创建的企业内部应用添加 机器人 应用能力。
4. 配置机器人回调地址 link 点击左侧机器人 应用能力,然后将底部消息接受模式 设置为HTTP模式 ,消息接收地址填入前面复制的 FastGPT 的回调地址。
调试完成后,点击发布 。
机器人发布后,还需要在版本管理与发布 页面发布应用版本。
点击创建新版本 后,设置版本号和版本描述后点击保存发布即可。
应用发布后,即可在钉钉企业中使用机器人功能,可对机器人私聊。或者在群组添加机器人后@机器人,触发对话。
© 2025 the FastGPT Authors.
云操作系统 Sealos
+
+Table of Contents
chat
接入钉钉机器人教程 FastGPT 接入钉钉机器人教程
从 4.8.16 版本起,FastGPT 商业版支持直接接入钉钉机器人,无需额外的 API。
1. 创建钉钉企业内部应用 link 在钉钉开发者后台 创建企业内部应用。
获取Client ID 和Client Secret 。
2. 为 FastGPT 添加发布渠道 link 在 FastGPT 中选择要接入的应用,在发布渠道 页面,新建一个接入钉钉机器人的发布渠道。
将前面拿到的 Client ID 和 Client Secret 填入配置弹窗中。
创建完成后,点击请求地址 按钮,然后复制回调地址。
3. 为应用添加机器人 应用能力。 link 在钉钉开发者后台,点击左侧添加应用能力 ,为刚刚创建的企业内部应用添加 机器人 应用能力。
4. 配置机器人回调地址 link 点击左侧机器人 应用能力,然后将底部消息接受模式 设置为HTTP模式 ,消息接收地址填入前面复制的 FastGPT 的回调地址。
调试完成后,点击发布 。
机器人发布后,还需要在版本管理与发布 页面发布应用版本。
点击创建新版本 后,设置版本号和版本描述后点击保存发布即可。
应用发布后,即可在钉钉企业中使用机器人功能,可对机器人私聊。或者在群组添加机器人后@机器人,触发对话。
如何新开一个聊天记录 link 如果你想重置你的聊天记录,可以给机器人发送 Reset 消息(注意大小写),机器人会新开一个聊天记录。
diff --git a/docs/use-cases/external-integration/feishu/index.html b/docs/use-cases/external-integration/feishu/index.html
index 1ac1681f6..0239cff75 100644
--- a/docs/use-cases/external-integration/feishu/index.html
+++ b/docs/use-cases/external-integration/feishu/index.html
@@ -33,10 +33,10 @@ FAQ
-Table of Contents
chat
接入飞书机器人教程 FastGPT 接入飞书机器人教程
从 4.8.10 版本起,FastGPT 商业版支持直接接入飞书机器人,无需额外的 API。
1. 申请飞书应用 link 开一个免费的测试企业更方便进行调试。
在飞书开放平台 的开发者后台申请企业自建应用。
添加一个机器人 应用。
2. 在 FastGPT 新建发布渠道 link 在fastgpt中选择想要接入的应用,在 发布渠道 页面,新建一个接入飞书机器人的发布渠道,填写好基础信息。
3. 获取应用的 App ID, App Secret 两个凭证 link 在飞书开放平台开发者后台,刚刚创建的企业自建应用中,找到 App ID 和 App Secret,填入 FastGPT 新建发布渠道的对话框里面。
填入两个参数到 FastGPT 配置弹窗中。
(可选)在飞书开放平台开发者后台,点击事件与回调 -> 加密策略 获取 Encrypt Key,并填入飞书机器人接入的对话框里面
Encrypt Key 用于加密飞书服务器与 FastGPT 之间通信。
+
+Table of Contents
chat
接入飞书机器人教程 FastGPT 接入飞书机器人教程
从 4.8.10 版本起,FastGPT 商业版支持直接接入飞书机器人,无需额外的 API。
1. 申请飞书应用 link 开一个免费的测试企业更方便进行调试。
在飞书开放平台 的开发者后台申请企业自建应用。
添加一个机器人 应用。
2. 在 FastGPT 新建发布渠道 link 在fastgpt中选择想要接入的应用,在 发布渠道 页面,新建一个接入飞书机器人的发布渠道,填写好基础信息。
3. 获取应用的 App ID, App Secret 两个凭证 link 在飞书开放平台开发者后台,刚刚创建的企业自建应用中,找到 App ID 和 App Secret,填入 FastGPT 新建发布渠道的对话框里面。
填入两个参数到 FastGPT 配置弹窗中。
(可选)在飞书开放平台开发者后台,点击事件与回调 -> 加密策略 获取 Encrypt Key,并填入飞书机器人接入的对话框里面
Encrypt Key 用于加密飞书服务器与 FastGPT 之间通信。
建议如果使用 Https 协议,则不需要 Encrypt Key。如果使用 Http 协议通信,则建议使用 Encrypt Key
-Verification Token 默认生成的这个 Token 用于校验来源。但我们使用飞书官方推荐的另一种更为安全的校验方式,因此可以忽略这个配置项。
4. 配置回调地址 link 新建好发布渠道后,点击请求地址 ,复制对应的请求地址。
在飞书控制台,点击左侧的 事件与回调 ,点击配置订阅方式旁边的编辑 icon,粘贴刚刚复制的请求地址到输入框中。
5. 配置机器人回调事件和权限 link 在事件与回调页面,点击添加事件。
搜索接收消息,或者直接搜索 im.message.receive_v1 ,找到接收消息 v2.0的时间,勾选上并点击确认添加。
添加事件后,增加两个权限:点击对应权限,会有弹窗提示添加权限,添加上图两个权限。
不推荐启用上图中的两个“历史版本”,而是使用新版本的权限。
若开启 “读取用户发给机器人的单聊消息”, 则单聊发送给机器人的消息将被送到 FastGPT 若开启 “接收群聊中@机器人消息事件”, 则群聊中@机器人的消息将被送到 FastGPT 若开启(不推荐开启)“获取群组中所有消息”,则群聊中所有消息都将被送到 FastGPT 6. 配置回复消息权限 link 在飞书控制台,点击左侧的 权限管理 ,搜索框中输入发消息,找到以应用的身份发消息的权限,点击开通权限。
7. 发布机器人 link 点击飞书控制台左侧的版本管理与发布,即可发布机器人。
然后就可以在工作台里找到你的机器人啦。接下来就是把机器人拉进群组,或者单独与它对话。
发送了消息,没响应 link 检查飞书机器人回调地址、权限等是否正确。 查看 FastGPT 对话日志,是否有对应的提问记录 如果有记录,飞书没回应,则是没给机器人开权限。 如果没记录,则可能是应用运行报错了,可以先试试最简单的机器人。(飞书机器人无法输入全局变量、文件、图片内容) © 2025 the FastGPT Authors.
云操作系统 Sealos
+Verification Token 默认生成的这个 Token 用于校验来源。但我们使用飞书官方推荐的另一种更为安全的校验方式,因此可以忽略这个配置项。
4. 配置回调地址 link 新建好发布渠道后,点击请求地址 ,复制对应的请求地址。
在飞书控制台,点击左侧的 事件与回调 ,点击配置订阅方式旁边的编辑 icon,粘贴刚刚复制的请求地址到输入框中。
5. 配置机器人回调事件和权限 link 在事件与回调页面,点击添加事件。
搜索接收消息,或者直接搜索 im.message.receive_v1 ,找到接收消息 v2.0的时间,勾选上并点击确认添加。
添加事件后,增加两个权限:点击对应权限,会有弹窗提示添加权限,添加上图两个权限。
不推荐启用上图中的两个“历史版本”,而是使用新版本的权限。
若开启 “读取用户发给机器人的单聊消息”, 则单聊发送给机器人的消息将被送到 FastGPT 若开启 “接收群聊中@机器人消息事件”, 则群聊中@机器人的消息将被送到 FastGPT 若开启(不推荐开启)“获取群组中所有消息”,则群聊中所有消息都将被送到 FastGPT 6. 配置回复消息权限 link 在飞书控制台,点击左侧的 权限管理 ,搜索框中输入发消息,找到以应用的身份发消息的权限,点击开通权限。
7. 发布机器人 link 点击飞书控制台左侧的版本管理与发布,即可发布机器人。
然后就可以在工作台里找到你的机器人啦。接下来就是把机器人拉进群组,或者单独与它对话。
发送了消息,没响应 link 检查飞书机器人回调地址、权限等是否正确。 查看 FastGPT 对话日志,是否有对应的提问记录 如果有记录,飞书没回应,则是没给机器人开权限。 如果没记录,则可能是应用运行报错了,可以先试试最简单的机器人。(飞书机器人无法输入全局变量、文件、图片内容) 如何新开一个聊天记录 link 飞书机器人的聊天记录 chatId 包含几种来源:
私聊聊天框 飞书话题群中单个话题 群组聊天中,由群 id+个人id 组成。 如果你想重置你的聊天记录,可以给机器人发送 Reset 消息(注意大小写),机器人会新开一个聊天记录。
diff --git a/docs/use-cases/external-integration/index.xml b/docs/use-cases/external-integration/index.xml
index 0881ae882..41847aeb4 100644
--- a/docs/use-cases/external-integration/index.xml
+++ b/docs/use-cases/external-integration/index.xml
@@ -23,7 +23,8 @@ Encrypt Key 用于加密飞书服务器与 FastGPT 之间通信。 建议如果
调试完成后,点击发布。
5. 发布应用 link机器人发布后,还需要在版本管理与发布页面发布应用版本。
点击创建新版本后,设置版本号和版本描述后点击保存发布即可。
-应用发布后,即可在钉钉企业中使用机器人功能,可对机器人私聊。或者在群组添加机器人后@机器人,触发对话。
接入微信公众号教程 https://doc.tryfastgpt.ai/docs/use-cases/external-integration/official_account/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/use-cases/external-integration/official_account/ 从 4.8.10 版本起,FastGPT 商业版支持直接接入微信公众号,无需额外的 API。
+应用发布后,即可在钉钉企业中使用机器人功能,可对机器人私聊。或者在群组添加机器人后@机器人,触发对话。
+FAQ link如何新开一个聊天记录 link如果你想重置你的聊天记录,可以给机器人发送 Reset 消息(注意大小写),机器人会新开一个聊天记录。 接入微信公众号教程 https://doc.tryfastgpt.ai/docs/use-cases/external-integration/official_account/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/use-cases/external-integration/official_account/ 从 4.8.10 版本起,FastGPT 商业版支持直接接入微信公众号,无需额外的 API。
注意⚠️: 目前只支持通过验证的公众号(服务号和订阅号都可以)
1. 在 FastGPT 新建发布渠道 link在 FastGPT 中选择想要接入的应用,在 发布渠道 页面,新建一个接入微信公众号的发布渠道,填写好基础信息。
2. 获取 AppID 、 Secret和Token link1. 登录微信公众平台,选择您的公众号。 link打开微信公众号官网:https://mp.weixin.qq.com
diff --git a/docs/use-cases/external-integration/official_account/index.html b/docs/use-cases/external-integration/official_account/index.html
index 15e940264..2696ffcb3 100644
--- a/docs/use-cases/external-integration/official_account/index.html
+++ b/docs/use-cases/external-integration/official_account/index.html
@@ -33,8 +33,8 @@ FAQ
-Table of Contents
description
接入微信公众号教程 FastGPT 接入微信公众号教程
从 4.8.10 版本起,FastGPT 商业版支持直接接入微信公众号,无需额外的 API。
注意⚠️: 目前只支持通过验证的公众号(服务号和订阅号都可以)
1. 在 FastGPT 新建发布渠道 link 在 FastGPT 中选择想要接入的应用,在 发布渠道 页面,新建一个接入微信公众号的发布渠道,填写好基础信息。
2. 获取 AppID 、 Secret和Token link 1. 登录微信公众平台,选择您的公众号。 link 打开微信公众号官网:https://mp.weixin.qq.com
只支持通过验证的公众号,未通过验证的公众号暂不支持。
开发者可以从这个链接申请微信公众号的测试号进行测试,测试号可以正常使用,但不能配置 AES Key
2. 把3个参数填入 FastGPT 配置弹窗中。 link
3. 在 IP 白名单中加入 FastGPT 的 IP link
私有部署的用户可自行查阅自己的 IP 地址。
海外版用户(cloud.tryfastgpt.ai)可以填写下面的 IP 白名单:
+Table of Contents
description
接入微信公众号教程 FastGPT 接入微信公众号教程
从 4.8.10 版本起,FastGPT 商业版支持直接接入微信公众号,无需额外的 API。
注意⚠️: 目前只支持通过验证的公众号(服务号和订阅号都可以)
1. 在 FastGPT 新建发布渠道 link 在 FastGPT 中选择想要接入的应用,在 发布渠道 页面,新建一个接入微信公众号的发布渠道,填写好基础信息。
2. 获取 AppID 、 Secret和Token link 1. 登录微信公众平台,选择您的公众号。 link 打开微信公众号官网:https://mp.weixin.qq.com
只支持通过验证的公众号,未通过验证的公众号暂不支持。
开发者可以从这个链接申请微信公众号的测试号进行测试,测试号可以正常使用,但不能配置 AES Key
2. 把3个参数填入 FastGPT 配置弹窗中。 link
3. 在 IP 白名单中加入 FastGPT 的 IP link
私有部署的用户可自行查阅自己的 IP 地址。
海外版用户(cloud.tryfastgpt.ai)可以填写下面的 IP 白名单:
35.240.227.100
34.124.237.188
34.143.240.160
@@ -85,7 +85,7 @@ Table of Contents 4. 获取AES Key,选择加密方式 link
随机生成AESKey,填入 FastGPT 配置弹窗中。
选择加密方式为安全模式。
5. 获取 URL link 在FastGPT确认创建,获取URL。
填入微信公众平台的 URL 处,然后提交保存
- 6. 启用服务器配置(如已自动启用,请忽略) link
现在用户向公众号发消息,消息则会被转发到 FastGPT,通过公众号返回对话结果。
© 2025 the FastGPT Authors.
云操作系统 Sealos
+
6. 启用服务器配置(如已自动启用,请忽略) link
现在用户向公众号发消息,消息则会被转发到 FastGPT,通过公众号返回对话结果。
如何新开一个聊天记录 link 如果你想重置你的聊天记录,可以给机器人发送 Reset 消息(注意大小写),机器人会新开一个聊天记录。
diff --git a/index.xml b/index.xml
index b7fc8c73e..ef40cef8a 100644
--- a/index.xml
+++ b/index.xml
@@ -369,7 +369,8 @@ Encrypt Key 用于加密飞书服务器与 FastGPT 之间通信。 建议如果
调试完成后,点击发布。
5. 发布应用 link机器人发布后,还需要在版本管理与发布页面发布应用版本。
点击创建新版本后,设置版本号和版本描述后点击保存发布即可。
-应用发布后,即可在钉钉企业中使用机器人功能,可对机器人私聊。或者在群组添加机器人后@机器人,触发对话。
接入微信公众号教程 https://doc.tryfastgpt.ai/docs/use-cases/external-integration/official_account/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/use-cases/external-integration/official_account/ 从 4.8.10 版本起,FastGPT 商业版支持直接接入微信公众号,无需额外的 API。
+应用发布后,即可在钉钉企业中使用机器人功能,可对机器人私聊。或者在群组添加机器人后@机器人,触发对话。
+FAQ link如何新开一个聊天记录 link如果你想重置你的聊天记录,可以给机器人发送 Reset 消息(注意大小写),机器人会新开一个聊天记录。 接入微信公众号教程 https://doc.tryfastgpt.ai/docs/use-cases/external-integration/official_account/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/use-cases/external-integration/official_account/ 从 4.8.10 版本起,FastGPT 商业版支持直接接入微信公众号,无需额外的 API。
注意⚠️: 目前只支持通过验证的公众号(服务号和订阅号都可以)
1. 在 FastGPT 新建发布渠道 link在 FastGPT 中选择想要接入的应用,在 发布渠道 页面,新建一个接入微信公众号的发布渠道,填写好基础信息。
2. 获取 AppID 、 Secret和Token link1. 登录微信公众平台,选择您的公众号。 link打开微信公众号官网:https://mp.weixin.qq.com
@@ -587,7 +588,7 @@ mkdir -p /fastgpt/data/backup 准备好后,后续上传
### 新fastgpt环境【B】中也需要建一个,比如/fastgpt/mongobackup目录,注意不要在fastgpt/data目录下建立目录 mkdir -p /fastgpt/mongobackup
###2. 正题开始,从fastgpt老环境【A】中导出数据 进入A环境,使用mongodump 导出mongo数据库。 #### 2. Docker 数据库迁移(无脑操作) https://doc.tryfastgpt.ai/docs/development/migration/docker_db/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/migration/docker_db/ 1. 停止服务 link docker-compose down 2. Copy文件夹 linkDocker 部署数据库都会通过 volume 挂载本地的目录进入容器,如果要迁移,直接复制这些目录即可。
PG 数据: pg/data Mongo 数据: mongo/data
-直接把pg 和 mongo目录全部复制走即可。 V4.9.7(进行中) https://doc.tryfastgpt.ai/docs/development/upgrading/497/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/497/ 🚀 新增内容 link MCP 工具支持 HTTP Streamable 协议。 MCP server 支持编辑工具名,适配部分客户端不支持中文名问题。 工作流右键可自动对齐节点。 支持生产环境自定义config.json路径。 API 调用,支持传递一个特殊 chatId(NO_RECORD_HISTORIES),使得系统不会进行历史记录存储。 支持 Rerank 模型按量计费。 套餐兑换码功能 支付宝支付 ⚙️ 优化 link Doc2x 文档解析,增加报错信息捕获,增加超时时长。 调整 PG vector 查询语句,强制使用向量索引。 对话时间统计,准确返回工作流整体运行时间。 从 ai_proxy 获取音频解析时长。 AI 模型 Token 值均优先采用 API usage,确保 tokens 值准确,若为空,则再采用 GPT3.5 的估算方式。 🐛 修复 link 文件上传分块大小限制,避免超出 MongoDB 限制。 使用记录仪表盘,无法获取指定成员的使用统计。 仪表盘接口,因未考虑时区问题,统计异常。 LLM 模型测试接口,无法测试未启用的 LLM。同时修复,模型测试接口会把模型自定义请求地址去除问题。 Copy app 权限问题。 导出对话记录,限制单条对话记录消息上限 1000 组,避免导出失败。 工作流变量下一段文本仍是工作流变量,不触发渲染。 调试知识库检索模块,提示无权操作知识库。 文本内容提取节点,默认值赋值逻辑。 分享链接中,会强制返回嵌套应用中的引用内容。 知识库集合元数据过滤时,不同知识库的同名标签使用 $and 筛选无法获取结果。 V4.9.6 https://doc.tryfastgpt.ai/docs/development/upgrading/496/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/496/ 🚀 新增内容 link 以 MCP 方式对外提供应用调用。 支持以 MCP SSE 协议创建工具。 批量执行节点支持交互节点,可实现每一轮循环都人工参与。 增加工作台二级菜单,合并工具箱。 增加 grok3、GPT4.1、o系列、Gemini2.5 模型系统配置。 ⚙️ 优化 link 工作流数据类型转化鲁棒性和兼容性增强。 Python sandbox 代码,支持大数据输入。 路径组件支持配置最后一步是否可点击。 知识库工具调用结果,自动补充图片域名。 Github action runner 升级成 unbuntu24 去除飞书、公众号等三方渠道,回复时,可能前后多一个换行的问题。 调整分块策略,大表格时,不进行超大块合并,而是独立拆块。 Iframe 嵌套组件,内置允许麦克风声明。 🐛 修复 link 修复子工作流包含交互节点时,未成功恢复子工作流所有数据。 completion v1 接口,未接受 interactive 参数,导致 API 调用失败。 连续工具调用,上下文截断异常 升级指南 link1. 做好数据备份 link2. 部署 MCP server 服务 linkDocker 部署 link在docker-compose.yml文件中,加入fastgpt-mcp-server服务:
+直接把pg 和 mongo目录全部复制走即可。 V4.9.7(进行中) https://doc.tryfastgpt.ai/docs/development/upgrading/497/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/497/ 🚀 新增内容 link 知识库回答时,回答段落末尾增加引用。 MCP 工具支持 HTTP Streamable 协议。 MCP server 支持编辑工具名,适配部分客户端不支持中文名问题。 工作流右键可自动对齐节点。 支持生产环境自定义config.json路径。 API 调用,支持传递一个特殊 chatId(NO_RECORD_HISTORIES),使得系统不会进行历史记录存储。 支持 Rerank 模型按量计费。 套餐兑换码功能。 支付宝支付。 短链数据埋点。 新增 Jina AI 模型系统配置。 ⚙️ 优化 link Doc2x 文档解析,增加报错信息捕获,增加超时时长。 调整 PG vector 查询语句,强制使用向量索引。 对话时间统计,准确返回工作流整体运行时间。 从 ai_proxy 获取音频解析时长。 AI 模型 Token 值均优先采用 API usage,确保 tokens 值准确,若为空,则再采用 GPT3.5 的估算方式。 🐛 修复 link 文件上传分块大小限制,避免超出 MongoDB 限制。 使用记录仪表盘,无法获取指定成员的使用统计。 仪表盘接口,因未考虑时区问题,统计异常。 LLM 模型测试接口,无法测试未启用的 LLM。同时修复,模型测试接口会把模型自定义请求地址去除问题。 Copy app 权限问题。 导出对话记录,限制单条对话记录消息上限 1000 组,避免导出失败。 工作流变量下一段文本仍是工作流变量,不触发渲染。 调试知识库检索模块,提示无权操作知识库。 文本内容提取节点,默认值赋值逻辑。 分享链接中,会强制返回嵌套应用中的引用内容。 知识库集合元数据过滤时,不同知识库的同名标签使用 $and 筛选无法获取结果。 V4.9.6 https://doc.tryfastgpt.ai/docs/development/upgrading/496/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/496/ 🚀 新增内容 link 以 MCP 方式对外提供应用调用。 支持以 MCP SSE 协议创建工具。 批量执行节点支持交互节点,可实现每一轮循环都人工参与。 增加工作台二级菜单,合并工具箱。 增加 grok3、GPT4.1、o系列、Gemini2.5 模型系统配置。 ⚙️ 优化 link 工作流数据类型转化鲁棒性和兼容性增强。 Python sandbox 代码,支持大数据输入。 路径组件支持配置最后一步是否可点击。 知识库工具调用结果,自动补充图片域名。 Github action runner 升级成 unbuntu24 去除飞书、公众号等三方渠道,回复时,可能前后多一个换行的问题。 调整分块策略,大表格时,不进行超大块合并,而是独立拆块。 Iframe 嵌套组件,内置允许麦克风声明。 🐛 修复 link 修复子工作流包含交互节点时,未成功恢复子工作流所有数据。 completion v1 接口,未接受 interactive 参数,导致 API 调用失败。 连续工具调用,上下文截断异常 升级指南 link1. 做好数据备份 link2. 部署 MCP server 服务 linkDocker 部署 link在docker-compose.yml文件中,加入fastgpt-mcp-server服务:
fastgpt-mcp-server: container_name: fastgpt-mcp-server image: ghcr.io/labring/fastgpt-mcp_server:v4.9.6 ports: - 3005:3000 networks: - fastgpt restart: always environment: - FASTGPT_ENDPOINT=http://fastgpt:3000 Sealos 部署 link直接在应用管理中,增加一个fastgpt-mcp-server应用,镜像为ghcr. V4.9.5 https://doc.tryfastgpt.ai/docs/development/upgrading/495/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/495/ 升级指南 link1. 做好数据备份 link2. 更新镜像 tag link 更新 FastGPT 镜像 tag: v4.9.5 更新 FastGPT 商业版镜像 tag: v4.9.5 Sandbox 无需更新 AIProxy 无需更新 🚀 新增内容 link 团队成员权限细分,可分别控制是否可创建在根目录应用/知识库以及 API Key 支持交互节点在嵌套工作流中使用。 团队成员操作日志。 用户输入节点支持多选框。 ⚙️ 优化 link 繁体中文翻译。 Arm 镜像打包 🐛 修复 link password 检测规则错误。 分享链接无法隐藏知识库检索结果。 IOS 低版本正则兼容问题。 修复问答提取队列错误后,计数器未清零问题,导致问答提取队列失效。 Debug 模式交互节点下一步可能造成死循环。 V4.9.4 https://doc.tryfastgpt.ai/docs/development/upgrading/494/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/494/ 升级指南 link1. 做好数据备份 link2. 安装 Redis link docker 部署的用户,参考最新的 docker-compose.yml 文件增加 Redis 配置。增加一个 redis 容器,并配置fastgpt,fastgpt-pro的环境变量,增加 REDIS_URL 环境变量。 Sealos 部署的用户,在数据库里新建一个redis数据库,并复制内网地址的 connection 作为 redis 的链接串。然后配置fastgpt,fastgpt-pro的环境变量,增加 REDIS_URL 环境变量。 3. 更新镜像 tag link 更新 FastGPT 镜像 tag: v4.9.4 更新 FastGPT 商业版镜像 tag: v4.9.4 Sandbox 无需更新 AIProxy 无需更新 4. 执行升级脚本 link该脚本仅需商业版用户执行。
从任意终端,发起 1 个 HTTP 请求。其中 {{rootkey}} 替换成环境变量里的 rootkey;{{host}} 替换成FastGPT 域名。
curl --location --request POST 'https://{{host}}/api/admin/initv494' \ --header 'rootkey: {{rootkey}}' \ --header 'Content-Type: application/json' 脚本功能 V4.9.3 https://doc.tryfastgpt.ai/docs/development/upgrading/493/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/493/ 更新指南 link1. 做好数据库备份 link2. 更新镜像 link 更新 FastGPT 镜像 tag: v4.9.3 更新 FastGPT 商业版镜像 tag: v4.9.3 Sandbox 镜像tag: v4.9.3 AIProxy 镜像tag: v0.1.5 🚀 新增内容 link 工作流 debug 模式支持交互节点。 代码运行支持 Python3 代码。 🐛 修复 link 工作流格式转化异常。 V4.9.2 https://doc.tryfastgpt.ai/docs/development/upgrading/492/Mon, 01 Jan 0001 00:00:00 +0000 https://doc.tryfastgpt.ai/docs/development/upgrading/492/ 更新指南 link可直接升级v4.9.3,v4.9.2存在一个工作流数据类型转化错误。