28 lines
9.9 KiB
XML
28 lines
9.9 KiB
XML
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenAPI 接口文档 on FastGPT</title><link>https://doc.tryfastgpt.ai/docs/development/openapi/</link><description>Recent content in OpenAPI 接口文档 on FastGPT</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><atom:link href="https://doc.tryfastgpt.ai/docs/development/openapi/index.xml" rel="self" type="application/rss+xml"/><item><title>OpenAPI 介绍</title><link>https://doc.tryfastgpt.ai/docs/development/openapi/intro/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/openapi/intro/</guid><description>使用说明 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: &#34;https://api.fastgpt.in/api&#34; headers: { Authorization: &#34;Bearer {{apikey}}&#34; } 发起应用对话示例
|
||
curl --location --request POST &#39;https://api.fastgpt.in/api/v1/chat/completions&#39; \ --header &#39;Authorization: Bearer fastgpt-xxxxxx&#39; \ --header &#39;Content-Type: application/json&#39; \ --data-raw &#39;{ &#34;chatId&#34;: &#34;111&#34;, &#34;stream&#34;: false, &#34;detail&#34;: false, &#34;messages&#34;: [ { &#34;content&#34;: &#34;导演是谁&#34;, &#34;role&#34;: &#34;user&#34; } ] }&#39; 自定义用户 ID linkv4.</description></item><item><title>对话接口</title><link>https://doc.tryfastgpt.ai/docs/development/openapi/chat/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/openapi/chat/</guid><description>如何获取 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 &#39;http://localhost:3000/api/v1/chat/completions&#39; \ --header &#39;Authorization: Bearer fastgpt-xxxxxx&#39; \ --header &#39;Content-Type: application/json&#39; \ --data-raw &#39;{ &#34;chatId&#34;: &#34;my_chatId&#34;, &#34;stream&#34;: false, &#34;detail&#34;: false, &#34;responseChatItemId&#34;: &#34;my_responseChatItemId&#34;, &#34;variables&#34;: { &#34;uid&#34;: &#34;asdfadsfasfd2323&#34;, &#34;name&#34;: &#34;张三&#34; }, &#34;messages&#34;: [ { &#34;role&#34;: &#34;user&#34;, &#34;content&#34;: &#34;导演是谁&#34; } ] }&#39; 仅messages有部分区别,其他参数一致。 目前不支持上传文件,需上传到自己的对象存储中,获取对应的文件链接。 curl --location --request POST &#39;http://localhost:3000/api/v1/chat/completions&#39; \ --header &#39;Authorization: Bearer fastgpt-xxxxxx&#39; \ --header &#39;Content-Type: application/json&#39; \ --data-raw &#39;{ &#34;chatId&#34;: &#34;abcd&#34;, &#34;stream&#34;: false, &#34;messages&#34;: [ { &#34;role&#34;: &#34;user&#34;, &#34;content&#34;: [ { &#34;type&#34;: &#34;text&#34;, &#34;text&#34;: &#34;导演是谁&#34; }, { &#34;type&#34;: &#34;image_url&#34;, &#34;image_url&#34;: { &#34;url&#34;: &#34;图片链接&#34; } }, { &#34;type&#34;: &#34;file_url&#34;, &#34;name&#34;: &#34;文件名&#34;, &#34;url&#34;: &#34;文档链接,支持 txt md html word pdf ppt csv excel&#34; } ] } ] }&#39; info headers.</description></item><item><title>知识库接口</title><link>https://doc.tryfastgpt.ai/docs/development/openapi/dataset/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/openapi/dataset/</guid><description>如何获取知识库ID(datasetId) 如何获取文件集合ID(collection_id) 创建训练订单 link 请求示例 响应示例 新例子
|
||
curl --location --request POST &#39;http://localhost:3000/api/support/wallet/usage/createTrainingUsage&#39; \ --header &#39;Authorization: Bearer {{apikey}}&#39; \ --header &#39;Content-Type: application/json&#39; \ --data-raw &#39;{ &#34;datasetId&#34;: &#34;知识库 ID&#34;, &#34;name&#34;: &#34;可选,自定义订单名称,例如:文档训练-fastgpt.docx&#34; }&#39; data 为 billId,可用于添加知识库数据时进行账单聚合。
|
||
{ &#34;code&#34;: 200, &#34;statusText&#34;: &#34;&#34;, &#34;message&#34;: &#34;&#34;, &#34;data&#34;: &#34;65112ab717c32018f4156361&#34; } 知识库 link创建一个知识库 link 请求示例 参数说明 响应示例 curl --location --request POST &#39;http://localhost:3000/api/core/dataset/create&#39; \ --header &#39;Authorization: Bearer {{authorization}}&#39; \ --header &#39;Content-Type: application/json&#39; \ --data-raw &#39;{ &#34;parentId&#34;: null, &#34;type&#34;: &#34;dataset&#34;, &#34;name&#34;:&#34;测试&#34;, &#34;intro&#34;:&#34;介绍&#34;, &#34;avatar&#34;: &#34;&#34;, &#34;vectorModel&#34;: &#34;text-embedding-ada-002&#34;, &#34;agentModel&#34;: &#34;gpt-3.</description></item><item><title>分享链接身份鉴权</title><link>https://doc.tryfastgpt.ai/docs/development/openapi/share/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/openapi/share/</guid><description>介绍 link在 FastGPT V4.6.4 中,我们修改了分享链接的数据读取方式,为每个用户生成一个 localId,用于标识用户,从云端拉取对话记录。但是这种方式仅能保障用户在同一设备同一浏览器中使用,如果切换设备或者清空浏览器缓存则会丢失这些记录。这种方式存在一定的风险,因此我们仅允许用户拉取近30天的20条记录。
|
||
分享链接身份鉴权设计的目的在于,将 FastGPT 的对话框快速、安全的接入到你现有的系统中,仅需 2 个接口即可实现。该功能目前只在商业版中提供。
|
||
使用说明 link免登录链接配置中,你可以选择填写身份验证栏。这是一个POST请求的根地址。在填写该地址后,分享链接的初始化、开始对话以及对话结束都会向该地址的特定接口发送一条请求。下面以host来表示凭身份验证根地址。服务器接口仅需返回是否校验成功即可,不需要返回其他数据,格式如下:
|
||
接口统一响应格式 link { &#34;success&#34;: true, &#34;message&#34;: &#34;错误提示&#34;, &#34;msg&#34;: &#34;同message, 错误提示&#34;, &#34;data&#34;: { &#34;uid&#34;: &#34;用户唯一凭证&#34; } } 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&amp;authToken=userid12345
|
||
这个authToken通常是你系统生成的用户唯一凭证(Token之类的)。FastGPT 会在鉴权接口的body中携带 token={{authToken}} 的参数。
|
||
3. 编写聊天初始化校验接口 link 请求示例 鉴权成功 鉴权失败 curl --location --request POST &#39;{{host}}/shareAuth/init&#39; \ --header &#39;Content-Type: application/json&#39; \ --data-raw &#39;{ &#34;token&#34;: &#34;{{authToken}}&#34; }&#39; { &#34;success&#34;: true, &#34;data&#34;: { &#34;uid&#34;: &#34;用户唯一凭证&#34; } } 系统会拉取该分享链接下,uid 为 username123 的对话记录。</description></item></channel></rss> |