Commit 0ac8bca1 by Archer Committed by GitHub

doc (#6419)

parent 76d6234d
...@@ -44,7 +44,7 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b ...@@ -44,7 +44,7 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b
<img src="https://img.shields.io/badge/-返回顶部-7d09f1.svg" alt="#" align="right"> <img src="https://img.shields.io/badge/-返回顶部-7d09f1.svg" alt="#" align="right">
</a> </a>
## 💡 RoadMap ## 💡 核心功能
`1` 应用编排能力 `1` 应用编排能力
- [x] 规划 Agent 模式。 - [x] 规划 Agent 模式。
...@@ -107,7 +107,7 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b ...@@ -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/configuration/)
* [多模型配置方案](https://doc.fastgpt.io/docs/introduction/development/modelConfig/one-api/) * [多模型配置方案](https://doc.fastgpt.io/docs/introduction/development/modelConfig/one-api/)
* [版本更新/升级介绍](https://doc.fastgpt.io/docs/upgrading) * [版本更新/升级介绍](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/) * [知识库结构详解](https://doc.fastgpt.io/docs/introduction/guide/knowledge_base/RAG/)
<a href="#readme"> <a href="#readme">
...@@ -126,9 +126,10 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b ...@@ -126,9 +126,10 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b
</a> </a>
## 🌿 第三方生态 ## 🌿 第三方生态
- [PPIO 派欧云:一键调用高性价比的开源模型 API 和 GPU 容器](https://ppinfra.com/user/register?invited_by=VITYVU&utm_source=github_fastgpt)
- [AI Proxy:国内模型聚合服务](https://sealos.run/aiproxy/?k=fastgpt-github/) - [AI Proxy:国内模型聚合服务](https://sealos.run/aiproxy/?k=fastgpt-github/)
- [SiliconCloud (硅基流动) —— 开源模型在线体验平台](https://cloud.siliconflow.cn/i/TR9Ym0c4) - [SiliconCloud (硅基流动) —— 开源模型在线体验平台](https://cloud.siliconflow.cn/i/TR9Ym0c4)
- [PPIO 派欧云:一键调用高性价比的开源模型 API 和 GPU 容器](https://ppinfra.com/user/register?invited_by=VITYVU&utm_source=github_fastgpt)
<a href="#readme"> <a href="#readme">
<img src="https://img.shields.io/badge/-返回顶部-7d09f1.svg" alt="#" align="right"> <img src="https://img.shields.io/badge/-返回顶部-7d09f1.svg" alt="#" align="right">
...@@ -151,10 +152,12 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b ...@@ -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) - [接入企微](https://www.bilibili.com/video/BV1Tp4y1n72T/?spm_id_from=333.999.0.0)
<a href="#readme"> <a href="#readme">
<img src="https://img.shields.io/badge/-返回顶部-7d09f1.svg" alt="#" align="right"> <div align="center">
<img src="https://img.shields.io/badge/-返回顶部-7d09f1.svg" alt="#" width="50">
</div>
</a> </a>
## 🤝 参与贡献 ## 🤝 贡献者
我们非常欢迎各种形式的贡献。如果你对贡献代码感兴趣,可以查看我们的 GitHub [Issues](https://github.com/labring/FastGPT/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc),大展身手,向我们展示你的奇思妙想。 我们非常欢迎各种形式的贡献。如果你对贡献代码感兴趣,可以查看我们的 GitHub [Issues](https://github.com/labring/FastGPT/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc),大展身手,向我们展示你的奇思妙想。
......
...@@ -216,8 +216,19 @@ services: ...@@ -216,8 +216,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -259,6 +270,17 @@ services: ...@@ -259,6 +270,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -193,8 +193,19 @@ services: ...@@ -193,8 +193,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -236,6 +247,17 @@ services: ...@@ -236,6 +247,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -174,8 +174,19 @@ services: ...@@ -174,8 +174,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -217,6 +228,17 @@ services: ...@@ -217,6 +228,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -180,8 +180,19 @@ services: ...@@ -180,8 +180,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -223,6 +234,17 @@ services: ...@@ -223,6 +234,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -157,8 +157,19 @@ services: ...@@ -157,8 +157,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -200,6 +211,17 @@ services: ...@@ -200,6 +211,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -216,8 +216,19 @@ services: ...@@ -216,8 +216,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -259,6 +270,17 @@ services: ...@@ -259,6 +270,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -193,8 +193,19 @@ services: ...@@ -193,8 +193,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -236,6 +247,17 @@ services: ...@@ -236,6 +247,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -174,8 +174,19 @@ services: ...@@ -174,8 +174,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -217,6 +228,17 @@ services: ...@@ -217,6 +228,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -180,8 +180,19 @@ services: ...@@ -180,8 +180,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -223,6 +234,17 @@ services: ...@@ -223,6 +234,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -157,8 +157,19 @@ services: ...@@ -157,8 +157,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -200,6 +211,17 @@ services: ...@@ -200,6 +211,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -156,8 +156,19 @@ ${{vec.db}} ...@@ -156,8 +156,19 @@ ${{vec.db}}
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -199,6 +210,17 @@ ${{vec.db}} ...@@ -199,6 +210,17 @@ ${{vec.db}}
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -72,3 +72,7 @@ import FastGPTLink from '@/components/docs/linkFastGPT'; #FastGPT跳转链接组 ...@@ -72,3 +72,7 @@ import FastGPTLink from '@/components/docs/linkFastGPT'; #FastGPT跳转链接组
### 增加顶层导航栏 ### 增加顶层导航栏
1.`FastGPT/document/app/[lang]/docs/layout.tsx` 文件中新增导航。 1.`FastGPT/document/app/[lang]/docs/layout.tsx` 文件中新增导航。
### 重定向
`FastGPT/document/components/docs/not-found.tsx`文件中新增重定向规则。
\ No newline at end of file
...@@ -63,9 +63,9 @@ ...@@ -63,9 +63,9 @@
pre, pre,
code { code {
border-radius: 16px; border-radius: 16px;
background: #F5F6F7; background: #f5f6f7;
font-family: Alef; font-family: Alef;
font-size: 1.0rem; font-size: 1rem;
font-weight: 400; font-weight: 400;
line-height: 16px; line-height: 16px;
letter-spacing: 0.48px; letter-spacing: 0.48px;
...@@ -87,7 +87,7 @@ div[role='tabpanel'] figure:has(+ p) pre code { ...@@ -87,7 +87,7 @@ div[role='tabpanel'] figure:has(+ p) pre code {
} }
pre { pre {
padding: 24px 0 24px 24px ; padding: 24px 30px 24px 24px;
} }
pre code { pre code {
...@@ -118,7 +118,7 @@ code span { ...@@ -118,7 +118,7 @@ code span {
margin: 0 0.2em; margin: 0 0.2em;
color: #272727; color: #272727;
background: #f5f6f7; background: #f5f6f7;
font-family: "PingFang SC"; font-family: 'PingFang SC';
font-size: 14px; font-size: 14px;
font-style: normal; font-style: normal;
font-weight: 500; font-weight: 500;
...@@ -129,22 +129,22 @@ code span { ...@@ -129,22 +129,22 @@ code span {
} }
.dark :not(pre) > code { .dark :not(pre) > code {
color: #E6E6E6 !important; color: #e6e6e6 !important;
background: #282828 !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-radius: 0 !important;
border: solid 1.5px #e5e5e5; border: solid 1.5px #e5e5e5;
border-radius: 0.75rem !important; 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; border: solid 1.5px #535353;
} }
.dark div[role="tablist"] { .dark div[role='tablist'] {
background-color: #1E1E1E; background-color: #1e1e1e;
} }
/* 代码块下方的滚动条样式 */ /* 代码块下方的滚动条样式 */
...@@ -153,7 +153,7 @@ div.bg-fd-secondary:has(pre) { ...@@ -153,7 +153,7 @@ div.bg-fd-secondary:has(pre) {
} }
.dark 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 { div.bg-fd-secondary:has(pre)::-webkit-scrollbar-track {
...@@ -265,8 +265,8 @@ div[data-state='open'].fixed.inset-0.z-50 { ...@@ -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='Copy Text']),
div[class*="bg-fd-card"]:has(button[aria-label='Copied Text']) { div[class*='bg-fd-card']:has(button[aria-label='Copied Text']) {
right: 26px; right: 26px;
top: 24px; top: 24px;
display: flex; display: flex;
...@@ -419,13 +419,13 @@ div[data-rmiz-modal-overlay='visible'] { ...@@ -419,13 +419,13 @@ div[data-rmiz-modal-overlay='visible'] {
--color-fd-background: #000000; --color-fd-background: #000000;
--color-fd-foreground: hsl(220, 60%, 94.5%); --color-fd-foreground: hsl(220, 60%, 94.5%);
--color-fd-muted: hsl(220, 50%, 10%); --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: hsl(220, 50%, 10%);
--color-fd-popover-foreground: hsl(220, 60%, 94.5%); --color-fd-popover-foreground: hsl(220, 60%, 94.5%);
--color-fd-card: hsla(220, 56%, 15%, 0.4); --color-fd-card: hsla(220, 56%, 15%, 0.4);
--color-fd-card-foreground: hsl(220, 60%, 94.5%); --color-fd-card-foreground: hsl(220, 60%, 94.5%);
--color-fd-border: hsla(220, 50%, 50%, 0.2); --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-primary-foreground: hsl(0, 0%, 9%);
--color-fd-secondary: hsl(220, 50%, 20%); --color-fd-secondary: hsl(220, 50%, 20%);
--color-fd-secondary-foreground: hsl(220, 80%, 90%); --color-fd-secondary-foreground: hsl(220, 80%, 90%);
...@@ -443,36 +443,35 @@ button[data-search-full] { ...@@ -443,36 +443,35 @@ button[data-search-full] {
} }
.dark\:text-blue-400:where(.dark, .dark *) { .dark\:text-blue-400:where(.dark, .dark *) {
color: #C2D3FF; color: #c2d3ff;
background-color: #434548; background-color: #434548;
} }
.dark div[role='tabpanel'].bg-fd-background {
.dark div[role="tabpanel"].bg-fd-background { background-color: #1e1e1e;
background-color: #1E1E1E;
} }
div[role="tabpanel"].bg-fd-background { div[role='tabpanel'].bg-fd-background {
background-color: #F7F7F8; background-color: #f7f7f8;
} }
div[role="tabpanel"].bg-fd-background > div > ul { div[role='tabpanel'].bg-fd-background > div > ul {
margin: 0; margin: 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 10px; gap: 10px;
} }
.dark div[role="tabpanel"].bg-fd-background > div > ul { .dark div[role='tabpanel'].bg-fd-background > div > ul {
margin: 0; 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; margin: 0;
} }
button[role="tab"] { button[role='tab'] {
padding-top: 16px; padding-top: 16px;
padding-bottom: 16px; padding-bottom: 16px;
} }
...@@ -20,7 +20,8 @@ const prefixMap: Record<string, string> = { ...@@ -20,7 +20,8 @@ const prefixMap: Record<string, string> = {
'/docs/FAQ': '/docs/faq', '/docs/FAQ': '/docs/faq',
'/docs/guide': '/docs/introduction/guide', '/docs/guide': '/docs/introduction/guide',
'/docs/shopping_cart': '/docs/introduction/shopping_cart', '/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'; const fallbackRedirect = '/docs/introduction';
......
--- ---
title: Docker Compose 快速部署 title: Docker 快速部署
description: 使用 Docker Compose 快速部署 FastGPT description: 使用 Docker Compose 快速部署 FastGPT
--- ---
...@@ -9,8 +9,6 @@ import { Alert } from '@/components/docs/Alert'; ...@@ -9,8 +9,6 @@ import { Alert } from '@/components/docs/Alert';
1. 基础的网络知识:端口,防火墙…… 1. 基础的网络知识:端口,防火墙……
2. Docker 和 Docker Compose 基础知识 2. Docker 和 Docker Compose 基础知识
3. 大模型相关接口和参数
4. RAG 相关知识:向量模型,向量数据库,向量检索
## 部署架构图 ## 部署架构图
...@@ -119,149 +117,68 @@ brew install orbstack ...@@ -119,149 +117,68 @@ brew install orbstack
## 开始部署 ## 开始部署
### 1. 获取 `docker-compose.yml` 和 `config.json` 配置文件 ### 1. 获取配置文件
#### 方法一:使用脚本部署 #### 方法一:使用交互式脚本部署
<Tabs items={['PgVector版本','Oceanbase版本','Milvus版本','Zilliz版本','SeekDB版本']}> 需要在 Linux/MacOS/Windows WSL 环境下执行,引导用户选择部署环境、向量库版本,IP地址等。
<Tab value="PgVector版本">
国内镜像(阿里云)
```bash ```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 环境下执行
</Tab>
<Tab value="Oceanbase版本">
国内镜像(阿里云)
```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 环境下执行
</Tab>
<Tab value="Milvus版本">
国内镜像(阿里云)
```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 环境下执行
</Tab>
<Tab value="Zilliz版本">
国内镜像(阿里云)
```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-版本获取账号和密钥)
</Tab>
<Tab value="SeekDB版本">
国内镜像(阿里云)
```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 环境下执行
<Alert icon="🤖" context="success">
SeekDB 使用 MySQL 协议,兼容 OceanBase 的所有特性:
- 端口:3306(默认)
- 连接字符串格式:`mysql://root%40tenantname:password@host:3306/database`
- 环境变量:`SEEKDB_URL`
</Alert>
</Tab>
</Tabs>
#### 方法二:手动下载部署 #### 方法二:手动下载部署
如果部署环境为非 *nix 环境或无法访问外网,需要手动下载 `docker-compose.yml` 进行部署 如果部署环境为非 *nix 环境或无法访问外网,需要手动下载 `docker-compose.yml` 进行部署
选择并下载您的 `docker-compose.yml` 文件 1. 下载 `docker-compose.yml` 文件:
- Pgvector
<details>
<summary>点击展开查看不同数据库的 docker-compose 配置文件下载地址</summary>
- **Pgvector**
- 中国大陆地区镜像源(阿里云):[docker-compose.pg.yml](https://doc.fastgpt.cn/deploy/docker/cn/docker-compose.pg.yml) - 中国大陆地区镜像源(阿里云):[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) - 全球镜像源(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) - 中国大陆地区镜像源(阿里云):[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) - 全球镜像源(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) - 中国大陆地区镜像源(阿里云):[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) - 全球镜像源(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) - 中国大陆地区镜像源(阿里云):[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) - 全球镜像源(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) - 中国大陆地区镜像源(阿里云):[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) - 全球镜像源(dockerhub, ghcr):[docker-compose.seekdb.yml](https://doc.fastgpt.cn/deploy/docker/global/docker-compose.seekdb.yml)
下载 config.json 文件 2. 下载 `config.json` 文件:
- [config.json](https://doc.fastgpt.cn/deploy/config/config.json) - [config.json](https://doc.fastgpt.cn/deploy/config/config.json)
<Alert icon="🤖" context="success"> </details>
所有 `docker-compose.yml` 配置文件中 `MongoDB` 为 5.x,需要用到AVX指令集,部分 CPU 不支持,需手动更改其镜像版本为 4.4.24\*\*(需要自己在docker hub下载,阿里云镜像没做备份)
</Alert>
### 2. 开放外网端口/配置域名 下载 config.json 文件
- [config.json](https://doc.fastgpt.cn/deploy/config/config.json)
以下两个端口必须被访问到: ### 2. 修改环境变量
1. 指向 3000 端口(FastGPT 主服务) 1. 按照您的需求自行修改环境变量,建议在生产环境修改账号密码等。
2. 指向 9000 端口(S3 服务) 2. 对于 Zilliz 版本 还需要获取密钥,参考 [部署 Zilliz 版本获取账号和密钥](#部署-zilliz-版本获取账号和密钥)
### 3. 修改环境变量
1. 修改`STORAGE_EXTERNAL_ENDPOINT`变量,改成客户端和FastGPT 服务均可访问的地址。 ### 3. 修改 config.json 配置文件
**重要:** 修改`config.json`文件中的`mcpServerProxyEndpoint`值,设置成`mcp server`的公网可访问地址,yml 文件中默认给出了映射到 3005 端口,如通过 IP 访问,则可能是:`120.172.2.10:3005`。
> 填入的地址不可为`127.0.0.1`或者`localhost`等本地回环地址,可填 Docker 部署时的宿主机本地IP,但是需要把宿主机固定为静态 IP;或者统一为一个固定域名;目的是为了避免对象存储签名 URL 时,签发与上传的 URL 不一致导致的 403 错误。
>
> 具体查看 [对象存储配置及常见问题](/docs/introduction/development/object-storage)
2. 按照您的需求自行修改环境变量,建议在生产环境修改账号密码等。 ### 3. 开放外网端口/配置域名
3. 对于 Zilliz 版本 还需要获取密钥,参考 [部署 Zilliz 版本获取账号和密钥](#部署-zilliz-版本获取账号和密钥)
### 4. 修改 config.json 配置文件 以下端口必须被访问到:
修改`config.json`文件中的`mcpServerProxyEndpoint`值,设置成`mcp server`的公网可访问地址,yml 文件中默认给出了映射到 3005 端口,如通过 IP 访问,则可能是:`120.172.2.10:3005`。 1. 3000 端口(FastGPT 主服务)
2. 9000 端口(S3 服务)
1. 3005 端口(FastGPT SSE MCP server 服务)
### 5. 启动容器 ### 6. 启动容器
在 docker-compose.yml 同级目录下执行。请确保`docker-compose`版本最好在2.17以上,否则可能无法执行自动化命令。 在 docker-compose.yml 同级目录下执行。请确保`docker-compose`版本最好在2.17以上,否则可能无法执行自动化命令。
...@@ -270,19 +187,19 @@ bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=global --ve ...@@ -270,19 +187,19 @@ bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=global --ve
docker-compose up -d docker-compose up -d
``` ```
### 6. 访问 FastGPT ### 7. 访问 FastGPT
可通过第二步开放的端口/域名访问 FastGPT。 可通过第二步开放的端口/域名访问 FastGPT。
登录用户名为 `root`,密码为`docker-compose.yml`环境变量里设置的 `DEFAULT_ROOT_PSW`。 登录用户名为 `root`,密码为`docker-compose.yml`环境变量里设置的 `DEFAULT_ROOT_PSW`。
每次重启容器,都会自动初始化 root 用户,密码为 `1234`(与环境变量中的`DEFAULT_ROOT_PSW`一致)。 每次重启容器,都会自动初始化 root 用户,密码为 `1234`(与环境变量中的`DEFAULT_ROOT_PSW`一致)。
### 7. 配置模型 ### 8. 配置模型
- 首次登录FastGPT后,系统会提示未配置`语言模型`和`索引模型`,并自动跳转模型配置页面。系统必须至少有这两类模型才能正常使用。 - 首次登录FastGPT后,系统会提示未配置`语言模型`和`索引模型`,并自动跳转模型配置页面。系统必须至少有这两类模型才能正常使用。
- 如果系统未正常跳转,可以在`账号-模型提供商`页面,进行模型配置。[点击查看相关教程](/docs/introduction/development/modelConfig/ai-proxy) - 如果系统未正常跳转,可以在`账号-模型提供商`页面,进行模型配置。[点击查看相关教程](/docs/introduction/development/modelConfig/ai-proxy)
- 目前已知可能问题:首次进入系统后,整个浏览器 tab 无法响应。此时需要删除该tab,重新打开一次即可。 - 目前已知可能问题:首次进入系统后,整个浏览器 tab 无法响应。此时需要删除该tab,重新打开一次即可。
### 8. 安装系统插件 ### 9. 安装系统插件
从 V4.14.0 版本开始,fastgpt-plugin 镜像仅提供运行环境,不再预装系统插件,所有 FastGPT 系统需手动安装系统插件。 从 V4.14.0 版本开始,fastgpt-plugin 镜像仅提供运行环境,不再预装系统插件,所有 FastGPT 系统需手动安装系统插件。
...@@ -302,6 +219,16 @@ docker-compose up -d ...@@ -302,6 +219,16 @@ docker-compose up -d
| 0.5.x | >= 4.14.6 | | 0.5.x | >= 4.14.6 |
| < 0.5.0 | < 4.14.5 | | < 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)
### 登录系统后,浏览器无法响应 ### 登录系统后,浏览器无法响应
......
--- ---
title: 快速开始本地开发 title: 开始本地开发
description: 对 FastGPT 进行开发调试 description: 对 FastGPT 进行开发调试
--- ---
......
...@@ -5,11 +5,11 @@ ...@@ -5,11 +5,11 @@
"pages": [ "pages": [
"quick-start", "quick-start",
"sealos", "sealos",
"intro",
"docker", "docker",
"faq",
"intro",
"configuration", "configuration",
"object-storage", "object-storage",
"faq",
"signoz", "signoz",
"modelConfig", "modelConfig",
"custom-models", "custom-models",
......
---
title: 快速了解 FastGPT
description: FastGPT 的能力与优势
---
import { Alert } from '@/components/docs/Alert';
FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,将智能对话与可视化编排完美结合,让 AI 应用开发变得简单自然。无论您是开发者还是业务人员,都能轻松打造专属的 AI 应用。
<Alert icon="🤖" context="success">
快速开始体验
- 海外版:[https://fastgpt.io](https://fastgpt.io)
- 国内版:[https://fastgpt.cn](https://fastgpt.cn)
</Alert>
| | |
| --------------------- | --------------------------------- |
| ![](/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)
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
"cloud", "cloud",
"commercial", "commercial",
"development", "development",
"openapi",
"---功能介绍---", "---功能介绍---",
"...guide" "...guide",
"openapi"
], ],
"order": 1 "order": 1
} }
...@@ -148,7 +148,7 @@ curl --location --request POST '{{host}}/shareAuth/start' \ ...@@ -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消耗总数) 重点关注:`totalPoints`(总消耗AI积分),`token`(Token消耗总数)
......
...@@ -3,7 +3,6 @@ title: FastGPT Toc ...@@ -3,7 +3,6 @@ title: FastGPT Toc
description: 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/open-source](/en/docs/protocol/open-source)
- [/en/docs/protocol/privacy](/en/docs/protocol/privacy) - [/en/docs/protocol/privacy](/en/docs/protocol/privacy)
- [/en/docs/protocol/terms](/en/docs/protocol/terms) - [/en/docs/protocol/terms](/en/docs/protocol/terms)
...@@ -30,7 +30,7 @@ SIGNOZ_STORE_LEVEL= ...@@ -30,7 +30,7 @@ SIGNOZ_STORE_LEVEL=
# 新增以下 6 个变量 # 新增以下 6 个变量
LOG_ENABLE_CONSOLE=true # 是否开启控制台打印 LOG_ENABLE_CONSOLE=true # 是否开启控制台打印
LOG_CONSOLE_LEVEL=debug # 控制台打印最低日志等级 LOG_CONSOLE_LEVEL=debug # 控制台打印最低日志等级
LOG_ENABLE_OTEL=true # 是否开启 OTEL 日志收集 LOG_ENABLE_OTEL=false # 是否开启 OTEL 日志收集
LOG_OTEL_LEVEL=info # OTEL 日志收集的最低日志等级 LOG_OTEL_LEVEL=info # OTEL 日志收集的最低日志等级
LOG_OTEL_SERVICE_NAME=fastgpt-client # 传递给 OTLP 收集器的服务名称 LOG_OTEL_SERVICE_NAME=fastgpt-client # 传递给 OTLP 收集器的服务名称
LOG_OTEL_URL=http://localhost:4318/v1/logs # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了 LOG_OTEL_URL=http://localhost:4318/v1/logs # 你的 OTLP 收集器的地址,不要把 /v1/logs 遗漏了
......
...@@ -23,7 +23,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv464' \ ...@@ -23,7 +23,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv464' \
## V4.6.4 功能介绍 ## V4.6.4 功能介绍
1. 重写 - 分享链接身份逻辑,采用 localID 记录用户的ID。 1. 重写 - 分享链接身份逻辑,采用 localID 记录用户的ID。
2. 商业版新增 - 分享链接 SSO 方案,通过`身份鉴权`地址,仅需`3个接口`即可完全接入已有用户系统。具体参考[分享链接身份鉴权](/docs/introduction/development/openapi/share/) 2. 商业版新增 - 分享链接 SSO 方案,通过`身份鉴权`地址,仅需`3个接口`即可完全接入已有用户系统。具体参考[分享链接身份鉴权](/docs/introduction/openapi/share/)
3. 新增 - 分享链接更多嵌入方式提示,更多DIY方式。 3. 新增 - 分享链接更多嵌入方式提示,更多DIY方式。
4. 优化 - 历史记录模块。弃用旧的历史记录模块,直接在对应地方填写数值即可。 4. 优化 - 历史记录模块。弃用旧的历史记录模块,直接在对应地方填写数值即可。
5. 调整 - 知识库搜索模块 topk 逻辑,采用 MaxToken 计算,兼容不同长度的文本块 5. 调整 - 知识库搜索模块 topk 逻辑,采用 MaxToken 计算,兼容不同长度的文本块
......
...@@ -24,7 +24,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv467' \ ...@@ -24,7 +24,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv467' \
1. 修改了知识库UI及新的导入交互方式。 1. 修改了知识库UI及新的导入交互方式。
2. 优化知识库和对话的数据索引。 2. 优化知识库和对话的数据索引。
3. 知识库 openAPI,支持通过 [API 操作知识库](/docs/introduction/development/openapi/dataset)。 3. 知识库 openAPI,支持通过 [API 操作知识库](/docs/introduction/openapi/dataset)。
4. 新增 - 输入框变量提示。输入 `{` 号后将会获得可用变量提示。根据社区针对高级编排的反馈,我们计划于 2 月份的版本中,优化变量内容,支持模块的局部变量以及更多全局变量写入。 4. 新增 - 输入框变量提示。输入 `{` 号后将会获得可用变量提示。根据社区针对高级编排的反馈,我们计划于 2 月份的版本中,优化变量内容,支持模块的局部变量以及更多全局变量写入。
5. 优化 - 切换团队后会保存记录,下次登录时优先登录该团队。 5. 优化 - 切换团队后会保存记录,下次登录时优先登录该团队。
6. 修复 - API 对话时,chatId 冲突问题。 6. 修复 - API 对话时,chatId 冲突问题。
......
...@@ -27,7 +27,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv469' \ ...@@ -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 更新说明 ## V4.6.9 更新说明
......
...@@ -163,7 +163,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv490' \ ...@@ -163,7 +163,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv490' \
1. 弃用 - 之前私有化部署的自定义文件解析方案,请同步更新到最新的配置方案。[点击查看 PDF 增强解析配置](/docs/introduction/development/configuration/#使用-doc2x-解析-pdf-文件) 1. 弃用 - 之前私有化部署的自定义文件解析方案,请同步更新到最新的配置方案。[点击查看 PDF 增强解析配置](/docs/introduction/development/configuration/#使用-doc2x-解析-pdf-文件)
2. 弃用 - 弃用旧版本地文件上传 API:/api/core/dataset/collection/create/file(以前仅商业版可用的 API,该接口已放切换成:/api/core/dataset/collection/create/localFile) 2. 弃用 - 弃用旧版本地文件上传 API:/api/core/dataset/collection/create/file(以前仅商业版可用的 API,该接口已放切换成:/api/core/dataset/collection/create/localFile)
3. 停止维护,即将弃用 - 外部文件库相关 API,可通过 API 文件库替代。 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)
## 🚀 新增内容 ## 🚀 新增内容
......
...@@ -33,7 +33,7 @@ description: FastGPT V4.9.2 更新说明 ...@@ -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) 文档。
## 🚀 新增内容 ## 🚀 新增内容
......
...@@ -5,7 +5,7 @@ description: 通过 API 访问 FastGPT 应用 ...@@ -5,7 +5,7 @@ description: 通过 API 访问 FastGPT 应用
import { Alert } from '@/components/docs/Alert'; import { Alert } from '@/components/docs/Alert';
在 FastGPT 中,你可以为每一个应用创建多个 API 密钥,用于访问应用的 API 接口。每个密钥仅能访问一个应用。完整的接口可以[查看应用对话接口](/docs/introduction/development/openapi/intro)。 在 FastGPT 中,你可以为每一个应用创建多个 API 密钥,用于访问应用的 API 接口。每个密钥仅能访问一个应用。完整的接口可以[查看应用对话接口](/docs/introduction/openapi/intro)。
## 获取 API 密钥 ## 获取 API 密钥
......
...@@ -20,7 +20,7 @@ ...@@ -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/custom-models/xinference.mdx": "2025-08-05T23:20:39+08:00",
"document/content/docs/introduction/development/design/dataset.mdx": "2025-07-23T21:35:03+08:00", "document/content/docs/introduction/development/design/dataset.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/design/design_plugin.mdx": "2025-11-06T14:47:55+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/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/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", "document/content/docs/introduction/development/migration/docker_db.mdx": "2025-07-23T21:35:03+08:00",
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
"document/content/docs/introduction/development/proxy/nginx.mdx": "2025-07-23T21:35:03+08:00", "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/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/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/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/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", "document/content/docs/introduction/guide/admin/sso.mdx": "2026-01-05T20:53:39+08:00",
...@@ -88,14 +88,13 @@ ...@@ -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/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/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/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/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/app.mdx": "2026-02-12T16:37:50+08:00",
"document/content/docs/introduction/openapi/chat.mdx": "2026-02-11T13:31:15+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-11T13:31:15+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-11T13:31:15+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-11T13:31:15+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-11T13:31:15+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/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.en.mdx": "2025-08-05T23:20:39+08:00",
"document/content/docs/protocol/open-source.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 @@ ...@@ -103,8 +102,7 @@
"document/content/docs/protocol/privacy.mdx": "2025-12-15T23:36:54+08:00", "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.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/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-12T16:37:50+08:00",
"document/content/docs/toc.mdx": "2026-02-11T13:31:15+08:00",
"document/content/docs/upgrading/4-10/4100.mdx": "2025-08-02T19:38:37+08:00", "document/content/docs/upgrading/4-10/4100.mdx": "2025-08-02T19:38:37+08:00",
"document/content/docs/upgrading/4-10/4101.mdx": "2025-09-08T20:07:20+08:00", "document/content/docs/upgrading/4-10/4101.mdx": "2025-09-08T20:07:20+08:00",
"document/content/docs/upgrading/4-11/4110.mdx": "2025-08-05T23:20:39+08:00", "document/content/docs/upgrading/4-11/4110.mdx": "2025-08-05T23:20:39+08:00",
...@@ -124,8 +122,8 @@ ...@@ -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/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/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/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/4146.mdx": "2026-02-12T16:37:50+08:00",
"document/content/docs/upgrading/4-14/4147.mdx": "2026-02-12T11:32:33+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/40.mdx": "2025-08-02T19:38:37+08:00",
"document/content/docs/upgrading/4-8/41.mdx": "2025-08-02T19:38:37+08:00", "document/content/docs/upgrading/4-8/41.mdx": "2025-08-02T19:38:37+08:00",
"document/content/docs/upgrading/4-8/42.mdx": "2025-08-02T19:38:37+08:00", "document/content/docs/upgrading/4-8/42.mdx": "2025-08-02T19:38:37+08:00",
......
...@@ -216,8 +216,19 @@ services: ...@@ -216,8 +216,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -259,6 +270,17 @@ services: ...@@ -259,6 +270,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -193,8 +193,19 @@ services: ...@@ -193,8 +193,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -236,6 +247,17 @@ services: ...@@ -236,6 +247,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -174,8 +174,19 @@ services: ...@@ -174,8 +174,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -217,6 +228,17 @@ services: ...@@ -217,6 +228,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -180,8 +180,19 @@ services: ...@@ -180,8 +180,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -223,6 +234,17 @@ services: ...@@ -223,6 +234,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -157,8 +157,19 @@ services: ...@@ -157,8 +157,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -200,6 +211,17 @@ services: ...@@ -200,6 +211,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -216,8 +216,19 @@ services: ...@@ -216,8 +216,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -259,6 +270,17 @@ services: ...@@ -259,6 +270,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -193,8 +193,19 @@ services: ...@@ -193,8 +193,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -236,6 +247,17 @@ services: ...@@ -236,6 +247,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -174,8 +174,19 @@ services: ...@@ -174,8 +174,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -217,6 +228,17 @@ services: ...@@ -217,6 +228,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -180,8 +180,19 @@ services: ...@@ -180,8 +180,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -223,6 +234,17 @@ services: ...@@ -223,6 +234,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
...@@ -157,8 +157,19 @@ services: ...@@ -157,8 +157,19 @@ services:
AIPROXY_API_TOKEN: *x-aiproxy-token AIPROXY_API_TOKEN: *x-aiproxy-token
# 日志等级: debug, info, warn, error # 日志等级: 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 WORKFLOW_MAX_RUN_TIMES: 1000
# 批量执行节点,最大输入长度 # 批量执行节点,最大输入长度
...@@ -200,6 +211,17 @@ services: ...@@ -200,6 +211,17 @@ services:
SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10 SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
# 最大 API 请求体大小 # 最大 API 请求体大小
MAX_API_SIZE: 10 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: depends_on:
fastgpt-minio: fastgpt-minio:
condition: service_healthy condition: service_healthy
......
#!/usr/bin/env bash #!/usr/bin/env bash
#
# param: # ========== Radio 选择器 ==========
# --region=cn 中国大陆 # 使用方向键 ↑↓ 选择,回车确认
# --region=global 全球(默认) radio_select() {
# --vector=pg pg 版本(默认) local title="$1"
# --vector=milvus milvus 版本
# --vector=zilliz zilliz 版本
# --vector=oceanbase oceanbase 版本
# 默认参数
REGION="global"
VECTOR="pg"
# 解析参数
for arg in "$@"; do
case $arg in
--region=*)
REGION="${arg#*=}"
shift
;;
--vector=*)
VECTOR="${arg#*=}"
shift shift
local options=("$@")
local selected=0
local count=${#options[@]}
echo ""
echo "$title"
# 绘制选项
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
# 隐藏光标
tput civis 2>/dev/null
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 esac
done
# 光标上移并重绘
# 检查参数合法性 printf "\033[%dA" "$count"
VALID_VECTOR=("pg" "milvus" "zilliz" "oceanbase") for i in "${!options[@]}"; do
VECTOR_VALID=false printf "\033[K"
for v in "${VALID_VECTOR[@]}"; do if [ $i -eq $selected ]; then
if [[ "$VECTOR" == "$v" ]]; then printf " \033[36m●\033[0m %s\n" "${options[$i]}"
VECTOR_VALID=true else
break printf " ○ %s\n" "${options[$i]}"
fi fi
done done
done
if ! $VECTOR_VALID; then # 恢复光标
echo "Error: Invalid --vector parameter: $VECTOR" tput cnorm 2>/dev/null
echo "Available options: pg, milvus, zilliz, oceanbase" RADIO_RESULT=$selected
exit 1 }
fi
if [[ "$REGION" != "global" && "$REGION" != "cn" ]]; then # 确保退出时恢复光标
echo "Error: Invalid --region parameter: $REGION" trap 'tput cnorm 2>/dev/null; exit' INT TERM
echo "Available options: global, cn"
exit 1
fi
# ========== 1. 选择镜像源 ==========
radio_select "请选择镜像源 (↑↓ 选择, 回车确认):" "阿里云 (中国大陆)" "GitHub (全球)"
case $RADIO_RESULT in
1) REGION="global" ;;
*) REGION="cn" ;;
esac
echo 'Vector Database:' $VECTOR # ========== 2. 选择向量数据库 ==========
echo 'Docker Image Registry: ' $REGION radio_select "请选择向量数据库 (↑↓ 选择, 回车确认):" "PostgreSQL + pgvector" "Milvus" "Zilliz" "OceanBase" "SeekDB"
read -p "Confirm? (y/n)" confirm case $RADIO_RESULT in
if [ "$confirm" != "y" ]; then 1) VECTOR="milvus" ;;
echo "Canceled" 2) VECTOR="zilliz" ;;
exit 1 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 fi
echo 'Downloading Docker Compose YAML file' # 地址选择函数
# get the yml file, url: # 参数: $1=标题, $2=端口
# region=cn https://doc.fastgpt.cn/deploy/docker/cn/docker-compose.[vector].yml # 设置 SELECTED_ADDR 和 SELECTED_CUSTOM (true=手动输入, false=列表选择)
# region=global https://doc.fastgpt.io/deploy/docker/global/docker-compose.[vector].yml 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+=("其他 (手动输入)")
# 构建下载链接 radio_select "$title" "${opts[@]}"
if [ "$REGION" == "cn" ]; then if [ $RADIO_RESULT -eq ${#IP_LIST[@]} ]; then
YML_URL="https://doc.fastgpt.cn/deploy/docker/cn/docker-compose.${VECTOR}.yml" echo ""
read -p "请输入完整地址 (如 http://domain:port): " SELECTED_ADDR
SELECTED_CUSTOM=true
else
SELECTED_ADDR="${IP_LIST[$RADIO_RESULT]}"
fi
else
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 else
YML_URL="https://doc.fastgpt.io/deploy/docker/global/docker-compose.${VECTOR}.yml" S3_DISPLAY="未设置"
fi fi
# 下载 YAML 文件 if [ -n "$MCP_ADDR" ]; then
curl -O "$YML_URL" if $MCP_CUSTOM; then
MCP_DISPLAY="$MCP_ADDR"
else
MCP_DISPLAY="http://$MCP_ADDR:3005"
fi
else
MCP_DISPLAY="未设置"
fi
if [ $? -ne 0 ]; then echo ""
echo "Error: Failed to download YAML file from $YML_URL" 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 exit 1
fi fi
echo "Downloaded docker-compose.${VECTOR}.yml from $YML_URL" # ========== 下载文件 ==========
echo ""
echo "正在下载配置文件..."
# download config.json file # 构建下载链接(处理 global 下 zilliz 文件名差异)
VECTOR_FILE="$VECTOR"
if [ "$REGION" == "global" ] && [ "$VECTOR" == "zilliz" ]; then
VECTOR_FILE="ziliiz"
fi
if [ "$REGION" == "cn" ]; then if [ "$REGION" == "cn" ]; then
CONFIG="https://doc.fastgpt.cn/deploy/config/config.json" BASE_URL="https://doc.fastgpt.cn/deploy"
YML_URL="${BASE_URL}/docker/cn/docker-compose.${VECTOR_FILE}.yml"
else else
CONFIG="https://doc.fastgpt.io/deploy/config/config.json" BASE_URL="https://doc.fastgpt.io/deploy"
YML_URL="${BASE_URL}/docker/global/docker-compose.${VECTOR_FILE}.yml"
fi fi
# 下载 config.json 文件 CONFIG_URL="${BASE_URL}/config/config.json"
curl -O "$CONFIG"
# 下载 docker-compose YAML
curl -fsSL -O "$YML_URL"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Error: Failed to download config.json file from $CONFIG" echo "错误: 下载 YAML 文件失败: $YML_URL"
exit 1 exit 1
fi fi
mv "docker-compose.${VECTOR_FILE}.yml" docker-compose.yml
echo "已下载 docker-compose.yml"
echo "Downloaded config.json from $CONFIG" # 下载 config.json
curl -fsSL -O "$CONFIG_URL"
mv docker-compose.${VECTOR}.yml docker-compose.yml if [ $? -ne 0 ]; then
echo "错误: 下载 config.json 失败: $CONFIG_URL"
# 自动处理 S3 外部地址 exit 1
echo "" fi
echo "Detecting available IP addresses for S3 external endpoint..." echo "已下载 config.json"
# 使用 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 ""
read -p "Select IP address (1-${#IP_LIST[@]}, 0 for custom, Enter for #1): " ip_choice # ========== 替换 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
if [ -z "$ip_choice" ]; then sed -i '' "s/192\.168\.0\.2/$S3_HOST/g" docker-compose.yml
ip_choice=1 else
sed -i "s/192\.168\.0\.2/$S3_HOST/g" docker-compose.yml
fi fi
if [ "$ip_choice" == "0" ]; then if [ $? -eq 0 ]; then
read -p "Enter your custom IP address or domain: " LOCAL_IP echo "已更新 S3 访问地址为: $S3_DISPLAY"
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 else
echo "Invalid selection, using first IP: ${IP_LIST[0]}" echo "警告: 替换 S3 地址失败,请手动编辑 docker-compose.yml 中的 192.168.0.2"
LOCAL_IP="${IP_LIST[0]}"
fi fi
else else
echo "Could not detect any IP address" echo "警告: 未设置 S3 地址,请手动编辑 docker-compose.yml 中的 192.168.0.2"
read -p "Enter your IP address or domain for S3 external endpoint: " LOCAL_IP
fi fi
# 替换 docker-compose.yml 中 192.168.0.2 为选定的地址 # ========== 替换 MCP 访问地址 ==========
if [ -n "$LOCAL_IP" ]; then if [ -n "$MCP_ADDR" ]; then
echo "Replacing 192.168.0.2 with $LOCAL_IP in docker-compose.yml..." if $MCP_CUSTOM; then
MCP_ENDPOINT="$MCP_ADDR"
else
MCP_ENDPOINT="http://$MCP_ADDR:3005"
fi
# 根据操作系统选择 sed 命令
if [[ "$OSTYPE" == "darwin"* ]]; then if [[ "$OSTYPE" == "darwin"* ]]; then
# macOS sed -i '' "s|\"mcpServerProxyEndpoint\": \"\"|\"mcpServerProxyEndpoint\": \"$MCP_ENDPOINT\"|g" config.json
sed -i '' "s/192\.168\.0\.2/$LOCAL_IP/g" docker-compose.yml
else else
# Linux sed -i "s|\"mcpServerProxyEndpoint\": \"\"|\"mcpServerProxyEndpoint\": \"$MCP_ENDPOINT\"|g" config.json
sed -i "s/192\.168\.0\.2/$LOCAL_IP/g" docker-compose.yml
fi fi
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "Successfully updated S3 external endpoint to: http://$LOCAL_IP:9000" echo "已更新 MCP 访问地址为: $MCP_ENDPOINT"
else else
echo "Warning: Failed to replace IP address. Please manually edit docker-compose.yml" echo "警告: 替换 MCP 地址失败,请手动编辑 config.json 中的 mcpServerProxyEndpoint"
fi fi
else else
echo "Warning: No IP address provided. Please manually edit docker-compose.yml to replace 192.168.0.2" echo "警告: 未设置 MCP 地址,请手动编辑 config.json 中的 mcpServerProxyEndpoint"
fi fi
# ========== 完成 ==========
echo ""
echo "安装完成! 后续操作:"
echo " 1. 编辑配置: vim docker-compose.yml"
echo " 2. 启动服务: docker compose up -d"
echo "" echo ""
echo "Installation success! What's next:" echo "详细文档: https://doc.fastgpt.cn/docs/introduction/development/docker"
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"
...@@ -97,10 +97,7 @@ const ApiKeyTable = ({ tips, appId }: { tips: string; appId?: string }) => { ...@@ -97,10 +97,7 @@ const ApiKeyTable = ({ tips, appId }: { tips: string; appId?: string }) => {
</Box> </Box>
{feConfigs?.docUrl && ( {feConfigs?.docUrl && (
<Link <Link
href={ href={feConfigs.openAPIDocUrl || getDocPath('/docs/introduction/openapi/intro')}
feConfigs.openAPIDocUrl ||
getDocPath('/docs/introduction/development/openapi/intro')
}
target={'_blank'} target={'_blank'}
ml={1} ml={1}
color={'primary.500'} color={'primary.500'}
......
...@@ -397,7 +397,7 @@ function EditLinkModal({ ...@@ -397,7 +397,7 @@ function EditLinkModal({
/> />
</Flex> </Flex>
<Link <Link
href={getDocPath('/docs/introduction/development/openapi/share')} href={getDocPath('/docs/introduction/openapi/share')}
target={'_blank'} target={'_blank'}
fontSize={'xs'} fontSize={'xs'}
color={'myGray.500'} color={'myGray.500'}
......
...@@ -114,7 +114,7 @@ const defaultFeConfigs: FastGPTFeConfigsType = { ...@@ -114,7 +114,7 @@ const defaultFeConfigs: FastGPTFeConfigsType = {
show_emptyChat: true, show_emptyChat: true,
show_git: true, show_git: true,
docUrl: 'https://doc.fastgpt.io', docUrl: 'https://doc.fastgpt.io',
openAPIDocUrl: 'https://doc.fastgpt.io/docs/introduction/development/openapi/intro', openAPIDocUrl: 'https://doc.fastgpt.io/docs/introduction/openapi/intro',
submitPluginRequestUrl: 'https://github.com/labring/fastgpt-plugin/issues', submitPluginRequestUrl: 'https://github.com/labring/fastgpt-plugin/issues',
appTemplateCourse: appTemplateCourse:
'https://fael3z0zfze.feishu.cn/wiki/CX9wwMGyEi5TL6koiLYcg7U0nWb?fromScene=spaceOverview', 'https://fael3z0zfze.feishu.cn/wiki/CX9wwMGyEi5TL6koiLYcg7U0nWb?fromScene=spaceOverview',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment