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) - - -| | | -| --------------------- | --------------------------------- | -| ![](/imgs/intro/image1.png) | ![](/imgs/intro/image2.png) | - -# FastGPT 的优势 -## 1. 简单灵活,像搭积木一样简单 🧱 -像搭乐高一样简单有趣,FastGPT 提供丰富的功能模块,通过简单拖拽就能搭建出个性化的 AI 应用,零代码也能实现复杂的业务流程。 -## 2. 让数据更智能 🧠 -FastGPT 提供完整的数据智能化解决方案,从数据导入、预处理到知识匹配,再到智能问答,全流程自动化。配合可视化的工作流设计,轻松打造专业级 AI 应用。 -## 3. 开源开放,易于集成 🔗 -FastGPT 基于 Apache 2.0 协议开源,支持二次开发。通过标准 API 即可快速接入,无需修改源码。支持 ChatGPT、Claude、DeepSeek 和文心一言等主流模型,持续迭代优化,始终保持产品活力。 - ---- - -# FastGPT 能做什么 -## 1. 全能知识库 -可轻松导入各式各样的文档及数据,能自动对其开展知识结构化处理工作。同时,具备支持多轮上下文理解的智能问答功能,还可为用户带来持续优化的知识库管理体验。 -![](/imgs/intro/image3.png) - -## 2. 可视化工作流 -FastGPT直观的拖拽式界面设计,可零代码搭建复杂业务流程。还拥有丰富的功能节点组件,能应对多种业务需求,有着灵活的流程编排能力,按需定制业务流程。 -![](/imgs/intro/image4.png) - -## 3. 数据智能解析 -FastGPT知识库系统对导入数据的处理极为灵活,可以智能处理PDF文档的复杂结构,保留图片、表格和LaTeX公式,自动识别扫描文件,并将内容结构化为清晰的Markdown格式。同时支持图片自动标注和索引,让视觉内容可被理解和检索,确保知识在AI问答中能被完整、准确地呈现和应用。 - -![](/imgs/intro/image5.png) - -## 4. 工作流编排 -基于 Flow 模块的工作流编排,可以帮助你设计更加复杂的问答流程。例如查询数据库、查询库存、预约实验室等。 - -![](/imgs/intro/image6.png) - -## 5. 强大的 API 集成 -FastGPT 完全对齐 OpenAI 官方接口,支持一键接入企业微信、公众号、飞书、钉钉等平台,让 AI 能力轻松融入您的业务场景。 - -![](/imgs/intro/image7.png) - ---- - -# 核心特性 - -- 开箱即用的知识库系统 -- 可视化的低代码工作流编排 -- 支持主流大模型 -- 简单易用的 API 接口 -- 灵活的数据处理能力 - ---- - -# 知识库核心流程图 - -![](/imgs/intro/image8.png) 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 && (