This commit is contained in:
c121914yu
2025-04-09 15:45:00 +00:00
parent 8c2f2afd19
commit 0f44cb1229
11 changed files with 274 additions and 333 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -11,7 +11,7 @@ curl --location --request POST 'https://api.fastgpt.in/api/v1/chat/compl
🤖
传入的modeltemperature等参数字段均无效这些字段由编排决定不会根据 API 参数改变。
不会返回实际消耗Token值如果需要可以设置detail=true并手动计算 responseData 里的tokens值。
请求 link detail=false,stream=false 响应 detail=false,stream=true 响应 detail=true,stream=false 响应 detail=true,stream=true 响应 event值 { &amp;#34;id&amp;#34;: &amp;#34;adsfasf&amp;#34;, &amp;#34;model&amp;#34;: &amp;#34;&amp;#34;, &amp;#34;usage&amp;#34;: { &amp;#34;prompt_tokens&amp;#34;: 1, &amp;#34;completion_tokens&amp;#34;: 1, &amp;#34;total_tokens&amp;#34;: 1 }, &amp;#34;choices&amp;#34;: [ { &amp;#34;message&amp;#34;: { &amp;#34;role&amp;#34;: &amp;#34;assistant&amp;#34;, &amp;#34;content&amp;#34;: &amp;#34;电影《铃芽之旅》的导演是新海诚。&amp;#34; }, &amp;#34;finish_reason&amp;#34;: &amp;#34;stop&amp;#34;, &amp;#34;index&amp;#34;: 0 } ] } data: {&amp;#34;id&amp;#34;:&amp;#34;&amp;#34;,&amp;#34;object&amp;#34;:&amp;#34;&amp;#34;,&amp;#34;created&amp;#34;:0,&amp;#34;choices&amp;#34;:[{&amp;#34;delta&amp;#34;:{&amp;#34;content&amp;#34;:&amp;#34;&amp;#34;},&amp;#34;index&amp;#34;:0,&amp;#34;finish_reason&amp;#34;:null}]} data: {&amp;#34;id&amp;#34;:&amp;#34;&amp;#34;,&amp;#34;object&amp;#34;:&amp;#34;&amp;#34;,&amp;#34;created&amp;#34;:0,&amp;#34;choices&amp;#34;:[{&amp;#34;delta&amp;#34;:{&amp;#34;content&amp;#34;:&amp;#34;电&amp;#34;},&amp;#34;index&amp;#34;:0,&amp;#34;finish_reason&amp;#34;:null}]} data: {&amp;#34;id&amp;#34;:&amp;#34;&amp;#34;,&amp;#34;object&amp;#34;:&amp;#34;&amp;#34;,&amp;#34;created&amp;#34;:0,&amp;#34;choices&amp;#34;:[{&amp;#34;delta&amp;#34;:{&amp;#34;content&amp;#34;:&amp;#34;&amp;#34;},&amp;#34;index&amp;#34;:0,&amp;#34;finish_reason&amp;#34;:null}]} data: {&amp;#34;id&amp;#34;:&amp;#34;&amp;#34;,&amp;#34;object&amp;#34;:&amp;#34;&amp;#34;,&amp;#34;created&amp;#34;:0,&amp;#34;choices&amp;#34;:[{&amp;#34;delta&amp;#34;:{&amp;#34;content&amp;#34;:&amp;#34;&amp;#34;},&amp;#34;index&amp;#34;:0,&amp;#34;finish_reason&amp;#34;:null}]} { &amp;#34;responseData&amp;#34;: [ // 不同模块的响应值, 不同版本具体值可能有差异,可先 log 自行查看最新值。 { &amp;#34;moduleName&amp;#34;: &amp;#34;Dataset Search&amp;#34;, &amp;#34;price&amp;#34;: 1.</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>如何获取知识库IDdatasetId 如何获取文件集合IDcollection_id 创建训练订单 link 请求示例 响应示例 新例子
请求 link 基础请求示例 图片/文件请求示例 参数说明 curl --location --request POST &amp;#39;http://localhost:3000/api/v1/chat/completions&amp;#39; \ --header &amp;#39;Authorization: Bearer fastgpt-xxxxxx&amp;#39; \ --header &amp;#39;Content-Type: application/json&amp;#39; \ --data-raw &amp;#39;{ &amp;#34;chatId&amp;#34;: &amp;#34;my_chatId&amp;#34;, &amp;#34;stream&amp;#34;: false, &amp;#34;detail&amp;#34;: false, &amp;#34;responseChatItemId&amp;#34;: &amp;#34;my_responseChatItemId&amp;#34;, &amp;#34;variables&amp;#34;: { &amp;#34;uid&amp;#34;: &amp;#34;asdfadsfasfd2323&amp;#34;, &amp;#34;name&amp;#34;: &amp;#34;张三&amp;#34; }, &amp;#34;messages&amp;#34;: [ { &amp;#34;role&amp;#34;: &amp;#34;user&amp;#34;, &amp;#34;content&amp;#34;: &amp;#34;导演是谁&amp;#34; } ] }&amp;#39; 仅messages有部分区别其他参数一致。 目前不支持上传文件,需上传到自己的对象存储中,获取对应的文件链接。 curl --location --request POST &amp;#39;http://localhost:3000/api/v1/chat/completions&amp;#39; \ --header &amp;#39;Authorization: Bearer fastgpt-xxxxxx&amp;#39; \ --header &amp;#39;Content-Type: application/json&amp;#39; \ --data-raw &amp;#39;{ &amp;#34;chatId&amp;#34;: &amp;#34;abcd&amp;#34;, &amp;#34;stream&amp;#34;: false, &amp;#34;messages&amp;#34;: [ { &amp;#34;role&amp;#34;: &amp;#34;user&amp;#34;, &amp;#34;content&amp;#34;: [ { &amp;#34;type&amp;#34;: &amp;#34;text&amp;#34;, &amp;#34;text&amp;#34;: &amp;#34;导演是谁&amp;#34; }, { &amp;#34;type&amp;#34;: &amp;#34;image_url&amp;#34;, &amp;#34;image_url&amp;#34;: { &amp;#34;url&amp;#34;: &amp;#34;图片链接&amp;#34; } }, { &amp;#34;type&amp;#34;: &amp;#34;file_url&amp;#34;, &amp;#34;name&amp;#34;: &amp;#34;文件名&amp;#34;, &amp;#34;url&amp;#34;: &amp;#34;文档链接,支持 txt md html word pdf ppt csv excel&amp;#34; } ] } ] }&amp;#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>如何获取知识库IDdatasetId 如何获取文件集合IDcollection_id 创建训练订单 link 请求示例 响应示例 新例子
curl --location --request POST &amp;#39;http://localhost:3000/api/support/wallet/usage/createTrainingUsage&amp;#39; \ --header &amp;#39;Authorization: Bearer {{apikey}}&amp;#39; \ --header &amp;#39;Content-Type: application/json&amp;#39; \ --data-raw &amp;#39;{ &amp;#34;datasetId&amp;#34;: &amp;#34;知识库 ID&amp;#34;, &amp;#34;name&amp;#34;: &amp;#34;可选,自定义订单名称,例如:文档训练-fastgpt.docx&amp;#34; }&amp;#39; data 为 billId可用于添加知识库数据时进行账单聚合。
{ &amp;#34;code&amp;#34;: 200, &amp;#34;statusText&amp;#34;: &amp;#34;&amp;#34;, &amp;#34;message&amp;#34;: &amp;#34;&amp;#34;, &amp;#34;data&amp;#34;: &amp;#34;65112ab717c32018f4156361&amp;#34; } 知识库 link创建一个知识库 link 请求示例 参数说明 响应示例 curl --location --request POST &amp;#39;http://localhost:3000/api/core/dataset/create&amp;#39; \ --header &amp;#39;Authorization: Bearer {{authorization}}&amp;#39; \ --header &amp;#39;Content-Type: application/json&amp;#39; \ --data-raw &amp;#39;{ &amp;#34;parentId&amp;#34;: null, &amp;#34;type&amp;#34;: &amp;#34;dataset&amp;#34;, &amp;#34;name&amp;#34;:&amp;#34;测试&amp;#34;, &amp;#34;intro&amp;#34;:&amp;#34;介绍&amp;#34;, &amp;#34;avatar&amp;#34;: &amp;#34;&amp;#34;, &amp;#34;vectorModel&amp;#34;: &amp;#34;text-embedding-ada-002&amp;#34;, &amp;#34;agentModel&amp;#34;: &amp;#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 个接口即可实现。该功能目前只在商业版中提供。

View File

@@ -43,43 +43,43 @@ Table of Contents</button><nav id=toc-mobile><ul class=dropdown-menu><li><ul><li
&#34;uid&#34;: &#34;用户唯一凭证&#34;
}
}</code>
</pre></div><p><code>FastGPT</code> 将会判断<code>success</code>是否为<code>true</code>决定是允许用户继续操作。<code>message</code><code>msg</code>是等同的,你可以选择返回其中一个,当<code>success</code>不为<code>true</code>时,将会提示这个错误。</p><p><code>uid</code>是用户的唯一凭证,将会用于拉取对话记录以及保存对话记录。可参考下方实践案例。</p><h3 id=触发流程>触发流程 <a href=#%e8%a7%a6%e5%8f%91%e6%b5%81%e7%a8%8b class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sharelink_process.png alt loading=lazy class=medium-zoom-image></p><h2 id=配置教程>配置教程 <a href=#%e9%85%8d%e7%bd%ae%e6%95%99%e7%a8%8b class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h2><h3 id=1-配置身份校验地址>1. 配置身份校验地址 <a href=#1-%e9%85%8d%e7%bd%ae%e8%ba%ab%e4%bb%bd%e6%a0%a1%e9%aa%8c%e5%9c%b0%e5%9d%80 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/share-setlink.png alt loading=lazy class=medium-zoom-image></p><p>配置校验地址后,在每次分享链接使用时,都会向对应的地址发起校验和上报请求。</p><div class="alert alert-default d-flex" role=alert><div class="flex-shrink-1 alert-icon"><p>🤖</p></div><div class=w-100><p>这里仅需配置根地址,无需具体到完整请求路径。</p></div></div><h3 id=2-分享链接中增加额外-query>2. 分享链接中增加额外 query <a href=#2-%e5%88%86%e4%ba%ab%e9%93%be%e6%8e%a5%e4%b8%ad%e5%a2%9e%e5%8a%a0%e9%a2%9d%e5%a4%96-query class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p>在分享链接的地址中,增加一个额外的参数: authToken。例如</p><p>原始的链接:<code>https://share.tryfastgpt.ai/chat/share?shareId=648aaf5ae121349a16d62192</code></p><p>完整链接: <code>https://share.tryfastgpt.ai/chat/share?shareId=648aaf5ae121349a16d62192&amp;authToken=userid12345</code></p><p>这个<code>authToken</code>通常是你系统生成的用户唯一凭证Token之类的。FastGPT 会在鉴权接口的<code>body</code>中携带 token={{authToken}} 的参数。</p><h3 id=3-编写聊天初始化校验接口>3. 编写聊天初始化校验接口 <a href=#3-%e7%bc%96%e5%86%99%e8%81%8a%e5%a4%a9%e5%88%9d%e5%a7%8b%e5%8c%96%e6%a0%a1%e9%aa%8c%e6%8e%a5%e5%8f%a3 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=efacbdTab data-bs-toggle=tab data-bs-target=#efacbd type=button role=tab aria-controls=efacbd aria-selected=true>请求示例</a>
<a class=nav-link id=dbfaceTab data-bs-toggle=tab data-bs-target=#dbface type=button role=tab aria-controls=dbface aria-selected=true>鉴权成功</a>
<a class=nav-link id=bcdfeaTab data-bs-toggle=tab data-bs-target=#bcdfea type=button role=tab aria-controls=bcdfea aria-selected=true>鉴权失败</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=efacbd role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=39d214b class=language-bash>
</pre></div><p><code>FastGPT</code> 将会判断<code>success</code>是否为<code>true</code>决定是允许用户继续操作。<code>message</code><code>msg</code>是等同的,你可以选择返回其中一个,当<code>success</code>不为<code>true</code>时,将会提示这个错误。</p><p><code>uid</code>是用户的唯一凭证,将会用于拉取对话记录以及保存对话记录。可参考下方实践案例。</p><h3 id=触发流程>触发流程 <a href=#%e8%a7%a6%e5%8f%91%e6%b5%81%e7%a8%8b class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sharelink_process.png alt loading=lazy class=medium-zoom-image></p><h2 id=配置教程>配置教程 <a href=#%e9%85%8d%e7%bd%ae%e6%95%99%e7%a8%8b class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h2><h3 id=1-配置身份校验地址>1. 配置身份校验地址 <a href=#1-%e9%85%8d%e7%bd%ae%e8%ba%ab%e4%bb%bd%e6%a0%a1%e9%aa%8c%e5%9c%b0%e5%9d%80 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/share-setlink.png alt loading=lazy class=medium-zoom-image></p><p>配置校验地址后,在每次分享链接使用时,都会向对应的地址发起校验和上报请求。</p><div class="alert alert-default d-flex" role=alert><div class="flex-shrink-1 alert-icon"><p>🤖</p></div><div class=w-100><p>这里仅需配置根地址,无需具体到完整请求路径。</p></div></div><h3 id=2-分享链接中增加额外-query>2. 分享链接中增加额外 query <a href=#2-%e5%88%86%e4%ba%ab%e9%93%be%e6%8e%a5%e4%b8%ad%e5%a2%9e%e5%8a%a0%e9%a2%9d%e5%a4%96-query class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p>在分享链接的地址中,增加一个额外的参数: authToken。例如</p><p>原始的链接:<code>https://share.tryfastgpt.ai/chat/share?shareId=648aaf5ae121349a16d62192</code></p><p>完整链接: <code>https://share.tryfastgpt.ai/chat/share?shareId=648aaf5ae121349a16d62192&amp;authToken=userid12345</code></p><p>这个<code>authToken</code>通常是你系统生成的用户唯一凭证Token之类的。FastGPT 会在鉴权接口的<code>body</code>中携带 token={{authToken}} 的参数。</p><h3 id=3-编写聊天初始化校验接口>3. 编写聊天初始化校验接口 <a href=#3-%e7%bc%96%e5%86%99%e8%81%8a%e5%a4%a9%e5%88%9d%e5%a7%8b%e5%8c%96%e6%a0%a1%e9%aa%8c%e6%8e%a5%e5%8f%a3 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=fdaebcTab data-bs-toggle=tab data-bs-target=#fdaebc type=button role=tab aria-controls=fdaebc aria-selected=true>请求示例</a>
<a class=nav-link id=fecbadTab data-bs-toggle=tab data-bs-target=#fecbad type=button role=tab aria-controls=fecbad aria-selected=true>鉴权成功</a>
<a class=nav-link id=ceafbdTab data-bs-toggle=tab data-bs-target=#ceafbd type=button role=tab aria-controls=ceafbd aria-selected=true>鉴权失败</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=fdaebc role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=39d214b class=language-bash>
<code>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;</code>
</pre></div></div><div class="tab-pane fade" id=dbface role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=d6c7899 class=language-json>
</pre></div></div><div class="tab-pane fade" id=fecbad role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=d6c7899 class=language-json>
<code>{
&#34;success&#34;: true,
&#34;data&#34;: {
&#34;uid&#34;: &#34;用户唯一凭证&#34;
}
}</code>
</pre></div><p>系统会拉取该分享链接下uid 为 username123 的对话记录。</p></div><div class="tab-pane fade" id=bcdfea role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=3297f92 class=language-json>
</pre></div><p>系统会拉取该分享链接下uid 为 username123 的对话记录。</p></div><div class="tab-pane fade" id=ceafbd role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=3297f92 class=language-json>
<code>{
&#34;success&#34;: false,
&#34;message&#34;: &#34;身份错误&#34;,
}</code>
</pre></div></div></div><h3 id=4-编写对话前校验接口>4. 编写对话前校验接口 <a href=#4-%e7%bc%96%e5%86%99%e5%af%b9%e8%af%9d%e5%89%8d%e6%a0%a1%e9%aa%8c%e6%8e%a5%e5%8f%a3 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=ceafdbTab data-bs-toggle=tab data-bs-target=#ceafdb type=button role=tab aria-controls=ceafdb aria-selected=true>请求示例</a>
<a class=nav-link id=cfabdeTab data-bs-toggle=tab data-bs-target=#cfabde type=button role=tab aria-controls=cfabde aria-selected=true>鉴权成功</a>
<a class=nav-link id=bdeacfTab data-bs-toggle=tab data-bs-target=#bdeacf type=button role=tab aria-controls=bdeacf aria-selected=true>鉴权失败</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=ceafdb role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=40c1d59 class=language-bash>
</pre></div></div></div><h3 id=4-编写对话前校验接口>4. 编写对话前校验接口 <a href=#4-%e7%bc%96%e5%86%99%e5%af%b9%e8%af%9d%e5%89%8d%e6%a0%a1%e9%aa%8c%e6%8e%a5%e5%8f%a3 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=ebfcadTab data-bs-toggle=tab data-bs-target=#ebfcad type=button role=tab aria-controls=ebfcad aria-selected=true>请求示例</a>
<a class=nav-link id=cbaefdTab data-bs-toggle=tab data-bs-target=#cbaefd type=button role=tab aria-controls=cbaefd aria-selected=true>鉴权成功</a>
<a class=nav-link id=cdbafeTab data-bs-toggle=tab data-bs-target=#cdbafe type=button role=tab aria-controls=cdbafe aria-selected=true>鉴权失败</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=ebfcad role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=40c1d59 class=language-bash>
<code>curl --location --request POST &#39;{{host}}/shareAuth/start&#39; \
--header &#39;Content-Type: application/json&#39; \
--data-raw &#39;{
&#34;token&#34;: &#34;{{authToken}}&#34;,
&#34;question&#34;: &#34;用户问题&#34;,
}&#39;</code>
</pre></div></div><div class="tab-pane fade" id=cfabde role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=d6c7899 class=language-json>
</pre></div></div><div class="tab-pane fade" id=cbaefd role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=d6c7899 class=language-json>
<code>{
&#34;success&#34;: true,
&#34;data&#34;: {
&#34;uid&#34;: &#34;用户唯一凭证&#34;
}
}</code>
</pre></div></div><div class="tab-pane fade" id=bdeacf role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=23a56e7 class=language-json>
</pre></div></div><div class="tab-pane fade" id=cdbafe role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=23a56e7 class=language-json>
<code>{
&#34;success&#34;: false,
&#34;message&#34;: &#34;身份验证失败&#34;,
@@ -202,9 +202,9 @@ Table of Contents</button><nav id=toc-mobile><ul class=dropdown-menu><li><ul><li
isElseResult?: boolean; // 判断器结果
}</code>
</pre></div><h2 id=实践案例>实践案例 <a href=#%e5%ae%9e%e8%b7%b5%e6%a1%88%e4%be%8b class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h2><p>我们以<a href=https://laf.dev/ rel=external target=_blank>Laf作为服务器为例<svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentcolor" d="M14 5c-.552.0-1-.448-1-1s.448-1 1-1h6c.552.0 1 .448 1 1v6c0 .552-.448 1-1 1s-1-.448-1-1V6.414l-7.293 7.293c-.391.39-1.024.39-1.414.0-.391-.391-.391-1.024.0-1.414L17.586 5H14zM5 7c-.552.0-1 .448-1 1v11c0 .552.448 1 1 1h11c.552.0 1-.448 1-1v-4.563c0-.552.448-1 1-1s1 .448 1 1V19c0 1.657-1.343 3-3 3H5c-1.657.0-3-1.343-3-3V8c0-1.657 1.343-3 3-3h4.563c.552.0 1 .448 1 1s-.448 1-1 1H5z"/></svg></a>,简单展示这 3 个接口的使用方式。</p><h3 id=1-创建3个laf接口>1. 创建3个Laf接口 <a href=#1-%e5%88%9b%e5%bb%ba3%e4%b8%aalaf%e6%8e%a5%e5%8f%a3 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/share-auth1.png alt loading=lazy class=medium-zoom-image></p><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=febdacTab data-bs-toggle=tab data-bs-target=#febdac type=button role=tab aria-controls=febdac aria-selected=true>/shareAuth/init</a>
<a class=nav-link id=cbdaefTab data-bs-toggle=tab data-bs-target=#cbdaef type=button role=tab aria-controls=cbdaef aria-selected=true>/shareAuth/start</a>
<a class=nav-link id=cdafebTab data-bs-toggle=tab data-bs-target=#cdafeb type=button role=tab aria-controls=cdafeb aria-selected=true>/shareAuth/finish</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=febdac role=tabpanel aria-labelledby=nav-1><p>这个接口中,我们设置了<code>token</code>必须等于<code>fastgpt</code>才能通过校验。(实际生产中不建议固定写死)</p><div class=prism-codeblock><pre id=ba0b6c9 class=language-ts>
</pre></div><h2 id=实践案例>实践案例 <a href=#%e5%ae%9e%e8%b7%b5%e6%a1%88%e4%be%8b class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h2><p>我们以<a href=https://laf.dev/ rel=external target=_blank>Laf作为服务器为例<svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentcolor" d="M14 5c-.552.0-1-.448-1-1s.448-1 1-1h6c.552.0 1 .448 1 1v6c0 .552-.448 1-1 1s-1-.448-1-1V6.414l-7.293 7.293c-.391.39-1.024.39-1.414.0-.391-.391-.391-1.024.0-1.414L17.586 5H14zM5 7c-.552.0-1 .448-1 1v11c0 .552.448 1 1 1h11c.552.0 1-.448 1-1v-4.563c0-.552.448-1 1-1s1 .448 1 1V19c0 1.657-1.343 3-3 3H5c-1.657.0-3-1.343-3-3V8c0-1.657 1.343-3 3-3h4.563c.552.0 1 .448 1 1s-.448 1-1 1H5z"/></svg></a>,简单展示这 3 个接口的使用方式。</p><h3 id=1-创建3个laf接口>1. 创建3个Laf接口 <a href=#1-%e5%88%9b%e5%bb%ba3%e4%b8%aalaf%e6%8e%a5%e5%8f%a3 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/share-auth1.png alt loading=lazy class=medium-zoom-image></p><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=dbafceTab data-bs-toggle=tab data-bs-target=#dbafce type=button role=tab aria-controls=dbafce aria-selected=true>/shareAuth/init</a>
<a class=nav-link id=adbefcTab data-bs-toggle=tab data-bs-target=#adbefc type=button role=tab aria-controls=adbefc aria-selected=true>/shareAuth/start</a>
<a class=nav-link id=efabcdTab data-bs-toggle=tab data-bs-target=#efabcd type=button role=tab aria-controls=efabcd aria-selected=true>/shareAuth/finish</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=dbafce role=tabpanel aria-labelledby=nav-1><p>这个接口中,我们设置了<code>token</code>必须等于<code>fastgpt</code>才能通过校验。(实际生产中不建议固定写死)</p><div class=prism-codeblock><pre id=ba0b6c9 class=language-ts>
<code>import cloud from &#39;@lafjs/cloud&#39;
export default async function (ctx: FunctionContext) {
@@ -217,7 +217,7 @@ export default async function (ctx: FunctionContext) {
return { success: false,message:&#34;身份错误&#34; }
}</code>
</pre></div></div><div class="tab-pane fade" id=cbdaef role=tabpanel aria-labelledby=nav-1><p>这个接口中,我们设置了<code>token</code>必须等于<code>fastgpt</code>才能通过校验。并且如果问题中包含了<code></code>字,则会报错,用于模拟敏感校验。</p><div class=prism-codeblock><pre id=cf82db5 class=language-ts>
</pre></div></div><div class="tab-pane fade" id=adbefc role=tabpanel aria-labelledby=nav-1><p>这个接口中,我们设置了<code>token</code>必须等于<code>fastgpt</code>才能通过校验。并且如果问题中包含了<code></code>字,则会报错,用于模拟敏感校验。</p><div class=prism-codeblock><pre id=cf82db5 class=language-ts>
<code>import cloud from &#39;@lafjs/cloud&#39;
export default async function (ctx: FunctionContext) {
@@ -235,7 +235,7 @@ export default async function (ctx: FunctionContext) {
return { success: true, data: { uid: &#34;user1&#34; } }
}</code>
</pre></div></div><div class="tab-pane fade" id=cdafeb role=tabpanel aria-labelledby=nav-1><p>结果上报接口可自行进行逻辑处理。</p><div class=prism-codeblock><pre id=b3696df class=language-ts>
</pre></div></div><div class="tab-pane fade" id=efabcd role=tabpanel aria-labelledby=nav-1><p>结果上报接口可自行进行逻辑处理。</p><div class=prism-codeblock><pre id=b3696df class=language-ts>
<code>import cloud from &#39;@lafjs/cloud&#39;
export default async function (ctx: FunctionContext) {