OpenAPI 接口文档 on FastGPThttps://doc.tryfastgpt.ai/docs/development/openapi/Recent content in OpenAPI 接口文档 on FastGPTHugo -- gohugo.iozh-cnOpenAPI 介绍https://doc.tryfastgpt.ai/docs/development/openapi/intro/Mon, 01 Jan 0001 00:00:00 +0000https://doc.tryfastgpt.ai/docs/development/openapi/intro/使用说明 linkFasGPT OpenAPI 接口允许你使用 Api Key 进行鉴权,从而操作 FastGPT 上的相关服务和资源,例如:调用应用对话接口、上传知识库数据、搜索测试等等。出于兼容性和安全考虑,并不是所有的接口都允许通过 Api Key 访问。 如何查看 BaseURL link注意:BaseURL 不是接口地址,而是所有接口的根地址,直接请求 BaseURL 是没有用的。 如何获取 Api Key linkFastGPT 的 API Key 有 2 类,一类是全局通用的 key (无法直接调用应用对话);一类是携带了 AppId 也就是有应用标记的 key (可直接调用应用对话)。 我们建议,仅操作应用或者对话的相关接口使用 应用特定key,其他接口使用 通用key。 通用key 应用特定 key 基本配置 linkOpenAPI 中,所有的接口都通过 Header.Authorization 进行鉴权。 baseUrl: "https://api.fastgpt.in/api" headers: { Authorization: "Bearer {{apikey}}" } 发起应用对话示例 curl --location --request POST 'https://api.fastgpt.in/api/v1/chat/completions' \ --header 'Authorization: Bearer fastgpt-xxxxxx' \ --header 'Content-Type: application/json' \ --data-raw '{ "chatId": "111", "stream": false, "detail": false, "messages": [ { "content": "导演是谁", "role": "user" } ] }' 自定义用户 ID linkv4.对话接口https://doc.tryfastgpt.ai/docs/development/openapi/chat/Mon, 01 Jan 0001 00:00:00 +0000https://doc.tryfastgpt.ai/docs/development/openapi/chat/如何获取 AppId link可在应用详情的路径里获取 AppId。 发起对话 link 🤖 该接口的 API Key 需使用应用特定的 key,否则会报错。 有些包调用时,BaseUrl需要添加v1路径,有些不需要,如果出现404情况,可补充v1重试。 请求简易应用和工作流 linkv1对话接口兼容GPT的接口!如果你的项目使用的是标准的GPT官方接口,可以直接通过修改BaseUrl和 Authorization来访问 FastGpt 应用,不过需要注意下面几个规则: 🤖 传入的model,temperature等参数字段均无效,这些字段由编排决定,不会根据 API 参数改变。 不会返回实际消耗Token值,如果需要,可以设置detail=true,并手动计算 responseData 里的tokens值。 请求 link 基础请求示例 图片/文件请求示例 参数说明 curl --location --request POST 'http://localhost:3000/api/v1/chat/completions' \ --header 'Authorization: Bearer fastgpt-xxxxxx' \ --header 'Content-Type: application/json' \ --data-raw '{ "chatId": "my_chatId", "stream": false, "detail": false, "responseChatItemId": "my_responseChatItemId", "variables": { "uid": "asdfadsfasfd2323", "name": "张三" }, "messages": [ { "role": "user", "content": "导演是谁" } ] }' 仅messages有部分区别,其他参数一致。 目前不支持上传文件,需上传到自己的对象存储中,获取对应的文件链接。 curl --location --request POST 'http://localhost:3000/api/v1/chat/completions' \ --header 'Authorization: Bearer fastgpt-xxxxxx' \ --header 'Content-Type: application/json' \ --data-raw '{ "chatId": "abcd", "stream": false, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "导演是谁" }, { "type": "image_url", "image_url": { "url": "图片链接" } }, { "type": "file_url", "name": "文件名", "url": "文档链接,支持 txt md html word pdf ppt csv excel" } ] } ] }' info headers.知识库接口https://doc.tryfastgpt.ai/docs/development/openapi/dataset/Mon, 01 Jan 0001 00:00:00 +0000https://doc.tryfastgpt.ai/docs/development/openapi/dataset/如何获取知识库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' \ --data-raw '{ "datasetId": "知识库 ID", "name": "可选,自定义订单名称,例如:文档训练-fastgpt.docx" }' data 为 billId,可用于添加知识库数据时进行账单聚合。 { "code": 200, "statusText": "", "message": "", "data": "65112ab717c32018f4156361" } 知识库 link创建一个知识库 link 请求示例 参数说明 响应示例 curl --location --request POST 'http://localhost:3000/api/core/dataset/create' \ --header 'Authorization: Bearer {{authorization}}' \ --header 'Content-Type: application/json' \ --data-raw '{ "parentId": null, "type": "dataset", "name":"测试", "intro":"介绍", "avatar": "", "vectorModel": "text-embedding-ada-002", "agentModel": "gpt-3.分享链接身份鉴权https://doc.tryfastgpt.ai/docs/development/openapi/share/Mon, 01 Jan 0001 00:00:00 +0000https://doc.tryfastgpt.ai/docs/development/openapi/share/介绍 link在 FastGPT V4.6.4 中,我们修改了分享链接的数据读取方式,为每个用户生成一个 localId,用于标识用户,从云端拉取对话记录。但是这种方式仅能保障用户在同一设备同一浏览器中使用,如果切换设备或者清空浏览器缓存则会丢失这些记录。这种方式存在一定的风险,因此我们仅允许用户拉取近30天的20条记录。 分享链接身份鉴权设计的目的在于,将 FastGPT 的对话框快速、安全的接入到你现有的系统中,仅需 2 个接口即可实现。该功能目前只在商业版中提供。 使用说明 link免登录链接配置中,你可以选择填写身份验证栏。这是一个POST请求的根地址。在填写该地址后,分享链接的初始化、开始对话以及对话结束都会向该地址的特定接口发送一条请求。下面以host来表示凭身份验证根地址。服务器接口仅需返回是否校验成功即可,不需要返回其他数据,格式如下: 接口统一响应格式 link { "success": true, "message": "错误提示", "msg": "同message, 错误提示", "data": { "uid": "用户唯一凭证" } } FastGPT 将会判断success是否为true决定是允许用户继续操作。message与msg是等同的,你可以选择返回其中一个,当success不为true时,将会提示这个错误。 uid是用户的唯一凭证,将会用于拉取对话记录以及保存对话记录。可参考下方实践案例。 触发流程 link 配置教程 link1. 配置身份校验地址 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 的对话记录。