deploy: 0720bbe4da17ef047a57a6fcae515dea1a5e78e7

This commit is contained in:
c121914yu 2025-04-26 08:17:59 +00:00
parent e49f56133e
commit 3f9d45744e
11 changed files with 225 additions and 225 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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=fcabedTab data-bs-toggle=tab data-bs-target=#fcabed type=button role=tab aria-controls=fcabed aria-selected=true>请求示例</a>
<a class=nav-link id=dbcaefTab data-bs-toggle=tab data-bs-target=#dbcaef type=button role=tab aria-controls=dbcaef aria-selected=true>鉴权成功</a>
<a class=nav-link id=bfcadeTab data-bs-toggle=tab data-bs-target=#bfcade type=button role=tab aria-controls=bfcade aria-selected=true>鉴权失败</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=fcabed 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=befadcTab data-bs-toggle=tab data-bs-target=#befadc type=button role=tab aria-controls=befadc aria-selected=true>请求示例</a>
<a class=nav-link id=ecdbfaTab data-bs-toggle=tab data-bs-target=#ecdbfa type=button role=tab aria-controls=ecdbfa aria-selected=true>鉴权成功</a>
<a class=nav-link id=fedbacTab data-bs-toggle=tab data-bs-target=#fedbac type=button role=tab aria-controls=fedbac aria-selected=true>鉴权失败</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=befadc 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=dbcaef 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=ecdbfa 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=bfcade 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=fedbac 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=dcbfaeTab data-bs-toggle=tab data-bs-target=#dcbfae type=button role=tab aria-controls=dcbfae aria-selected=true>请求示例</a>
<a class=nav-link id=dbacfeTab data-bs-toggle=tab data-bs-target=#dbacfe type=button role=tab aria-controls=dbacfe aria-selected=true>鉴权成功</a>
<a class=nav-link id=afbedcTab data-bs-toggle=tab data-bs-target=#afbedc type=button role=tab aria-controls=afbedc aria-selected=true>鉴权失败</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=dcbfae 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=bdefcaTab data-bs-toggle=tab data-bs-target=#bdefca type=button role=tab aria-controls=bdefca aria-selected=true>请求示例</a>
<a class=nav-link id=dbfecaTab data-bs-toggle=tab data-bs-target=#dbfeca type=button role=tab aria-controls=dbfeca aria-selected=true>鉴权成功</a>
<a class=nav-link id=fbceadTab data-bs-toggle=tab data-bs-target=#fbcead type=button role=tab aria-controls=fbcead aria-selected=true>鉴权失败</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=bdefca 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=dbacfe 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=dbfeca 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=afbedc 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=fbcead 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=aefdbcTab data-bs-toggle=tab data-bs-target=#aefdbc type=button role=tab aria-controls=aefdbc aria-selected=true>/shareAuth/init</a>
<a class=nav-link id=bedcafTab data-bs-toggle=tab data-bs-target=#bedcaf type=button role=tab aria-controls=bedcaf aria-selected=true>/shareAuth/start</a>
<a class=nav-link id=afcdebTab data-bs-toggle=tab data-bs-target=#afcdeb type=button role=tab aria-controls=afcdeb aria-selected=true>/shareAuth/finish</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=aefdbc 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=bcdfaeTab data-bs-toggle=tab data-bs-target=#bcdfae type=button role=tab aria-controls=bcdfae aria-selected=true>/shareAuth/init</a>
<a class=nav-link id=dfbecaTab data-bs-toggle=tab data-bs-target=#dfbeca type=button role=tab aria-controls=dfbeca aria-selected=true>/shareAuth/start</a>
<a class=nav-link id=badfecTab data-bs-toggle=tab data-bs-target=#badfec type=button role=tab aria-controls=badfec aria-selected=true>/shareAuth/finish</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=bcdfae 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=bedcaf 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=dfbeca 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=afcdeb 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=badfec 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) {

File diff suppressed because one or more lines are too long

View File

@ -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的值。</description></item><item><title>V4.9.7(进行中)</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/497/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/497/</guid><description>🚀 新增内容 link⚙ 优化 link Doc2x 文档解析,增加报错信息捕获,增加超时时长。 调整 PG vector 查询语句,强制使用向量索引。 🐛 修复 link 文件上传分块大小限制,避免超出 MongoDB 限制。 使用记录仪表盘,无法获取指定成员的使用统计。 仪表盘接口,因未考虑时区问题,统计异常。 LLM 模型测试接口,无法测试未启用的 LLM。同时修复模型测试接口会把模型自定义请求地址去除问题。 导出对话记录,限制单条对话记录消息上限 1000 组,避免导出失败。 工作流变量下一段文本仍是工作流变量,不触发渲染。 调试知识库检索模块,提示无权操作知识库。 文本内容提取节点,默认值赋值逻辑。</description></item><item><title>V4.9.6</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/496/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/496/</guid><description>🚀 新增内容 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的值。</description></item><item><title>V4.9.7(进行中)</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/497/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/497/</guid><description>🚀 新增内容 link MCP 工具支持 HTTP Streamable 协议。 MCP server 支持编辑工具名,适配部分客户端不支持中文名问题。 工作流右键可自动对齐节点。 支持生产环境自定义config.json路径。 API 调用,支持传递一个特殊 chatId(NO_RECORD_HISTORIES),使得系统不会进行历史记录存储。 支持 Rerank 模型按量计费。 套餐兑换码功能 支付宝支付 ⚙️ 优化 link Doc2x 文档解析,增加报错信息捕获,增加超时时长。 调整 PG vector 查询语句,强制使用向量索引。 对话时间统计,准确返回工作流整体运行时间。 从 ai_proxy 获取音频解析时长。 🐛 修复 link 文件上传分块大小限制,避免超出 MongoDB 限制。 使用记录仪表盘,无法获取指定成员的使用统计。 仪表盘接口,因未考虑时区问题,统计异常。 LLM 模型测试接口,无法测试未启用的 LLM。同时修复模型测试接口会把模型自定义请求地址去除问题。 Copy app 权限问题。 导出对话记录,限制单条对话记录消息上限 1000 组,避免导出失败。 工作流变量下一段文本仍是工作流变量,不触发渲染。 调试知识库检索模块,提示无权操作知识库。 文本内容提取节点,默认值赋值逻辑。 分享链接中,会强制返回嵌套应用中的引用内容</description></item><item><title>V4.9.6</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/496/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/496/</guid><description>🚀 新增内容 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.</description></item><item><title>V4.9.5</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/495/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/495/</guid><description>升级指南 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 模式交互节点下一步可能造成死循环。</description></item><item><title>V4.9.4</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/494/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/494/</guid><description>升级指南 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 &amp;#39;https://{{host}}/api/admin/initv494&amp;#39; \ --header &amp;#39;rootkey: {{rootkey}}&amp;#39; \ --header &amp;#39;Content-Type: application/json&amp;#39; 脚本功能</description></item><item><title>V4.9.3</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/493/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/493/</guid><description>更新指南 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 工作流格式转化异常。</description></item><item><title>V4.9.2</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/492/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/492/</guid><description>更新指南 link可直接升级v4.9.3v4.9.2存在一个工作流数据类型转化错误。

View File

