From 0ac8bca17cd9a94a0d67e9873e875e426d77bd0f Mon Sep 17 00:00:00 2001
From: Archer <545436317@qq.com>
Date: Thu, 12 Feb 2026 18:02:02 +0800
Subject: [PATCH] doc (#6419)
---
README.md | 15 +-
deploy/docker/cn/docker-compose.milvus.yml | 26 +-
deploy/docker/cn/docker-compose.oceanbase.yml | 26 +-
deploy/docker/cn/docker-compose.pg.yml | 26 +-
deploy/docker/cn/docker-compose.seekdb.yml | 26 +-
deploy/docker/cn/docker-compose.zilliz.yml | 26 +-
.../docker/global/docker-compose.milvus.yml | 26 +-
.../global/docker-compose.oceanbase.yml | 26 +-
deploy/docker/global/docker-compose.pg.yml | 26 +-
.../docker/global/docker-compose.seekdb.yml | 26 +-
.../docker/global/docker-compose.ziliiz.yml | 26 +-
deploy/templates/docker-compose.prod.yml | 26 +-
document/README.md | 6 +-
document/app/global.css | 67 ++-
document/components/docs/not-found.tsx | 3 +-
.../docs/introduction/development/docker.mdx | 167 +++-----
.../docs/introduction/development/intro.mdx | 2 +-
.../docs/introduction/development/meta.json | 4 +-
.../content/docs/introduction/index.en.mdx | 68 ---
document/content/docs/introduction/meta.json | 4 +-
.../docs/introduction/openapi/share.mdx | 2 +-
document/content/docs/toc.en.mdx | 1 -
document/content/docs/upgrading/4-14/4147.mdx | 2 +-
document/content/docs/upgrading/4-8/464.mdx | 2 +-
document/content/docs/upgrading/4-8/467.mdx | 2 +-
document/content/docs/upgrading/4-8/469.mdx | 2 +-
document/content/docs/upgrading/4-9/490.mdx | 2 +-
document/content/docs/upgrading/4-9/492.mdx | 2 +-
.../external-integration/openapi.mdx | 2 +-
document/data/doc-last-modified.json | 24 +-
.../docker/cn/docker-compose.milvus.yml | 26 +-
.../docker/cn/docker-compose.oceanbase.yml | 26 +-
.../deploy/docker/cn/docker-compose.pg.yml | 26 +-
.../docker/cn/docker-compose.seekdb.yml | 26 +-
.../docker/cn/docker-compose.zilliz.yml | 26 +-
.../docker/global/docker-compose.milvus.yml | 26 +-
.../global/docker-compose.oceanbase.yml | 26 +-
.../docker/global/docker-compose.pg.yml | 26 +-
.../docker/global/docker-compose.seekdb.yml | 26 +-
.../docker/global/docker-compose.ziliiz.yml | 26 +-
document/public/deploy/install.sh | 395 +++++++++++-------
.../src/components/support/apikey/Table.tsx | 5 +-
.../app/detail/Publish/Link/index.tsx | 2 +-
.../app/src/service/common/system/index.ts | 2 +-
44 files changed, 871 insertions(+), 456 deletions(-)
delete mode 100644 document/content/docs/introduction/index.en.mdx
diff --git a/README.md b/README.md
index f195b0d5d8..9e5c133f62 100644
--- a/README.md
+++ b/README.md
@@ -44,7 +44,7 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b
-## 💡 RoadMap
+## 💡 核心功能
`1` 应用编排能力
- [x] 规划 Agent 模式。
@@ -107,7 +107,7 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b
* [系统配置文件说明](https://doc.fastgpt.io/docs/introduction/development/configuration/)
* [多模型配置方案](https://doc.fastgpt.io/docs/introduction/development/modelConfig/one-api/)
* [版本更新/升级介绍](https://doc.fastgpt.io/docs/upgrading)
-* [OpenAPI API 文档](https://doc.fastgpt.io/docs/introduction/development/openapi/)
+* [OpenAPI API 文档](https://doc.fastgpt.io/docs/introduction/openapi/)
* [知识库结构详解](https://doc.fastgpt.io/docs/introduction/guide/knowledge_base/RAG/)
@@ -126,10 +126,11 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b
## 🌿 第三方生态
-- [PPIO 派欧云:一键调用高性价比的开源模型 API 和 GPU 容器](https://ppinfra.com/user/register?invited_by=VITYVU&utm_source=github_fastgpt)
+
- [AI Proxy:国内模型聚合服务](https://sealos.run/aiproxy/?k=fastgpt-github/)
- [SiliconCloud (硅基流动) —— 开源模型在线体验平台](https://cloud.siliconflow.cn/i/TR9Ym0c4)
-
+- [PPIO 派欧云:一键调用高性价比的开源模型 API 和 GPU 容器](https://ppinfra.com/user/register?invited_by=VITYVU&utm_source=github_fastgpt)
+
@@ -151,10 +152,12 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b
- [接入企微](https://www.bilibili.com/video/BV1Tp4y1n72T/?spm_id_from=333.999.0.0)
-
+
+

+
-## 🤝 参与贡献
+## 🤝 贡献者
我们非常欢迎各种形式的贡献。如果你对贡献代码感兴趣,可以查看我们的 GitHub [Issues](https://github.com/labring/FastGPT/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc),大展身手,向我们展示你的奇思妙想。
diff --git a/deploy/docker/cn/docker-compose.milvus.yml b/deploy/docker/cn/docker-compose.milvus.yml
index 7611e84170..e472ced84e 100644
--- a/deploy/docker/cn/docker-compose.milvus.yml
+++ b/deploy/docker/cn/docker-compose.milvus.yml
@@ -216,8 +216,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -259,6 +270,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/deploy/docker/cn/docker-compose.oceanbase.yml b/deploy/docker/cn/docker-compose.oceanbase.yml
index 8d56092f64..918a091b53 100644
--- a/deploy/docker/cn/docker-compose.oceanbase.yml
+++ b/deploy/docker/cn/docker-compose.oceanbase.yml
@@ -193,8 +193,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -236,6 +247,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/deploy/docker/cn/docker-compose.pg.yml b/deploy/docker/cn/docker-compose.pg.yml
index c51557cb9c..bf0abdc554 100644
--- a/deploy/docker/cn/docker-compose.pg.yml
+++ b/deploy/docker/cn/docker-compose.pg.yml
@@ -174,8 +174,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -217,6 +228,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/deploy/docker/cn/docker-compose.seekdb.yml b/deploy/docker/cn/docker-compose.seekdb.yml
index d7e1c31e71..0b10f9619e 100644
--- a/deploy/docker/cn/docker-compose.seekdb.yml
+++ b/deploy/docker/cn/docker-compose.seekdb.yml
@@ -180,8 +180,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -223,6 +234,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/deploy/docker/cn/docker-compose.zilliz.yml b/deploy/docker/cn/docker-compose.zilliz.yml
index 30906e2ed1..683ea6a1ba 100644
--- a/deploy/docker/cn/docker-compose.zilliz.yml
+++ b/deploy/docker/cn/docker-compose.zilliz.yml
@@ -157,8 +157,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -200,6 +211,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/deploy/docker/global/docker-compose.milvus.yml b/deploy/docker/global/docker-compose.milvus.yml
index df6a3745f2..7415a2f5f2 100644
--- a/deploy/docker/global/docker-compose.milvus.yml
+++ b/deploy/docker/global/docker-compose.milvus.yml
@@ -216,8 +216,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -259,6 +270,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/deploy/docker/global/docker-compose.oceanbase.yml b/deploy/docker/global/docker-compose.oceanbase.yml
index cba3315c05..49d3079e6e 100644
--- a/deploy/docker/global/docker-compose.oceanbase.yml
+++ b/deploy/docker/global/docker-compose.oceanbase.yml
@@ -193,8 +193,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -236,6 +247,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/deploy/docker/global/docker-compose.pg.yml b/deploy/docker/global/docker-compose.pg.yml
index d2cca5e709..cc3372f8db 100644
--- a/deploy/docker/global/docker-compose.pg.yml
+++ b/deploy/docker/global/docker-compose.pg.yml
@@ -174,8 +174,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -217,6 +228,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/deploy/docker/global/docker-compose.seekdb.yml b/deploy/docker/global/docker-compose.seekdb.yml
index 58a10e6c7e..1f6bf5ab8f 100644
--- a/deploy/docker/global/docker-compose.seekdb.yml
+++ b/deploy/docker/global/docker-compose.seekdb.yml
@@ -180,8 +180,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -223,6 +234,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/deploy/docker/global/docker-compose.ziliiz.yml b/deploy/docker/global/docker-compose.ziliiz.yml
index 2dbc58a148..05cdc3c01d 100644
--- a/deploy/docker/global/docker-compose.ziliiz.yml
+++ b/deploy/docker/global/docker-compose.ziliiz.yml
@@ -157,8 +157,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -200,6 +211,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/deploy/templates/docker-compose.prod.yml b/deploy/templates/docker-compose.prod.yml
index 55c7486c10..acad633e54 100644
--- a/deploy/templates/docker-compose.prod.yml
+++ b/deploy/templates/docker-compose.prod.yml
@@ -156,8 +156,19 @@ ${{vec.db}}
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -199,6 +210,17 @@ ${{vec.db}}
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/document/README.md b/document/README.md
index 648611369d..53771a1f60 100644
--- a/document/README.md
+++ b/document/README.md
@@ -71,4 +71,8 @@ import FastGPTLink from '@/components/docs/linkFastGPT'; #FastGPT跳转链接组
### 增加顶层导航栏
-1. 在 `FastGPT/document/app/[lang]/docs/layout.tsx` 文件中新增导航。
\ No newline at end of file
+1. 在 `FastGPT/document/app/[lang]/docs/layout.tsx` 文件中新增导航。
+
+### 重定向
+
+在`FastGPT/document/components/docs/not-found.tsx`文件中新增重定向规则。
\ No newline at end of file
diff --git a/document/app/global.css b/document/app/global.css
index f733319a5c..e2e9f427ec 100644
--- a/document/app/global.css
+++ b/document/app/global.css
@@ -63,9 +63,9 @@
pre,
code {
border-radius: 16px;
- background: #F5F6F7;
+ background: #f5f6f7;
font-family: Alef;
- font-size: 1.0rem;
+ font-size: 1rem;
font-weight: 400;
line-height: 16px;
letter-spacing: 0.48px;
@@ -87,7 +87,7 @@ div[role='tabpanel'] figure:has(+ p) pre code {
}
pre {
- padding: 24px 0 24px 24px ;
+ padding: 24px 30px 24px 24px;
}
pre code {
@@ -118,33 +118,33 @@ code span {
margin: 0 0.2em;
color: #272727;
background: #f5f6f7;
- font-family: "PingFang SC";
+ font-family: 'PingFang SC';
font-size: 14px;
font-style: normal;
font-weight: 500;
- line-height: 180%;
+ line-height: 180%;
letter-spacing: 0.056px;
border: none;
border-radius: 8px;
}
.dark :not(pre) > code {
- color: #E6E6E6 !important;
+ color: #e6e6e6 !important;
background: #282828 !important;
}
-div[role="tablist"] ~ div:has(figure, p, ul) {
+div[role='tablist'] ~ div:has(figure, p, ul) {
border-radius: 0 !important;
border: solid 1.5px #e5e5e5;
border-radius: 0.75rem !important;
}
-.dark div[role="tablist"] ~ div:has(figure, p, ul) {
+.dark div[role='tablist'] ~ div:has(figure, p, ul) {
border: solid 1.5px #535353;
}
-.dark div[role="tablist"] {
- background-color: #1E1E1E;
+.dark div[role='tablist'] {
+ background-color: #1e1e1e;
}
/* 代码块下方的滚动条样式 */
@@ -153,31 +153,31 @@ div.bg-fd-secondary:has(pre) {
}
.dark div.bg-fd-secondary:has(pre) {
- background-color: #1E1E1E;
+ background-color: #1e1e1e;
}
div.bg-fd-secondary:has(pre)::-webkit-scrollbar-track {
- background: #e8e8e8;
+ background: #e8e8e8;
}
div.bg-fd-secondary:has(pre)::-webkit-scrollbar-thumb {
- background: #b0b0b0;
+ background: #b0b0b0;
}
div.bg-fd-secondary:has(pre)::-webkit-scrollbar-thumb:hover {
- background: #909090;
+ background: #909090;
}
.dark div.bg-fd-secondary:has(pre)::-webkit-scrollbar-track {
- background: #1a1a1a;
+ background: #1a1a1a;
}
.dark div.bg-fd-secondary:has(pre)::-webkit-scrollbar-thumb {
- background: #404040;
+ background: #404040;
}
.dark div.bg-fd-secondary:has(pre)::-webkit-scrollbar-thumb:hover {
- background: #606060;
+ background: #606060;
}
/* 代码块中的滚动条样式优化 */
@@ -265,8 +265,8 @@ div[data-state='open'].fixed.inset-0.z-50 {
}
/* 复制按钮容器和按钮样式 */
-div[class*="bg-fd-card"]:has(button[aria-label='Copy Text']),
-div[class*="bg-fd-card"]:has(button[aria-label='Copied Text']) {
+div[class*='bg-fd-card']:has(button[aria-label='Copy Text']),
+div[class*='bg-fd-card']:has(button[aria-label='Copied Text']) {
right: 26px;
top: 24px;
display: flex;
@@ -305,7 +305,7 @@ button[aria-label='Copy Text']::before {
background-image: url('../public/icons/copy.svg');
width: 26px;
height: 26px;
- transition: filter 0.2s ease;
+ transition: filter 0.2s ease;
}
/* 鼠标悬停时使复制图标颜色变深 */
@@ -419,13 +419,13 @@ div[data-rmiz-modal-overlay='visible'] {
--color-fd-background: #000000;
--color-fd-foreground: hsl(220, 60%, 94.5%);
--color-fd-muted: hsl(220, 50%, 10%);
- --color-fd-muted-foreground: #B0B0B0;
+ --color-fd-muted-foreground: #b0b0b0;
--color-fd-popover: hsl(220, 50%, 10%);
--color-fd-popover-foreground: hsl(220, 60%, 94.5%);
--color-fd-card: hsla(220, 56%, 15%, 0.4);
--color-fd-card-foreground: hsl(220, 60%, 94.5%);
--color-fd-border: hsla(220, 50%, 50%, 0.2);
- --color-fd-primary: #C2D3FF; /* 文本高亮色 */
+ --color-fd-primary: #c2d3ff; /* 文本高亮色 */
--color-fd-primary-foreground: hsl(0, 0%, 9%);
--color-fd-secondary: hsl(220, 50%, 20%);
--color-fd-secondary-foreground: hsl(220, 80%, 90%);
@@ -443,36 +443,35 @@ button[data-search-full] {
}
.dark\:text-blue-400:where(.dark, .dark *) {
- color: #C2D3FF;
+ color: #c2d3ff;
background-color: #434548;
}
-
-.dark div[role="tabpanel"].bg-fd-background {
- background-color: #1E1E1E;
+.dark div[role='tabpanel'].bg-fd-background {
+ background-color: #1e1e1e;
}
-div[role="tabpanel"].bg-fd-background {
- background-color: #F7F7F8;
+div[role='tabpanel'].bg-fd-background {
+ background-color: #f7f7f8;
}
-div[role="tabpanel"].bg-fd-background > div > ul {
+div[role='tabpanel'].bg-fd-background > div > ul {
margin: 0;
display: flex;
flex-direction: column;
gap: 10px;
}
-.dark div[role="tabpanel"].bg-fd-background > div > ul {
+.dark div[role='tabpanel'].bg-fd-background > div > ul {
margin: 0;
- background-color: #1E1E1E;
+ background-color: #1e1e1e;
}
-div[role="tabpanel"].bg-fd-background > div > ul > li {
+div[role='tabpanel'].bg-fd-background > div > ul > li {
margin: 0;
}
-button[role="tab"] {
+button[role='tab'] {
padding-top: 16px;
padding-bottom: 16px;
-}
\ No newline at end of file
+}
diff --git a/document/components/docs/not-found.tsx b/document/components/docs/not-found.tsx
index fbf8f1a3ce..2ba508e6b0 100644
--- a/document/components/docs/not-found.tsx
+++ b/document/components/docs/not-found.tsx
@@ -20,7 +20,8 @@ const prefixMap: Record = {
'/docs/FAQ': '/docs/faq',
'/docs/guide': '/docs/introduction/guide',
'/docs/shopping_cart': '/docs/introduction/shopping_cart',
- '/docs/agreement': '/docs/protocol'
+ '/docs/agreement': '/docs/protocol',
+ '/docs/introduction/development/openapi': '/docs/introduction/openapi'
};
const fallbackRedirect = '/docs/introduction';
diff --git a/document/content/docs/introduction/development/docker.mdx b/document/content/docs/introduction/development/docker.mdx
index 486dbb951e..343afd2698 100644
--- a/document/content/docs/introduction/development/docker.mdx
+++ b/document/content/docs/introduction/development/docker.mdx
@@ -1,5 +1,5 @@
---
-title: Docker Compose 快速部署
+title: Docker 快速部署
description: 使用 Docker Compose 快速部署 FastGPT
---
@@ -9,8 +9,6 @@ import { Alert } from '@/components/docs/Alert';
1. 基础的网络知识:端口,防火墙……
2. Docker 和 Docker Compose 基础知识
-3. 大模型相关接口和参数
-4. RAG 相关知识:向量模型,向量数据库,向量检索
## 部署架构图
@@ -119,149 +117,68 @@ brew install orbstack
## 开始部署
-### 1. 获取 `docker-compose.yml` 和 `config.json` 配置文件
+### 1. 获取配置文件
-#### 方法一:使用脚本部署
+#### 方法一:使用交互式脚本部署
-
-
-国内镜像(阿里云)
+需要在 Linux/MacOS/Windows WSL 环境下执行,引导用户选择部署环境、向量库版本,IP地址等。
```bash
-bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=cn --vector=pg
+bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh)
```
-非国内镜像(dockhub, ghcr)
-
-```bash
-bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=global --vector=pg
-```
-需要在 Linux/MacOS/Windows WSL 环境下执行
-
-
-
- 国内镜像(阿里云)
-
- ```bash
- bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=cn --vector=oceanbase
- ```
-
- 非国内镜像(dockhub, ghcr)
-
- ```bash
- bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=global --vector=oceanbase
- ```
- 需要在 Linux/MacOS/Windows WSL 环境下执行
-
-
- 国内镜像(阿里云)
-
- ```bash
- bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=cn --vector=milvus
- ```
-
- 非国内镜像(dockhub, ghcr)
-
- ```bash
- bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=global --vector=milvus
- ```
- 需要在 Linux/MacOS/Windows WSL 环境下执行
-
-
- 国内镜像(阿里云)
-
- ```bash
- bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=cn --vector=zilliz
- ```
-
- 非国内镜像(dockhub, ghcr)
-
- ```bash
- bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=global --vector=zilliz
- ```
- 需要在 Linux/MacOS/Windows WSL 环境下执行
-
- zilliz 还需要获取密钥,参考 [部署 Zilliz 版本获取账号和密钥](#部署-zilliz-版本获取账号和密钥)
-
-
- 国内镜像(阿里云)
-
- ```bash
- bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=cn --vector=seekdb
- ```
-
- 非国内镜像(dockhub, ghcr)
-
- ```bash
- bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=global --vector=seekdb
- ```
- 需要在 Linux/MacOS/Windows WSL 环境下执行
-
-
-
- SeekDB 使用 MySQL 协议,兼容 OceanBase 的所有特性:
- - 端口:3306(默认)
- - 连接字符串格式:`mysql://root%40tenantname:password@host:3306/database`
- - 环境变量:`SEEKDB_URL`
-
-
-
-
-
#### 方法二:手动下载部署
如果部署环境为非 *nix 环境或无法访问外网,需要手动下载 `docker-compose.yml` 进行部署
-选择并下载您的 `docker-compose.yml` 文件
-- Pgvector
+1. 下载 `docker-compose.yml` 文件:
+
+
+点击展开查看不同数据库的 docker-compose 配置文件下载地址
+
+- **Pgvector**
- 中国大陆地区镜像源(阿里云):[docker-compose.pg.yml](https://doc.fastgpt.cn/deploy/docker/cn/docker-compose.pg.yml)
- 全球镜像源(dockerhub, ghcr):[docker-compose.pg.yml](https://doc.fastgpt.cn/deploy/docker/global/docker-compose.pg.yml)
-- Oceanbase
+- **Oceanbase**
- 中国大陆地区镜像源(阿里云):[docker-compose.ob.yml](https://doc.fastgpt.cn/deploy/docker/cn/docker-compose.ob.yml)
- 全球镜像源(dockerhub, ghcr):[docker-compose.ob.yml](https://doc.fastgpt.cn/deploy/docker/global/docker-compose.ob.yml)
-- Milvus
+- **Milvus**
- 中国大陆地区镜像源(阿里云):[docker-compose.milvus.yml](https://doc.fastgpt.cn/deploy/docker/cn/docker-compose.milvus.yml)
- 全球镜像源(dockerhub, ghcr):[docker-compose.milvus.yml](https://doc.fastgpt.cn/deploy/docker/global/docker-compose.milvus.yml)
-- Zilliz
+- **Zilliz**
- 中国大陆地区镜像源(阿里云):[docker-compose.zilliz.yml](https://doc.fastgpt.cn/deploy/docker/cn/docker-compose.zilliz.yml)
- 全球镜像源(dockerhub, ghcr):[docker-compose.zilliz.yml](https://doc.fastgpt.cn/deploy/docker/global/docker-compose.zilliz.yml)
-- SeekDB
+- **SeekDB**
- 中国大陆地区镜像源(阿里云):[docker-compose.seekdb.yml](https://doc.fastgpt.cn/deploy/docker/cn/docker-compose.seekdb.yml)
- 全球镜像源(dockerhub, ghcr):[docker-compose.seekdb.yml](https://doc.fastgpt.cn/deploy/docker/global/docker-compose.seekdb.yml)
+2. 下载 `config.json` 文件:
+- [config.json](https://doc.fastgpt.cn/deploy/config/config.json)
+
+
+
下载 config.json 文件
- [config.json](https://doc.fastgpt.cn/deploy/config/config.json)
-
+### 2. 修改环境变量
-所有 `docker-compose.yml` 配置文件中 `MongoDB` 为 5.x,需要用到AVX指令集,部分 CPU 不支持,需手动更改其镜像版本为 4.4.24\*\*(需要自己在docker hub下载,阿里云镜像没做备份)
+1. 按照您的需求自行修改环境变量,建议在生产环境修改账号密码等。
+2. 对于 Zilliz 版本 还需要获取密钥,参考 [部署 Zilliz 版本获取账号和密钥](#部署-zilliz-版本获取账号和密钥)
-
-### 2. 开放外网端口/配置域名
-
-以下两个端口必须被访问到:
-
-1. 指向 3000 端口(FastGPT 主服务)
-2. 指向 9000 端口(S3 服务)
-
-### 3. 修改环境变量
-
-1. 修改`STORAGE_EXTERNAL_ENDPOINT`变量,改成客户端和FastGPT 服务均可访问的地址。
-
-**重要:**
-
-> 填入的地址不可为`127.0.0.1`或者`localhost`等本地回环地址,可填 Docker 部署时的宿主机本地IP,但是需要把宿主机固定为静态 IP;或者统一为一个固定域名;目的是为了避免对象存储签名 URL 时,签发与上传的 URL 不一致导致的 403 错误。
->
-> 具体查看 [对象存储配置及常见问题](/docs/introduction/development/object-storage)
-
-2. 按照您的需求自行修改环境变量,建议在生产环境修改账号密码等。
-3. 对于 Zilliz 版本 还需要获取密钥,参考 [部署 Zilliz 版本获取账号和密钥](#部署-zilliz-版本获取账号和密钥)
-
-### 4. 修改 config.json 配置文件
+### 3. 修改 config.json 配置文件
修改`config.json`文件中的`mcpServerProxyEndpoint`值,设置成`mcp server`的公网可访问地址,yml 文件中默认给出了映射到 3005 端口,如通过 IP 访问,则可能是:`120.172.2.10:3005`。
-### 5. 启动容器
+
+### 3. 开放外网端口/配置域名
+
+以下端口必须被访问到:
+
+1. 3000 端口(FastGPT 主服务)
+2. 9000 端口(S3 服务)
+1. 3005 端口(FastGPT SSE MCP server 服务)
+
+### 6. 启动容器
在 docker-compose.yml 同级目录下执行。请确保`docker-compose`版本最好在2.17以上,否则可能无法执行自动化命令。
@@ -270,19 +187,19 @@ bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=global --ve
docker-compose up -d
```
-### 6. 访问 FastGPT
+### 7. 访问 FastGPT
可通过第二步开放的端口/域名访问 FastGPT。
登录用户名为 `root`,密码为`docker-compose.yml`环境变量里设置的 `DEFAULT_ROOT_PSW`。
每次重启容器,都会自动初始化 root 用户,密码为 `1234`(与环境变量中的`DEFAULT_ROOT_PSW`一致)。
-### 7. 配置模型
+### 8. 配置模型
- 首次登录FastGPT后,系统会提示未配置`语言模型`和`索引模型`,并自动跳转模型配置页面。系统必须至少有这两类模型才能正常使用。
- 如果系统未正常跳转,可以在`账号-模型提供商`页面,进行模型配置。[点击查看相关教程](/docs/introduction/development/modelConfig/ai-proxy)
- 目前已知可能问题:首次进入系统后,整个浏览器 tab 无法响应。此时需要删除该tab,重新打开一次即可。
-### 8. 安装系统插件
+### 9. 安装系统插件
从 V4.14.0 版本开始,fastgpt-plugin 镜像仅提供运行环境,不再预装系统插件,所有 FastGPT 系统需手动安装系统插件。
@@ -302,6 +219,16 @@ docker-compose up -d
| 0.5.x | >= 4.14.6 |
| < 0.5.0 | < 4.14.5 |
+### S3 无法正常连接
+
+
+检查`STORAGE_EXTERNAL_ENDPOINT`变量,需设置成客户端和 FastGPT 服务均可访问的地址。
+
+**重要:**
+
+> 填入的地址不可为`127.0.0.1`或者`localhost`等本地回环地址,可填 Docker 部署时的宿主机本地IP,但是需要把宿主机固定为静态 IP;或者统一为一个固定域名;目的是为了避免对象存储签名 URL 时,签发与上传的 URL 不一致导致的 403 错误。
+>
+> 具体查看 [对象存储配置及常见问题](/docs/introduction/development/object-storage)
### 登录系统后,浏览器无法响应
diff --git a/document/content/docs/introduction/development/intro.mdx b/document/content/docs/introduction/development/intro.mdx
index 3ae471230a..b2ddfd0014 100644
--- a/document/content/docs/introduction/development/intro.mdx
+++ b/document/content/docs/introduction/development/intro.mdx
@@ -1,5 +1,5 @@
---
-title: 快速开始本地开发
+title: 开始本地开发
description: 对 FastGPT 进行开发调试
---
diff --git a/document/content/docs/introduction/development/meta.json b/document/content/docs/introduction/development/meta.json
index bb8cbceafc..9ebcf956c1 100644
--- a/document/content/docs/introduction/development/meta.json
+++ b/document/content/docs/introduction/development/meta.json
@@ -5,11 +5,11 @@
"pages": [
"quick-start",
"sealos",
- "intro",
"docker",
+ "faq",
+ "intro",
"configuration",
"object-storage",
- "faq",
"signoz",
"modelConfig",
"custom-models",
diff --git a/document/content/docs/introduction/index.en.mdx b/document/content/docs/introduction/index.en.mdx
deleted file mode 100644
index 28e116ced0..0000000000
--- a/document/content/docs/introduction/index.en.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: 快速了解 FastGPT
-description: FastGPT 的能力与优势
----
-
-import { Alert } from '@/components/docs/Alert';
-
-FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,将智能对话与可视化编排完美结合,让 AI 应用开发变得简单自然。无论您是开发者还是业务人员,都能轻松打造专属的 AI 应用。
-
-
-快速开始体验
-- 海外版:[https://fastgpt.io](https://fastgpt.io)
-- 国内版:[https://fastgpt.cn](https://fastgpt.cn)
-
-
-| | |
-| --------------------- | --------------------------------- |
-|  |  |
-
-# FastGPT 的优势
-## 1. 简单灵活,像搭积木一样简单 🧱
-像搭乐高一样简单有趣,FastGPT 提供丰富的功能模块,通过简单拖拽就能搭建出个性化的 AI 应用,零代码也能实现复杂的业务流程。
-## 2. 让数据更智能 🧠
-FastGPT 提供完整的数据智能化解决方案,从数据导入、预处理到知识匹配,再到智能问答,全流程自动化。配合可视化的工作流设计,轻松打造专业级 AI 应用。
-## 3. 开源开放,易于集成 🔗
-FastGPT 基于 Apache 2.0 协议开源,支持二次开发。通过标准 API 即可快速接入,无需修改源码。支持 ChatGPT、Claude、DeepSeek 和文心一言等主流模型,持续迭代优化,始终保持产品活力。
-
----
-
-# FastGPT 能做什么
-## 1. 全能知识库
-可轻松导入各式各样的文档及数据,能自动对其开展知识结构化处理工作。同时,具备支持多轮上下文理解的智能问答功能,还可为用户带来持续优化的知识库管理体验。
-
-
-## 2. 可视化工作流
-FastGPT直观的拖拽式界面设计,可零代码搭建复杂业务流程。还拥有丰富的功能节点组件,能应对多种业务需求,有着灵活的流程编排能力,按需定制业务流程。
-
-
-## 3. 数据智能解析
-FastGPT知识库系统对导入数据的处理极为灵活,可以智能处理PDF文档的复杂结构,保留图片、表格和LaTeX公式,自动识别扫描文件,并将内容结构化为清晰的Markdown格式。同时支持图片自动标注和索引,让视觉内容可被理解和检索,确保知识在AI问答中能被完整、准确地呈现和应用。
-
-
-
-## 4. 工作流编排
-基于 Flow 模块的工作流编排,可以帮助你设计更加复杂的问答流程。例如查询数据库、查询库存、预约实验室等。
-
-
-
-## 5. 强大的 API 集成
-FastGPT 完全对齐 OpenAI 官方接口,支持一键接入企业微信、公众号、飞书、钉钉等平台,让 AI 能力轻松融入您的业务场景。
-
-
-
----
-
-# 核心特性
-
-- 开箱即用的知识库系统
-- 可视化的低代码工作流编排
-- 支持主流大模型
-- 简单易用的 API 接口
-- 灵活的数据处理能力
-
----
-
-# 知识库核心流程图
-
-
diff --git a/document/content/docs/introduction/meta.json b/document/content/docs/introduction/meta.json
index 2a578170a4..e73ac097c8 100644
--- a/document/content/docs/introduction/meta.json
+++ b/document/content/docs/introduction/meta.json
@@ -7,9 +7,9 @@
"cloud",
"commercial",
"development",
- "openapi",
"---功能介绍---",
- "...guide"
+ "...guide",
+ "openapi"
],
"order": 1
}
diff --git a/document/content/docs/introduction/openapi/share.mdx b/document/content/docs/introduction/openapi/share.mdx
index fd6fa7a29c..4348a2d5bb 100644
--- a/document/content/docs/introduction/openapi/share.mdx
+++ b/document/content/docs/introduction/openapi/share.mdx
@@ -148,7 +148,7 @@ curl --location --request POST '{{host}}/shareAuth/start' \
该接口无规定返回值。
-响应值与[chat 接口格式相同](/docs/introduction/development/openapi/intro/#响应),仅多了一个`token`。
+响应值与[chat 接口格式相同](/docs/introduction/openapi/intro/#响应),仅多了一个`token`。
重点关注:`totalPoints`(总消耗AI积分),`token`(Token消耗总数)
diff --git a/document/content/docs/toc.en.mdx b/document/content/docs/toc.en.mdx
index dcfa960dbd..3624a30fdb 100644
--- a/document/content/docs/toc.en.mdx
+++ b/document/content/docs/toc.en.mdx
@@ -3,7 +3,6 @@ title: FastGPT Toc
description: FastGPT Toc
---
-- [/en/docs/introduction/index](/en/docs/introduction/index)
- [/en/docs/protocol/open-source](/en/docs/protocol/open-source)
- [/en/docs/protocol/privacy](/en/docs/protocol/privacy)
- [/en/docs/protocol/terms](/en/docs/protocol/terms)
diff --git a/document/content/docs/upgrading/4-14/4147.mdx b/document/content/docs/upgrading/4-14/4147.mdx
index 984148e78c..c385a7b9cc 100644
--- a/document/content/docs/upgrading/4-14/4147.mdx
+++ b/document/content/docs/upgrading/4-14/4147.mdx
@@ -30,7 +30,7 @@ SIGNOZ_STORE_LEVEL=
# 新增以下 6 个变量
LOG_ENABLE_CONSOLE=true # 是否开启控制台打印
LOG_CONSOLE_LEVEL=debug # 控制台打印最低日志等级
-LOG_ENABLE_OTEL=true # 是否开启 OTEL 日志收集
+LOG_ENABLE_OTEL=false # 是否开启 OTEL 日志收集
LOG_OTEL_LEVEL=info # OTEL 日志收集的最低日志等级
LOG_OTEL_SERVICE_NAME=fastgpt-client # 传递给 OTLP 收集器的服务名称
LOG_OTEL_URL=http://localhost:4318/v1/logs # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
diff --git a/document/content/docs/upgrading/4-8/464.mdx b/document/content/docs/upgrading/4-8/464.mdx
index 0fdc140a8b..414734ff64 100644
--- a/document/content/docs/upgrading/4-8/464.mdx
+++ b/document/content/docs/upgrading/4-8/464.mdx
@@ -23,7 +23,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv464' \
## V4.6.4 功能介绍
1. 重写 - 分享链接身份逻辑,采用 localID 记录用户的ID。
-2. 商业版新增 - 分享链接 SSO 方案,通过`身份鉴权`地址,仅需`3个接口`即可完全接入已有用户系统。具体参考[分享链接身份鉴权](/docs/introduction/development/openapi/share/)
+2. 商业版新增 - 分享链接 SSO 方案,通过`身份鉴权`地址,仅需`3个接口`即可完全接入已有用户系统。具体参考[分享链接身份鉴权](/docs/introduction/openapi/share/)
3. 新增 - 分享链接更多嵌入方式提示,更多DIY方式。
4. 优化 - 历史记录模块。弃用旧的历史记录模块,直接在对应地方填写数值即可。
5. 调整 - 知识库搜索模块 topk 逻辑,采用 MaxToken 计算,兼容不同长度的文本块
diff --git a/document/content/docs/upgrading/4-8/467.mdx b/document/content/docs/upgrading/4-8/467.mdx
index 1e90a0b393..34e53bcb6c 100644
--- a/document/content/docs/upgrading/4-8/467.mdx
+++ b/document/content/docs/upgrading/4-8/467.mdx
@@ -24,7 +24,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv467' \
1. 修改了知识库UI及新的导入交互方式。
2. 优化知识库和对话的数据索引。
-3. 知识库 openAPI,支持通过 [API 操作知识库](/docs/introduction/development/openapi/dataset)。
+3. 知识库 openAPI,支持通过 [API 操作知识库](/docs/introduction/openapi/dataset)。
4. 新增 - 输入框变量提示。输入 `{` 号后将会获得可用变量提示。根据社区针对高级编排的反馈,我们计划于 2 月份的版本中,优化变量内容,支持模块的局部变量以及更多全局变量写入。
5. 优化 - 切换团队后会保存记录,下次登录时优先登录该团队。
6. 修复 - API 对话时,chatId 冲突问题。
diff --git a/document/content/docs/upgrading/4-8/469.mdx b/document/content/docs/upgrading/4-8/469.mdx
index 24af472155..42209ff69f 100644
--- a/document/content/docs/upgrading/4-8/469.mdx
+++ b/document/content/docs/upgrading/4-8/469.mdx
@@ -27,7 +27,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv469' \
## 外部接口更新
-1. 由于计费系统变更,[分享链接对话上报接口](/docs/introduction/development/openapi/share/#5-编写对话结果上报接口可选)需要做一些调整,price字段被totalPoints字段取代。inputToken和outputToken不再提供,只提供`token`字段(总token数量)。
+1. 由于计费系统变更,[分享链接对话上报接口](/docs/introduction/openapi/share/#5-编写对话结果上报接口可选)需要做一些调整,price字段被totalPoints字段取代。inputToken和outputToken不再提供,只提供`token`字段(总token数量)。
## V4.6.9 更新说明
diff --git a/document/content/docs/upgrading/4-9/490.mdx b/document/content/docs/upgrading/4-9/490.mdx
index f1c5fdb6a9..3fdff1d5f0 100644
--- a/document/content/docs/upgrading/4-9/490.mdx
+++ b/document/content/docs/upgrading/4-9/490.mdx
@@ -163,7 +163,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv490' \
1. 弃用 - 之前私有化部署的自定义文件解析方案,请同步更新到最新的配置方案。[点击查看 PDF 增强解析配置](/docs/introduction/development/configuration/#使用-doc2x-解析-pdf-文件)
2. 弃用 - 弃用旧版本地文件上传 API:/api/core/dataset/collection/create/file(以前仅商业版可用的 API,该接口已放切换成:/api/core/dataset/collection/create/localFile)
3. 停止维护,即将弃用 - 外部文件库相关 API,可通过 API 文件库替代。
-4. API更新 - 上传文件至知识库、创建连接集合、API 文件库、推送分块数据等带有 `trainingType` 字段的接口,`trainingType`字段未来仅支持`chunk`和`QA`两种模式。增强索引模式将设置单独字段:`autoIndexes`,目前仍有适配旧版`trainingType=auto`代码,但请尽快变更成新接口类型。具体可见:[知识库 OpenAPI 文档](/docs/introduction/development/openapi/dataset.md)
+4. API更新 - 上传文件至知识库、创建连接集合、API 文件库、推送分块数据等带有 `trainingType` 字段的接口,`trainingType`字段未来仅支持`chunk`和`QA`两种模式。增强索引模式将设置单独字段:`autoIndexes`,目前仍有适配旧版`trainingType=auto`代码,但请尽快变更成新接口类型。具体可见:[知识库 OpenAPI 文档](/docs/introduction/openapi/dataset.md)
## 🚀 新增内容
diff --git a/document/content/docs/upgrading/4-9/492.mdx b/document/content/docs/upgrading/4-9/492.mdx
index 599cd02cc4..f3cb49e19d 100644
--- a/document/content/docs/upgrading/4-9/492.mdx
+++ b/document/content/docs/upgrading/4-9/492.mdx
@@ -33,7 +33,7 @@ description: FastGPT V4.9.2 更新说明
## 重要更新
-- 知识库导入数据 API 变更,增加`chunkSettingMode`,`chunkSplitMode`,`indexSize`可选参数,具体可参考 [知识库导入数据 API](/docs/introduction/development/openapi/dataset) 文档。
+- 知识库导入数据 API 变更,增加`chunkSettingMode`,`chunkSplitMode`,`indexSize`可选参数,具体可参考 [知识库导入数据 API](/docs/introduction/openapi/dataset) 文档。
## 🚀 新增内容
diff --git a/document/content/docs/use-cases/external-integration/openapi.mdx b/document/content/docs/use-cases/external-integration/openapi.mdx
index c16535c83c..648d526689 100644
--- a/document/content/docs/use-cases/external-integration/openapi.mdx
+++ b/document/content/docs/use-cases/external-integration/openapi.mdx
@@ -5,7 +5,7 @@ description: 通过 API 访问 FastGPT 应用
import { Alert } from '@/components/docs/Alert';
-在 FastGPT 中,你可以为每一个应用创建多个 API 密钥,用于访问应用的 API 接口。每个密钥仅能访问一个应用。完整的接口可以[查看应用对话接口](/docs/introduction/development/openapi/intro)。
+在 FastGPT 中,你可以为每一个应用创建多个 API 密钥,用于访问应用的 API 接口。每个密钥仅能访问一个应用。完整的接口可以[查看应用对话接口](/docs/introduction/openapi/intro)。
## 获取 API 密钥
diff --git a/document/data/doc-last-modified.json b/document/data/doc-last-modified.json
index 56dd3aca6c..523f9fe787 100644
--- a/document/data/doc-last-modified.json
+++ b/document/data/doc-last-modified.json
@@ -20,7 +20,7 @@
"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/design_plugin.mdx": "2025-11-06T14:47:55+08:00",
- "document/content/docs/introduction/development/docker.mdx": "2026-02-11T13:31:15+08:00",
+ "document/content/docs/introduction/development/docker.mdx": "2026-02-12T16:37:50+08:00",
"document/content/docs/introduction/development/faq.mdx": "2025-08-12T22:22:18+08:00",
"document/content/docs/introduction/development/intro.mdx": "2025-09-29T11:34:11+08:00",
"document/content/docs/introduction/development/migration/docker_db.mdx": "2025-07-23T21:35:03+08:00",
@@ -36,7 +36,7 @@
"document/content/docs/introduction/development/proxy/nginx.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/quick-start.mdx": "2025-10-21T11:58:25+08:00",
"document/content/docs/introduction/development/sealos.mdx": "2025-11-11T14:05:02+08:00",
- "document/content/docs/introduction/development/signoz.mdx": "2026-02-12T11:32:33+08:00",
+ "document/content/docs/introduction/development/signoz.mdx": "2026-02-12T16:37:50+08:00",
"document/content/docs/introduction/guide/DialogBoxes/htmlRendering.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/guide/DialogBoxes/quoteList.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/guide/admin/sso.mdx": "2026-01-05T20:53:39+08:00",
@@ -88,14 +88,13 @@
"document/content/docs/introduction/guide/team_permissions/customDomain.mdx": "2025-12-10T20:07:05+08:00",
"document/content/docs/introduction/guide/team_permissions/invitation_link.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/guide/team_permissions/team_roles_permissions.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/index.en.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/index.mdx": "2025-09-29T11:34:11+08:00",
- "document/content/docs/introduction/openapi/app.mdx": "2026-02-11T13:31:15+08:00",
- "document/content/docs/introduction/openapi/chat.mdx": "2026-02-11T13:31:15+08:00",
- "document/content/docs/introduction/openapi/dataset.mdx": "2026-02-11T13:31:15+08:00",
- "document/content/docs/introduction/openapi/intro.mdx": "2026-02-11T13:31:15+08:00",
- "document/content/docs/introduction/openapi/share.mdx": "2026-02-11T13:31:15+08:00",
- "document/content/docs/introduction/openapi/swagger.mdx": "2026-02-11T13:31:15+08:00",
+ "document/content/docs/introduction/openapi/app.mdx": "2026-02-12T16:37:50+08:00",
+ "document/content/docs/introduction/openapi/chat.mdx": "2026-02-12T16:37:50+08:00",
+ "document/content/docs/introduction/openapi/dataset.mdx": "2026-02-12T16:37:50+08:00",
+ "document/content/docs/introduction/openapi/intro.mdx": "2026-02-12T16:37:50+08:00",
+ "document/content/docs/introduction/openapi/share.mdx": "2026-02-12T16:37:50+08:00",
+ "document/content/docs/introduction/openapi/swagger.mdx": "2026-02-12T16:37:50+08:00",
"document/content/docs/protocol/index.mdx": "2025-07-30T15:38:30+08:00",
"document/content/docs/protocol/open-source.en.mdx": "2025-08-05T23:20:39+08:00",
"document/content/docs/protocol/open-source.mdx": "2025-08-05T23:20:39+08:00",
@@ -103,8 +102,7 @@
"document/content/docs/protocol/privacy.mdx": "2025-12-15T23:36:54+08:00",
"document/content/docs/protocol/terms.en.mdx": "2025-12-15T23:36:54+08:00",
"document/content/docs/protocol/terms.mdx": "2025-12-15T23:36:54+08:00",
- "document/content/docs/toc.en.mdx": "2025-08-04T13:42:36+08:00",
- "document/content/docs/toc.mdx": "2026-02-11T13:31:15+08:00",
+ "document/content/docs/toc.mdx": "2026-02-12T16:37:50+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-11/4110.mdx": "2025-08-05T23:20:39+08:00",
@@ -124,8 +122,8 @@
"document/content/docs/upgrading/4-14/4144.mdx": "2026-02-04T14:27:58+08:00",
"document/content/docs/upgrading/4-14/4145.mdx": "2026-01-18T23:59:15+08:00",
"document/content/docs/upgrading/4-14/41451.mdx": "2026-01-20T11:53:27+08:00",
- "document/content/docs/upgrading/4-14/4146.mdx": "2026-02-09T10:22:42+08:00",
- "document/content/docs/upgrading/4-14/4147.mdx": "2026-02-12T11:32:33+08:00",
+ "document/content/docs/upgrading/4-14/4146.mdx": "2026-02-12T16:37:50+08:00",
+ "document/content/docs/upgrading/4-14/4147.mdx": "2026-02-12T16:37:50+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/42.mdx": "2025-08-02T19:38:37+08:00",
diff --git a/document/public/deploy/docker/cn/docker-compose.milvus.yml b/document/public/deploy/docker/cn/docker-compose.milvus.yml
index 7611e84170..e472ced84e 100644
--- a/document/public/deploy/docker/cn/docker-compose.milvus.yml
+++ b/document/public/deploy/docker/cn/docker-compose.milvus.yml
@@ -216,8 +216,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -259,6 +270,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/document/public/deploy/docker/cn/docker-compose.oceanbase.yml b/document/public/deploy/docker/cn/docker-compose.oceanbase.yml
index 8d56092f64..918a091b53 100644
--- a/document/public/deploy/docker/cn/docker-compose.oceanbase.yml
+++ b/document/public/deploy/docker/cn/docker-compose.oceanbase.yml
@@ -193,8 +193,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -236,6 +247,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/document/public/deploy/docker/cn/docker-compose.pg.yml b/document/public/deploy/docker/cn/docker-compose.pg.yml
index c51557cb9c..bf0abdc554 100644
--- a/document/public/deploy/docker/cn/docker-compose.pg.yml
+++ b/document/public/deploy/docker/cn/docker-compose.pg.yml
@@ -174,8 +174,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -217,6 +228,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/document/public/deploy/docker/cn/docker-compose.seekdb.yml b/document/public/deploy/docker/cn/docker-compose.seekdb.yml
index d7e1c31e71..0b10f9619e 100644
--- a/document/public/deploy/docker/cn/docker-compose.seekdb.yml
+++ b/document/public/deploy/docker/cn/docker-compose.seekdb.yml
@@ -180,8 +180,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -223,6 +234,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/document/public/deploy/docker/cn/docker-compose.zilliz.yml b/document/public/deploy/docker/cn/docker-compose.zilliz.yml
index 30906e2ed1..683ea6a1ba 100644
--- a/document/public/deploy/docker/cn/docker-compose.zilliz.yml
+++ b/document/public/deploy/docker/cn/docker-compose.zilliz.yml
@@ -157,8 +157,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -200,6 +211,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/document/public/deploy/docker/global/docker-compose.milvus.yml b/document/public/deploy/docker/global/docker-compose.milvus.yml
index df6a3745f2..7415a2f5f2 100644
--- a/document/public/deploy/docker/global/docker-compose.milvus.yml
+++ b/document/public/deploy/docker/global/docker-compose.milvus.yml
@@ -216,8 +216,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -259,6 +270,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/document/public/deploy/docker/global/docker-compose.oceanbase.yml b/document/public/deploy/docker/global/docker-compose.oceanbase.yml
index cba3315c05..49d3079e6e 100644
--- a/document/public/deploy/docker/global/docker-compose.oceanbase.yml
+++ b/document/public/deploy/docker/global/docker-compose.oceanbase.yml
@@ -193,8 +193,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -236,6 +247,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/document/public/deploy/docker/global/docker-compose.pg.yml b/document/public/deploy/docker/global/docker-compose.pg.yml
index d2cca5e709..cc3372f8db 100644
--- a/document/public/deploy/docker/global/docker-compose.pg.yml
+++ b/document/public/deploy/docker/global/docker-compose.pg.yml
@@ -174,8 +174,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -217,6 +228,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/document/public/deploy/docker/global/docker-compose.seekdb.yml b/document/public/deploy/docker/global/docker-compose.seekdb.yml
index 58a10e6c7e..1f6bf5ab8f 100644
--- a/document/public/deploy/docker/global/docker-compose.seekdb.yml
+++ b/document/public/deploy/docker/global/docker-compose.seekdb.yml
@@ -180,8 +180,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -223,6 +234,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/document/public/deploy/docker/global/docker-compose.ziliiz.yml b/document/public/deploy/docker/global/docker-compose.ziliiz.yml
index 2dbc58a148..05cdc3c01d 100644
--- a/document/public/deploy/docker/global/docker-compose.ziliiz.yml
+++ b/document/public/deploy/docker/global/docker-compose.ziliiz.yml
@@ -157,8 +157,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error
- LOG_LEVEL: info
- STORE_LOG_LEVEL: warn
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 控制台打印最低日志等级
+ LOG_CONSOLE_LEVEL: debug
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ # 传递给 OTLP 收集器的服务名称
+ LOG_OTEL_SERVICE_NAME: fastgpt-client
+ # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
+
# 工作流最大运行次数
WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度
@@ -200,6 +211,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小
MAX_API_SIZE: 10
+ # Log 配置
+ # 日志等级: debug, info, warn, error
+ LOG_LEVEL: info
+ # 是否开启控制台打印
+ LOG_ENABLE_CONSOLE: true
+ # 是否开启 OTEL 日志收集
+ LOG_ENABLE_OTEL: false
+ # OTEL 日志收集的最低日志等级
+ LOG_OTEL_LEVEL: info
+ LOG_OTEL_SERVICE_NAME: fastgpt-plugin
+ LOG_OTEL_URL: http://localhost:4318/v1/logs
depends_on:
fastgpt-minio:
condition: service_healthy
diff --git a/document/public/deploy/install.sh b/document/public/deploy/install.sh
index 10e2ebee37..f3e28d1756 100644
--- a/document/public/deploy/install.sh
+++ b/document/public/deploy/install.sh
@@ -1,171 +1,264 @@
#!/usr/bin/env bash
-#
-# param:
-# --region=cn 中国大陆
-# --region=global 全球(默认)
-# --vector=pg pg 版本(默认)
-# --vector=milvus milvus 版本
-# --vector=zilliz zilliz 版本
-# --vector=oceanbase oceanbase 版本
-# 默认参数
-REGION="global"
-VECTOR="pg"
+# ========== Radio 选择器 ==========
+# 使用方向键 ↑↓ 选择,回车确认
+radio_select() {
+ local title="$1"
+ shift
+ local options=("$@")
+ local selected=0
+ local count=${#options[@]}
-# 解析参数
-for arg in "$@"; do
- case $arg in
- --region=*)
- REGION="${arg#*=}"
- shift
- ;;
- --vector=*)
- VECTOR="${arg#*=}"
- shift
- ;;
- *)
- ;;
- esac
-done
-
-# 检查参数合法性
-VALID_VECTOR=("pg" "milvus" "zilliz" "oceanbase")
-VECTOR_VALID=false
-for v in "${VALID_VECTOR[@]}"; do
- if [[ "$VECTOR" == "$v" ]]; then
- VECTOR_VALID=true
- break
- fi
-done
-
-if ! $VECTOR_VALID; then
- echo "Error: Invalid --vector parameter: $VECTOR"
- echo "Available options: pg, milvus, zilliz, oceanbase"
- exit 1
-fi
-
-if [[ "$REGION" != "global" && "$REGION" != "cn" ]]; then
- echo "Error: Invalid --region parameter: $REGION"
- echo "Available options: global, cn"
- exit 1
-fi
-
-
-echo 'Vector Database:' $VECTOR
-echo 'Docker Image Registry: ' $REGION
-read -p "Confirm? (y/n)" confirm
-if [ "$confirm" != "y" ]; then
- echo "Canceled"
- exit 1
-fi
-
-echo 'Downloading Docker Compose YAML file'
-# get the yml file, url:
-# region=cn https://doc.fastgpt.cn/deploy/docker/cn/docker-compose.[vector].yml
-# region=global https://doc.fastgpt.io/deploy/docker/global/docker-compose.[vector].yml
-
-# 构建下载链接
-if [ "$REGION" == "cn" ]; then
- YML_URL="https://doc.fastgpt.cn/deploy/docker/cn/docker-compose.${VECTOR}.yml"
-else
- YML_URL="https://doc.fastgpt.io/deploy/docker/global/docker-compose.${VECTOR}.yml"
-fi
-
-# 下载 YAML 文件
-curl -O "$YML_URL"
-
-if [ $? -ne 0 ]; then
- echo "Error: Failed to download YAML file from $YML_URL"
- exit 1
-fi
-
-echo "Downloaded docker-compose.${VECTOR}.yml from $YML_URL"
-
-# download config.json file
-
-if [ "$REGION" == "cn" ]; then
- CONFIG="https://doc.fastgpt.cn/deploy/config/config.json"
-else
- CONFIG="https://doc.fastgpt.io/deploy/config/config.json"
-fi
-
-# 下载 config.json 文件
-curl -O "$CONFIG"
-
-if [ $? -ne 0 ]; then
- echo "Error: Failed to download config.json file from $CONFIG"
- exit 1
-fi
-
-echo "Downloaded config.json from $CONFIG"
-
-mv docker-compose.${VECTOR}.yml docker-compose.yml
-
-# 自动处理 S3 外部地址
-echo ""
-echo "Detecting available IP addresses for S3 external endpoint..."
-
-# 使用 ifconfig 获取所有 IPv4 地址(排除 127.0.0.1)
-IP_LIST=()
-while IFS= read -r line; do
- IP_LIST+=("$line")
-done < <(ifconfig 2>/dev/null | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')
-
-# 显示所有检测到的 IP 地址供用户选择
-if [ ${#IP_LIST[@]} -gt 0 ]; then
- echo "Available IP addresses:"
- for i in "${!IP_LIST[@]}"; do
- echo " [$((i+1))] ${IP_LIST[$i]}"
- done
- echo " [0] Enter custom IP or domain"
echo ""
+ echo "$title"
- read -p "Select IP address (1-${#IP_LIST[@]}, 0 for custom, Enter for #1): " ip_choice
+ # 绘制选项
+ for i in "${!options[@]}"; do
+ if [ $i -eq $selected ]; then
+ printf " \033[36m●\033[0m %s\n" "${options[$i]}"
+ else
+ printf " ○ %s\n" "${options[$i]}"
+ fi
+ done
- # 默认选择第一个
- if [ -z "$ip_choice" ]; then
- ip_choice=1
- fi
+ # 隐藏光标
+ tput civis 2>/dev/null
- if [ "$ip_choice" == "0" ]; then
- read -p "Enter your custom IP address or domain: " LOCAL_IP
- elif [ "$ip_choice" -ge 1 ] 2>/dev/null && [ "$ip_choice" -le ${#IP_LIST[@]} ] 2>/dev/null; then
- LOCAL_IP="${IP_LIST[$((ip_choice-1))]}"
- else
- echo "Invalid selection, using first IP: ${IP_LIST[0]}"
- LOCAL_IP="${IP_LIST[0]}"
- fi
-else
- echo "Could not detect any IP address"
- read -p "Enter your IP address or domain for S3 external endpoint: " LOCAL_IP
+ while true; do
+ read -rsn1 key
+ case "$key" in
+ $'\x1b')
+ read -rsn2 arrow
+ case "$arrow" in
+ '[A') ((selected > 0)) && ((selected--)) ;;
+ '[B') ((selected < count - 1)) && ((selected++)) ;;
+ esac
+ ;;
+ '') break ;;
+ esac
+
+ # 光标上移并重绘
+ printf "\033[%dA" "$count"
+ for i in "${!options[@]}"; do
+ printf "\033[K"
+ if [ $i -eq $selected ]; then
+ printf " \033[36m●\033[0m %s\n" "${options[$i]}"
+ else
+ printf " ○ %s\n" "${options[$i]}"
+ fi
+ done
+ done
+
+ # 恢复光标
+ tput cnorm 2>/dev/null
+ RADIO_RESULT=$selected
+}
+
+# 确保退出时恢复光标
+trap 'tput cnorm 2>/dev/null; exit' INT TERM
+
+# ========== 1. 选择镜像源 ==========
+radio_select "请选择镜像源 (↑↓ 选择, 回车确认):" "阿里云 (中国大陆)" "GitHub (全球)"
+case $RADIO_RESULT in
+ 1) REGION="global" ;;
+ *) REGION="cn" ;;
+esac
+
+# ========== 2. 选择向量数据库 ==========
+radio_select "请选择向量数据库 (↑↓ 选择, 回车确认):" "PostgreSQL + pgvector" "Milvus" "Zilliz" "OceanBase" "SeekDB"
+case $RADIO_RESULT in
+ 1) VECTOR="milvus" ;;
+ 2) VECTOR="zilliz" ;;
+ 3) VECTOR="oceanbase" ;;
+ 4) VECTOR="seekdb" ;;
+ *) VECTOR="pg" ;;
+esac
+
+# ========== 3. 检测可用 IP ==========
+IP_LIST=()
+if command -v ip &>/dev/null; then
+ for ip in $(ip -4 addr show 2>/dev/null | awk '/inet / {split($2,a,"/"); print a[1]}' | grep -v '127.0.0.1'); do
+ IP_LIST+=("$ip")
+ done
+elif command -v ifconfig &>/dev/null; then
+ for ip in $(ifconfig 2>/dev/null | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'); do
+ IP_LIST+=("$ip")
+ done
fi
-# 替换 docker-compose.yml 中 192.168.0.2 为选定的地址
-if [ -n "$LOCAL_IP" ]; then
- echo "Replacing 192.168.0.2 with $LOCAL_IP in docker-compose.yml..."
+# 地址选择函数
+# 参数: $1=标题, $2=端口
+# 设置 SELECTED_ADDR 和 SELECTED_CUSTOM (true=手动输入, false=列表选择)
+select_address() {
+ local title="$1"
+ local port="$2"
+ SELECTED_CUSTOM=false
+ if [ ${#IP_LIST[@]} -gt 0 ]; then
+ # 构建带完整地址的选项列表
+ local opts=()
+ for ip in "${IP_LIST[@]}"; do
+ opts+=("http://$ip:$port")
+ done
+ opts+=("其他 (手动输入)")
- # 根据操作系统选择 sed 命令
- if [[ "$OSTYPE" == "darwin"* ]]; then
- # macOS
- sed -i '' "s/192\.168\.0\.2/$LOCAL_IP/g" docker-compose.yml
+ radio_select "$title" "${opts[@]}"
+ if [ $RADIO_RESULT -eq ${#IP_LIST[@]} ]; then
+ echo ""
+ read -p "请输入完整地址 (如 http://domain:port): " SELECTED_ADDR
+ SELECTED_CUSTOM=true
+ else
+ SELECTED_ADDR="${IP_LIST[$RADIO_RESULT]}"
+ fi
else
- # Linux
- sed -i "s/192\.168\.0\.2/$LOCAL_IP/g" docker-compose.yml
+ echo ""
+ echo "未检测到可用 IP 地址"
+ read -p "请输入完整地址 (如 http://domain:port): " SELECTED_ADDR
+ SELECTED_CUSTOM=true
+ fi
+}
+
+# ========== 4. 选择 S3 访问地址 (端口 9000) ==========
+select_address "请选择 S3 访问地址 - 客户端和容器均需可访问 (↑↓ 选择, 回车确认):" 9000
+S3_ADDR="$SELECTED_ADDR"
+S3_CUSTOM=$SELECTED_CUSTOM
+
+# ========== 5. 选择 SSE MCP 访问地址 (端口 3005) ==========
+select_address "请选择 SSE MCP 访问地址 - 客户端和容器均需可访问 (↑↓ 选择, 回车确认):" 3005
+MCP_ADDR="$SELECTED_ADDR"
+MCP_CUSTOM=$SELECTED_CUSTOM
+
+# ========== 确认配置 ==========
+REGION_LABEL="阿里云 (中国大陆)"
+if [ "$REGION" == "global" ]; then
+ REGION_LABEL="GitHub (全球)"
+fi
+
+# 构建显示地址
+if [ -n "$S3_ADDR" ]; then
+ if $S3_CUSTOM; then
+ S3_DISPLAY="$S3_ADDR"
+ else
+ S3_DISPLAY="http://$S3_ADDR:9000"
+ fi
+else
+ S3_DISPLAY="未设置"
+fi
+
+if [ -n "$MCP_ADDR" ]; then
+ if $MCP_CUSTOM; then
+ MCP_DISPLAY="$MCP_ADDR"
+ else
+ MCP_DISPLAY="http://$MCP_ADDR:3005"
+ fi
+else
+ MCP_DISPLAY="未设置"
+fi
+
+echo ""
+echo "=============================="
+echo " 镜像源: $REGION_LABEL"
+echo " 向量数据库: $VECTOR"
+echo " S3 地址: $S3_DISPLAY"
+echo " MCP 地址: $MCP_DISPLAY"
+echo "=============================="
+echo ""
+read -p "确认以上配置? (y/n) [y]: " confirm
+if [ "$confirm" == "n" ]; then
+ echo "已取消"
+ exit 1
+fi
+
+# ========== 下载文件 ==========
+echo ""
+echo "正在下载配置文件..."
+
+# 构建下载链接(处理 global 下 zilliz 文件名差异)
+VECTOR_FILE="$VECTOR"
+if [ "$REGION" == "global" ] && [ "$VECTOR" == "zilliz" ]; then
+ VECTOR_FILE="ziliiz"
+fi
+
+if [ "$REGION" == "cn" ]; then
+ BASE_URL="https://doc.fastgpt.cn/deploy"
+ YML_URL="${BASE_URL}/docker/cn/docker-compose.${VECTOR_FILE}.yml"
+else
+ BASE_URL="https://doc.fastgpt.io/deploy"
+ YML_URL="${BASE_URL}/docker/global/docker-compose.${VECTOR_FILE}.yml"
+fi
+
+CONFIG_URL="${BASE_URL}/config/config.json"
+
+# 下载 docker-compose YAML
+curl -fsSL -O "$YML_URL"
+if [ $? -ne 0 ]; then
+ echo "错误: 下载 YAML 文件失败: $YML_URL"
+ exit 1
+fi
+mv "docker-compose.${VECTOR_FILE}.yml" docker-compose.yml
+echo "已下载 docker-compose.yml"
+
+# 下载 config.json
+curl -fsSL -O "$CONFIG_URL"
+if [ $? -ne 0 ]; then
+ echo "错误: 下载 config.json 失败: $CONFIG_URL"
+ exit 1
+fi
+echo "已下载 config.json"
+
+# ========== 替换 S3 访问地址 ==========
+if [ -n "$S3_ADDR" ]; then
+ if $S3_CUSTOM; then
+ # 自定义输入:提取主机部分替换 docker-compose 中的 IP
+ S3_HOST="${S3_ADDR#http://}"
+ S3_HOST="${S3_HOST#https://}"
+ S3_HOST="${S3_HOST%%:*}"
+ S3_HOST="${S3_HOST%%/*}"
+ else
+ S3_HOST="$S3_ADDR"
+ fi
+
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ sed -i '' "s/192\.168\.0\.2/$S3_HOST/g" docker-compose.yml
+ else
+ sed -i "s/192\.168\.0\.2/$S3_HOST/g" docker-compose.yml
fi
if [ $? -eq 0 ]; then
- echo "Successfully updated S3 external endpoint to: http://$LOCAL_IP:9000"
+ echo "已更新 S3 访问地址为: $S3_DISPLAY"
else
- echo "Warning: Failed to replace IP address. Please manually edit docker-compose.yml"
+ echo "警告: 替换 S3 地址失败,请手动编辑 docker-compose.yml 中的 192.168.0.2"
fi
else
- echo "Warning: No IP address provided. Please manually edit docker-compose.yml to replace 192.168.0.2"
+ echo "警告: 未设置 S3 地址,请手动编辑 docker-compose.yml 中的 192.168.0.2"
fi
+# ========== 替换 MCP 访问地址 ==========
+if [ -n "$MCP_ADDR" ]; then
+ if $MCP_CUSTOM; then
+ MCP_ENDPOINT="$MCP_ADDR"
+ else
+ MCP_ENDPOINT="http://$MCP_ADDR:3005"
+ fi
+
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ sed -i '' "s|\"mcpServerProxyEndpoint\": \"\"|\"mcpServerProxyEndpoint\": \"$MCP_ENDPOINT\"|g" config.json
+ else
+ sed -i "s|\"mcpServerProxyEndpoint\": \"\"|\"mcpServerProxyEndpoint\": \"$MCP_ENDPOINT\"|g" config.json
+ fi
+
+ if [ $? -eq 0 ]; then
+ echo "已更新 MCP 访问地址为: $MCP_ENDPOINT"
+ else
+ echo "警告: 替换 MCP 地址失败,请手动编辑 config.json 中的 mcpServerProxyEndpoint"
+ fi
+else
+ echo "警告: 未设置 MCP 地址,请手动编辑 config.json 中的 mcpServerProxyEndpoint"
+fi
+
+# ========== 完成 ==========
echo ""
-echo "Installation success! What's next:"
-echo "1. Edit the yml file: vim docker-compose.yml"
-echo "2. start the service: docker compose up -d"
-echo "3. stop the service: docker compose down"
-echo "4. restart the service: docker compose restart"
-echo "For more information, please visit https://doc.fastgpt.cn/docs/introduction/development/docker"
+echo "安装完成! 后续操作:"
+echo " 1. 编辑配置: vim docker-compose.yml"
+echo " 2. 启动服务: docker compose up -d"
+echo ""
+echo "详细文档: https://doc.fastgpt.cn/docs/introduction/development/docker"
diff --git a/projects/app/src/components/support/apikey/Table.tsx b/projects/app/src/components/support/apikey/Table.tsx
index df4e778d54..6b135739dc 100644
--- a/projects/app/src/components/support/apikey/Table.tsx
+++ b/projects/app/src/components/support/apikey/Table.tsx
@@ -97,10 +97,7 @@ const ApiKeyTable = ({ tips, appId }: { tips: string; appId?: string }) => {
{feConfigs?.docUrl && (