知识库接口
FastGPT OpenAPI 知识库接口
| 如何获取知识库ID(datasetId) | 如何获取文件集合ID(collection_id) |
|---|---|
![]() | ![]() |
创建训练订单 link
新例子
+
知识库接口
FastGPT OpenAPI 知识库接口
| 如何获取知识库ID(datasetId) | 如何获取文件集合ID(collection_id) |
|---|---|
![]() | ![]() |
创建训练订单 link
新例子
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 Contentsdata 为 billId,可用于添加知识库数据时进行账单聚合。
+
data 为 billId,可用于添加知识库数据时进行账单聚合。
{
"code": 200,
"statusText": "",
"message": "",
"data": "65112ab717c32018f4156361"
}
- 知识库 link
创建一个知识库 link
+
知识库 link
创建一个知识库 link
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"
}
- 获取知识库列表 link
+
获取知识库列表 link
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获取知识库详情 link
+
获取知识库详情 link
curl --location --request GET 'http://localhost:3000/api/core/dataset/detail?id=6593e137231a2be9c5603ba7' \
--header 'Authorization: Bearer {{authorization}}' \
- - id: 知识库的ID
+
- id: 知识库的ID
{
"code": 200,
"statusText": "",
@@ -149,21 +149,21 @@ Table of Contents删除一个知识库 link
+
删除一个知识库 link
curl --location --request DELETE 'http://localhost:3000/api/core/dataset/delete?id=65abc8729d1448617cba5df6' \
--header 'Authorization: Bearer {{authorization}}' \
- - id: 知识库的ID
+
- id: 知识库的ID
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
- 集合 link
通用创建参数说明(必看) link
入参
| 参数 | 说明 | 必填 |
|---|---|---|
| datasetId | 知识库ID | ✅ |
| parentId: | 父级ID,不填则默认为根目录 | |
| trainingType | 数据处理方式。chunk: 按文本长度进行分割;qa: 问答对提取 | ✅ |
| customPdfParse | PDF增强解析。true: 开启PDF增强解析;不填则默认为false | |
| 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
通用创建参数说明(必看) link
入参
| 参数 | 说明 | 必填 |
|---|---|---|
| datasetId | 知识库ID | ✅ |
| parentId: | 父级ID,不填则默认为根目录 | |
| trainingType | 数据处理方式。chunk: 按文本长度进行分割;qa: 问答对提取 | ✅ |
| customPdfParse | PDF增强解析。true: 开启PDF增强解析;不填则默认为false | |
| 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: 元数据(暂时没啥用)
data 为集合的 ID。
+
- 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: 元数据(暂时没啥用)
data 为集合的 ID。
+
- 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: 网页选择器,用于指定网页中的哪个元素作为文本(可选)
data 为集合的 ID。
+
- 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序列化后传入),参数说明见上方“通用创建参数说明”
data 为集合的 ID。
+
需要使用 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拆分自定义提示词(可选)
data 为集合的 ID。
+
需要使用 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) |
data 为集合的 ID。
+
| 参数 | 说明 | 必填 |
|---|---|---|
| externalFileUrl | 文件访问链接(可以是临时链接) | ✅ |
| externalFileId | 外部文件ID | |
| filename | 自定义文件名,需要带后缀 | |
| createTime | 文件创建时间(Date ISO 字符串都 ok) |
data 为集合的 ID。
{
"code": 200,
"statusText": "",
@@ -341,9 +341,9 @@ Table of Contents获取集合列表 link
4.8.19+
+
获取集合列表 link
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获取集合详情 link
+
获取集合详情 link
curl --location --request GET 'http://localhost:3000/api/core/dataset/collection/detail?id=65abcfab9d1448617cba5f0d' \
--header 'Authorization: Bearer {{authorization}}' \
- - id: 集合的ID
+
- id: 集合的ID
{
"code": 200,
"statusText": "",
@@ -469,9 +469,9 @@ Table of Contents修改集合信息 link
通过集合 ID 修改集合信息
+
修改集合信息 link
通过集合 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
}
- 删除一个集合 link
+
删除一个集合 link
curl --location --request DELETE 'http://localhost:3000/api/core/dataset/collection/delete?id=65aa2a64e6cb9b8ccdc00de8' \
--header 'Authorization: Bearer {{authorization}}' \
- - id: 集合的ID
+
- id: 集合的ID
{
"code": 200,
"statusText": "",
"message": "",
"data": null
}
- 数据 link
数据的结构 link
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 组数据。
+
数据 link
数据的结构 link
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
4.8.11+
+
获取集合的数据列表 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}}' \
- - id: 数据的id
+
- id: 数据的id
{
"code": 200,
"statusText": "",
@@ -651,9 +651,9 @@ A2:
"canWrite": true
}
}
- 修改单条数据 link
+
修改单条数据 link
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
}
- 删除单条数据 link
+
删除单条数据 link
curl --location --request DELETE 'http://localhost:3000/api/core/dataset/data/delete?id=65abd4b39d1448617cba624d' \
--header 'Authorization: Bearer {{authorization}}' \
- - id: 数据的id
+
- id: 数据的id
{
"code": 200,
"statusText": "",
"message": "",
"data": "success"
}
- 搜索测试 link
+
搜索测试 link
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 8009f7319..0756cde6e 100644
--- a/docs/development/openapi/share/index.html
+++ b/docs/development/openapi/share/index.html
@@ -43,43 +43,43 @@ Table of ContentsFastGPT 将会判断success是否为true决定是允许用户继续操作。message与msg是等同的,你可以选择返回其中一个,当success不为true时,将会提示这个错误。
uid是用户的唯一凭证,将会用于拉取对话记录以及保存对话记录。可参考下方实践案例。
触发流程 link

配置教程 link
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是用户的唯一凭证,将会用于拉取对话记录以及保存对话记录。可参考下方实践案例。
触发流程 link

配置教程 link
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实践案例 link
我们以Laf作为服务器为例,简单展示这 3 个接口的使用方式。
1. 创建3个Laf接口 link

这个接口中,我们设置了token必须等于fastgpt才能通过校验。(实际生产中不建议固定写死)
+
实践案例 link
我们以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/guide/admin/sso/index.html b/docs/guide/admin/sso/index.html
index 8d1b89471..bad61ab0b 100644
--- a/docs/guide/admin/sso/index.html
+++ b/docs/guide/admin/sso/index.html
@@ -176,12 +176,12 @@ Table of Contents标准接口文档 link
以下是 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中。
+
标准接口文档 link
以下是 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 ContentsSSO 获取用户信息 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获取组织 link
+
获取组织 link
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获取成员 link
+
获取成员 link
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 b078fcffb..36c2f0185 100644
--- a/docs/guide/dashboard/workflow/http/index.html
+++ b/docs/guide/dashboard/workflow/http/index.html
@@ -34,9 +34,9 @@ FAQHTTP 请求
FastGPT HTTP 模块介绍
特点 link
- 可重复添加
- 手动配置
- 触发执行
- 核中核模块

介绍 link
HTTP 模块会向对应的地址发送一个 HTTP 请求,实际操作与 Postman 和 ApiFox 这类直流工具使用差不多。
- Params 为路径请求参数,GET请求中用的居多。
- Body 为请求体,POST/PUT请求中用的居多。
- Headers 为请求头,用于传递一些特殊的信息。
- 自定义变量中可以接收前方节点的输出作为变量
- 3 种数据中均可以通过
{{}}来引用变量。 - url 也可以通过
{{}}来引用变量。 - 变量来自于
全局变量、系统变量、前方节点输出
参数结构 link
系统变量说明 link
你可以将鼠标放置在请求参数旁边的问号中,里面会提示你可用的变量。
- appId: 应用的ID
- chatId: 当前对话的ID,测试模式下不存在。
- responseChatItemId: 当前对话中,响应的消息ID,测试模式下不存在。
- variables: 当前对话的全局变量。
- cTime: 当前时间。
- histories: 历史记录(默认最多取10条,无法修改长度)
Params, Headers link
不多描述,使用方法和Postman, ApiFox 基本一致。
可通过 {{key}} 来引入变量。例如:
| key | value |
|---|---|
| appId | {{appId}} |
| Authorization | Bearer {{token}} |
Body link
只有特定请求类型下会生效。
可以写一个自定义的 Json,并通过 {{key}} 来引入变量。例如:
+Table of Contents
HTTP 请求
FastGPT HTTP 模块介绍
特点 link
- 可重复添加
- 手动配置
- 触发执行
- 核中核模块

介绍 link
HTTP 模块会向对应的地址发送一个 HTTP 请求,实际操作与 Postman 和 ApiFox 这类直流工具使用差不多。
- Params 为路径请求参数,GET请求中用的居多。
- Body 为请求体,POST/PUT请求中用的居多。
- Headers 为请求头,用于传递一些特殊的信息。
- 自定义变量中可以接收前方节点的输出作为变量
- 3 种数据中均可以通过
{{}}来引用变量。 - url 也可以通过
{{}}来引用变量。 - 变量来自于
全局变量、系统变量、前方节点输出
参数结构 link
系统变量说明 link
你可以将鼠标放置在请求参数旁边的问号中,里面会提示你可用的变量。
- appId: 应用的ID
- chatId: 当前对话的ID,测试模式下不存在。
- responseChatItemId: 当前对话中,响应的消息ID,测试模式下不存在。
- variables: 当前对话的全局变量。
- cTime: 当前时间。
- histories: 历史记录(默认最多取10条,无法修改长度)
Params, Headers link
不多描述,使用方法和Postman, ApiFox 基本一致。
可通过 {{key}} 来引入变量。例如:
| key | value |
|---|---|
| appId | {{appId}} |
| Authorization | Bearer {{token}} |
Body link
只有特定请求类型下会生效。
可以写一个自定义的 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如何获取返回值 link
从图中可以看出,FastGPT可以添加多个返回值,这个返回值并不代表接口的返回值,而是代表如何解析接口返回值,可以通过 JSON path 的语法,来提取接口响应的值。
语法可以参考: https://github.com/JSONPath-Plus/JSONPath?tab=readme-ov-file
+
如何获取返回值 link
从图中可以看出,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 717d76192..bc7ecaf2c 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 | undefined。
- searchKey - 检索词,可选
+
1. 获取文件树 link
- parentId - 父级 id,可选,或者 null | undefined。
- 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": "",
"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,
@@ -104,11 +104,11 @@ type FileListItem = {
"url": "xxxx"
}
}
- - url - 文件访问链接,拿到后会自动打开。
4. 获取文件详细信息(用于获取文件信息) link
id 为文件的 id。
+
- url - 文件访问链接,拿到后会自动打开。
4. 获取文件详细信息(用于获取文件信息) link
id 为文件的 id。
curl --location --request GET '{{baseURL}}/v1/file/detail?id=xx' \
--header 'Authorization: Bearer {{authorization}}'
- +
{
"code": 200,
"success": true,


这是索引模型的长度限制,通过任何方式部署都一样的,但不同索引模型的配置不一样,可以在后台修改参数。