@ -176,12 +176,12 @@ Table of Contents</button><nav id=toc-mobile><ul class=dropdown-menu><li><ul><li
- OAUTH2_MEMBER_NAME_MAP=
# OAuth2 联系方式字段映射(选填)
- OAUTH2_CONTACT_MAP=</code>
</pre></div><h2 id=标准接口文档>标准接口文档 <a href=#%e6%a0%87%e5%87%86%e6%8e%a5%e5%8f%a3%e6%96%87%e6%a1%a3 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h2><p>以下是 FastGPT-pro 中SSO 和成员同步的标准接口文档,如果需要对接非标准系统,可以参考该章节进行开发。</p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso18.png alt loading=lazy class=medium-zoom-image></p><p>FastGPT 提供如下标准接口支持:</p><ol><li><a href=https://example.com/login/oauth/getAuthURL rel=external target=_blank>https://example.com/login/oauth/getAuthURL<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> 获取鉴权重定向地址</li><li><a href="https://example.com/login/oauth/getUserInfo?code=xxxxx" rel=external target=_blank>https://example.com/login/oauth/getUserInfo?code=xxxxx<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> 消费 code换取用户信息</li><li><a href=https://example.com/org/list rel=external target=_blank>https://example.com/org/list<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> 获取组织列表</li><li><a href=https://example.com/user/list rel=external target=_blank>https://example.com/user/list<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> 获取成员列表</li></ol><h3 id=获取-sso-登录重定向地址>获取 SSO 登录重定向地址 <a href=#%e8%8e%b7%e5%8f%96-sso-%e7%99%bb%e5%bd%95%e9%87%8d%e5%ae%9a%e5%90%91%e5%9c%b0%e5%9d%80 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p>返回一个重定向登录地址fastgpt 会自动重定向到该地址。redirect_uri 会自动拼接到该地址的 query中。</p><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=ebcdfaTab data-bs-toggle=tab data-bs-target=#ebcdfa type=button role=tab aria-controls=ebcdfa aria-selected=true>请求示例</a>
<a class=nav-link id=acedfbTab data-bs-toggle=tab data-bs-target=#acedfb type=button role=tab aria-controls=acedfb aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=ebcdfa role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=3970eeb class=language-bash>
</pre></div><h2 id=标准接口文档>标准接口文档 <a href=#%e6%a0%87%e5%87%86%e6%8e%a5%e5%8f%a3%e6%96%87%e6%a1%a3 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h2><p>以下是 FastGPT-pro 中SSO 和成员同步的标准接口文档,如果需要对接非标准系统,可以参考该章节进行开发。</p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso18.png alt loading=lazy class=medium-zoom-image></p><p>FastGPT 提供如下标准接口支持:</p><ol><li><a href=https://example.com/login/oauth/getAuthURL rel=external target=_blank>https://example.com/login/oauth/getAuthURL<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> 获取鉴权重定向地址</li><li><a href="https://example.com/login/oauth/getUserInfo?code=xxxxx" rel=external target=_blank>https://example.com/login/oauth/getUserInfo?code=xxxxx<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> 消费 code换取用户信息</li><li><a href=https://example.com/org/list rel=external target=_blank>https://example.com/org/list<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> 获取组织列表</li><li><a href=https://example.com/user/list rel=external target=_blank>https://example.com/user/list<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> 获取成员列表</li></ol><h3 id=获取-sso-登录重定向地址>获取 SSO 登录重定向地址 <a href=#%e8%8e%b7%e5%8f%96-sso-%e7%99%bb%e5%bd%95%e9%87%8d%e5%ae%9a%e5%90%91%e5%9c%b0%e5%9d%80 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p>返回一个重定向登录地址fastgpt 会自动重定向到该地址。redirect_uri 会自动拼接到该地址的 query中。</p><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=caebfdTab data-bs-toggle=tab data-bs-target=#caebfd type=button role=tab aria-controls=caebfd aria-selected=true>请求示例</a>
<a class=nav-link id=fdacbeTab data-bs-toggle=tab data-bs-target=#fdacbe type=button role=tab aria-controls=fdacbe aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=caebfd role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=3970eeb class=language-bash>
<code>curl -X GET &#34;https://redict.example/login/oauth/getAuthURL?redirect_uri=xxx&amp;state=xxxx&#34; \
-H &#34;Authorization: Bearer your_token_here&#34; \
-H &#34;Content-Type: application/json&#34;</code>
</pre></div></div><div class="tab-pane fade" id=acedfb role=tabpanel aria-labelledby=nav-1><p>成功:</p><div class=prism-codeblock><pre id=8296736 class=language-JSON>
</pre></div></div><div class="tab-pane fade" id=fdacbe role=tabpanel aria-labelledby=nav-1><p>成功:</p><div class=prism-codeblock><pre id=8296736 class=language-JSON>
<code>{
&#34;success&#34;: true,
&#34;message&#34;: &#34;&#34;,
@ -193,12 +193,12 @@ Table of Contents</button><nav id=toc-mobile><ul class=dropdown-menu><li><ul><li
&#34;message&#34;: &#34;错误信息&#34;,
&#34;authURL&#34;: &#34;&#34;
}</code>
</pre></div></div></div><h3 id=sso-获取用户信息>SSO 获取用户信息 <a href=#sso-%e8%8e%b7%e5%8f%96%e7%94%a8%e6%88%b7%e4%bf%a1%e6%81%af class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p>该接口接受一个 code 参数作为鉴权,消费 code 返回用户信息。</p><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=abdcefTab data-bs-toggle=tab data-bs-target=#abdcef type=button role=tab aria-controls=abdcef aria-selected=true>请求示例</a>
<a class=nav-link id=cabdefTab data-bs-toggle=tab data-bs-target=#cabdef type=button role=tab aria-controls=cabdef aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=abdcef role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=532f1a3 class=language-bash>
</pre></div></div></div><h3 id=sso-获取用户信息>SSO 获取用户信息 <a href=#sso-%e8%8e%b7%e5%8f%96%e7%94%a8%e6%88%b7%e4%bf%a1%e6%81%af class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p>该接口接受一个 code 参数作为鉴权,消费 code 返回用户信息。</p><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=abdfecTab data-bs-toggle=tab data-bs-target=#abdfec type=button role=tab aria-controls=abdfec aria-selected=true>请求示例</a>
<a class=nav-link id=ebadfcTab data-bs-toggle=tab data-bs-target=#ebadfc type=button role=tab aria-controls=ebadfc aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=abdfec role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=532f1a3 class=language-bash>
<code>curl -X GET &#34;https://oauth.example/login/oauth/getUserInfo?code=xxxxxx&#34; \
-H &#34;Authorization: Bearer your_token_here&#34; \
-H &#34;Content-Type: application/json&#34;</code>
</pre></div></div><div class="tab-pane fade" id=cabdef role=tabpanel aria-labelledby=nav-1><p>成功:</p><div class=prism-codeblock><pre id=71afe34 class=language-JSON>
</pre></div></div><div class="tab-pane fade" id=ebadfc role=tabpanel aria-labelledby=nav-1><p>成功:</p><div class=prism-codeblock><pre id=71afe34 class=language-JSON>
<code>{
&#34;success&#34;: true,
&#34;message&#34;: &#34;&#34;,
@ -215,12 +215,12 @@ Table of Contents</button><nav id=toc-mobile><ul class=dropdown-menu><li><ul><li
&#34;avatar&#34;: &#34;&#34;,
&#34;contact&#34;: &#34;&#34;
}</code>
</pre></div></div></div><h3 id=获取组织>获取组织 <a href=#%e8%8e%b7%e5%8f%96%e7%bb%84%e7%bb%87 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=fbcdaeTab data-bs-toggle=tab data-bs-target=#fbcdae type=button role=tab aria-controls=fbcdae aria-selected=true>请求示例</a>
<a class=nav-link id=bdcaefTab data-bs-toggle=tab data-bs-target=#bdcaef type=button role=tab aria-controls=bdcaef aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=fbcdae role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=d289d9a class=language-bash>
</pre></div></div></div><h3 id=获取组织>获取组织 <a href=#%e8%8e%b7%e5%8f%96%e7%bb%84%e7%bb%87 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=adefcbTab data-bs-toggle=tab data-bs-target=#adefcb type=button role=tab aria-controls=adefcb aria-selected=true>请求示例</a>
<a class=nav-link id=fbcadeTab data-bs-toggle=tab data-bs-target=#fbcade type=button role=tab aria-controls=fbcade aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=adefcb role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=d289d9a class=language-bash>
<code>curl -X GET &#34;https://example.com/org/list&#34; \
-H &#34;Authorization: Bearer your_token_here&#34; \
-H &#34;Content-Type: application/json&#34;</code>
</pre></div></div><div class="tab-pane fade" id=bdcaef role=tabpanel aria-labelledby=nav-1><p>⚠️注意:只能存在一个根部门。如果你的系统中存在多个根部门,需要先进行处理,加一个虚拟的根部门。返回值类型:</p><div class=prism-codeblock><pre id=1224f6e class=language-ts>
</pre></div></div><div class="tab-pane fade" id=fbcade role=tabpanel aria-labelledby=nav-1><p>⚠️注意:只能存在一个根部门。如果你的系统中存在多个根部门,需要先进行处理,加一个虚拟的根部门。返回值类型:</p><div class=prism-codeblock><pre id=1224f6e class=language-ts>
<code>type OrgListResponseType = {
message?: string; // 报错信息
success: boolean;
@ -247,12 +247,12 @@ Table of Contents</button><nav id=toc-mobile><ul class=dropdown-menu><li><ul><li
}
]
}</code>
</pre></div></div></div><h3 id=获取成员>获取成员 <a href=#%e8%8e%b7%e5%8f%96%e6%88%90%e5%91%98 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=befcdaTab data-bs-toggle=tab data-bs-target=#befcda type=button role=tab aria-controls=befcda aria-selected=true>请求示例</a>
<a class=nav-link id=eafbcdTab data-bs-toggle=tab data-bs-target=#eafbcd type=button role=tab aria-controls=eafbcd aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=befcda role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=bc9e9ec class=language-bash>
</pre></div></div></div><h3 id=获取成员>获取成员 <a href=#%e8%8e%b7%e5%8f%96%e6%88%90%e5%91%98 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=fecadbTab data-bs-toggle=tab data-bs-target=#fecadb type=button role=tab aria-controls=fecadb aria-selected=true>请求示例</a>
<a class=nav-link id=deafbcTab data-bs-toggle=tab data-bs-target=#deafbc type=button role=tab aria-controls=deafbc aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=fecadb role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=bc9e9ec class=language-bash>
<code>curl -X GET &#34;https://example.com/user/list&#34; \
-H &#34;Authorization: Bearer your_token_here&#34; \
-H &#34;Content-Type: application/json&#34;</code>
</pre></div></div><div class="tab-pane fade" id=eafbcd role=tabpanel aria-labelledby=nav-1><p>返回值类型:</p><div class=prism-codeblock><pre id=0315dd3 class=language-typescript>
</pre></div></div><div class="tab-pane fade" id=deafbc role=tabpanel aria-labelledby=nav-1><p>返回值类型:</p><div class=prism-codeblock><pre id=0315dd3 class=language-typescript>
<code>type UserListResponseListType = {
message?: string; // 报错信息
success: boolean;

File diff suppressed because one or more lines are too long

View File

@ -50,8 +50,8 @@ type FileListItem = {
updateTime: Date;
createTime: Date;
}</code>
</pre></div><h3 id=1-获取文件树>1. 获取文件树 <a href=#1-%e8%8e%b7%e5%8f%96%e6%96%87%e4%bb%b6%e6%a0%91 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=fcaebdTab data-bs-toggle=tab data-bs-target=#fcaebd type=button role=tab aria-controls=fcaebd aria-selected=true>请求示例</a>
<a class=nav-link id=eadfbcTab data-bs-toggle=tab data-bs-target=#eadfbc type=button role=tab aria-controls=eadfbc aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=fcaebd role=tabpanel aria-labelledby=nav-1><div class="alert alert-success d-flex" role=alert><div class="flex-shrink-1 alert-icon"></div><div class=w-100><ul><li>parentId - 父级 id可选或者 null。</li><li>searchKey - 检索词,可选</li></ul></div></div><div class=prism-codeblock><pre id=04b20e5 class=language-bash>
</pre></div><h3 id=1-获取文件树>1. 获取文件树 <a href=#1-%e8%8e%b7%e5%8f%96%e6%96%87%e4%bb%b6%e6%a0%91 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=edfbcaTab data-bs-toggle=tab data-bs-target=#edfbca type=button role=tab aria-controls=edfbca aria-selected=true>请求示例</a>
<a class=nav-link id=aefbdcTab data-bs-toggle=tab data-bs-target=#aefbdc type=button role=tab aria-controls=aefbdc aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=edfbca role=tabpanel aria-labelledby=nav-1><div class="alert alert-success d-flex" role=alert><div class="flex-shrink-1 alert-icon"></div><div class=w-100><ul><li>parentId - 父级 id可选或者 null。</li><li>searchKey - 检索词,可选</li></ul></div></div><div class=prism-codeblock><pre id=04b20e5 class=language-bash>
<code>curl --location --request POST &#39;{{baseURL}}/v1/file/list&#39; \
--header &#39;Authorization: Bearer {{authorization}}&#39; \
--header &#39;Content-Type: application/json&#39; \
@ -59,7 +59,7 @@ type FileListItem = {
&#34;parentId&#34;: null,
&#34;searchKey&#34;: &#34;&#34;
}&#39;</code>
</pre></div></div><div class="tab-pane fade" id=eadfbc role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=ee58785 class=language-json>
</pre></div></div><div class="tab-pane fade" id=aefbdc role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=ee58785 class=language-json>
<code>{
&#34;code&#34;: 200,
&#34;success&#34;: true,
@ -75,12 +75,12 @@ type FileListItem = {
}
]
}</code>
</pre></div></div></div><h3 id=2-获取单个文件内容文本内容或访问链接>2. 获取单个文件内容(文本内容或访问链接) <a href=#2-%e8%8e%b7%e5%8f%96%e5%8d%95%e4%b8%aa%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9%e6%96%87%e6%9c%ac%e5%86%85%e5%ae%b9%e6%88%96%e8%ae%bf%e9%97%ae%e9%93%be%e6%8e%a5 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=aebdfcTab data-bs-toggle=tab data-bs-target=#aebdfc type=button role=tab aria-controls=aebdfc aria-selected=true>请求示例</a>
<a class=nav-link id=cebdafTab data-bs-toggle=tab data-bs-target=#cebdaf type=button role=tab aria-controls=cebdaf aria-selected=true>响应示例</a>
<a class=nav-link id=Tab data-bs-toggle=tab data-bs-target=# type=button role=tab aria-controls aria-selected=true></a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=aebdfc role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=1de88d3 class=language-bash>
</pre></div></div></div><h3 id=2-获取单个文件内容文本内容或访问链接>2. 获取单个文件内容(文本内容或访问链接) <a href=#2-%e8%8e%b7%e5%8f%96%e5%8d%95%e4%b8%aa%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9%e6%96%87%e6%9c%ac%e5%86%85%e5%ae%b9%e6%88%96%e8%ae%bf%e9%97%ae%e9%93%be%e6%8e%a5 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=afedbcTab data-bs-toggle=tab data-bs-target=#afedbc type=button role=tab aria-controls=afedbc aria-selected=true>请求示例</a>
<a class=nav-link id=cfabedTab data-bs-toggle=tab data-bs-target=#cfabed type=button role=tab aria-controls=cfabed aria-selected=true>响应示例</a>
<a class=nav-link id=Tab data-bs-toggle=tab data-bs-target=# type=button role=tab aria-controls aria-selected=true></a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=afedbc role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=1de88d3 class=language-bash>
<code>curl --location --request GET &#39;{{baseURL}}/v1/file/content?id=xx&#39; \
--header &#39;Authorization: Bearer {{authorization}}&#39;</code>
</pre></div></div><div class="tab-pane fade" id=cebdaf role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=bcbc70a class=language-json>
</pre></div></div><div class="tab-pane fade" id=cfabed role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=bcbc70a class=language-json>
<code>{
&#34;code&#34;: 200,
&#34;success&#34;: true,
@ -91,11 +91,11 @@ type FileListItem = {
&#34;previewUrl&#34;: &#34;xxxx&#34;
}
}</code>
</pre></div><div class="alert alert-success d-flex" role=alert><div class="flex-shrink-1 alert-icon"></div><div class=w-100><ul><li>title - 文件标题。</li><li>content - 文件内容,直接拿来用。</li><li>previewUrl - 文件链接,系统会请求该地址获取文件内容。</li></ul><p><code>content</code><code>previewUrl</code>二选一返回,如果同时返回则 <code>content</code> 优先级更高,返回 <code>previewUrl</code>时,则会访问该链接进行文档内容读取。</p></div></div></div></div><h3 id=3-获取文件阅读链接用于查看原文>3. 获取文件阅读链接(用于查看原文) <a href=#3-%e8%8e%b7%e5%8f%96%e6%96%87%e4%bb%b6%e9%98%85%e8%af%bb%e9%93%be%e6%8e%a5%e7%94%a8%e4%ba%8e%e6%9f%a5%e7%9c%8b%e5%8e%9f%e6%96%87 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=fcdbaeTab data-bs-toggle=tab data-bs-target=#fcdbae type=button role=tab aria-controls=fcdbae aria-selected=true>请求示例</a>
<a class=nav-link id=decbfaTab data-bs-toggle=tab data-bs-target=#decbfa type=button role=tab aria-controls=decbfa aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=fcdbae role=tabpanel aria-labelledby=nav-1><p>id 为文件的 id。</p><div class=prism-codeblock><pre id=3291e95 class=language-bash>
</pre></div><div class="alert alert-success d-flex" role=alert><div class="flex-shrink-1 alert-icon"></div><div class=w-100><ul><li>title - 文件标题。</li><li>content - 文件内容,直接拿来用。</li><li>previewUrl - 文件链接,系统会请求该地址获取文件内容。</li></ul><p><code>content</code><code>previewUrl</code>二选一返回,如果同时返回则 <code>content</code> 优先级更高,返回 <code>previewUrl</code>时,则会访问该链接进行文档内容读取。</p></div></div></div></div><h3 id=3-获取文件阅读链接用于查看原文>3. 获取文件阅读链接(用于查看原文) <a href=#3-%e8%8e%b7%e5%8f%96%e6%96%87%e4%bb%b6%e9%98%85%e8%af%bb%e9%93%be%e6%8e%a5%e7%94%a8%e4%ba%8e%e6%9f%a5%e7%9c%8b%e5%8e%9f%e6%96%87 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=bfecdaTab data-bs-toggle=tab data-bs-target=#bfecda type=button role=tab aria-controls=bfecda aria-selected=true>请求示例</a>
<a class=nav-link id=cbfadeTab data-bs-toggle=tab data-bs-target=#cbfade type=button role=tab aria-controls=cbfade aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=bfecda role=tabpanel aria-labelledby=nav-1><p>id 为文件的 id。</p><div class=prism-codeblock><pre id=3291e95 class=language-bash>
<code>curl --location --request GET &#39;{{baseURL}}/v1/file/read?id=xx&#39; \
--header &#39;Authorization: Bearer {{authorization}}&#39;</code>
</pre></div></div><div class="tab-pane fade" id=decbfa role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=9102b7d class=language-json>
</pre></div></div><div class="tab-pane fade" id=cbfade role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=9102b7d class=language-json>
<code>{
&#34;code&#34;: 200,
&#34;success&#34;: true,

View File

@ -587,7 +587,7 @@ mkdir -p /fastgpt/data/backup 准备好后,后续上传
### 新fastgpt环境【B】中也需要建一个比如/fastgpt/mongobackup目录注意不要在fastgpt/data目录下建立目录 mkdir -p /fastgpt/mongobackup
###2. 正题开始从fastgpt老环境【A】中导出数据 进入A环境使用mongodump 导出mongo数据库。 #### 2.</description></item><item><title>Docker 数据库迁移(无脑操作)</title><link>https://doc.tryfastgpt.ai/docs/development/migration/docker_db/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/migration/docker_db/</guid><description>1. 停止服务 link docker-compose down 2. Copy文件夹 linkDocker 部署数据库都会通过 volume 挂载本地的目录进入容器,如果要迁移,直接复制这些目录即可。
PG 数据: pg/data Mongo 数据: mongo/data
直接把pg 和 mongo目录全部复制走即可。</description></item><item><title>V4.9.7(进行中)</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/497/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/497/</guid><description>🚀 新增内容 link⚙ 优化 link Doc2x 文档解析,增加报错信息捕获,增加超时时长。 调整 PG vector 查询语句,强制使用向量索引。 🐛 修复 link 文件上传分块大小限制,避免超出 MongoDB 限制。 使用记录仪表盘,无法获取指定成员的使用统计。 仪表盘接口,因未考虑时区问题,统计异常。 LLM 模型测试接口,无法测试未启用的 LLM。同时修复模型测试接口会把模型自定义请求地址去除问题。 导出对话记录,限制单条对话记录消息上限 1000 组,避免导出失败。 工作流变量下一段文本仍是工作流变量,不触发渲染。 调试知识库检索模块,提示无权操作知识库。 文本内容提取节点,默认值赋值逻辑。</description></item><item><title>V4.9.6</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/496/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/496/</guid><description>🚀 新增内容 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目录全部复制走即可。</description></item><item><title>V4.9.7(进行中)</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/497/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/497/</guid><description>🚀 新增内容 link MCP 工具支持 HTTP Streamable 协议。 MCP server 支持编辑工具名,适配部分客户端不支持中文名问题。 工作流右键可自动对齐节点。 支持生产环境自定义config.json路径。 API 调用,支持传递一个特殊 chatId(NO_RECORD_HISTORIES),使得系统不会进行历史记录存储。 支持 Rerank 模型按量计费。 套餐兑换码功能 支付宝支付 ⚙️ 优化 link Doc2x 文档解析,增加报错信息捕获,增加超时时长。 调整 PG vector 查询语句,强制使用向量索引。 对话时间统计,准确返回工作流整体运行时间。 从 ai_proxy 获取音频解析时长。 🐛 修复 link 文件上传分块大小限制,避免超出 MongoDB 限制。 使用记录仪表盘,无法获取指定成员的使用统计。 仪表盘接口,因未考虑时区问题,统计异常。 LLM 模型测试接口,无法测试未启用的 LLM。同时修复模型测试接口会把模型自定义请求地址去除问题。 Copy app 权限问题。 导出对话记录,限制单条对话记录消息上限 1000 组,避免导出失败。 工作流变量下一段文本仍是工作流变量,不触发渲染。 调试知识库检索模块,提示无权操作知识库。 文本内容提取节点,默认值赋值逻辑。 分享链接中,会强制返回嵌套应用中的引用内容</description></item><item><title>V4.9.6</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/496/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/496/</guid><description>🚀 新增内容 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.</description></item><item><title>V4.9.5</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/495/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/495/</guid><description>升级指南 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 模式交互节点下一步可能造成死循环。</description></item><item><title>V4.9.4</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/494/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/494/</guid><description>升级指南 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 &amp;#39;https://{{host}}/api/admin/initv494&amp;#39; \ --header &amp;#39;rootkey: {{rootkey}}&amp;#39; \ --header &amp;#39;Content-Type: application/json&amp;#39; 脚本功能</description></item><item><title>V4.9.3</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/493/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/493/</guid><description>更新指南 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 工作流格式转化异常。</description></item><item><title>V4.9.2</title><link>https://doc.tryfastgpt.ai/docs/development/upgrading/492/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.tryfastgpt.ai/docs/development/upgrading/492/</guid><description>更新指南 link可直接升级v4.9.3v4.9.2存在一个工作流数据类型转化错误。