Commit ab297109 by heheer Committed by GitHub

fix: node copy, debug variables, auto-execution (#5664)

* fix debug variables

* auto execute condition

* fix autoTTSResponse

* node copy

* memory debug nodes

* doc

* yuque doc

* fix: debug

* img

* i18n

---------

Co-authored-by: archer <545436317@qq.com>
parent 1581a080
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
"configuration", "configuration",
"docker", "docker",
"faq", "faq",
"signoz",
"modelConfig", "modelConfig",
"openapi", "openapi",
"custom-models", "custom-models",
......
---
title: 接入 Signoz 服务监控
description: FastGPT 接入 Signoz 服务监控
---
## 介绍
[SigNoz](https://signoz.io/) 是一款开源的应用性能监控(APM)和可观测性平台,为 FastGPT 提供全面的服务监控能力。它基于 OpenTelemetry 标准,能够收集、处理和可视化分布式系统的遥测数据,包括链路追踪(Tracing)、指标监控(Metrics)和日志分析(Logging)。
**主要功能:**
- **链路追踪**:跟踪用户请求在 FastGPT 各个服务间的完整调用链路
- **性能监控**:监控 API 响应时间、吞吐量等关键性能指标
- **错误追踪**:自动捕获和记录系统异常,便于问题排查
- **日志聚合**:集中收集和管理应用日志,支持结构化查询
- **实时告警**:基于指标阈值设置告警规则,及时发现系统异常
## 部署 Signoz
可以使用 [SigNoz](https://signoz.io/) 官方云服务,或者私有部署,下面介绍在 Sealos 上快速部署 Signoz。
1. 点击下方的卡片,即可一键部署 Signoz。
[![](/imgs/Deploy-on-Sealos.svg)](https://hzh.sealos.run/?uid=fnWRt09fZP&openapp=system-template%3FtemplateName%3Dsignoz)
2. 开启 Signoz 外网访问
部署后,可点击 P1 中的详情,进入应用详情页, 然后点击右上角的变更,并开启 4318 端口的外网地址(如果走内网服务,可忽略该步骤)。
| P1 | P2 | P3 |
| --- | --- | --- |
| ![alt text](/imgs/image-112.png) | ![alt text](/imgs/image-110.png) | ![alt text](/imgs/image-111.png) |
3. 获取 Signoz 访问地址
变更完成后,等待公网地址就绪,复制该地址,将其填入 FastGPT 中。如果是走内网服务,可以直接复制 4318 端口的内网地址。
![alt text](/imgs/image-113.png)
## 配置 FastGPT
1. 修改 FastGPT 环境变量
```
SIGNOZ_BASE_URL=上一步复制的地址
SIGNOZ_SERVICE_NAME=fastgpt # 服务标识名,必须为英文
SIGNOZ_STORE_LEVEL=warn # 日志等级,可选值: debug, info, warn, error
```
2. 重启 FastGPT
## 查看效果
返回 Sealos 应用管理列表,点击进入 Signoz 前端项目,并访问其公网地址,进入管理台。
| | |
| --- | --- |
| ![alt text](/imgs/image-114.png) | ![alt text](/imgs/image-115.png) |
首次注册需要注册一个账号(数据是存储本地数据库),随便填写即可。
![alt text](/imgs/image-116.png)
登录进去后,如果看到右侧 COMPLETED 的步骤条中,logs 和 traces 亮起,则说明配置成功。
![alt text](/imgs/image-117.png)
![alt text](/imgs/image-118.png)
## 注意事项
1. 调整日志存储时长
Signoz 监控是一个非常占用磁盘的服务,首先不要把 FastGPT debug 日志也存储进来,另外可以将日志存储时长调整为 7 天。如果突然发现 Signoz 数据不增加了,并且内存一直追加,则说明是磁盘满了,需要扩大容量。
![alt text](/imgs/image-119.png)
\ No newline at end of file
...@@ -74,7 +74,7 @@ description: FastGPT 批量运行节点介绍和使用 ...@@ -74,7 +74,7 @@ description: FastGPT 批量运行节点介绍和使用
### 循环体配置 ### 循环体配置
![循环体配置](/imgs/fastgpt-loop-node-config.png) ![循环体配置](/imgs/fastgpt-loop-node-config.webp)
1. 在循环体内部,可以添加任意类型的节点,如: 1. 在循环体内部,可以添加任意类型的节点,如:
- AI 对话节点 - AI 对话节点
......
...@@ -17,10 +17,18 @@ FastGPT v4.8.16 版本开始,商业版用户支持语雀文件库导入,用 ...@@ -17,10 +17,18 @@ FastGPT v4.8.16 版本开始,商业版用户支持语雀文件库导入,用
参考下图获取 Token 和 User ID,注意给 Token 赋值权限: 参考下图获取 Token 和 User ID,注意给 Token 赋值权限:
**个人版**:
| 获取 Token | 增加权限 | 获取 User ID | | 获取 Token | 增加权限 | 获取 User ID |
| --- | --- | --- | | --- | --- | --- |
| ![alt text](/imgs/image-33.png) | ![alt text](/imgs/image-34.png) | ![alt text](/imgs/image-35.png) | | ![alt text](/imgs/image-33.png) | ![alt text](/imgs/image-34.png) | ![alt text](/imgs/image-35.png) |
**企业版**:
| 获取 Token | 获取 User ID |
| --- | --- |
| ![alt text](/imgs/image-109.png) | ![alt text](/imgs/image-108.png) |
## 2. 创建知识库 ## 2. 创建知识库
使用上一步获取的 token 和 uid,创建知识库,选择语雀文件库类型,然后填入对应的参数,点击创建。 使用上一步获取的 token 和 uid,创建知识库,选择语雀文件库类型,然后填入对应的参数,点击创建。
......
...@@ -42,6 +42,7 @@ description: FastGPT 文档目录 ...@@ -42,6 +42,7 @@ description: FastGPT 文档目录
- [/docs/introduction/development/proxy/http_proxy](/docs/introduction/development/proxy/http_proxy) - [/docs/introduction/development/proxy/http_proxy](/docs/introduction/development/proxy/http_proxy)
- [/docs/introduction/development/proxy/nginx](/docs/introduction/development/proxy/nginx) - [/docs/introduction/development/proxy/nginx](/docs/introduction/development/proxy/nginx)
- [/docs/introduction/development/sealos](/docs/introduction/development/sealos) - [/docs/introduction/development/sealos](/docs/introduction/development/sealos)
- [/docs/introduction/development/signoz](/docs/introduction/development/signoz)
- [/docs/introduction/guide/DialogBoxes/htmlRendering](/docs/introduction/guide/DialogBoxes/htmlRendering) - [/docs/introduction/guide/DialogBoxes/htmlRendering](/docs/introduction/guide/DialogBoxes/htmlRendering)
- [/docs/introduction/guide/DialogBoxes/quoteList](/docs/introduction/guide/DialogBoxes/quoteList) - [/docs/introduction/guide/DialogBoxes/quoteList](/docs/introduction/guide/DialogBoxes/quoteList)
- [/docs/introduction/guide/admin/sso](/docs/introduction/guide/admin/sso) - [/docs/introduction/guide/admin/sso](/docs/introduction/guide/admin/sso)
......
...@@ -47,7 +47,6 @@ curl --location --request POST 'https://{{host}}/api/admin/initv4124' \ ...@@ -47,7 +47,6 @@ curl --location --request POST 'https://{{host}}/api/admin/initv4124' \
1. HTTP 工具空指针,导致无法编辑。 1. HTTP 工具空指针,导致无法编辑。
2. python 代码运行,入参无法是 boolean 值。 2. python 代码运行,入参无法是 boolean 值。
3. debug 模式下,全局变量未传递。
## 🔨 插件更新 ## 🔨 插件更新
...@@ -12,7 +12,12 @@ description: 'FastGPT V4.12.5 更新说明' ...@@ -12,7 +12,12 @@ description: 'FastGPT V4.12.5 更新说明'
## 🐛 修复 ## 🐛 修复
1. debug 模式下,全局变量未传递。
2. debug 模式下,前方节点参数无法传递至后方节点
3. 调试模式下,开启“自动执行”,会跳过外部变量的填写。
4. 自动语音回复未生效
5. 节点复制,报错捕获配置丢失
## 🔨 插件更新 ## 🔨 插件更新
1. 新增火山引擎融合信息搜索工具。 1. 新增火山引擎融合信息搜索工具。
\ No newline at end of file
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
"document/content/docs/introduction/development/custom-models/chatglm2.mdx": "2025-07-23T21:35:03+08:00", "document/content/docs/introduction/development/custom-models/chatglm2.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/custom-models/m3e.mdx": "2025-07-23T21:35:03+08:00", "document/content/docs/introduction/development/custom-models/m3e.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/custom-models/marker.mdx": "2025-08-04T22:07:52+08:00", "document/content/docs/introduction/development/custom-models/marker.mdx": "2025-08-04T22:07:52+08:00",
"document/content/docs/introduction/development/custom-models/mineru.mdx": "2025-09-17T18:33:31+08:00",
"document/content/docs/introduction/development/custom-models/ollama.mdx": "2025-08-05T23:20:39+08:00", "document/content/docs/introduction/development/custom-models/ollama.mdx": "2025-08-05T23:20:39+08:00",
"document/content/docs/introduction/development/custom-models/xinference.mdx": "2025-08-05T23:20:39+08:00", "document/content/docs/introduction/development/custom-models/xinference.mdx": "2025-08-05T23:20:39+08:00",
"document/content/docs/introduction/development/design/dataset.mdx": "2025-07-23T21:35:03+08:00", "document/content/docs/introduction/development/design/dataset.mdx": "2025-07-23T21:35:03+08:00",
...@@ -75,11 +76,11 @@ ...@@ -75,11 +76,11 @@
"document/content/docs/introduction/guide/knowledge_base/api_dataset.mdx": "2025-07-23T21:35:03+08:00", "document/content/docs/introduction/guide/knowledge_base/api_dataset.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/guide/knowledge_base/collection_tags.mdx": "2025-08-02T19:38:37+08:00", "document/content/docs/introduction/guide/knowledge_base/collection_tags.mdx": "2025-08-02T19:38:37+08:00",
"document/content/docs/introduction/guide/knowledge_base/dataset_engine.mdx": "2025-07-23T21:35:03+08:00", "document/content/docs/introduction/guide/knowledge_base/dataset_engine.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/guide/knowledge_base/lark_dataset.mdx": "2025-07-23T21:35:03+08:00", "document/content/docs/introduction/guide/knowledge_base/lark_dataset.mdx": "2025-09-17T17:40:47+08:00",
"document/content/docs/introduction/guide/knowledge_base/template.mdx": "2025-07-23T21:35:03+08:00", "document/content/docs/introduction/guide/knowledge_base/template.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/guide/knowledge_base/third_dataset.mdx": "2025-07-24T13:00:27+08:00", "document/content/docs/introduction/guide/knowledge_base/third_dataset.mdx": "2025-07-24T13:00:27+08:00",
"document/content/docs/introduction/guide/knowledge_base/websync.mdx": "2025-08-05T23:20:39+08:00", "document/content/docs/introduction/guide/knowledge_base/websync.mdx": "2025-08-05T23:20:39+08:00",
"document/content/docs/introduction/guide/knowledge_base/yuque_dataset.mdx": "2025-07-23T21:35:03+08:00", "document/content/docs/introduction/guide/knowledge_base/yuque_dataset.mdx": "2025-09-17T19:04:12+08:00",
"document/content/docs/introduction/guide/plugins/bing_search_plugin.mdx": "2025-07-23T21:35:03+08:00", "document/content/docs/introduction/guide/plugins/bing_search_plugin.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/guide/plugins/dev_system_tool.mdx": "2025-08-20T19:00:48+08:00", "document/content/docs/introduction/guide/plugins/dev_system_tool.mdx": "2025-08-20T19:00:48+08:00",
"document/content/docs/introduction/guide/plugins/doc2x_plugin_guide.mdx": "2025-07-23T21:35:03+08:00", "document/content/docs/introduction/guide/plugins/doc2x_plugin_guide.mdx": "2025-07-23T21:35:03+08:00",
...@@ -97,7 +98,7 @@ ...@@ -97,7 +98,7 @@
"document/content/docs/protocol/terms.en.mdx": "2025-08-03T22:37:45+08:00", "document/content/docs/protocol/terms.en.mdx": "2025-08-03T22:37:45+08:00",
"document/content/docs/protocol/terms.mdx": "2025-08-03T22:37:45+08:00", "document/content/docs/protocol/terms.mdx": "2025-08-03T22:37:45+08:00",
"document/content/docs/toc.en.mdx": "2025-08-04T13:42:36+08:00", "document/content/docs/toc.en.mdx": "2025-08-04T13:42:36+08:00",
"document/content/docs/toc.mdx": "2025-09-17T17:03:12+08:00", "document/content/docs/toc.mdx": "2025-09-17T18:33:31+08:00",
"document/content/docs/upgrading/4-10/4100.mdx": "2025-08-02T19:38:37+08:00", "document/content/docs/upgrading/4-10/4100.mdx": "2025-08-02T19:38:37+08:00",
"document/content/docs/upgrading/4-10/4101.mdx": "2025-09-08T20:07:20+08:00", "document/content/docs/upgrading/4-10/4101.mdx": "2025-09-08T20:07:20+08:00",
"document/content/docs/upgrading/4-11/4110.mdx": "2025-08-05T23:20:39+08:00", "document/content/docs/upgrading/4-11/4110.mdx": "2025-08-05T23:20:39+08:00",
...@@ -106,8 +107,8 @@ ...@@ -106,8 +107,8 @@
"document/content/docs/upgrading/4-12/4121.mdx": "2025-09-07T14:41:48+08:00", "document/content/docs/upgrading/4-12/4121.mdx": "2025-09-07T14:41:48+08:00",
"document/content/docs/upgrading/4-12/4122.mdx": "2025-09-07T14:41:48+08:00", "document/content/docs/upgrading/4-12/4122.mdx": "2025-09-07T14:41:48+08:00",
"document/content/docs/upgrading/4-12/4123.mdx": "2025-09-07T20:55:14+08:00", "document/content/docs/upgrading/4-12/4123.mdx": "2025-09-07T20:55:14+08:00",
"document/content/docs/upgrading/4-12/4124.mdx": "2025-09-16T10:46:55+08:00", "document/content/docs/upgrading/4-12/4124.mdx": "2025-09-17T18:36:54+08:00",
"document/content/docs/upgrading/4-12/4125.mdx": "2025-09-17T17:03:12+08:00", "document/content/docs/upgrading/4-12/4125.mdx": "2025-09-17T21:22:47+08:00",
"document/content/docs/upgrading/4-8/40.mdx": "2025-08-02T19:38:37+08:00", "document/content/docs/upgrading/4-8/40.mdx": "2025-08-02T19:38:37+08:00",
"document/content/docs/upgrading/4-8/41.mdx": "2025-08-02T19:38:37+08:00", "document/content/docs/upgrading/4-8/41.mdx": "2025-08-02T19:38:37+08:00",
"document/content/docs/upgrading/4-8/42.mdx": "2025-08-02T19:38:37+08:00", "document/content/docs/upgrading/4-8/42.mdx": "2025-08-02T19:38:37+08:00",
......
<svg width="185" height="42" viewBox="0 0 185 42" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.683228" width="183.634" height="41.1991" rx="6.71724" fill="#018CF1"/>
<path d="M34.2597 16.3547C34.1988 16.1607 34.1242 15.9714 34.0362 15.7881V15.7763C33.6258 14.9383 32.9452 14.264 32.1049 13.8628C31.2647 13.4616 30.314 13.3571 29.4071 13.5661C28.5003 13.7752 27.6904 14.2856 27.1088 15.0146C26.5273 15.7436 26.2082 16.6484 26.2033 17.5822C26.2034 17.8759 26.2349 18.1687 26.2974 18.4556C26.2977 18.4596 26.2977 18.4635 26.2974 18.4674C26.3209 18.5855 26.3562 18.7035 26.3915 18.8215C26.6014 19.653 26.6423 20.5184 26.5116 21.366C26.3809 22.2137 26.0815 23.0262 25.631 23.7551C25.1806 24.4841 24.5884 25.1145 23.8899 25.6087C23.1913 26.1029 22.4007 26.4508 21.5653 26.6317C20.7298 26.8126 19.8666 26.8226 19.0271 26.6613C18.1877 26.5001 17.3893 26.1707 16.6794 25.6929C15.9696 25.2151 15.363 24.5987 14.8958 23.8805C14.4286 23.1623 14.1103 22.357 13.96 21.5126C14.1725 22.9763 14.689 24.3788 15.4759 25.6295C16.2628 26.8801 17.3026 27.951 18.5281 28.7727C19.7535 29.5945 21.1373 30.1488 22.5897 30.3999C24.0422 30.6509 25.531 30.593 26.9598 30.23C28.3885 29.8669 29.7254 29.2068 30.8839 28.2924C32.0423 27.378 32.9965 26.2296 33.6846 24.9216C34.3728 23.6136 34.7795 22.1752 34.8786 20.6994C34.9776 19.2237 34.7668 17.7435 34.2597 16.3547V16.3547Z" fill="#6378FF"/>
<path d="M17.5472 19.9074C18.9115 21.9021 21.7342 21.725 21.7342 21.725C21.0285 21.0404 20.5698 20.4149 20.5228 18.6326C20.4757 16.8504 19.4643 16.3782 19.4643 16.3782C21.2755 15.2334 20.6286 13.994 20.5698 12.6131C20.5345 11.7515 21.0403 11.1141 21.4401 10.7482C19.1386 11.0942 17.0589 12.3183 15.6347 14.1654C14.2104 16.0126 13.5516 18.3401 13.7954 20.6627C13.9601 20.2024 16.2888 18.0661 17.5472 19.9074Z" fill="white"/>
<path d="M34.2597 16.3547C34.1988 16.1607 34.1242 15.9714 34.0362 15.7881V15.7763C33.6258 14.9383 32.9452 14.264 32.1049 13.8628C31.2647 13.4616 30.314 13.3571 29.4071 13.5661C28.5003 13.7752 27.6904 14.2856 27.1088 15.0146C26.5273 15.7436 26.2082 16.6484 26.2033 17.5822C26.2034 17.8759 26.2349 18.1687 26.2974 18.4556C26.2977 18.4596 26.2977 18.4635 26.2974 18.4674C26.3209 18.5855 26.3562 18.7035 26.3915 18.8215C26.6014 19.653 26.6423 20.5184 26.5116 21.366C26.3809 22.2137 26.0815 23.0262 25.631 23.7551C25.1806 24.4841 24.5884 25.1145 23.8899 25.6087C23.1913 26.1029 22.4007 26.4508 21.5653 26.6317C20.7298 26.8126 19.8666 26.8226 19.0271 26.6613C18.1877 26.5001 17.3893 26.1707 16.6794 25.6929C15.9696 25.2151 15.363 24.5987 14.8958 23.8805C14.4286 23.1623 14.1103 22.357 13.96 21.5126C14.1725 22.9763 14.689 24.3788 15.4759 25.6295C16.2628 26.8801 17.3026 27.951 18.5281 28.7727C19.7535 29.5945 21.1373 30.1488 22.5897 30.3999C24.0422 30.6509 25.531 30.593 26.9598 30.23C28.3885 29.8669 29.7254 29.2068 30.8839 28.2924C32.0423 27.378 32.9965 26.2296 33.6846 24.9216C34.3728 23.6136 34.7795 22.1752 34.8786 20.6994C34.9776 19.2237 34.7668 17.7435 34.2597 16.3547V16.3547Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.5073 19.1992C32.5073 24.3424 28.3528 28.5118 23.2278 28.5118C20.5078 28.5118 18.0612 27.3373 16.3639 25.4661C16.4666 25.5448 16.5718 25.6204 16.6795 25.6929C17.3893 26.1706 18.1877 26.5 19.0272 26.6613C19.8666 26.8226 20.7298 26.8125 21.5653 26.6317C22.4007 26.4508 23.1913 26.1029 23.8899 25.6086C24.5884 25.1144 25.1806 24.484 25.631 23.7551C26.0815 23.0261 26.381 22.2136 26.5116 21.366C26.6423 20.5183 26.6014 19.6529 26.3915 18.8215C26.3562 18.7034 26.3209 18.5854 26.2974 18.4674C26.2977 18.4635 26.2977 18.4595 26.2974 18.4556C26.2349 18.1687 26.2034 17.8758 26.2033 17.5822C26.2082 16.6483 26.5273 15.7436 27.1088 15.0146C27.6904 14.2856 28.5003 13.7752 29.4071 13.5661C29.7813 13.4798 30.1629 13.447 30.5411 13.4663C31.7731 15.0468 32.5073 17.0369 32.5073 19.1992Z" fill="white"/>
<path d="M46.0985 15.5687H50.1309C51.923 15.5687 53.2672 16.0631 54.1941 17.0518C55.0748 17.9788 55.5228 19.3229 55.5228 21.0842C55.5228 22.83 55.0748 24.1741 54.1941 25.1166C53.2672 26.1053 51.923 26.5997 50.1309 26.5997H46.0985V15.5687ZM47.9061 17.1136V25.0548H49.791C51.166 25.0548 52.1702 24.7303 52.8037 24.0969C53.4217 23.448 53.7306 22.4438 53.7306 21.0842C53.7306 19.6937 53.4217 18.6741 52.8037 18.0561C52.1702 17.4226 51.166 17.1136 49.791 17.1136H47.9061ZM60.4625 18.396C61.7757 18.396 62.7799 18.8286 63.4752 19.7246C64.1086 20.528 64.433 21.6558 64.433 23.0927H58.454C58.5158 23.8342 58.7167 24.4059 59.0566 24.7921C59.3965 25.1784 59.8908 25.3792 60.5243 25.3792C61.065 25.3792 61.4976 25.2556 61.8375 25.0084C62.1001 24.8076 62.3319 24.4831 62.5482 24.0351H64.3094C64.1241 24.7767 63.7533 25.4101 63.1971 25.9045C62.4864 26.507 61.6058 26.816 60.5397 26.816C59.3501 26.816 58.4077 26.4452 57.7124 25.7191C56.9709 24.9621 56.6001 23.9269 56.6001 22.5983C56.6001 21.4086 56.94 20.4199 57.6506 19.6165C58.3304 18.7977 59.2729 18.396 60.4625 18.396ZM60.5088 19.8328C59.9217 19.8328 59.4737 19.9873 59.1338 20.3272C58.8094 20.6516 58.5931 21.1306 58.4849 21.764H62.5945C62.44 20.4662 61.7448 19.8328 60.5088 19.8328ZM69.8772 18.396C71.0514 18.396 71.9784 18.8131 72.6582 19.6474C73.2762 20.4199 73.5852 21.4086 73.5852 22.6446C73.5852 23.8188 73.2762 24.7921 72.6736 25.5646C72.0247 26.3989 71.1132 26.816 69.9699 26.816C69.043 26.816 68.2396 26.368 67.5907 25.5028V29.6588H65.8294V18.6123H67.4671V19.462C68.0233 18.7513 68.8267 18.396 69.8772 18.396ZM69.6146 19.8173C68.9194 19.8173 68.3941 20.08 68.0233 20.6362C67.6834 21.1151 67.5289 21.7485 67.5289 22.5519V22.6755C67.5289 23.5098 67.7297 24.1896 68.1469 24.6994C68.5177 25.1629 68.9812 25.3947 69.5528 25.3947C70.3253 25.3947 70.9124 25.132 71.2832 24.6376C71.6076 24.1741 71.7776 23.5098 71.7776 22.6446C71.7776 21.7794 71.6231 21.1151 71.3295 20.6516C70.9587 20.0954 70.3871 19.8173 69.6146 19.8173ZM75.2779 15.3524H77.0391V26.5997H75.2779V15.3524ZM82.7541 18.396C83.9591 18.396 84.9325 18.7822 85.674 19.5856C86.4002 20.3735 86.771 21.3777 86.771 22.6137C86.771 23.8342 86.4002 24.8385 85.6895 25.611C84.9479 26.4143 83.9591 26.816 82.7541 26.816C81.5335 26.816 80.5602 26.4143 79.8186 25.611C79.0925 24.8385 78.7371 23.8342 78.7371 22.6137C78.7371 21.3777 79.0925 20.3735 79.8341 19.5856C80.5602 18.7822 81.5335 18.396 82.7541 18.396ZM82.7541 19.8328C82.0125 19.8328 81.4563 20.1109 81.0546 20.698C80.7147 21.1924 80.5448 21.8412 80.5448 22.6137C80.5448 23.3862 80.7147 24.0196 81.0546 24.514C81.4563 25.0857 82.0125 25.3792 82.7541 25.3792C83.4802 25.3792 84.0518 25.0857 84.4535 24.514C84.7934 24.0042 84.9788 23.3708 84.9788 22.6137C84.9788 21.8412 84.7934 21.1924 84.4535 20.698C84.0518 20.1109 83.4802 19.8328 82.7541 19.8328ZM87.4602 18.6123H89.3759L91.4925 24.2977L93.5164 18.6123H95.4322L91.1063 29.6588H89.2214L90.6274 26.4143L87.4602 18.6123ZM105.295 18.396C106.5 18.396 107.473 18.7822 108.215 19.5856C108.941 20.3735 109.312 21.3777 109.312 22.6137C109.312 23.8342 108.941 24.8385 108.23 25.611C107.489 26.4143 106.5 26.816 105.295 26.816C104.074 26.816 103.101 26.4143 102.359 25.611C101.633 24.8385 101.278 23.8342 101.278 22.6137C101.278 21.3777 101.633 20.3735 102.375 19.5856C103.101 18.7822 104.074 18.396 105.295 18.396ZM105.295 19.8328C104.553 19.8328 103.997 20.1109 103.595 20.698C103.256 21.1924 103.086 21.8412 103.086 22.6137C103.086 23.3862 103.256 24.0196 103.595 24.514C103.997 25.0857 104.553 25.3792 105.295 25.3792C106.021 25.3792 106.593 25.0857 106.994 24.514C107.334 24.0042 107.52 23.3708 107.52 22.6137C107.52 21.8412 107.334 21.1924 106.994 20.698C106.593 20.1109 106.021 19.8328 105.295 19.8328ZM114.976 18.396C116.969 18.396 117.973 19.4774 117.973 21.6713V26.5997H116.212V21.8258C116.212 20.5126 115.609 19.8637 114.404 19.8637C113.972 19.8637 113.585 20.0182 113.261 20.3272C112.89 20.6671 112.674 21.1615 112.612 21.7949V26.5997H110.851V18.6123H112.612V19.5392C112.921 19.1684 113.276 18.8749 113.663 18.6895C114.064 18.4887 114.497 18.396 114.976 18.396ZM129.021 15.3524C130.318 15.3524 131.338 15.615 132.064 16.1558C132.837 16.7274 133.285 17.6235 133.393 18.8286H131.601C131.446 18.1488 131.153 17.6544 130.751 17.3608C130.349 17.0518 129.731 16.9128 128.928 16.9128C128.233 16.9128 127.707 17.0055 127.337 17.2063C126.873 17.4381 126.657 17.8243 126.657 18.3496C126.657 18.8131 126.904 19.1993 127.429 19.4774C127.661 19.601 128.294 19.8328 129.314 20.1572C130.813 20.6207 131.771 20.9915 132.203 21.2387C133.161 21.8103 133.64 22.5983 133.64 23.618C133.64 24.6067 133.254 25.3947 132.481 25.9663C131.709 26.5225 130.612 26.816 129.206 26.816C127.846 26.816 126.78 26.5534 126.023 26.0281C125.096 25.3792 124.586 24.3595 124.509 22.9536H126.301C126.425 23.7879 126.719 24.3904 127.197 24.7458C127.63 25.0548 128.294 25.2247 129.206 25.2247C130.009 25.2247 130.658 25.0857 131.122 24.823C131.585 24.5449 131.832 24.1896 131.832 23.7261C131.832 23.139 131.477 22.6755 130.797 22.3356C130.581 22.2275 129.87 21.9803 128.65 21.6095C127.29 21.1769 126.44 20.8679 126.116 20.6825C125.266 20.1727 124.849 19.4311 124.849 18.4578C124.849 17.4844 125.251 16.7119 126.085 16.1558C126.858 15.615 127.831 15.3524 129.021 15.3524ZM138.435 18.396C139.748 18.396 140.752 18.8286 141.448 19.7246C142.081 20.528 142.406 21.6558 142.406 23.0927H136.427C136.488 23.8342 136.689 24.4059 137.029 24.7921C137.369 25.1784 137.863 25.3792 138.497 25.3792C139.038 25.3792 139.47 25.2556 139.81 25.0084C140.073 24.8076 140.304 24.4831 140.521 24.0351H142.282C142.097 24.7767 141.726 25.4101 141.17 25.9045C140.459 26.507 139.578 26.816 138.512 26.816C137.323 26.816 136.38 26.4452 135.685 25.7191C134.943 24.9621 134.573 23.9269 134.573 22.5983C134.573 21.4086 134.913 20.4199 135.623 19.6165C136.303 18.7977 137.245 18.396 138.435 18.396ZM138.481 19.8328C137.894 19.8328 137.446 19.9873 137.106 20.3272C136.782 20.6516 136.566 21.1306 136.457 21.764H140.567C140.413 20.4662 139.717 19.8328 138.481 19.8328ZM147.433 18.396C148.607 18.396 149.487 18.6895 150.044 19.2766C150.538 19.7864 150.785 20.528 150.785 21.5013V26.5997H149.148V25.5492C148.839 25.9509 148.452 26.2444 148.004 26.4607C147.494 26.6924 146.892 26.816 146.197 26.816C145.362 26.816 144.714 26.5997 144.235 26.1826C143.74 25.75 143.493 25.2093 143.493 24.5449C143.493 23.6489 143.833 22.9536 144.544 22.4747C145.192 22.0112 146.104 21.764 147.278 21.7331L149.024 21.6867V21.3777C149.024 20.3272 148.452 19.8173 147.309 19.8173C146.815 19.8173 146.428 19.8946 146.135 20.08C145.795 20.2808 145.563 20.5898 145.471 21.007L143.725 20.8679C143.895 19.9873 144.327 19.3384 145.023 18.9367C145.61 18.5659 146.413 18.396 147.433 18.396ZM149.024 22.9536L147.402 23C145.996 23.0309 145.301 23.5253 145.301 24.4831C145.301 24.7612 145.409 24.993 145.656 25.1784C145.903 25.3638 146.212 25.4719 146.598 25.4719C147.278 25.4719 147.85 25.2711 148.313 24.8848C148.777 24.4831 149.024 23.9733 149.024 23.3553V22.9536ZM152.798 15.3524H154.559V26.5997H152.798V15.3524ZM160.274 18.396C161.479 18.396 162.452 18.7822 163.194 19.5856C163.92 20.3735 164.291 21.3777 164.291 22.6137C164.291 23.8342 163.92 24.8385 163.209 25.611C162.468 26.4143 161.479 26.816 160.274 26.816C159.053 26.816 158.08 26.4143 157.339 25.611C156.612 24.8385 156.257 23.8342 156.257 22.6137C156.257 21.3777 156.612 20.3735 157.354 19.5856C158.08 18.7822 159.053 18.396 160.274 18.396ZM160.274 19.8328C159.532 19.8328 158.976 20.1109 158.575 20.698C158.235 21.1924 158.065 21.8412 158.065 22.6137C158.065 23.3862 158.235 24.0196 158.575 24.514C158.976 25.0857 159.532 25.3792 160.274 25.3792C161 25.3792 161.572 25.0857 161.973 24.514C162.313 24.0042 162.499 23.3708 162.499 22.6137C162.499 21.8412 162.313 21.1924 161.973 20.698C161.572 20.1109 161 19.8328 160.274 19.8328ZM168.843 18.396C170.944 18.396 172.102 19.2302 172.288 20.9297H170.573C170.449 20.528 170.264 20.2345 170.017 20.08C169.754 19.91 169.352 19.8328 168.812 19.8328C168.348 19.8328 167.993 19.8946 167.761 20.0336C167.483 20.1727 167.359 20.389 167.359 20.698C167.359 20.9452 167.56 21.1769 167.993 21.3623C168.255 21.4704 168.781 21.6249 169.584 21.8258C170.48 22.0421 171.16 22.2893 171.593 22.5828C172.226 22.9845 172.55 23.5562 172.55 24.2668C172.55 25.9663 171.345 26.816 168.951 26.816C166.726 26.816 165.536 25.8736 165.366 24.0042H167.081C167.174 24.514 167.359 24.8694 167.622 25.0857C167.885 25.2711 168.302 25.3792 168.889 25.3792C170.125 25.3792 170.743 25.0393 170.743 24.3904C170.743 24.0196 170.511 23.7261 170.048 23.5098C169.8 23.3862 169.275 23.2472 168.472 23.0618C167.529 22.8455 166.865 22.6137 166.479 22.3665C165.861 21.9803 165.552 21.4395 165.552 20.7443C165.552 20.0027 165.845 19.4311 166.463 19.0294C167.066 18.5968 167.854 18.396 168.843 18.396Z" fill="white"/>
</svg>

179 KB | W: | H:

176 KB | W: | H:

document/public/imgs/datasetEngine9.jpg
document/public/imgs/datasetEngine9.jpg
document/public/imgs/datasetEngine9.jpg
document/public/imgs/datasetEngine9.jpg
  • 2-up
  • Swipe
  • Onion skin

179 KB | W: | H:

176 KB | W: | H:

document/public/imgs/datasetprompt5.jpg
document/public/imgs/datasetprompt5.jpg
document/public/imgs/datasetprompt5.jpg
document/public/imgs/datasetprompt5.jpg
  • 2-up
  • Swipe
  • Onion skin

205 KB | W: | H:

204 KB | W: | H:

document/public/imgs/datasetprompt8.jpg
document/public/imgs/datasetprompt8.jpg
document/public/imgs/datasetprompt8.jpg
document/public/imgs/datasetprompt8.jpg
  • 2-up
  • Swipe
  • Onion skin

208 KB | W: | H:

207 KB | W: | H:

document/public/imgs/datasetprompt9.jpg
document/public/imgs/datasetprompt9.jpg
document/public/imgs/datasetprompt9.jpg
document/public/imgs/datasetprompt9.jpg
  • 2-up
  • Swipe
  • Onion skin

194 KB | W: | H:

41.2 KB | W: | H:

document/public/imgs/evaluation2.png
document/public/imgs/evaluation2.png
document/public/imgs/evaluation2.png
document/public/imgs/evaluation2.png
  • 2-up
  • Swipe
  • Onion skin

218 KB | W: | H:

48.3 KB | W: | H:

document/public/imgs/evaluation3.png
document/public/imgs/evaluation3.png
document/public/imgs/evaluation3.png
document/public/imgs/evaluation3.png
  • 2-up
  • Swipe
  • Onion skin

288 KB | W: | H:

287 KB | W: | H:

document/public/imgs/fastgpt-loop-node-example-5.png
document/public/imgs/fastgpt-loop-node-example-5.png
document/public/imgs/fastgpt-loop-node-example-5.png
document/public/imgs/fastgpt-loop-node-example-5.png
  • 2-up
  • Swipe
  • Onion skin

211 KB | W: | H:

211 KB | W: | H:

document/public/imgs/fileinpu-3.jpg
document/public/imgs/fileinpu-3.jpg
document/public/imgs/fileinpu-3.jpg
document/public/imgs/fileinpu-3.jpg
  • 2-up
  • Swipe
  • Onion skin

242 KB | W: | H:

241 KB | W: | H:

document/public/imgs/fileinpu-5.jpg
document/public/imgs/fileinpu-5.jpg
document/public/imgs/fileinpu-5.jpg
document/public/imgs/fileinpu-5.jpg
  • 2-up
  • Swipe
  • Onion skin

179 KB | W: | H:

179 KB | W: | H:

document/public/imgs/gapierTool3.png
document/public/imgs/gapierTool3.png
document/public/imgs/gapierTool3.png
document/public/imgs/gapierTool3.png
  • 2-up
  • Swipe
  • Onion skin

254 KB | W: | H:

64.7 KB | W: | H:

document/public/imgs/image-100.png
document/public/imgs/image-100.png
document/public/imgs/image-100.png
document/public/imgs/image-100.png
  • 2-up
  • Swipe
  • Onion skin

263 KB | W: | H:

92.3 KB | W: | H:

document/public/imgs/image-5.png
document/public/imgs/image-5.png
document/public/imgs/image-5.png
document/public/imgs/image-5.png
  • 2-up
  • Swipe
  • Onion skin

259 KB | W: | H:

68.9 KB | W: | H:

document/public/imgs/image-60.png
document/public/imgs/image-60.png
document/public/imgs/image-60.png
document/public/imgs/image-60.png
  • 2-up
  • Swipe
  • Onion skin

288 KB | W: | H:

82.1 KB | W: | H:

document/public/imgs/image-64.png
document/public/imgs/image-64.png
document/public/imgs/image-64.png
document/public/imgs/image-64.png
  • 2-up
  • Swipe
  • Onion skin

279 KB | W: | H:

79.7 KB | W: | H:

document/public/imgs/image-67.png
document/public/imgs/image-67.png
document/public/imgs/image-67.png
document/public/imgs/image-67.png
  • 2-up
  • Swipe
  • Onion skin

288 KB | W: | H:

99.1 KB | W: | H:

document/public/imgs/image-7.png
document/public/imgs/image-7.png
document/public/imgs/image-7.png
document/public/imgs/image-7.png
  • 2-up
  • Swipe
  • Onion skin

273 KB | W: | H:

61.7 KB | W: | H:

document/public/imgs/image-71.png
document/public/imgs/image-71.png
document/public/imgs/image-71.png
document/public/imgs/image-71.png
  • 2-up
  • Swipe
  • Onion skin

257 KB | W: | H:

85.5 KB | W: | H:

document/public/imgs/image-91.png
document/public/imgs/image-91.png
document/public/imgs/image-91.png
document/public/imgs/image-91.png
  • 2-up
  • Swipe
  • Onion skin

253 KB | W: | H:

69.7 KB | W: | H:

document/public/imgs/image-97.png
document/public/imgs/image-97.png
document/public/imgs/image-97.png
document/public/imgs/image-97.png
  • 2-up
  • Swipe
  • Onion skin

185 KB | W: | H:

58 KB | W: | H:

document/public/imgs/mcp_tools3.png
document/public/imgs/mcp_tools3.png
document/public/imgs/mcp_tools3.png
document/public/imgs/mcp_tools3.png
  • 2-up
  • Swipe
  • Onion skin

183 KB | W: | H:

64 KB | W: | H:

document/public/imgs/mcp_tools4.png
document/public/imgs/mcp_tools4.png
document/public/imgs/mcp_tools4.png
document/public/imgs/mcp_tools4.png
  • 2-up
  • Swipe
  • Onion skin

182 KB | W: | H:

60.4 KB | W: | H:

document/public/imgs/mcp_tools5.png
document/public/imgs/mcp_tools5.png
document/public/imgs/mcp_tools5.png
document/public/imgs/mcp_tools5.png
  • 2-up
  • Swipe
  • Onion skin

204 KB | W: | H:

66.8 KB | W: | H:

document/public/imgs/mcp_tools6.png
document/public/imgs/mcp_tools6.png
document/public/imgs/mcp_tools6.png
document/public/imgs/mcp_tools6.png
  • 2-up
  • Swipe
  • Onion skin

195 KB | W: | H:

74.4 KB | W: | H:

document/public/imgs/mcp_tools7.png
document/public/imgs/mcp_tools7.png
document/public/imgs/mcp_tools7.png
document/public/imgs/mcp_tools7.png
  • 2-up
  • Swipe
  • Onion skin

253 KB | W: | H:

89.4 KB | W: | H:

document/public/imgs/mcp_tools8.png
document/public/imgs/mcp_tools8.png
document/public/imgs/mcp_tools8.png
document/public/imgs/mcp_tools8.png
  • 2-up
  • Swipe
  • Onion skin

312 KB | W: | H:

69.3 KB | W: | H:

document/public/imgs/mineru1.png
document/public/imgs/mineru1.png
document/public/imgs/mineru1.png
document/public/imgs/mineru1.png
  • 2-up
  • Swipe
  • Onion skin

518 KB | W: | H:

161 KB | W: | H:

document/public/imgs/mineru3-1.png
document/public/imgs/mineru3-1.png
document/public/imgs/mineru3-1.png
document/public/imgs/mineru3-1.png
  • 2-up
  • Swipe
  • Onion skin

666 KB | W: | H:

250 KB | W: | H:

document/public/imgs/mineru3.png
document/public/imgs/mineru3.png
document/public/imgs/mineru3.png
document/public/imgs/mineru3.png
  • 2-up
  • Swipe
  • Onion skin

443 KB | W: | H:

140 KB | W: | H:

document/public/imgs/mineru4-1.png
document/public/imgs/mineru4-1.png
document/public/imgs/mineru4-1.png
document/public/imgs/mineru4-1.png
  • 2-up
  • Swipe
  • Onion skin

1.1 MB | W: | H:

357 KB | W: | H:

document/public/imgs/mineru5-1.png
document/public/imgs/mineru5-1.png
document/public/imgs/mineru5-1.png
document/public/imgs/mineru5-1.png
  • 2-up
  • Swipe
  • Onion skin

264 KB | W: | H:

87.2 KB | W: | H:

document/public/imgs/mineru5.png
document/public/imgs/mineru5.png
document/public/imgs/mineru5.png
document/public/imgs/mineru5.png
  • 2-up
  • Swipe
  • Onion skin

419 KB | W: | H:

105 KB | W: | H:

document/public/imgs/mineru6.png
document/public/imgs/mineru6.png
document/public/imgs/mineru6.png
document/public/imgs/mineru6.png
  • 2-up
  • Swipe
  • Onion skin

206 KB | W: | H:

206 KB | W: | H:

document/public/imgs/model-m3e3.png
document/public/imgs/model-m3e3.png
document/public/imgs/model-m3e3.png
document/public/imgs/model-m3e3.png
  • 2-up
  • Swipe
  • Onion skin

226 KB | W: | H:

53.5 KB | W: | H:

document/public/imgs/plugin-openapi2.png
document/public/imgs/plugin-openapi2.png
document/public/imgs/plugin-openapi2.png
document/public/imgs/plugin-openapi2.png
  • 2-up
  • Swipe
  • Onion skin

275 KB | W: | H:

75.6 KB | W: | H:

document/public/imgs/plugin_submission2.png
document/public/imgs/plugin_submission2.png
document/public/imgs/plugin_submission2.png
document/public/imgs/plugin_submission2.png
  • 2-up
  • Swipe
  • Onion skin

181 KB | W: | H:

47.7 KB | W: | H:

document/public/imgs/plugin_submission7.png
document/public/imgs/plugin_submission7.png
document/public/imgs/plugin_submission7.png
document/public/imgs/plugin_submission7.png
  • 2-up
  • Swipe
  • Onion skin

284 KB | W: | H:

76.6 KB | W: | H:

document/public/imgs/sealos-redis1.png
document/public/imgs/sealos-redis1.png
document/public/imgs/sealos-redis1.png
document/public/imgs/sealos-redis1.png
  • 2-up
  • Swipe
  • Onion skin

199 KB | W: | H:

199 KB | W: | H:

document/public/imgs/searxng_plugin_guide1.png
document/public/imgs/searxng_plugin_guide1.png
document/public/imgs/searxng_plugin_guide1.png
document/public/imgs/searxng_plugin_guide1.png
  • 2-up
  • Swipe
  • Onion skin

255 KB | W: | H:

63.9 KB | W: | H:

document/public/imgs/sso2.png
document/public/imgs/sso2.png
document/public/imgs/sso2.png
document/public/imgs/sso2.png
  • 2-up
  • Swipe
  • Onion skin

265 KB | W: | H:

68.8 KB | W: | H:

document/public/imgs/teammode.png
document/public/imgs/teammode.png
document/public/imgs/teammode.png
document/public/imgs/teammode.png
  • 2-up
  • Swipe
  • Onion skin

228 KB | W: | H:

98.5 KB | W: | H:

document/public/imgs/thirddataset-10.png
document/public/imgs/thirddataset-10.png
document/public/imgs/thirddataset-10.png
document/public/imgs/thirddataset-10.png
  • 2-up
  • Swipe
  • Onion skin

206 KB | W: | H:

90.7 KB | W: | H:

document/public/imgs/thirddataset-19.png
document/public/imgs/thirddataset-19.png
document/public/imgs/thirddataset-19.png
document/public/imgs/thirddataset-19.png
  • 2-up
  • Swipe
  • Onion skin

207 KB | W: | H:

89.6 KB | W: | H:

document/public/imgs/thirddataset-2.png
document/public/imgs/thirddataset-2.png
document/public/imgs/thirddataset-2.png
document/public/imgs/thirddataset-2.png
  • 2-up
  • Swipe
  • Onion skin

188 KB | W: | H:

82.7 KB | W: | H:

document/public/imgs/thirddataset-20.png
document/public/imgs/thirddataset-20.png
document/public/imgs/thirddataset-20.png
document/public/imgs/thirddataset-20.png
  • 2-up
  • Swipe
  • Onion skin

197 KB | W: | H:

85.3 KB | W: | H:

document/public/imgs/thirddataset-21.png
document/public/imgs/thirddataset-21.png
document/public/imgs/thirddataset-21.png
document/public/imgs/thirddataset-21.png
  • 2-up
  • Swipe
  • Onion skin

282 KB | W: | H:

87.1 KB | W: | H:

document/public/imgs/translate17.png
document/public/imgs/translate17.png
document/public/imgs/translate17.png
document/public/imgs/translate17.png
  • 2-up
  • Swipe
  • Onion skin

288 KB | W: | H:

108 KB | W: | H:

document/public/imgs/translate2.png
document/public/imgs/translate2.png
document/public/imgs/translate2.png
document/public/imgs/translate2.png
  • 2-up
  • Swipe
  • Onion skin

179 KB | W: | H:

59.3 KB | W: | H:

document/public/imgs/variable_update5.png
document/public/imgs/variable_update5.png
document/public/imgs/variable_update5.png
document/public/imgs/variable_update5.png
  • 2-up
  • Swipe
  • Onion skin

250 KB | W: | H:

102 KB | W: | H:

document/public/imgs/webSync4.jpg
document/public/imgs/webSync4.jpg
document/public/imgs/webSync4.jpg
document/public/imgs/webSync4.jpg
  • 2-up
  • Swipe
  • Onion skin

304 KB | W: | H:

114 KB | W: | H:

document/public/imgs/wecom-bot-10.png
document/public/imgs/wecom-bot-10.png
document/public/imgs/wecom-bot-10.png
document/public/imgs/wecom-bot-10.png
  • 2-up
  • Swipe
  • Onion skin

227 KB | W: | H:

62 KB | W: | H:

document/public/imgs/wecom-bot-19.png
document/public/imgs/wecom-bot-19.png
document/public/imgs/wecom-bot-19.png
document/public/imgs/wecom-bot-19.png
  • 2-up
  • Swipe
  • Onion skin

444 KB | W: | H:

192 KB | W: | H:

document/public/imgs/wecom-bot-2.png
document/public/imgs/wecom-bot-2.png
document/public/imgs/wecom-bot-2.png
document/public/imgs/wecom-bot-2.png
  • 2-up
  • Swipe
  • Onion skin

341 KB | W: | H:

114 KB | W: | H:

document/public/imgs/wecom-bot-4.png
document/public/imgs/wecom-bot-4.png
document/public/imgs/wecom-bot-4.png
document/public/imgs/wecom-bot-4.png
  • 2-up
  • Swipe
  • Onion skin

281 KB | W: | H:

97.2 KB | W: | H:

document/public/imgs/wecom-bot-5.png
document/public/imgs/wecom-bot-5.png
document/public/imgs/wecom-bot-5.png
document/public/imgs/wecom-bot-5.png
  • 2-up
  • Swipe
  • Onion skin

305 KB | W: | H:

108 KB | W: | H:

document/public/imgs/wecom-bot-9.png
document/public/imgs/wecom-bot-9.png
document/public/imgs/wecom-bot-9.png
document/public/imgs/wecom-bot-9.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -141,6 +141,7 @@ export const runWorkflow = async (data: RunWorkflowProps): Promise<DispatchFlowR ...@@ -141,6 +141,7 @@ export const runWorkflow = async (data: RunWorkflowProps): Promise<DispatchFlowR
flowUsages: [], flowUsages: [],
debugResponse: { debugResponse: {
memoryEdges: [], memoryEdges: [],
memoryNodes: [],
entryNodeIds: [], entryNodeIds: [],
nodeResponses: {}, nodeResponses: {},
skipNodeQueue: [] skipNodeQueue: []
...@@ -850,6 +851,7 @@ export const runWorkflow = async (data: RunWorkflowProps): Promise<DispatchFlowR ...@@ -850,6 +851,7 @@ export const runWorkflow = async (data: RunWorkflowProps): Promise<DispatchFlowR
...edge, ...edge,
status: entryNodeIds.includes(edge.target) ? 'active' : edge.status status: entryNodeIds.includes(edge.target) ? 'active' : edge.status
})), })),
memoryNodes: Array.from(this.runtimeNodesMap.values()),
entryNodeIds, entryNodeIds,
nodeResponses: this.debugNodeResponses, nodeResponses: this.debugNodeResponses,
skipNodeQueue: Array.from(this.skipNodeQueue.values()).map((item) => ({ skipNodeQueue: Array.from(this.skipNodeQueue.values()).map((item) => ({
......
...@@ -15,6 +15,7 @@ import type { ChatNodeUsageType } from '@fastgpt/global/support/wallet/bill/type ...@@ -15,6 +15,7 @@ import type { ChatNodeUsageType } from '@fastgpt/global/support/wallet/bill/type
export type WorkflowDebugResponse = { export type WorkflowDebugResponse = {
memoryEdges: RuntimeEdgeItemType[]; memoryEdges: RuntimeEdgeItemType[];
memoryNodes: RuntimeNodeItemType[];
entryNodeIds: string[]; // Next step entry nodes entryNodeIds: string[]; // Next step entry nodes
nodeResponses: Record< nodeResponses: Record<
string, string,
......
...@@ -707,7 +707,6 @@ ...@@ -707,7 +707,6 @@
"core.workflow.Custom outputs": "Custom Outputs", "core.workflow.Custom outputs": "Custom Outputs",
"core.workflow.Dataset quote": "Dataset Quote", "core.workflow.Dataset quote": "Dataset Quote",
"core.workflow.Debug": "Debug", "core.workflow.Debug": "Debug",
"core.workflow.Debug Node": "Debug Mode",
"core.workflow.Failed": "Run Failed", "core.workflow.Failed": "Run Failed",
"core.workflow.Not intro": "This Node Has No Introduction", "core.workflow.Not intro": "This Node Has No Introduction",
"core.workflow.Run": "Run", "core.workflow.Run": "Run",
......
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
"dataset_quote_role_system_option_desc": "Historical records should be consistent first (recommended)", "dataset_quote_role_system_option_desc": "Historical records should be consistent first (recommended)",
"dataset_quote_role_tip": "When set to System, the knowledge base reference content will be placed in the system message, which can ensure the continuity of the history record, but the constraint effect may not be good.\n\nWhen set to User, the knowledge base reference content will be placed in the user message, and the {{question}} variable location needs to be specified. \nIt will have a certain impact on the consistency of historical records, but usually the constraint effect is better.", "dataset_quote_role_tip": "When set to System, the knowledge base reference content will be placed in the system message, which can ensure the continuity of the history record, but the constraint effect may not be good.\n\nWhen set to User, the knowledge base reference content will be placed in the user message, and the {{question}} variable location needs to be specified. \nIt will have a certain impact on the consistency of historical records, but usually the constraint effect is better.",
"dataset_quote_role_user_option_desc": "Strong constraints take precedence", "dataset_quote_role_user_option_desc": "Strong constraints take precedence",
"debug_test": "Debug debugging",
"dynamic_input_description": "Receive the output value of the previous node as a variable, which can be used by Laf request parameters.", "dynamic_input_description": "Receive the output value of the previous node as a variable, which can be used by Laf request parameters.",
"edit_input": "Edit Input", "edit_input": "Edit Input",
"edit_output": "Edit output", "edit_output": "Edit output",
......
{ {
"AI_input_is_empty": "传入AI 节点的内容为空", "AI_input_is_empty": "传入 AI 节点的内容为空",
"Delete_all": "清空词库", "Delete_all": "清空词库",
"LLM_model_response_empty": "模型流响应为空,请检查模型流输出是否正常", "LLM_model_response_empty": "模型流响应为空,请检查模型流输出是否正常",
"ai_reasoning": "思考过程", "ai_reasoning": "思考过程",
......
...@@ -707,7 +707,6 @@ ...@@ -707,7 +707,6 @@
"core.workflow.Custom outputs": "自定义输出", "core.workflow.Custom outputs": "自定义输出",
"core.workflow.Dataset quote": "知识库引用", "core.workflow.Dataset quote": "知识库引用",
"core.workflow.Debug": "调试", "core.workflow.Debug": "调试",
"core.workflow.Debug Node": "Debug 模式",
"core.workflow.Failed": "运行失败", "core.workflow.Failed": "运行失败",
"core.workflow.Not intro": "这个节点没有介绍~", "core.workflow.Not intro": "这个节点没有介绍~",
"core.workflow.Run": "运行", "core.workflow.Run": "运行",
......
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
"dataset_quote_role_system_option_desc": "历史记录连贯优先(推荐)", "dataset_quote_role_system_option_desc": "历史记录连贯优先(推荐)",
"dataset_quote_role_tip": "设置为 System 时,将会把知识库引用内容放置到 system 消息中,可以确保历史记录的连贯性,但约束效果可能不佳,需要多调试。\n设置为 User 时,将会把知识库引用内容放置到 user 消息中,并且需要指定 {{question}} 变量位置。会对历史记录连贯性有一定影响,但通常约束效果更优。", "dataset_quote_role_tip": "设置为 System 时,将会把知识库引用内容放置到 system 消息中,可以确保历史记录的连贯性,但约束效果可能不佳,需要多调试。\n设置为 User 时,将会把知识库引用内容放置到 user 消息中,并且需要指定 {{question}} 变量位置。会对历史记录连贯性有一定影响,但通常约束效果更优。",
"dataset_quote_role_user_option_desc": "强约束优先", "dataset_quote_role_user_option_desc": "强约束优先",
"debug_test": "Debug 调试",
"dynamic_input_description": "接收前方节点的输出值作为变量,这些变量可以被 Laf 请求参数使用。", "dynamic_input_description": "接收前方节点的输出值作为变量,这些变量可以被 Laf 请求参数使用。",
"edit_input": "编辑输入", "edit_input": "编辑输入",
"edit_output": "编辑输出", "edit_output": "编辑输出",
......
...@@ -706,7 +706,6 @@ ...@@ -706,7 +706,6 @@
"core.workflow.Custom outputs": "自訂輸出", "core.workflow.Custom outputs": "自訂輸出",
"core.workflow.Dataset quote": "知識庫引用", "core.workflow.Dataset quote": "知識庫引用",
"core.workflow.Debug": "除錯", "core.workflow.Debug": "除錯",
"core.workflow.Debug Node": "除錯模式",
"core.workflow.Failed": "執行失敗", "core.workflow.Failed": "執行失敗",
"core.workflow.Not intro": "此節點沒有介紹", "core.workflow.Not intro": "此節點沒有介紹",
"core.workflow.Run": "執行", "core.workflow.Run": "執行",
......
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
"dataset_quote_role_system_option_desc": "歷史紀錄連貫優先(建議)", "dataset_quote_role_system_option_desc": "歷史紀錄連貫優先(建議)",
"dataset_quote_role_tip": "設定為 System 時,會將知識庫引用內容放置到系統訊息中,可以確保歷史紀錄的連貫性,但約束效果可能不佳。\n設定為 User 時,會將知識庫引用內容放置到使用者訊息中,並且需要指定 {{question}} 變數位置。會對歷史紀錄連貫性有一定影響,但通常約束效果較佳。", "dataset_quote_role_tip": "設定為 System 時,會將知識庫引用內容放置到系統訊息中,可以確保歷史紀錄的連貫性,但約束效果可能不佳。\n設定為 User 時,會將知識庫引用內容放置到使用者訊息中,並且需要指定 {{question}} 變數位置。會對歷史紀錄連貫性有一定影響,但通常約束效果較佳。",
"dataset_quote_role_user_option_desc": "強約束優先", "dataset_quote_role_user_option_desc": "強約束優先",
"debug_test": "Debug 調試",
"dynamic_input_description": "接收前一個節點的輸出值作為變數,這些變數可以被 Laf 請求參數使用。", "dynamic_input_description": "接收前一個節點的輸出值作為變數,這些變數可以被 Laf 請求參數使用。",
"edit_input": "編輯輸入", "edit_input": "編輯輸入",
"edit_output": "編輯輸出", "edit_output": "編輯輸出",
......
...@@ -53,7 +53,7 @@ const LabelAndFormRender = ({ ...@@ -53,7 +53,7 @@ const LabelAndFormRender = ({
return ( return (
<Box _notLast={{ mb: 4 }}> <Box _notLast={{ mb: 4 }}>
<Flex alignItems={'center'} mb={1}> <Flex alignItems={'center'} mb={1}>
{typeof label === 'string' ? <FormLabel required={required}>{label}</FormLabel> : label} {typeof label === 'string' ? <FormLabel required={required}>{t(label)}</FormLabel> : label}
{placeholder && <QuestionTip ml={1} label={placeholder} />} {placeholder && <QuestionTip ml={1} label={placeholder} />}
</Flex> </Flex>
......
...@@ -64,6 +64,7 @@ const ChatInput = ({ ...@@ -64,6 +64,7 @@ const ChatInput = ({
const chatInputGuide = useContextSelector(ChatBoxContext, (v) => v.chatInputGuide); const chatInputGuide = useContextSelector(ChatBoxContext, (v) => v.chatInputGuide);
const fileSelectConfig = useContextSelector(ChatBoxContext, (v) => v.fileSelectConfig); const fileSelectConfig = useContextSelector(ChatBoxContext, (v) => v.fileSelectConfig);
const dialogTips = useContextSelector(ChatBoxContext, (v) => v.dialogTips); const dialogTips = useContextSelector(ChatBoxContext, (v) => v.dialogTips);
const autoTTSResponse = useContextSelector(ChatBoxContext, (v) => v.autoTTSResponse);
const fileCtrl = useFieldArray({ const fileCtrl = useFieldArray({
control, control,
...@@ -448,7 +449,8 @@ const ChatInput = ({ ...@@ -448,7 +449,8 @@ const ChatInput = ({
handleSend={(text) => { handleSend={(text) => {
onSendMessage({ onSendMessage({
text: text.trim(), text: text.trim(),
files: fileList files: fileList,
autoTTSResponse
}); });
replaceFiles([]); replaceFiles([]);
}} }}
......
...@@ -46,7 +46,6 @@ export type ChatProviderProps = { ...@@ -46,7 +46,6 @@ export type ChatProviderProps = {
type useChatStoreType = ChatProviderProps & { type useChatStoreType = ChatProviderProps & {
welcomeText: string; welcomeText: string;
variableList: VariableItemType[]; variableList: VariableItemType[];
allVariableList: VariableItemType[];
questionGuide: AppQGConfigType; questionGuide: AppQGConfigType;
ttsConfig: AppTTSConfigType; ttsConfig: AppTTSConfigType;
whisperConfig: AppWhisperConfigType; whisperConfig: AppWhisperConfigType;
...@@ -238,10 +237,7 @@ const Provider = ({ ...@@ -238,10 +237,7 @@ const Provider = ({
const value: useChatStoreType = { const value: useChatStoreType = {
...props, ...props,
welcomeText, welcomeText,
variableList: variables.filter( variableList: variables,
(item) => item.type !== VariableInputEnum.custom && item.type !== VariableInputEnum.internal
),
allVariableList: variables,
questionGuide, questionGuide,
ttsConfig, ttsConfig,
fileSelectConfig, fileSelectConfig,
......
import React, { useEffect, useMemo } from 'react'; import React, { useMemo } from 'react';
import { type UseFormReturn } from 'react-hook-form'; import { type UseFormReturn } from 'react-hook-form';
import { useTranslation } from 'next-i18next'; import { useTranslation } from 'next-i18next';
import { Box, Button, Card, Flex } from '@chakra-ui/react'; import { Box, Button, Card, Flex } from '@chakra-ui/react';
...@@ -152,6 +152,19 @@ const VariableInput = ({ ...@@ -152,6 +152,19 @@ const VariableInput = ({
/> />
); );
})} })}
{!chatStarted && commonVariableList.length === 0 && (
<Button
leftIcon={<MyIcon name={'core/chat/chatFill'} w={'16px'} />}
size={'sm'}
maxW={'100px'}
mt={4}
onClick={variablesForm.handleSubmit(() => {
chatForm.setValue('chatStarted', true);
})}
>
{t('chat:start_chat')}
</Button>
)}
</Card> </Card>
</Box> </Box>
)} )}
......
...@@ -20,7 +20,12 @@ const ChatHomeVariablesForm = ({ chatForm }: Props) => { ...@@ -20,7 +20,12 @@ const ChatHomeVariablesForm = ({ chatForm }: Props) => {
const variablesForm = useContextSelector(ChatItemContext, (v) => v.variablesForm); const variablesForm = useContextSelector(ChatItemContext, (v) => v.variablesForm);
const variableList = useContextSelector(ChatBoxContext, (v) => v.variableList); const variableList = useContextSelector(ChatBoxContext, (v) => v.variableList);
const allVariableList = useContextSelector(ChatBoxContext, (v) => v.allVariableList); const externalVariableList = variableList.filter(
(item) => item.type === VariableInputEnum.custom
);
const commonVariableList = variableList.filter(
(item) => item.type !== VariableInputEnum.custom && item.type !== VariableInputEnum.internal
);
return ( return (
<Card <Card
...@@ -31,27 +36,25 @@ const ChatHomeVariablesForm = ({ chatForm }: Props) => { ...@@ -31,27 +36,25 @@ const ChatHomeVariablesForm = ({ chatForm }: Props) => {
> >
<Box p={3}> <Box p={3}>
{/* custom variables */} {/* custom variables */}
{allVariableList.filter((i) => i.type === VariableInputEnum.custom).length > 0 && ( {externalVariableList.length > 0 && (
<> <>
{allVariableList {externalVariableList.map((item) => (
.filter((i) => i.type === VariableInputEnum.custom) <LabelAndFormRender
.map((item) => ( {...item}
<LabelAndFormRender key={item.key}
{...item} fieldName={`variables.${item.key}`}
key={item.key} placeholder={item.description}
fieldName={`variables.${item.key}`} inputType={variableInputTypeToInputType(item.type, item.valueType)}
placeholder={item.description} form={variablesForm}
inputType={variableInputTypeToInputType(item.type, item.valueType)} bg={'myGray.50'}
form={variablesForm} />
bg={'myGray.50'} ))}
/>
))}
</> </>
)} )}
{/* normal variables */} {/* normal variables */}
{variableList.length > 0 && ( {commonVariableList.length > 0 && (
<> <>
{variableList.map((item) => ( {commonVariableList.map((item) => (
<LabelAndFormRender <LabelAndFormRender
{...item} {...item}
key={item.key} key={item.key}
......
...@@ -144,7 +144,6 @@ const ChatBox = ({ ...@@ -144,7 +144,6 @@ const ChatBox = ({
const outLinkAuthData = useContextSelector(ChatBoxContext, (v) => v.outLinkAuthData); const outLinkAuthData = useContextSelector(ChatBoxContext, (v) => v.outLinkAuthData);
const welcomeText = useContextSelector(ChatBoxContext, (v) => v.welcomeText); const welcomeText = useContextSelector(ChatBoxContext, (v) => v.welcomeText);
const variableList = useContextSelector(ChatBoxContext, (v) => v.variableList); const variableList = useContextSelector(ChatBoxContext, (v) => v.variableList);
const allVariableList = useContextSelector(ChatBoxContext, (v) => v.allVariableList);
const questionGuide = useContextSelector(ChatBoxContext, (v) => v.questionGuide); const questionGuide = useContextSelector(ChatBoxContext, (v) => v.questionGuide);
const startSegmentedAudio = useContextSelector(ChatBoxContext, (v) => v.startSegmentedAudio); const startSegmentedAudio = useContextSelector(ChatBoxContext, (v) => v.startSegmentedAudio);
const finishSegmentedAudio = useContextSelector(ChatBoxContext, (v) => v.finishSegmentedAudio); const finishSegmentedAudio = useContextSelector(ChatBoxContext, (v) => v.finishSegmentedAudio);
...@@ -156,11 +155,14 @@ const ChatBox = ({ ...@@ -156,11 +155,14 @@ const ChatBox = ({
const isInteractive = useMemo(() => checkIsInteractiveByHistories(chatRecords), [chatRecords]); const isInteractive = useMemo(() => checkIsInteractiveByHistories(chatRecords), [chatRecords]);
const showExternalVariable = useMemo(() => { const showExternalVariable = useMemo(() => {
return ( const map: Record<string, boolean> = {
[ChatTypeEnum.log, ChatTypeEnum.test, ChatTypeEnum.chat].includes(chatType) && [ChatTypeEnum.log]: true,
allVariableList.some((item) => item.type === VariableInputEnum.custom) [ChatTypeEnum.test]: true,
); [ChatTypeEnum.chat]: true,
}, [allVariableList, chatType]); [ChatTypeEnum.home]: true
};
return map[chatType] && variableList.some((item) => item.type === VariableInputEnum.custom);
}, [variableList, chatType]);
// compute variable input is finish. // compute variable input is finish.
const chatForm = useForm<ChatBoxInputFormType>({ const chatForm = useForm<ChatBoxInputFormType>({
...@@ -173,10 +175,20 @@ const ChatBox = ({ ...@@ -173,10 +175,20 @@ const ChatBox = ({
const { setValue, watch } = chatForm; const { setValue, watch } = chatForm;
const chatStartedWatch = watch('chatStarted'); const chatStartedWatch = watch('chatStarted');
// 可以进入对话框对话 const commonVariableList = variableList.filter(
(item) => item.type !== VariableInputEnum.custom && item.type !== VariableInputEnum.internal
);
/*
对话已经开始的标记:
1. 保证 appId 一致。
2. 有对话记录/手动点了开始/默认没有需要填写的变量。
*/
const chatStarted = const chatStarted =
chatBoxData?.appId === appId && chatBoxData?.appId === appId &&
(chatRecords.length > 0 || chatStartedWatch || variableList.length === 0); (chatRecords.length > 0 ||
chatStartedWatch ||
(commonVariableList.length === 0 && !showExternalVariable));
// 滚动到底部 // 滚动到底部
const scrollToBottom = useMemoizedFn((behavior: 'smooth' | 'auto' = 'smooth', delay = 0) => { const scrollToBottom = useMemoizedFn((behavior: 'smooth' | 'auto' = 'smooth', delay = 0) => {
...@@ -449,7 +461,7 @@ const ChatBox = ({ ...@@ -449,7 +461,7 @@ const ChatBox = ({
// Only declared variables are kept // Only declared variables are kept
const requestVariables: Record<string, any> = {}; const requestVariables: Record<string, any> = {};
allVariableList?.forEach((item) => { variableList?.forEach((item) => {
const val = const val =
variables[item.key] === '' || variables[item.key] === '' ||
variables[item.key] === undefined || variables[item.key] === undefined ||
...@@ -827,7 +839,7 @@ const ChatBox = ({ ...@@ -827,7 +839,7 @@ const ChatBox = ({
feConfigs?.show_emptyChat && feConfigs?.show_emptyChat &&
showEmptyIntro && showEmptyIntro &&
chatRecords.length === 0 && chatRecords.length === 0 &&
!variableList?.length && !commonVariableList?.length &&
!showExternalVariable && !showExternalVariable &&
!welcomeText, !welcomeText,
[ [
...@@ -835,7 +847,7 @@ const ChatBox = ({ ...@@ -835,7 +847,7 @@ const ChatBox = ({
feConfigs?.show_emptyChat, feConfigs?.show_emptyChat,
showEmptyIntro, showEmptyIntro,
chatRecords.length, chatRecords.length,
variableList?.length, commonVariableList?.length,
showExternalVariable, showExternalVariable,
welcomeText welcomeText
] ]
...@@ -1126,8 +1138,7 @@ const ChatBox = ({ ...@@ -1126,8 +1138,7 @@ const ChatBox = ({
> >
<Flex h={'100%'} flexDir={'column'} justifyContent={'center'} w={'100%'}> <Flex h={'100%'} flexDir={'column'} justifyContent={'center'} w={'100%'}>
{HomeChatRenderBox} {HomeChatRenderBox}
{allVariableList.filter((item) => item.type !== VariableInputEnum.internal).length > {variableList.filter((item) => item.type !== VariableInputEnum.internal).length > 0 ? (
0 ? (
<Box w={'100%'}> <Box w={'100%'}>
<ChatHomeVariablesForm chatForm={chatForm} /> <ChatHomeVariablesForm chatForm={chatForm} />
</Box> </Box>
......
...@@ -30,6 +30,7 @@ import { ...@@ -30,6 +30,7 @@ import {
nodeInputTypeToInputType, nodeInputTypeToInputType,
variableInputTypeToInputType variableInputTypeToInputType
} from '@/components/core/app/formRender/utils'; } from '@/components/core/app/formRender/utils';
import { useSafeTranslation } from '@fastgpt/web/hooks/useSafeTranslation';
const MyRightDrawer = dynamic( const MyRightDrawer = dynamic(
() => import('@fastgpt/web/components/common/MyDrawer/MyRightDrawer') () => import('@fastgpt/web/components/common/MyDrawer/MyRightDrawer')
...@@ -41,7 +42,7 @@ enum TabEnum { ...@@ -41,7 +42,7 @@ enum TabEnum {
} }
export const useDebug = () => { export const useDebug = () => {
const { t } = useTranslation(); const { t } = useSafeTranslation();
const { toast } = useToast(); const { toast } = useToast();
const setNodes = useContextSelector(WorkflowNodeEdgeContext, (v) => v.setNodes); const setNodes = useContextSelector(WorkflowNodeEdgeContext, (v) => v.setNodes);
...@@ -241,8 +242,8 @@ export const useDebug = () => { ...@@ -241,8 +242,8 @@ export const useDebug = () => {
<MyRightDrawer <MyRightDrawer
onClose={onClose} onClose={onClose}
iconSrc="core/workflow/debugBlue" iconSrc="core/workflow/debugBlue"
title={t('common:core.workflow.Debug Node')} title={t('workflow:debug_test')}
maxW={['90vw', '35vw']} maxW={['90vw', '40vw']}
px={0} px={0}
> >
<Box flex={'1 0 0'} overflow={'auto'} px={6}> <Box flex={'1 0 0'} overflow={'auto'} px={6}>
...@@ -260,12 +261,27 @@ export const useDebug = () => { ...@@ -260,12 +261,27 @@ export const useDebug = () => {
onChange={setCurrentTab} onChange={setCurrentTab}
/> />
)} )}
<Box display={currentTab === TabEnum.node ? 'block' : 'none'}>
{renderInputs.map((item) => (
<LabelAndFormRender
key={item.key}
label={item.label}
required={item.required}
placeholder={t(item.placeholder || item.description)}
inputType={nodeInputTypeToInputType(item.renderTypeList)}
form={variablesForm}
fieldName={`nodeVariables.${item.key}`}
bg={'myGray.50'}
/>
))}
</Box>
<Box display={currentTab === TabEnum.global ? 'block' : 'none'}> <Box display={currentTab === TabEnum.global ? 'block' : 'none'}>
{customVar.map((item) => ( {customVar.map((item) => (
<LabelAndFormRender <LabelAndFormRender
{...item}
key={item.key} key={item.key}
placeholder={item.description} label={item.label}
required={item.required}
placeholder={t(item.description)}
inputType={variableInputTypeToInputType(item.type)} inputType={variableInputTypeToInputType(item.type)}
form={variablesForm} form={variablesForm}
fieldName={`variables.${item.key}`} fieldName={`variables.${item.key}`}
...@@ -274,9 +290,10 @@ export const useDebug = () => { ...@@ -274,9 +290,10 @@ export const useDebug = () => {
))} ))}
{internalVar.map((item) => ( {internalVar.map((item) => (
<LabelAndFormRender <LabelAndFormRender
{...item}
key={item.key} key={item.key}
placeholder={item.description} label={item.label}
required={item.required}
placeholder={t(item.description)}
inputType={variableInputTypeToInputType(item.type)} inputType={variableInputTypeToInputType(item.type)}
form={variablesForm} form={variablesForm}
fieldName={`variables.${item.key}`} fieldName={`variables.${item.key}`}
...@@ -285,8 +302,9 @@ export const useDebug = () => { ...@@ -285,8 +302,9 @@ export const useDebug = () => {
))} ))}
{filteredVar.map((item) => ( {filteredVar.map((item) => (
<LabelAndFormRender <LabelAndFormRender
{...item}
key={item.key} key={item.key}
label={item.label}
required={item.required}
placeholder={item.description} placeholder={item.description}
inputType={variableInputTypeToInputType(item.type)} inputType={variableInputTypeToInputType(item.type)}
form={variablesForm} form={variablesForm}
...@@ -295,19 +313,6 @@ export const useDebug = () => { ...@@ -295,19 +313,6 @@ export const useDebug = () => {
/> />
))} ))}
</Box> </Box>
<Box display={currentTab === TabEnum.node ? 'block' : 'none'}>
{renderInputs.map((item) => (
<LabelAndFormRender
{...item}
key={item.key}
placeholder={item.placeholder || item.description}
inputType={nodeInputTypeToInputType(item.renderTypeList)}
form={variablesForm}
fieldName={`nodeVariables.${item.key}`}
bg={'myGray.50'}
/>
))}
</Box>
</Box> </Box>
<Flex py={2} justifyContent={'flex-end'} px={6}> <Flex py={2} justifyContent={'flex-end'} px={6}>
<Button onClick={handleSubmit(onClickRun, onCheckRunError)}>{t('common:Run')}</Button> <Button onClick={handleSubmit(onClickRun, onCheckRunError)}>{t('common:Run')}</Button>
......
...@@ -514,7 +514,8 @@ const MenuRender = React.memo(function MenuRender({ ...@@ -514,7 +514,8 @@ const MenuRender = React.memo(function MenuRender({
version: template.version, version: template.version,
versionLabel: template.versionLabel, versionLabel: template.versionLabel,
isLatestVersion: template.isLatestVersion, isLatestVersion: template.isLatestVersion,
toolConfig: template.toolConfig toolConfig: template.toolConfig,
catchError: template.catchError
}, },
selected: true, selected: true,
parentNodeId: undefined, parentNodeId: undefined,
......
...@@ -707,25 +707,31 @@ const WorkflowContextProvider = ({ ...@@ -707,25 +707,31 @@ const WorkflowContextProvider = ({
try { try {
// 3. Run one step // 3. Run one step
const { memoryEdges, entryNodeIds, skipNodeQueue, nodeResponses, newVariables } = const {
await postWorkflowDebug({ memoryEdges,
nodes: runtimeNodes, memoryNodes,
edges: debugData.runtimeEdges, entryNodeIds,
skipNodeQueue: debugData.skipNodeQueue, skipNodeQueue,
variables: { nodeResponses,
appId, newVariables
cTime: formatTime2YMDHMW(), } = await postWorkflowDebug({
...debugData.variables nodes: runtimeNodes,
}, edges: debugData.runtimeEdges,
query: debugData.query, // 添加 query 参数 skipNodeQueue: debugData.skipNodeQueue,
history: debugData.history, variables: {
appId, appId,
chatConfig: appDetail.chatConfig cTime: formatTime2YMDHMW(),
}); ...debugData.variables
},
query: debugData.query, // 添加 query 参数
history: debugData.history,
appId,
chatConfig: appDetail.chatConfig
});
// 4. Store debug result // 4. Store debug result
setWorkflowDebugData({ setWorkflowDebugData({
runtimeNodes: debugData.runtimeNodes, runtimeNodes: memoryNodes,
runtimeEdges: memoryEdges, runtimeEdges: memoryEdges,
entryNodeIds, entryNodeIds,
skipNodeQueue, skipNodeQueue,
...@@ -776,7 +782,7 @@ const WorkflowContextProvider = ({ ...@@ -776,7 +782,7 @@ const WorkflowContextProvider = ({
console.log(error); console.log(error);
} }
}, },
[appId, onChangeNode, setNodes] [appId, onChangeNode, setNodes, appDetail.chatConfig]
); );
const onStopNodeDebug = useMemoizedFn(() => { const onStopNodeDebug = useMemoizedFn(() => {
setWorkflowDebugData(undefined); setWorkflowDebugData(undefined);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment