diff --git a/.github/ISSUE_TEMPLATE/bugs.md b/.github/ISSUE_TEMPLATE/bugs.md index ea6f7c9226..6539d61b38 100644 --- a/.github/ISSUE_TEMPLATE/bugs.md +++ b/.github/ISSUE_TEMPLATE/bugs.md @@ -11,7 +11,7 @@ assignees: '' [//]: # '方框内填 x 表示打钩' - [ ] 我已确认目前没有类似 issue -- [ ] 我已完整查看过项目 README,以及[项目文档](https://doc.fastgpt.io/docs/introduction/) +- [ ] 我已完整查看过项目 README,以及[项目文档](https://doc.fastgpt.io/introduction/) - [ ] 我使用了自己的 key,并确认我的 key 是可正常使用的 - [ ] 我理解并愿意跟进此 issue,协助测试和提供反馈 - [x] 我理解并认可上述内容,并理解项目维护者精力有限,**不遵循规则的 issue 可能会被无视或直接关闭** diff --git a/.prettierrc.js b/.prettierrc.js index 96c2271a7c..c50cbd5d47 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -8,7 +8,7 @@ module.exports = { jsxSingleQuote: false, trailingComma: 'none', bracketSpacing: true, - jsxBracketSameLine: false, + bracketSameLine: false, arrowParens: 'always', rangeStart: 0, rangeEnd: Infinity, diff --git a/README.md b/README.md index c6606a3ada..65f0d3b9f3 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,10 @@ FastGPT 是一个 AI Agent 构建平台,提供开箱即用的数据处理、 cloud - + document - + development @@ -47,7 +47,7 @@ docker compose up -d 完全启动后,可通过`http://localhost:3000`访问 FastGPT,默认账号为`root`,密码为`1234`。 -如果你遇到问题,可以[查看完整 Docker 部署教程](https://doc.fastgpt.io/docs/self-host/deploy/docker) +如果你遇到问题,可以[查看完整 Docker 部署教程](https://doc.fastgpt.io/self-host/deploy/docker) ## 🛸 使用方式 @@ -55,10 +55,10 @@ docker compose up -d 如果你不需要私有化部署,可以直接使用我们提供的云服务版本,地址为:[fastgpt.io](https://fastgpt.io/) - **社区自托管版本** - 可以使用[Docker](https://doc.fastgpt.io/docs/self-host/deploy/docker)快速部署,也可以使用[Sealos Cloud](https://doc.fastgpt.io/docs/self-host/deploy/sealos) 来一键部署FastGPT。 + 可以使用[Docker](https://doc.fastgpt.io/self-host/deploy/docker)快速部署,也可以使用[Sealos Cloud](https://doc.fastgpt.io/self-host/deploy/sealos) 来一键部署FastGPT。 - **商业版** - 如果你需要更完整的功能,或深度的服务支持,可以选择我们的[商业版](https://doc.fastgpt.io/docs/introduction/commercial)。我们除了提供完整的软件外,还提供相应的场景落地辅导,具体可提交[商业咨询](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc) + 如果你需要更完整的功能,或深度的服务支持,可以选择我们的[商业版](https://doc.fastgpt.io/introduction/commercial)。我们除了提供完整的软件外,还提供相应的场景落地辅导,具体可提交[商业咨询](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc) ## 💡 核心功能 @@ -115,8 +115,8 @@ docker compose up -d ## 💪 我们的项目 & 链接 -- [快速开始本地开发](https://doc.fastgpt.io/docs/self-host/dev/) -- [OpenAPI 文档](https://doc.fastgpt.io/docs/openapi/intro) +- [快速开始本地开发](https://doc.fastgpt.io/self-host/dev/) +- [OpenAPI 文档](https://doc.fastgpt.io/openapi/intro) - [FastGPT-plugin](https://github.com/labring/fastgpt-plugin) - [AI Proxy: 模型聚合负载均衡服务](https://github.com/labring/aiproxy) - [Laf:3 分钟快速接入三方应用](https://github.com/labring/laf) @@ -203,4 +203,4 @@ docker compose up -d 1. 允许作为后台服务直接商用,但不允许提供 SaaS 服务。 2. 未经商业授权,任何形式的商用服务均需保留相关版权信息。 3. 完整请查看 [FastGPT Open Source License](./LICENSE) -4. 联系方式:Dennis@sealos.io,[点击查看商业版定价策略](https://doc.fastgpt.io/docs/introduction/commercial/) +4. 联系方式:Dennis@sealos.io,[点击查看商业版定价策略](https://doc.fastgpt.io/introduction/commercial/) diff --git a/README_en.md b/README_en.md index f1630e751d..137bfb7654 100644 --- a/README_en.md +++ b/README_en.md @@ -21,10 +21,10 @@ FastGPT is an AI Agent building platform that provides out-of-the-box capabiliti cloud - + document - + development @@ -47,7 +47,7 @@ docker compose up -d After fully started, you can access FastGPT at `http://localhost:3000`. The default account is `root` and the password is `1234`. -If you encounter any issues, you can [view the complete Docker deployment tutorial](https://doc.fastgpt.io/docs/self-host/deploy/docker) +If you encounter any issues, you can [view the complete Docker deployment tutorial](https://doc.fastgpt.io/self-host/deploy/docker) ## 🛸 Usage @@ -55,10 +55,10 @@ If you encounter any issues, you can [view the complete Docker deployment tutori If you don't need private deployment, you can directly use our cloud service at: [fastgpt.io](https://fastgpt.io/) - **Community Self-Hosted Version** - You can quickly deploy using [Docker](https://doc.fastgpt.io/docs/self-host/deploy/docker) or use [Sealos Cloud](https://doc.fastgpt.io/docs/self-host/deploy/sealos) to deploy FastGPT with one click. + You can quickly deploy using [Docker](https://doc.fastgpt.io/self-host/deploy/docker) or use [Sealos Cloud](https://doc.fastgpt.io/self-host/deploy/sealos) to deploy FastGPT with one click. - **Commercial Version** - If you need more complete features or in-depth service support, you can choose our [Commercial Version](https://doc.fastgpt.io/docs/introduction/commercial). In addition to providing complete software, we also offer implementation guidance for specific scenarios. You can submit a [commercial consultation](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc). + If you need more complete features or in-depth service support, you can choose our [Commercial Version](https://doc.fastgpt.io/introduction/commercial). In addition to providing complete software, we also offer implementation guidance for specific scenarios. You can submit a [commercial consultation](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc). ## 💡 Core Features @@ -115,8 +115,8 @@ If you encounter any issues, you can [view the complete Docker deployment tutori ## 💪 Our Projects & Links -- [Quick Start Local Development](https://doc.fastgpt.io/docs/self-host/dev/) -- [OpenAPI Documentation](https://doc.fastgpt.io/docs/openapi/intro) +- [Quick Start Local Development](https://doc.fastgpt.io/self-host/dev/) +- [OpenAPI Documentation](https://doc.fastgpt.io/openapi/intro) - [FastGPT-plugin](https://github.com/labring/fastgpt-plugin) - [AI Proxy: Model Aggregation Load Balancing Service](https://github.com/labring/aiproxy) - [Laf: Quick 3-Minute Access to Third-Party Applications](https://github.com/labring/laf) @@ -203,4 +203,4 @@ This repository follows the [FastGPT Open Source License](./LICENSE). 1. Commercial use as backend services is allowed, but SaaS services are not permitted. 2. Any commercial services without commercial authorization must retain the relevant copyright information. 3. Please see [FastGPT Open Source License](./LICENSE) for full details. -4. Contact: Dennis@sealos.io, [View Commercial Pricing](https://doc.fastgpt.io/docs/introduction/commercial/) +4. Contact: Dennis@sealos.io, [View Commercial Pricing](https://doc.fastgpt.io/introduction/commercial/) diff --git a/README_id.md b/README_id.md index 02e00eb527..7cac23404b 100644 --- a/README_id.md +++ b/README_id.md @@ -21,10 +21,10 @@ FastGPT adalah platform pembangunan AI Agent yang menyediakan kemampuan siap pak cloud - + document - + development @@ -47,7 +47,7 @@ docker compose up -d Setelah sepenuhnya aktif, Anda dapat mengakses FastGPT di `http://localhost:3000`. Akun default adalah `root` dan kata sandinya adalah `1234`. -Jika Anda menghadapi masalah, Anda dapat [melihat tutorial penyebaran Docker lengkap](https://doc.fastgpt.io/docs/self-host/deploy/docker) +Jika Anda menghadapi masalah, Anda dapat [melihat tutorial penyebaran Docker lengkap](https://doc.fastgpt.io/self-host/deploy/docker) ## 🛸 Cara Penggunaan @@ -55,10 +55,10 @@ Jika Anda menghadapi masalah, Anda dapat [melihat tutorial penyebaran Docker len Jika Anda tidak memerlukan penyebaran privat, Anda dapat langsung menggunakan layanan cloud kami di: [fastgpt.io](https://fastgpt.io/) - **Versi Self-Hosted Komunitas** - Anda dapat menyebarkan dengan cepat menggunakan [Docker](https://doc.fastgpt.io/docs/self-host/deploy/docker) atau menggunakan [Sealos Cloud](https://doc.fastgpt.io/docs/self-host/deploy/sealos) untuk menyebarkan FastGPT dengan satu klik. + Anda dapat menyebarkan dengan cepat menggunakan [Docker](https://doc.fastgpt.io/self-host/deploy/docker) atau menggunakan [Sealos Cloud](https://doc.fastgpt.io/self-host/deploy/sealos) untuk menyebarkan FastGPT dengan satu klik. - **Versi Komersial** - Jika Anda membutuhkan fitur yang lebih lengkap atau dukungan layanan mendalam, Anda dapat memilih [Versi Komersial](https://doc.fastgpt.io/docs/introduction/commercial). Selain menyediakan perangkat lunak lengkap, kami juga menyediakan panduan implementasi untuk skenario tertentu. Anda dapat mengirimkan [konsultasi komersial](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc). + Jika Anda membutuhkan fitur yang lebih lengkap atau dukungan layanan mendalam, Anda dapat memilih [Versi Komersial](https://doc.fastgpt.io/introduction/commercial). Selain menyediakan perangkat lunak lengkap, kami juga menyediakan panduan implementasi untuk skenario tertentu. Anda dapat mengirimkan [konsultasi komersial](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc). ## 💡 Fitur Inti @@ -115,8 +115,8 @@ Jika Anda menghadapi masalah, Anda dapat [melihat tutorial penyebaran Docker len ## 💪 Proyek & Tautan Kami -- [Mulai Cepat Pengembangan Lokal](https://doc.fastgpt.io/docs/self-host/dev/) -- [Dokumentasi OpenAPI](https://doc.fastgpt.io/docs/openapi/intro) +- [Mulai Cepat Pengembangan Lokal](https://doc.fastgpt.io/self-host/dev/) +- [Dokumentasi OpenAPI](https://doc.fastgpt.io/openapi/intro) - [FastGPT-plugin](https://github.com/labring/fastgpt-plugin) - [AI Proxy: Layanan Load Balancing Agregasi Model](https://github.com/labring/aiproxy) - [Laf: Akses Cepat 3 Menit ke Aplikasi Pihak Ketiga](https://github.com/labring/laf) @@ -203,4 +203,4 @@ Repositori ini mengikuti [FastGPT Open Source License](./LICENSE). 1. Penggunaan komersial sebagai layanan backend diperbolehkan, tetapi layanan SaaS tidak diperbolehkan. 2. Setiap layanan komersial tanpa otorisasi komersial harus mempertahankan informasi hak cipta yang relevan. 3. Silakan lihat [FastGPT Open Source License](./LICENSE) untuk detail lengkap. -4. Kontak: Dennis@sealos.io, [Lihat Harga Komersial](https://doc.fastgpt.io/docs/introduction/commercial/) +4. Kontak: Dennis@sealos.io, [Lihat Harga Komersial](https://doc.fastgpt.io/introduction/commercial/) diff --git a/README_ja.md b/README_ja.md index 1ac2c41040..1867268cb6 100644 --- a/README_ja.md +++ b/README_ja.md @@ -21,10 +21,10 @@ FastGPT は AI Agent 構築プラットフォームであり、すぐに使え cloud - + document - + development @@ -47,7 +47,7 @@ docker compose up -d 完全に起動した後、`http://localhost:3000` で FastGPT にアクセスできます。デフォルトのアカウントは `root`、パスワードは `1234` です。 -問題が発生した場合は、[Docker デプロイの完全チュートリアル](https://doc.fastgpt.io/docs/self-host/deploy/docker)をご覧ください。 +問題が発生した場合は、[Docker デプロイの完全チュートリアル](https://doc.fastgpt.io/self-host/deploy/docker)をご覧ください。 ## 🛸 利用方法 @@ -55,10 +55,10 @@ docker compose up -d プライベートデプロイが不要な場合は、クラウドサービスを直接ご利用いただけます:[fastgpt.io](https://fastgpt.io/) - **コミュニティセルフホスト版** - [Docker](https://doc.fastgpt.io/docs/self-host/deploy/docker) で素早くデプロイするか、[Sealos Cloud](https://doc.fastgpt.io/docs/self-host/deploy/sealos) でワンクリックデプロイが可能です。 + [Docker](https://doc.fastgpt.io/self-host/deploy/docker) で素早くデプロイするか、[Sealos Cloud](https://doc.fastgpt.io/self-host/deploy/sealos) でワンクリックデプロイが可能です。 - **商用版** - より完全な機能や深いサービスサポートが必要な場合は、[商用版](https://doc.fastgpt.io/docs/introduction/commercial)をお選びいただけます。完全なソフトウェアの提供に加え、シナリオに応じた導入ガイダンスも提供しています。[商用相談](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc)からお問い合わせください。 + より完全な機能や深いサービスサポートが必要な場合は、[商用版](https://doc.fastgpt.io/introduction/commercial)をお選びいただけます。完全なソフトウェアの提供に加え、シナリオに応じた導入ガイダンスも提供しています。[商用相談](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc)からお問い合わせください。 ## 💡 コア機能 @@ -115,8 +115,8 @@ docker compose up -d ## 💪 プロジェクトとリンク -- [クイックスタート ローカル開発](https://doc.fastgpt.io/docs/self-host/dev/) -- [OpenAPI ドキュメント](https://doc.fastgpt.io/docs/openapi/intro) +- [クイックスタート ローカル開発](https://doc.fastgpt.io/self-host/dev/) +- [OpenAPI ドキュメント](https://doc.fastgpt.io/openapi/intro) - [FastGPT-plugin](https://github.com/labring/fastgpt-plugin) - [AI Proxy: モデル集約ロードバランシングサービス](https://github.com/labring/aiproxy) - [Laf: 3分でサードパーティアプリケーションに接続](https://github.com/labring/laf) @@ -203,4 +203,4 @@ Feishu グループに参加: 1. バックエンドサービスとしての商用利用は許可されていますが、SaaS サービスの提供は許可されていません。 2. 商用ライセンスなしの商用サービスは、関連する著作権情報を保持する必要があります。 3. 詳細は [FastGPT Open Source License](./LICENSE) をご覧ください。 -4. お問い合わせ:Dennis@sealos.io、[商用版の価格を見る](https://doc.fastgpt.io/docs/introduction/commercial/) +4. お問い合わせ:Dennis@sealos.io、[商用版の価格を見る](https://doc.fastgpt.io/introduction/commercial/) diff --git a/README_th.md b/README_th.md index a52ae42a42..81a6c08c68 100644 --- a/README_th.md +++ b/README_th.md @@ -21,10 +21,10 @@ FastGPT เป็นแพลตฟอร์มสำหรับสร้าง cloud - + document - + development @@ -47,7 +47,7 @@ docker compose up -d เมื่อเริ่มต้นสมบูรณ์แล้ว คุณสามารถเข้าถึง FastGPT ที่ `http://localhost:3000` บัญชีเริ่มต้นคือ `root` และรหัสผ่านคือ `1234` -หากคุณพบปัญหา คุณสามารถ [ดูบทแนะนำการติดตั้ง Docker ฉบับสมบูรณ์](https://doc.fastgpt.io/docs/self-host/deploy/docker) +หากคุณพบปัญหา คุณสามารถ [ดูบทแนะนำการติดตั้ง Docker ฉบับสมบูรณ์](https://doc.fastgpt.io/self-host/deploy/docker) ## 🛸 วิธีการใช้งาน @@ -55,10 +55,10 @@ docker compose up -d หากคุณไม่ต้องการติดตั้งแบบส่วนตัว คุณสามารถใช้บริการคลาวด์ของเราได้โดยตรงที่: [fastgpt.io](https://fastgpt.io/) - **เวอร์ชันโฮสต์ตัวเองของชุมชน** - คุณสามารถติดตั้งได้อย่างรวดเร็วโดยใช้ [Docker](https://doc.fastgpt.io/docs/self-host/deploy/docker) หรือใช้ [Sealos Cloud](https://doc.fastgpt.io/docs/self-host/deploy/sealos) เพื่อติดตั้ง FastGPT ด้วยคลิกเดียว + คุณสามารถติดตั้งได้อย่างรวดเร็วโดยใช้ [Docker](https://doc.fastgpt.io/self-host/deploy/docker) หรือใช้ [Sealos Cloud](https://doc.fastgpt.io/self-host/deploy/sealos) เพื่อติดตั้ง FastGPT ด้วยคลิกเดียว - **เวอร์ชันพาณิชย์** - หากคุณต้องการคุณสมบัติที่สมบูรณ์มากขึ้นหรือการสนับสนุนบริการเชิงลึก คุณสามารถเลือก [เวอร์ชันพาณิชย์](https://doc.fastgpt.io/docs/introduction/commercial) นอกจากการให้ซอฟต์แวร์ที่สมบูรณ์ เรายังให้คำแนะนำการนำไปใช้สำหรับสถานการณ์เฉพาะ คุณสามารถส่ง[ปรึกษาธุรกิจ](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc) + หากคุณต้องการคุณสมบัติที่สมบูรณ์มากขึ้นหรือการสนับสนุนบริการเชิงลึก คุณสามารถเลือก [เวอร์ชันพาณิชย์](https://doc.fastgpt.io/introduction/commercial) นอกจากการให้ซอฟต์แวร์ที่สมบูรณ์ เรายังให้คำแนะนำการนำไปใช้สำหรับสถานการณ์เฉพาะ คุณสามารถส่ง[ปรึกษาธุรกิจ](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc) ## 💡 คุณสมบัติหลัก @@ -115,8 +115,8 @@ docker compose up -d ## 💪 โปรเจกต์และลิงก์ของเรา -- [เริ่มต้นพัฒนาในเครื่อง](https://doc.fastgpt.io/docs/self-host/dev/) -- [เอกสาร OpenAPI](https://doc.fastgpt.io/docs/openapi/intro) +- [เริ่มต้นพัฒนาในเครื่อง](https://doc.fastgpt.io/self-host/dev/) +- [เอกสาร OpenAPI](https://doc.fastgpt.io/openapi/intro) - [FastGPT-plugin](https://github.com/labring/fastgpt-plugin) - [AI Proxy: บริการ Load Balancing การรวมโมเดล](https://github.com/labring/aiproxy) - [Laf: เข้าถึงแอปพลิเคชันของบุคคลที่สามใน 3 นาที](https://github.com/labring/laf) @@ -203,4 +203,4 @@ docker compose up -d 1. อนุญาตให้ใช้เชิงพาณิชย์เป็นบริการแบ็กเอนด์ แต่ไม่อนุญาตให้ให้บริการ SaaS 2. บริการเชิงพาณิชย์ใดๆ ที่ไม่มีการอนุญาตเชิงพาณิชย์ต้องเก็บข้อมูลลิขสิทธิ์ที่เกี่ยวข้องไว้ 3. โปรดดู [FastGPT Open Source License](./LICENSE) สำหรับรายละเอียดฉบับเต็ม -4. ติดต่อ: Dennis@sealos.io, [ดูราคาพาณิชย์](https://doc.fastgpt.io/docs/introduction/commercial/) +4. ติดต่อ: Dennis@sealos.io, [ดูราคาพาณิชย์](https://doc.fastgpt.io/introduction/commercial/) diff --git a/README_vi.md b/README_vi.md index 8d2d5f75ba..c118d1d9d8 100644 --- a/README_vi.md +++ b/README_vi.md @@ -21,10 +21,10 @@ FastGPT là nền tảng xây dựng AI Agent cung cấp khả năng sẵn sàng cloud - + document - + development @@ -47,7 +47,7 @@ docker compose up -d Sau khi khởi động hoàn tất, bạn có thể truy cập FastGPT tại `http://localhost:3000`. Tài khoản mặc định là `root` và mật khẩu là `1234`. -Nếu bạn gặp vấn đề, bạn có thể [xem hướng dẫn triển khai Docker đầy đủ](https://doc.fastgpt.io/docs/self-host/deploy/docker) +Nếu bạn gặp vấn đề, bạn có thể [xem hướng dẫn triển khai Docker đầy đủ](https://doc.fastgpt.io/self-host/deploy/docker) ## 🛸 Cách Sử Dụng @@ -55,10 +55,10 @@ Nếu bạn gặp vấn đề, bạn có thể [xem hướng dẫn triển khai Nếu bạn không cần triển khai riêng, bạn có thể sử dụng trực tiếp dịch vụ đám mây của chúng tôi tại: [fastgpt.io](https://fastgpt.io/) - **Phiên Bản Tự Host Cộng Đồng** - Bạn có thể triển khai nhanh chóng bằng [Docker](https://doc.fastgpt.io/docs/self-host/deploy/docker) hoặc sử dụng [Sealos Cloud](https://doc.fastgpt.io/docs/self-host/deploy/sealos) để triển khai FastGPT bằng một cú nhấp chuột. + Bạn có thể triển khai nhanh chóng bằng [Docker](https://doc.fastgpt.io/self-host/deploy/docker) hoặc sử dụng [Sealos Cloud](https://doc.fastgpt.io/self-host/deploy/sealos) để triển khai FastGPT bằng một cú nhấp chuột. - **Phiên Bản Thương Mại** - Nếu bạn cần các tính năng đầy đủ hơn hoặc hỗ trợ dịch vụ chuyên sâu, bạn có thể chọn [Phiên Bản Thương Mại](https://doc.fastgpt.io/docs/introduction/commercial). Ngoài việc cung cấp phần mềm đầy đủ, chúng tôi còn cung cấp hướng dẫn triển khai cho các kịch bản cụ thể. Bạn có thể gửi [tư vấn thương mại](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc). + Nếu bạn cần các tính năng đầy đủ hơn hoặc hỗ trợ dịch vụ chuyên sâu, bạn có thể chọn [Phiên Bản Thương Mại](https://doc.fastgpt.io/introduction/commercial). Ngoài việc cung cấp phần mềm đầy đủ, chúng tôi còn cung cấp hướng dẫn triển khai cho các kịch bản cụ thể. Bạn có thể gửi [tư vấn thương mại](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc). ## 💡 Tính Năng Cốt Lõi @@ -115,8 +115,8 @@ Nếu bạn gặp vấn đề, bạn có thể [xem hướng dẫn triển khai ## 💪 Dự Án & Liên Kết Của Chúng Tôi -- [Bắt Đầu Phát Triển Địa Phương](https://doc.fastgpt.io/docs/self-host/dev/) -- [Tài Liệu OpenAPI](https://doc.fastgpt.io/docs/openapi/intro) +- [Bắt Đầu Phát Triển Địa Phương](https://doc.fastgpt.io/self-host/dev/) +- [Tài Liệu OpenAPI](https://doc.fastgpt.io/openapi/intro) - [FastGPT-plugin](https://github.com/labring/fastgpt-plugin) - [AI Proxy: Dịch Vụ Cân Bằng Tải Tổng Hợp Mô Hình](https://github.com/labring/aiproxy) - [Laf: Truy Cập Nhanh 3 Phút vào Ứng Dụng Bên Thứ Ba](https://github.com/labring/laf) @@ -203,4 +203,4 @@ Kho này tuân thủ [FastGPT Open Source License](./LICENSE). 1. Cho phép sử dụng thương mại như dịch vụ backend, nhưng không cho phép cung cấp dịch vụ SaaS. 2. Bất kỳ dịch vụ thương mại nào không có giấy phép thương mại phải giữ lại thông tin bản quyền liên quan. 3. Xem [FastGPT Open Source License](./LICENSE) để biết đầy đủ chi tiết. -4. Liên hệ: Dennis@sealos.io, [Xem Giá Thương Mại](https://doc.fastgpt.io/docs/introduction/commercial/) +4. Liên hệ: Dennis@sealos.io, [Xem Giá Thương Mại](https://doc.fastgpt.io/introduction/commercial/) diff --git a/deploy/dev/docker-compose.cn.yml b/deploy/dev/docker-compose.cn.yml index deae5267c7..65388854fd 100644 --- a/deploy/dev/docker-compose.cn.yml +++ b/deploy/dev/docker-compose.cn.yml @@ -29,7 +29,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin diff --git a/deploy/dev/docker-compose.yml b/deploy/dev/docker-compose.yml index 65f7fde0e0..95304b3350 100644 --- a/deploy/dev/docker-compose.yml +++ b/deploy/dev/docker-compose.yml @@ -29,7 +29,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin diff --git a/deploy/docker/cn/docker-compose.milvus.yml b/deploy/docker/cn/docker-compose.milvus.yml index 3a054a22e8..89f1761856 100644 --- a/deploy/docker/cn/docker-compose.milvus.yml +++ b/deploy/docker/cn/docker-compose.milvus.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,7 +43,6 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config MILVUS_ADDRESS: http://fastgpt-vector:19530 MILVUS_TOKEN: none - services: # Vector DB @@ -118,7 +117,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -192,7 +203,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -287,7 +298,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -332,12 +343,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -547,4 +559,3 @@ configs: [ingress] mode = "direct" - diff --git a/deploy/docker/cn/docker-compose.oceanbase.yml b/deploy/docker/cn/docker-compose.oceanbase.yml index b81be84798..ec6f9e4177 100644 --- a/deploy/docker/cn/docker-compose.oceanbase.yml +++ b/deploy/docker/cn/docker-compose.oceanbase.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,11 +43,10 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config OCEANBASE_URL: mysql://root%40tenantname:tenantpassword@fastgpt-vector:2881/mysql - services: # Vector DB fastgpt-vector: - image: oceanbase/oceanbase-ce:4.3.5-lts + image: oceanbase/oceanbase-ce:4.3.5-lts container_name: fastgpt-ob restart: always # ports: # 生产环境建议不要暴露 @@ -75,8 +74,8 @@ services: # obclient -h127.0.0.1 -P2881 -uroot@tenantname -ptenantpassword -e "SELECT 1;" test: [ - "CMD-SHELL", - 'obclient -h$${OB_SERVER_IP} -P2881 -uroot@$${OB_TENANT_NAME} -p$${OB_TENANT_PASSWORD} -e "SELECT 1;"', + 'CMD-SHELL', + 'obclient -h$${OB_SERVER_IP} -P2881 -uroot@$${OB_TENANT_NAME} -p$${OB_TENANT_PASSWORD} -e "SELECT 1;"' ] interval: 30s timeout: 10s @@ -96,7 +95,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -170,7 +181,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -265,7 +276,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -310,12 +321,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -529,4 +541,3 @@ configs: name: init_sql content: | ALTER SYSTEM SET ob_vector_memory_limit_percentage = 30; - diff --git a/deploy/docker/cn/docker-compose.opengauss.yml b/deploy/docker/cn/docker-compose.opengauss.yml index 9aa25262d9..ab79fdaa1f 100644 --- a/deploy/docker/cn/docker-compose.opengauss.yml +++ b/deploy/docker/cn/docker-compose.opengauss.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -54,9 +54,9 @@ services: - data environment: # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果 - - GS_USERNAME=gaussdb # 默认会创建 gaussdb 用户 - - GS_PASSWORD=FastGPT@123 # 密码必须包含大写、小写、数字和特殊字符,且长度不少于8位 - - GS_DB=fastgpt # 默认会创建 postgres 数据库,这里以 fastgpt 为例 + - GS_USERNAME=gaussdb # 默认会创建 gaussdb 用户 + - GS_PASSWORD=FastGPT@123 # 密码必须包含大写、小写、数字和特殊字符,且长度不少于8位 + - GS_DB=fastgpt # 默认会创建 postgres 数据库,这里以 fastgpt 为例 volumes: - ./opengauss/data:/var/lib/opengauss healthcheck: @@ -78,7 +78,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -152,7 +164,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -247,7 +259,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -292,12 +304,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -507,4 +520,3 @@ configs: [ingress] mode = "direct" - diff --git a/deploy/docker/cn/docker-compose.pg.yml b/deploy/docker/cn/docker-compose.pg.yml index bb9b2e53ae..8d3275f004 100644 --- a/deploy/docker/cn/docker-compose.pg.yml +++ b/deploy/docker/cn/docker-compose.pg.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -77,7 +77,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -151,7 +163,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -246,7 +258,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -291,12 +303,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -506,4 +519,3 @@ configs: [ingress] mode = "direct" - diff --git a/deploy/docker/cn/docker-compose.seekdb.yml b/deploy/docker/cn/docker-compose.seekdb.yml index 9e98e1b820..e67cc9d357 100644 --- a/deploy/docker/cn/docker-compose.seekdb.yml +++ b/deploy/docker/cn/docker-compose.seekdb.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,11 +43,10 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config SEEKDB_URL: mysql://root:seekdbpassword@fastgpt-vector:2881/mysql - services: # Vector DB fastgpt-vector: - image: oceanbase/seekdb:1.0.1.0-100000392025122619 + image: oceanbase/seekdb:1.0.1.0-100000392025122619 container_name: fastgpt-seekdb restart: always # ports: # 生产环境建议不要暴露 @@ -83,7 +82,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -157,7 +168,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -252,7 +263,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -297,12 +308,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -512,4 +524,3 @@ configs: [ingress] mode = "direct" - diff --git a/deploy/docker/cn/docker-compose.zilliz.yml b/deploy/docker/cn/docker-compose.zilliz.yml index 01998a8bd4..31d96c01a9 100644 --- a/deploy/docker/cn/docker-compose.zilliz.yml +++ b/deploy/docker/cn/docker-compose.zilliz.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -60,7 +60,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -134,7 +146,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -229,7 +241,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -274,12 +286,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -489,4 +502,3 @@ configs: [ingress] mode = "direct" - diff --git a/deploy/docker/global/docker-compose.milvus.yml b/deploy/docker/global/docker-compose.milvus.yml index 0ff85ceae1..6c1739be94 100644 --- a/deploy/docker/global/docker-compose.milvus.yml +++ b/deploy/docker/global/docker-compose.milvus.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,7 +43,6 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config MILVUS_ADDRESS: http://fastgpt-vector:19530 MILVUS_TOKEN: none - services: # Vector DB @@ -118,7 +117,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -192,7 +203,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -287,7 +298,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -332,12 +343,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -547,4 +559,3 @@ configs: [ingress] mode = "direct" - diff --git a/deploy/docker/global/docker-compose.oceanbase.yml b/deploy/docker/global/docker-compose.oceanbase.yml index 6fb00e25fe..876d91a6f9 100644 --- a/deploy/docker/global/docker-compose.oceanbase.yml +++ b/deploy/docker/global/docker-compose.oceanbase.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,11 +43,10 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config OCEANBASE_URL: mysql://root%40tenantname:tenantpassword@fastgpt-vector:2881/mysql - services: # Vector DB fastgpt-vector: - image: oceanbase/oceanbase-ce:4.3.5-lts + image: oceanbase/oceanbase-ce:4.3.5-lts container_name: fastgpt-ob restart: always # ports: # 生产环境建议不要暴露 @@ -75,8 +74,8 @@ services: # obclient -h127.0.0.1 -P2881 -uroot@tenantname -ptenantpassword -e "SELECT 1;" test: [ - "CMD-SHELL", - 'obclient -h$${OB_SERVER_IP} -P2881 -uroot@$${OB_TENANT_NAME} -p$${OB_TENANT_PASSWORD} -e "SELECT 1;"', + 'CMD-SHELL', + 'obclient -h$${OB_SERVER_IP} -P2881 -uroot@$${OB_TENANT_NAME} -p$${OB_TENANT_PASSWORD} -e "SELECT 1;"' ] interval: 30s timeout: 10s @@ -96,7 +95,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -170,7 +181,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -265,7 +276,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -310,12 +321,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -529,4 +541,3 @@ configs: name: init_sql content: | ALTER SYSTEM SET ob_vector_memory_limit_percentage = 30; - diff --git a/deploy/docker/global/docker-compose.opengauss.yml b/deploy/docker/global/docker-compose.opengauss.yml index b5d05d412f..f13fae7869 100644 --- a/deploy/docker/global/docker-compose.opengauss.yml +++ b/deploy/docker/global/docker-compose.opengauss.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -54,9 +54,9 @@ services: - data environment: # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果 - - GS_USERNAME=gaussdb # 默认会创建 gaussdb 用户 - - GS_PASSWORD=FastGPT@123 # 密码必须包含大写、小写、数字和特殊字符,且长度不少于8位 - - GS_DB=fastgpt # 默认会创建 postgres 数据库,这里以 fastgpt 为例 + - GS_USERNAME=gaussdb # 默认会创建 gaussdb 用户 + - GS_PASSWORD=FastGPT@123 # 密码必须包含大写、小写、数字和特殊字符,且长度不少于8位 + - GS_DB=fastgpt # 默认会创建 postgres 数据库,这里以 fastgpt 为例 volumes: - ./opengauss/data:/var/lib/opengauss healthcheck: @@ -78,7 +78,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -152,7 +164,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -247,7 +259,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -292,12 +304,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -507,4 +520,3 @@ configs: [ingress] mode = "direct" - diff --git a/deploy/docker/global/docker-compose.pg.yml b/deploy/docker/global/docker-compose.pg.yml index 8d9b494336..9c4c31d3ec 100644 --- a/deploy/docker/global/docker-compose.pg.yml +++ b/deploy/docker/global/docker-compose.pg.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -77,7 +77,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -151,7 +163,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -246,7 +258,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -291,12 +303,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -506,4 +519,3 @@ configs: [ingress] mode = "direct" - diff --git a/deploy/docker/global/docker-compose.seekdb.yml b/deploy/docker/global/docker-compose.seekdb.yml index 53e907df6a..c9ca67d451 100644 --- a/deploy/docker/global/docker-compose.seekdb.yml +++ b/deploy/docker/global/docker-compose.seekdb.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,11 +43,10 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config SEEKDB_URL: mysql://root:seekdbpassword@fastgpt-vector:2881/mysql - services: # Vector DB fastgpt-vector: - image: oceanbase/seekdb:1.0.1.0-100000392025122619 + image: oceanbase/seekdb:1.0.1.0-100000392025122619 container_name: fastgpt-seekdb restart: always # ports: # 生产环境建议不要暴露 @@ -83,7 +82,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -157,7 +168,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -252,7 +263,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -297,12 +308,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -512,4 +524,3 @@ configs: [ingress] mode = "direct" - diff --git a/deploy/docker/global/docker-compose.zilliz.yml b/deploy/docker/global/docker-compose.zilliz.yml index 5c6fc68e0e..cbd946622d 100644 --- a/deploy/docker/global/docker-compose.zilliz.yml +++ b/deploy/docker/global/docker-compose.zilliz.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -60,7 +60,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -134,7 +146,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -229,7 +241,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -274,12 +286,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -489,4 +502,3 @@ configs: [ingress] mode = "direct" - diff --git a/deploy/templates/docker-compose.dev.yml b/deploy/templates/docker-compose.dev.yml index 24ab94312d..e8a94145de 100644 --- a/deploy/templates/docker-compose.dev.yml +++ b/deploy/templates/docker-compose.dev.yml @@ -29,7 +29,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin diff --git a/deploy/templates/docker-compose.prod.yml b/deploy/templates/docker-compose.prod.yml index ecc71fe55c..518b9ad3be 100644 --- a/deploy/templates/docker-compose.prod.yml +++ b/deploy/templates/docker-compose.prod.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin diff --git a/document/LOCALIZED_NAVIGATION.md b/document/LOCALIZED_NAVIGATION.md deleted file mode 100644 index 17edfed17d..0000000000 --- a/document/LOCALIZED_NAVIGATION.md +++ /dev/null @@ -1,107 +0,0 @@ -# 国际化路由适配说明 - -## 问题 -路由跳转时语言前缀丢失,导致用户在切换页面后回到默认语言。 - -## 解决方案 - -### 1. 核心配置 -- **`lib/i18n.ts`**: 设置 `hideLocale: 'never'`,确保所有语言(包括默认语言)都显示语言前缀 -- **`lib/localized-navigation.ts`**: 提供客户端路由工具,自动处理语言前缀 - -### 2. 修复的路由跳转位置 - -#### ✅ 一级导航(Tab Navigation) -- **文件**: `app/[lang]/docs/layout.tsx` -- **方法**: 使用 `getLocalizedPath()` 为每个 tab 的 URL 添加语言前缀 -- **状态**: 已完成 - -#### ✅ 二级导航(Sidebar) -- **文件**: `lib/source.ts` -- **方法**: Fumadocs 的 loader 自动根据 i18n 配置生成带语言前缀的链接 -- **状态**: 已完成(无需修改) - -#### ✅ 空页面重定向 -- **文件**: - - `app/[lang]/(home)/page.tsx` - 首页重定向 - - `app/[lang]/(home)/[...not-found]/page.tsx` - 404 重定向 -- **方法**: 使用 `getLocalizedPath()` 添加语言前缀 -- **状态**: 已完成 - -#### ✅ MDX 组件重定向 -- **文件**: `components/docs/Redirect.tsx` -- **方法**: 使用 `useLocalizedRouter()` hook -- **状态**: 已完成 - -#### ✅ 旧页面重定向 -- **文件**: `components/docs/not-found.tsx` -- **方法**: - - 使用 `useCurrentLang()` 获取当前语言 - - 从 pathname 中移除语言前缀进行匹配 - - 使用 `useLocalizedPath()` 为重定向目标添加语言前缀 -- **状态**: 已完成 - -#### ✅ 文档内链接 -- **文件**: - - `components/docs/LocalizedLink.tsx` - 自定义 Link 组件 - - `mdx-components.tsx` - 配置 MDX 使用 LocalizedLink -- **方法**: 拦截 MDX 中的 `` 标签,自动为内部链接添加语言前缀 -- **状态**: 已完成 - -### 3. 语言选择器 -- **文件**: `app/layout.config.tsx` -- **配置**: - ```typescript - i18n: { - locale, - languages: [ - { name: '简体中文', locale: 'zh-CN' }, - { name: 'English', locale: 'en' } - ], - hideLocale: 'never' - } - ``` -- **状态**: 已完成 - -## 使用方法 - -### 客户端组件 -```tsx -'use client'; -import { useLocalizedRouter } from '@/lib/localized-navigation'; - -function MyComponent() { - const router = useLocalizedRouter(); - router.push('/docs/introduction'); // 自动添加语言前缀 -} -``` - -### 服务端组件 -```tsx -import { getLocalizedPath } from '@/lib/i18n'; -import { redirect } from 'next/navigation'; - -export default async function Page({ params }: { params: Promise<{ lang: string }> }) { - const { lang } = await params; - redirect(getLocalizedPath('/docs/intro', lang)); -} -``` - -### MDX 文档 -```mdx - -[查看介绍](/docs/introduction) - - - -``` - -## 测试清单 -- [ ] 一级导航切换保持语言 -- [ ] 侧边栏导航保持语言 -- [ ] 首页重定向保持语言 -- [ ] 404 页面重定向保持语言 -- [ ] 旧链接重定向保持语言 -- [ ] 文档内链接保持语言 -- [ ] 语言选择器正常工作 -- [ ] 搜索结果链接保持语言 diff --git a/document/app/[lang]/docs/[[...slug]]/page.tsx b/document/app/[lang]/(docs)/[...slug]/page.tsx similarity index 92% rename from document/app/[lang]/docs/[[...slug]]/page.tsx rename to document/app/[lang]/(docs)/[...slug]/page.tsx index 4f2049a898..62e78424d9 100644 --- a/document/app/[lang]/docs/[[...slug]]/page.tsx +++ b/document/app/[lang]/(docs)/[...slug]/page.tsx @@ -33,7 +33,7 @@ export default async function Page({ const MDXContent = page.data.body; // 使用构建时导入的静态数据 - const filePath = `document/content/docs/${page.file.path}`; + const filePath = `document/content/${page.file.path}`; // @ts-ignore const lastModified = docLastModifiedData[filePath] || page.data.lastModified; @@ -44,11 +44,11 @@ export default async function Page({ // 生成面包屑导航 const breadcrumbItems = [ { name: 'FastGPT', url: domain }, - { name: 'Docs', url: `${domain}/${lang}/docs` } + { name: 'Docs', url: `${domain}/${lang}` } ]; if (slug && slug.length > 0) { slug.forEach((segment, index) => { - const segmentUrl = `${domain}/${lang}/docs/${slug.slice(0, index + 1).join('/')}`; + const segmentUrl = `${domain}/${lang}/${slug.slice(0, index + 1).join('/')}`; breadcrumbItems.push({ name: segment, url: segmentUrl }); }); } @@ -86,7 +86,7 @@ export default async function Page({ owner: 'labring', repo: 'FastGPT', sha: 'main', - path: `document/content/docs/${page.file.path}` + path: `document/content/${page.file.path}` }} lastUpdate={lastModified ? new Date(lastModified) : undefined} > @@ -124,7 +124,7 @@ export async function generateMetadata(props: { i18n.languages.forEach((locale) => { const localePage = source.getPage(slug, locale); if (localePage) { - languages[locale] = `${domain}/${locale}/docs/${slug?.join('/') || ''}`; + languages[locale] = `${domain}/${locale}/${slug?.join('/') || ''}`; } }); diff --git a/document/app/[lang]/(docs)/layout.tsx b/document/app/[lang]/(docs)/layout.tsx new file mode 100644 index 0000000000..85bf2de954 --- /dev/null +++ b/document/app/[lang]/(docs)/layout.tsx @@ -0,0 +1,105 @@ +import { type ReactNode } from 'react'; +import { source } from '@/lib/source'; +import { DocsLayout } from 'fumadocs-ui/layouts/docs'; +import { LargeSearchToggle } from 'fumadocs-ui/components/layout/search-toggle'; +import { ThemeToggle } from 'fumadocs-ui/components/layout/theme-toggle'; +import { baseOptions } from '@/app/layout.config'; +import { t, getLocalizedPath, i18n } from '@/lib/i18n'; +import '@/app/global.css'; +import { CustomSidebarComponents } from '@/components/sideBar'; +import { SidebarKeepOpen } from '@/components/sidebarKeepOpen'; +import { SidebarScrollFix } from '@/components/sidebarScrollFix'; +import { CategorySwitcher } from '@/components/docs/categorySwitcher'; +import { LanguageSwitcher } from '@/components/docs/languageSwitcher'; +import { BookOpen, Code, Lightbulb, CircleHelp, Server } from 'lucide-react'; + +export default async function Layout({ + params, + children +}: { + params: Promise<{ lang: string }>; + children: ReactNode; +}) { + const { lang } = await params; + + const iconClass = 'size-4'; + const tab = [ + { + icon: , + title: t('common:introduction', lang), + url: getLocalizedPath('/introduction', lang) + }, + { + icon: , + title: t('common:use-cases', lang), + url: getLocalizedPath('/use-cases', lang) + }, + { + icon: , + title: t('common:selfHost', lang), + url: getLocalizedPath('/self-host', lang) + }, + { + icon: , + title: t('common:api_reference', lang), + url: getLocalizedPath('/openapi', lang) + }, + { + icon: , + title: t('common:faq', lang), + url: getLocalizedPath('/faq', lang) + } + ]; + + const tabUrls = tab.map((t) => t.url); + + const base = baseOptions(lang); + + return ( + + } + }} + themeSwitch={{ + ...base.themeSwitch, + enabled: false + }} + sidebar={{ + tabs: false, + collapsible: false, + components: CustomSidebarComponents, + banner: ( +
+ +
+ ), + footer: ( +
+ + +
+ ) + }} + links={[]} + > + + + {children} +
+ ); +} diff --git a/document/app/[lang]/(home)/[...not-found]/page.tsx b/document/app/[lang]/(home)/[...not-found]/page.tsx deleted file mode 100644 index 215c96f766..0000000000 --- a/document/app/[lang]/(home)/[...not-found]/page.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { redirect } from 'next/navigation'; -import { getLocalizedPath } from '@/lib/i18n'; - -export default async function NotFoundPage({ - params -}: { - params: Promise<{ lang: string }>; -}) { - const { lang } = await params; - redirect(getLocalizedPath('/docs/introduction', lang)); -} diff --git a/document/app/[lang]/(home)/page.tsx b/document/app/[lang]/(home)/page.tsx index b7ede7dfa7..a2609d8ebb 100644 --- a/document/app/[lang]/(home)/page.tsx +++ b/document/app/[lang]/(home)/page.tsx @@ -7,5 +7,5 @@ export default async function HomePage({ params: Promise<{ lang: string }>; }) { const { lang } = await params; - redirect(getLocalizedPath('/docs/introduction', lang)); + redirect(getLocalizedPath('/introduction', lang)); } diff --git a/document/app/[lang]/docs/layout.tsx b/document/app/[lang]/docs/layout.tsx deleted file mode 100644 index 3be1097868..0000000000 --- a/document/app/[lang]/docs/layout.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { type ReactNode } from 'react'; -import { source } from '@/lib/source'; -import { DocsLayout } from 'fumadocs-ui/layouts/docs'; -import { baseOptions } from '@/app/layout.config'; -import { t, getLocalizedPath, i18n } from '@/lib/i18n'; -import '@/app/global.css'; -import { CustomSidebarComponents } from '@/components/sideBar'; -import { SidebarKeepOpen } from '@/components/sidebarKeepOpen'; -import { SidebarScrollFix } from '@/components/sidebarScrollFix'; -import FeishuLogoLight from '@/components/docs/feishuLogoLIght'; -import FeishuLogoDark from '@/components/docs/feishuLogoDark'; -import GithubLogoLight from '@/components/docs/githubLogoLight'; -import GithubLogoDark from '@/components/docs/githubLogoDark'; -import { BookOpen, Code, Lightbulb, CircleHelp, Server } from 'lucide-react'; - -export default async function Layout({ - params, - children -}: { - params: Promise<{ lang: string }>; - children: ReactNode; -}) { - const { lang } = await params; - - const iconClass = 'size-4'; - const tab = [ - { - icon: , - title: t('common:introduction', lang), - url: getLocalizedPath('/docs/introduction', lang) - }, - { - icon: , - title: t('common:use-cases', lang), - url: getLocalizedPath('/docs/use-cases', lang) - }, - { - icon: , - title: t('common:selfHost', lang), - url: getLocalizedPath('/docs/self-host', lang) - }, - { - icon: , - title: t('common:api_reference', lang), - url: getLocalizedPath('/docs/openapi', lang) - }, - { - icon: , - title: t('common:faq', lang), - url: getLocalizedPath('/docs/faq', lang) - } - ]; - - const tabUrls = tab.map((t) => t.url); - - return ( - , - url: 'https://oss.laf.run/otnvvf-imgs/fastgpt-feishu1.png', - text: '飞书群' - }, - { - type: 'icon', - icon: , - url: 'https://github.com/labring/FastGPT', - text: 'github' - } - ]} - > - - - {children} - - ); -} diff --git a/document/app/[lang]/llms.txt/route.ts b/document/app/[lang]/llms.txt/route.ts index cd284cb46f..fc1fe14367 100644 --- a/document/app/[lang]/llms.txt/route.ts +++ b/document/app/[lang]/llms.txt/route.ts @@ -27,10 +27,10 @@ export async function GET() { if (defaultLanguage === 'zh-CN') { // For Chinese, select *.mdx files - globPattern = ['./content/docs/**/*.mdx']; + globPattern = ['./content/**/*.mdx']; } else { // For other languages (default English), select *.en.mdx files that don't have .mdx. in their path - globPattern = ['./content/docs/**/*.en.mdx']; + globPattern = ['./content/**/*.en.mdx']; } const files = await fg(globPattern); diff --git a/document/app/api/meta/route.ts b/document/app/api/meta/route.ts index db47818d09..2c319bc45d 100644 --- a/document/app/api/meta/route.ts +++ b/document/app/api/meta/route.ts @@ -3,7 +3,7 @@ import { NextResponse } from 'next/server'; import fs from 'fs/promises'; import path from 'path'; -const docsRoot = path.resolve(process.cwd(), 'content/docs'); +const docsRoot = path.resolve(process.cwd(), 'content'); function isInvalidPage(str: string): boolean { if (!str || typeof str !== 'string') return true; @@ -60,25 +60,23 @@ export async function GET(req: NextRequest) { const url = new URL(req.url); const rawPath = url.searchParams.get('path'); - if (!rawPath || !rawPath.startsWith('/docs')) { + if (!rawPath) { return NextResponse.json({ error: 'Invalid path' }, { status: 400 }); } - // 去除 /docs 前缀,且清理首尾斜杠 - const relPath = rawPath.replace(/^\/docs\/?/, '').replace(/^\/|\/$/g, ''); + // 兼容老调用:若以 /docs 开头先剥离;同时清理首尾斜杠 + const relPath = rawPath + .replace(/^\/docs\/?/, '') + .replace(/^\/|\/$/g, ''); try { - // 先检测是否有该 mdx 文件 const maybeFile = path.join(docsRoot, relPath + '.mdx'); await fs.access(maybeFile); - // 如果存在,返回完整路径(带 /docs) - return NextResponse.json('/docs/' + relPath); + return NextResponse.json('/' + relPath); } catch { - // 不存在,尝试递归寻找第一个有效页面 const found = await findFirstValidPage(relPath); if (found) { - // 返回带 /docs 前缀的完整路径 - return NextResponse.json('/docs/' + found.replace(/\\/g, '/')); + return NextResponse.json('/' + found.replace(/\\/g, '/')); } else { return NextResponse.json({ error: 'No valid mdx page found' }, { status: 404 }); } diff --git a/document/app/global.css b/document/app/global.css index 2acb5dc382..f403d65dc8 100644 --- a/document/app/global.css +++ b/document/app/global.css @@ -48,6 +48,12 @@ gap: 0; } +/* Sidebar active nested border: keep the left marker color in sync with text. */ +#nd-sidebar a[data-active='true'] > div:first-child, +#nd-sidebar-mobile a[data-active='true'] > div:first-child { + background-color: currentColor !important; +} + /* 移除导航栏图标的上边距 - 使用通用选择器匹配所有 radix 弹窗 */ [data-radix-popper-content-wrapper] > div > a { padding: 8px 6px; diff --git a/document/app/sitemap.xml/route.ts b/document/app/sitemap.xml/route.ts index a54652bad6..ab52709125 100644 --- a/document/app/sitemap.xml/route.ts +++ b/document/app/sitemap.xml/route.ts @@ -12,7 +12,7 @@ export function GET() { const urlEntries = pages .map((page) => { - const filePath = `document/content/docs/${page.file.path}`; + const filePath = `document/content/${page.file.path}`; // @ts-ignore const lastModified = docLastModifiedData[filePath] || page.data.lastModified; diff --git a/document/components/docs/Redirect.tsx b/document/components/docs/Redirect.tsx index b8ce112f90..5acadb33d8 100644 --- a/document/components/docs/Redirect.tsx +++ b/document/components/docs/Redirect.tsx @@ -1,18 +1,45 @@ 'use client'; import { useEffect } from 'react'; -import { useLocalizedRouter } from '@/lib/localized-navigation'; +import { usePathname, useRouter } from 'next/navigation'; +import { getLocalizedPath, i18n } from '@/lib/i18n'; +import { useCurrentLang } from '@/lib/localized-navigation'; interface RedirectProps { to: string; } +function removeLocalePrefix(pathname: string): string { + const segments = pathname.split('/').filter(Boolean); + + if (segments[0] && i18n.languages.includes(segments[0])) { + return `/${segments.slice(1).join('/')}`; + } + + return pathname; +} + +function normalizeDocPath(to: string, pathname: string): string { + const target = to.replace(/(?:\.[a-z]{2}(?:-[A-Z]{2})?)?\.mdx$/, ''); + + if (target.startsWith('/')) { + return removeLocalePrefix(target); + } + + const currentPath = removeLocalePrefix(pathname); + const basePath = currentPath.endsWith('/') ? currentPath : `${currentPath}/`; + + return new URL(target, `http://localhost${basePath}`).pathname; +} + export function Redirect({ to }: RedirectProps) { - const router = useLocalizedRouter(); + const router = useRouter(); + const pathname = usePathname(); + const lang = useCurrentLang(); useEffect(() => { - router.push(to); - }, [to, router]); + router.push(getLocalizedPath(normalizeDocPath(to, pathname), lang)); + }, [to, pathname, lang, router]); return null; } diff --git a/document/components/docs/categorySwitcher.tsx b/document/components/docs/categorySwitcher.tsx new file mode 100644 index 0000000000..b677b3d9a9 --- /dev/null +++ b/document/components/docs/categorySwitcher.tsx @@ -0,0 +1,57 @@ +'use client'; + +import { useMemo, type ReactNode } from 'react'; +import { usePathname } from 'next/navigation'; +import { SwitcherDropdown } from '@/components/docs/switcherDropdown'; +import { cn } from '@/lib/cn'; + +export type CategorySwitcherOption = { + icon?: ReactNode; + title: ReactNode; + url: string; + urls?: Set; +}; + +type CategorySwitcherProps = { + options: CategorySwitcherOption[]; + className?: string; +}; + +const getCategoryKey = (path: string): string => { + const segments = path.split('/').filter(Boolean); + return segments[1] ?? ''; +}; + +export function CategorySwitcher({ options, className }: CategorySwitcherProps) { + const pathname = usePathname(); + + const selected = useMemo(() => { + const lookup = pathname.endsWith('/') ? pathname.slice(0, -1) : pathname; + const currentCategory = getCategoryKey(lookup); + return ( + options.find((item) => item.urls?.has(lookup)) ?? + options.find((item) => getCategoryKey(item.url) === currentCategory) ?? + options[0] + ); + }, [options, pathname]); + + return ( + ({ + key: item.url, + label: item.title, + icon: item.icon, + href: item.url, + active: item === selected + }))} + /> + ); +} diff --git a/document/components/docs/languageSwitcher.tsx b/document/components/docs/languageSwitcher.tsx new file mode 100644 index 0000000000..e3aecb4138 --- /dev/null +++ b/document/components/docs/languageSwitcher.tsx @@ -0,0 +1,38 @@ +'use client'; + +import { useI18n } from 'fumadocs-ui/contexts/i18n'; +import { SwitcherDropdown } from '@/components/docs/switcherDropdown'; + +const localeFlags: Record = { + en: '🇺🇸', + 'zh-CN': '🇨🇳' +}; + +type LanguageSwitcherProps = { + className?: string; + buttonClassName?: string; + menuClassName?: string; +}; + +export function LanguageSwitcher({ + className, + buttonClassName, + menuClassName +}: LanguageSwitcherProps) { + const { locale, locales = [], onChange } = useI18n(); + + return ( + ({ + key: item.locale, + label: item.name, + icon: {localeFlags[item.locale] ?? '🌐'}, + active: item.locale === locale, + onSelect: () => onChange?.(item.locale) + }))} + /> + ); +} diff --git a/document/components/docs/not-found.tsx b/document/components/docs/not-found.tsx index a8e3c5c9ce..3bc4ac2d6c 100644 --- a/document/components/docs/not-found.tsx +++ b/document/components/docs/not-found.tsx @@ -12,7 +12,7 @@ export default function NotFound() { useEffect(() => { // Redirect to introduction page - window.location.replace(getLocalizedPath('/docs/introduction', lang)); + window.location.replace(getLocalizedPath('/introduction', lang)); }, [lang]); return null; diff --git a/document/components/docs/switcherDropdown.tsx b/document/components/docs/switcherDropdown.tsx new file mode 100644 index 0000000000..ed09ce4d2b --- /dev/null +++ b/document/components/docs/switcherDropdown.tsx @@ -0,0 +1,148 @@ +'use client'; + +import Link from 'next/link'; +import { Check, ChevronDown } from 'lucide-react'; +import { useState, type ReactNode } from 'react'; +import { + Popover, + PopoverContent, + PopoverTrigger +} from 'fumadocs-ui/components/ui/popover'; +import { useSidebar } from 'fumadocs-ui/provider'; +import { cn } from '@/lib/cn'; + +export type SwitcherDropdownOption = { + key: string; + label: ReactNode; + icon?: ReactNode; + href?: string; + active?: boolean; + onSelect?: () => void; +}; + +type SwitcherDropdownProps = { + options: SwitcherDropdownOption[]; + className?: string; + triggerClassName?: string; + contentClassName?: string; + optionClassName?: string; + iconClassName?: string; + align?: 'start' | 'center' | 'end'; + keepSidebarOpenOnSelect?: boolean; +}; + +export function SwitcherDropdown({ + options, + className, + triggerClassName, + contentClassName, + optionClassName, + iconClassName, + align = 'end', + keepSidebarOpenOnSelect = false +}: SwitcherDropdownProps) { + const [open, setOpen] = useState(false); + const { closeOnRedirect } = useSidebar(); + const selected = options.find((item) => item.active) ?? options[0]; + + const selectItem = (item: SwitcherDropdownOption) => { + if (keepSidebarOpenOnSelect) { + closeOnRedirect.current = false; + } + item.onSelect?.(); + setOpen(false); + }; + + const renderOption = (item: SwitcherDropdownOption) => { + const active = item === selected; + const content = ( + <> + {item.icon && ( + + {item.icon} + + )} + {item.label} + + + ); + + const className = cn( + 'flex h-8 w-full cursor-pointer items-center gap-2 rounded-lg px-2.5 text-left text-fd-popover-foreground transition-colors hover:bg-fd-accent', + active && 'font-semibold text-[#3370FF] dark:text-blue-400', + optionClassName + ); + + if (item.href) { + return ( + selectItem(item)} + className={className} + role="option" + aria-selected={active} + > + {content} + + ); + } + + return ( + + ); + }; + + return ( + +
+ + {selected?.icon && ( + + {selected.icon} + + )} + {selected?.label} + + + + {options.map(renderOption)} + +
+
+ ); +} diff --git a/document/components/sidebarKeepOpen.tsx b/document/components/sidebarKeepOpen.tsx index f2244ca69c..2b828f7911 100644 --- a/document/components/sidebarKeepOpen.tsx +++ b/document/components/sidebarKeepOpen.tsx @@ -4,9 +4,14 @@ import { usePathname } from 'next/navigation'; import { useRef } from 'react'; import { useSidebar } from 'fumadocs-ui/provider'; +const getCategoryKey = (path: string): string => { + const segments = path.split('/').filter(Boolean); + return segments[1] ?? ''; +}; + /** * 移动端:点击一级 tab 切换时不关闭 sidebar,点击二级路由时正常关闭。 - * + * * 在渲染阶段检测是否为 tab 间切换,是则设 closeOnRedirect = false。 */ export function SidebarKeepOpen({ tabUrls }: { tabUrls: string[] }) { @@ -19,8 +24,11 @@ export function SidebarKeepOpen({ tabUrls }: { tabUrls: string[] }) { prevPathname.current = pathname; // 判断是否是 tab 间切换(从一个 tab 根路径跳到另一个 tab 根路径) - const prevTab = tabUrls.find((url) => prev.startsWith(url)); - const currTab = tabUrls.find((url) => pathname.startsWith(url)); + const prevCategory = getCategoryKey(prev); + const currCategory = getCategoryKey(pathname); + const tabCategories = new Set(tabUrls.map(getCategoryKey)); + const prevTab = tabCategories.has(prevCategory) ? prevCategory : null; + const currTab = tabCategories.has(currCategory) ? currCategory : null; if (prevTab && currTab && prevTab !== currTab) { // 一级 tab 切换 → 不关闭 sidebar diff --git a/document/content/docs/introduction/guide/dashboard/gapier.en.mdx b/document/content/docs/introduction/guide/dashboard/gapier.en.mdx deleted file mode 100644 index dcd550639e..0000000000 --- a/document/content/docs/introduction/guide/dashboard/gapier.en.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Import Agent Tools with Gapier -description: Quickly import Agent tools into FastGPT using Gapier ---- - -FastGPT V4.7 introduced tool calling, compatible with GPTs Actions. This means you can directly import GPTs-compatible Agent tools. - -Gapier is an online GPTs Actions platform offering 50+ ready-made tools with a daily free quota for testing. Official site: [https://gapier.com/](https://gapier.com/). - -![](/imgs/gapierToolResult1.webp) - -Let's walk through importing Gapier tools into FastGPT. - -## 1. Create a Plugin - -| Step1 | Step2 | Step3 | -| --- | --- | --- | -| ![](/imgs/gapierTool1.png) | ![](/imgs/gapierTool2.png) | Log in to [Gapier](https://gapier.com/) and copy the relevant parameters
![](/imgs/gapierTool3.png) | -| Step4 | Step5 | Step6 | -| Custom request header: Authorization
Value: Bearer your_copied_key
![](/imgs/gapierTool4.png) | ![](/imgs/gapierTool5.png) | ![](/imgs/gapierTool6.png) | - -After creation, if you need to make changes, there's no need to recreate — just modify the parameters and the system will automatically detect and apply the differences. - -![](/imgs/gapierTool7.png) - -## 2. Bind Tools to an Application - -### Basic Mode - -| Step1 | Step2 | -| --- | --- | -| ![](/imgs/gapierTool8.png) | ![](/imgs/gapierTool9.webp) | -| Step3 | Step4 | -| ![](/imgs/gapierTool10.webp) | ![](/imgs/gapierTool11.png) | - -### Advanced Workflow - -| Step1 | Step2 | -| --- | --- | -| ![](/imgs/gapierTool12.webp) | ![](/imgs/gapierTool13.webp) | -| Step3 | Step4 | -| ![](/imgs/gapierTool14.webp) | ![](/imgs/gapierTool15.webp) | - -![](/imgs/gapierTool16.webp) - -## 3. Tool Calling Notes - -### Differences Between Models - -Different models use different methods for tool calling. Models that support toolChoice and functionCall produce better results. Models without these capabilities fall back to prompt-based calling, which is less reliable. To ensure smooth operation, FastGPT's built-in prompts only support calling one tool at a time. - -Check the official documentation to see which models support functionCall (OneAPI support is also required), and adjust the corresponding fields in the model configuration file (see the configuration field reference for details). - -Cloud version users can see whether function calling is supported when selecting a model. - -![](/imgs/gapierTool17.webp) diff --git a/document/content/docs/introduction/guide/dashboard/gapier.mdx b/document/content/docs/introduction/guide/dashboard/gapier.mdx deleted file mode 100644 index 8ea773317a..0000000000 --- a/document/content/docs/introduction/guide/dashboard/gapier.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: 使用 Gapier 快速导入Agent工具 -description: FastGPT 使用 Gapier 快速导入Agent工具 ---- - -FastGPT V4.7版本加入了工具调用,可以兼容 GPTs 的 Actions。这意味着,你可以直接导入兼容 GPTs 的 Agent 工具。 - -Gapier 是一个在线 GPTs Actions工具,提供了50多种现成工具,并且每天有免费额度进行测试,方便用户试用,官方地址为:[https://gapier.com/](https://gapier.com/)。 - -![](/imgs/gapierToolResult1.webp) - -现在,我们开始把 Gapier 的工具导入到 FastGPT 中。 - -## 1. 创建插件 - -| Step1 | Step2 | Step3 | -| --- | --- | --- | -| ![](/imgs/gapierTool1.png) | ![](/imgs/gapierTool2.png) | 登录[Gapier](https://gapier.com/) 复制相关参数
![](/imgs/gapierTool3.png) | -| Step4 | Step5 | Step6 | -| 自定义请求头: Authorization
请求值: Bearer 复制的key
![](/imgs/gapierTool4.png) | ![](/imgs/gapierTool5.png) | ![](/imgs/gapierTool6.png) | - -创建完后,如果需要变更,无需重新创建,只需要修改对应参数即可,会自动做差值比较更新。 - -![](/imgs/gapierTool7.png) - -## 2. 应用绑定工具 - -### 简易模式 - -| Step1 | Step2 | -| --- | --- | -| ![](/imgs/gapierTool8.png) | ![](/imgs/gapierTool9.webp) | -| Step3 | Step4 | -| ![](/imgs/gapierTool10.webp) | ![](/imgs/gapierTool11.png) | - -### 高级编排 - -| Step1 | Step2 | -| --- | --- | -| ![](/imgs/gapierTool12.webp) | ![](/imgs/gapierTool13.webp) | -| Step3 | Step4 | -| ![](/imgs/gapierTool14.webp) | ![](/imgs/gapierTool15.webp) | - -![](/imgs/gapierTool16.webp) - -## 3. 工具调用说明 - -### 不同模型的区别 - -不同模型调用工具采用不同的方法,有些模型支持 toolChoice 和 functionCall 效果会更好。不支持这两种方式的模型通过提示词调用,但是效果不是很好,并且为了保证顺利调用,FastGPT内置的提示词,仅支持每次调用一个工具。 - -具体哪些模型支持 functionCall 可以官网查看(当然,也需要OneAPI支持),同时需要调整模型配置文件中的对应字段(详细看配置字段说明)。 - -线上版用户,可以在模型选择时,看到是否支持函数调用的标识。 - -![](/imgs/gapierTool17.webp) diff --git a/document/content/docs/introduction/guide/dashboard/meta.en.json b/document/content/docs/introduction/guide/dashboard/meta.en.json deleted file mode 100644 index 8901076219..0000000000 --- a/document/content/docs/introduction/guide/dashboard/meta.en.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "Dashboard", - "description": "FastGPT dashboard and workflow node usage guide", - "pages": [ - "basic-mode", - "intro", - "workflow", - "mcp_server", - "mcp_tools", - "gapier", - "evaluation" - ] -} diff --git a/document/content/docs/introduction/guide/dashboard/workflow/ai_chat.mdx b/document/content/docs/introduction/guide/dashboard/workflow/ai_chat.mdx deleted file mode 100644 index 53ec603d50..0000000000 --- a/document/content/docs/introduction/guide/dashboard/workflow/ai_chat.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: AI 对话 -description: FastGPT AI 对话模块介绍 ---- - -import { Alert } from '@/components/docs/Alert'; - -## 特点 - -- 可重复添加 -- 触发执行 -- 核心模块 - -![](/imgs/aichat.png) - -## 参数说明 - -## AI模型 - -可以通过 [config.json](/docs/self-host/config/model/intro) 配置可选的对话模型。 - -点击AI模型后,可以配置模型的相关参数。 - -![](/imgs/aichat02.png) - -![](/imgs/aichat2.png) - - - 具体配置参数介绍可以参考: [AI参数配置说明](/docs/introduction/guide/course/ai_settings/) - diff --git a/document/content/docs/introduction/guide/dashboard/workflow/sandbox.en.mdx b/document/content/docs/introduction/guide/dashboard/workflow/sandbox.en.mdx deleted file mode 100644 index 5b33eb9139..0000000000 --- a/document/content/docs/introduction/guide/dashboard/workflow/sandbox.en.mdx +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: Code Execution -description: FastGPT Code Execution node overview ---- - -![alt text](/imgs/image.png) - -## Function - -Runs simple JavaScript code for complex data processing. Code executes in a sandbox with no access to network requests, DOM, or async operations. For advanced use cases, use an HTTP node instead. - -**Important Notes** - -- Self-hosted users must deploy the `fastgpt-sandbox` image and set the `CODE_SANDBOX_URL` environment variable. -- The sandbox enforces a 10-second max runtime and 32 MB memory limit. - -## Variable Input - -Add the variables your code needs via custom inputs. In the code's `main` function, destructure them by matching name. - -As shown above, the custom inputs include `data1` and `data2`, which can be destructured with the same names in the `main` function. - -## Result Output - -You must return an object. - -In custom outputs, add variable names to retrieve values from the corresponding object keys. For example, the image above returns: - -```json -{ - result: data1, - data2 -} -``` - -This object has 2 keys: `result` and `data2` (JS shorthand where key = data2, value = data2). You can then add 2 custom output variables to access the values under each key. - -## Built-in JS Global Variables - -### delay - -Returns after a 1-second delay: - -```js -async function main({data1, data2}){ - await delay(1000) - return { - result: "111" - } -} -``` - -### countToken - -```js -function main({input}){ - return { - result: countToken(input) - } -} -``` - -![alt text](/imgs/image-1.png) - -### strToBase64 (added in v4.8.11) - -Useful for converting SVG images to base64 format for display. - -```js -function main({input}){ - - return { - /* - param1: input - the string to convert - param2: base64 prefix - */ - result: strToBase64(input,'data:image/svg+xml;base64,') - } -} -``` - -![alt text](/imgs/image-2.png) - -### createHmac - -Works the same as Node.js crypto's `createHmac` method. - -```js -function main({secret}){ - const {sign,timestamp} = createHmac('sha256',secret) - - return { - sign,timestamp - } -} -``` diff --git a/document/content/docs/introduction/guide/dashboard/workflow/sandbox.mdx b/document/content/docs/introduction/guide/dashboard/workflow/sandbox.mdx deleted file mode 100644 index b01c84c1dc..0000000000 --- a/document/content/docs/introduction/guide/dashboard/workflow/sandbox.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: 代码运行(弃) -description: FastGPT 代码运行节点介绍(适用于 4.14.7 及以下版本) ---- - -> 本文档适用于 FastGPT **4.14.7 及以下版本**。4.14.8 及以上版本请参考 [代码运行(新版)](/docs/introduction/guide/dashboard/workflow/sandbox-v5)。 - -![alt text](/imgs/image.png) - -## 功能 - -可用于执行一段简单的 js 代码,用于进行一些复杂的数据处理。代码运行在沙盒中,无法进行网络请求、dom和异步操作。如需复杂操作,需外挂 HTTP 实现。 - -**注意事项** - -- 私有化用户需要部署`fastgpt-sandbox` 镜像,并配置`CODE_SANDBOX_URL`环境变量。 -- 沙盒最大运行 10s, 32M 内存限制。 - - -## 变量输入 - -可在自定义输入中添加代码运行需要的变量,在代码的 main 函数中,可解构出相同名字的变量。 - -如上图,自定义输入中有 data1 和 data2 两个变量,main 函数中可以解构出相同名字的变量。 - -## 结果输出 - -务必返回一个 object 对象 - -自定义输出中,可以添加变量名来获取 object 对应 key 下的值。例如上图中,返回了一个对象: - -```json -{ - result: data1, - data2 -} -``` - -他有 2 个 key:result和 data2(js 缩写,key=data2,value=data2)。这时候自定义输出中就可以添加 2 个变量来获取对应 key 下的 value。 - -## 内置 JS 全局变量 - -### delay 延迟 - -延迟 1 秒后返回 - -```js -async function main({data1, data2}){ - await delay(1000) - return { - result: "111" - } -} -``` - -### countToken 统计 token - -```js -function main({input}){ - return { - result: countToken(input) - } -} -``` - -![alt text](/imgs/image-1.png) - -### strToBase64 字符串转 base64(4.8.11 版本新增) - -可用于将 SVG 图片转换为 base64 格式展示。 - -```js -function main({input}){ - - return { - /* - param1: input 需要转换的字符串 - param2: base64 prefix 前缀 - */ - result: strToBase64(input,'data:image/svg+xml;base64,') - } -} -``` - -![alt text](/imgs/image-2.png) - -### createHmac 加密 - -与 node 中 crypto 的 createHmac 方法一致。 - -```js -function main({secret}){ - const {sign,timestamp} = createHmac('sha256',secret) - - return { - sign,timestamp - } -} -``` diff --git a/document/content/docs/self-host/faq.en.mdx b/document/content/docs/self-host/faq.en.mdx deleted file mode 100644 index b8f1fc71fb..0000000000 --- a/document/content/docs/self-host/faq.en.mdx +++ /dev/null @@ -1,393 +0,0 @@ ---- -title: Private Deployment FAQ -description: FastGPT private deployment common issues ---- - -## 1. Error Troubleshooting - -Check [Issues](https://github.com/labring/FastGPT/issues) first, or create a new one. For private deployment errors, provide detailed steps, logs, and screenshots — otherwise it's very difficult to diagnose. - -### Backend Errors - -1. Run `docker ps -a` to check all container statuses. Verify everything is running. If not, use `docker logs ` to view logs. -2. If containers are running normally, use `docker logs ` to check for error logs. - -### Frontend Errors - -When the frontend crashes, the page will display an error prompting you to check console logs. Open the browser console and check the `console` tab. Click the log hyperlinks to see the specific error file — provide these details for troubleshooting. - -### OneAPI Errors - -Errors with `requestId` are from OneAPI, usually caused by model API issues. See [Common OneAPI Errors](/docs/self-host/faq/#3-common-oneapi-errors) - -## 2. General Issues - -### Frontend Page Crash - -1. 90% of cases: incorrect model configuration. Ensure each model type has at least one enabled. Check if `object` parameters are abnormal (arrays and objects) — if empty, try providing an empty array or object. -2. Browser compatibility: the project uses advanced syntax that may not work in older browsers. Provide specific steps and console errors in an issue. -3. Disable browser translation — it can cause page crashes. - -### Does Sealos deployment have fewer limitations than local deployment? - -![](/imgs/faq1.png) -This is the index model's length limit — it's the same regardless of deployment method. Different index models have different configurations, which you can modify in the admin panel. - -### How to Mount Mini Program Config Files - -Mount the verification file to: /app/projects/app/public/xxxx.txt - -Then restart. For example: - -![](/imgs/faq2.png) - -### Database Port 3306 Already in Use - -![](/imgs/faq3.png) - -Change the port mapping to something like 3307, e.g., 3307:3306. - -### Local Deployment Limitations - -See details at https://fael3z0zfze.feishu.cn/wiki/OFpAw8XzAi36Guk8dfucrCKUnjg. - -### Can It Run Fully Offline? - -Yes. You'll need vector models and LLM models ready. - -### Other Models Can't Do Question Classification / Content Extraction - -1. Check logs. If you see "JSON invalid" or "not support tool", the model doesn't support tool/function calling. Set `toolChoice=false` and `functionCall=false` to fall back to prompt mode. Built-in prompts are only tested with commercial model APIs. Question classification mostly works; content extraction is less reliable. -2. If configured correctly with no error logs, the prompts may not suit the model. Customize via `customCQPrompt`. - -### Page Crash - -1. Disable browser translation. -2. Check if the config file loaded properly — missing system info causes null pointer errors. - -- 95% of cases: incorrect config file, showing "xxx undefined" -- "URI malformed" error: report the specific operation and page in an issue — caused by special character encoding errors. - -3. Some API compatibility issues (rare) - -### Slow Response After Enabling Content Completion - -1. Content completion requires an additional AI generation round. -2. Performs 3–5 query rounds — insufficient database performance will cause noticeable slowdowns. - -### Page Works Fine, API Returns Errors - -The page uses `stream=true` mode, so the API also needs `stream=true` for testing. Some model APIs (especially domestic ones) have poor non-stream compatibility. -Same as above — test with curl. - -### Knowledge Base Indexing Has No Progress / Very Slow - -Check error logs first. Possible scenarios: - -1. Can chat but no indexing progress: vector model (vectorModels) not configured -2. Can't chat or index: API call failed — may not be connected to OneAPI or OpenAI -3. Has progress but very slow: API key issue. OpenAI free accounts have very limited rate limits (3 or 60 requests/minute, 200/day). - -### Connection Error - -Network issue. Servers in China can't reach OpenAI directly — verify your AI model connection. - -Or FastGPT can't reach OneAPI (not on the same network). - -### Modified vectorModels But No Effect - -1. Restart the container and confirm the model config loaded (check logs or the new knowledge base creation page). -2. Refresh the browser. -3. For existing knowledge bases, delete and recreate them. The vector model is bound at creation time and won't update dynamically. - -## 3. Common OneAPI Errors - -Errors with `requestId` are from OneAPI. - -### insufficient_user_quota user quota is not enough - -OneAPI account balance insufficient. The default root user only has $200 — increase it manually. - -Path: Open OneAPI -> Users -> Edit root user -> Increase remaining balance - -### xxx Channel Not Found - -The model in FastGPT's config must match a model in OneAPI channels. Check: - -1. The model channel isn't configured in OneAPI, or is disabled. -2. FastGPT config has models not configured in OneAPI. Don't add models to config that OneAPI doesn't have. -3. Created a knowledge base with an old vector model, then updated the vector model. Delete old knowledge bases and recreate. - -If OneAPI doesn't have the model configured, don't add it to `config.json` either. - -### Model Test Click Fails - -OneAPI only tests the first model in a channel, and only chat models. Vector models can't be auto-tested — send manual requests. [View test command examples](/docs/self-host/faq/#how-to-check-model-issues) - -### get request url failed: Post `"https://xxx"` dial tcp: xxxx - -OneAPI can't reach the model — check network configuration. - -### Incorrect API key provided: sk-xxxx.You can find your api Key at xxx - -OneAPI API Key configured incorrectly. Modify the `OPENAI_API_KEY` environment variable and restart (`docker-compose down` then `docker-compose up -d`). - -Use `exec` to enter the container, then `env` to verify environment variables. - -### bad_response_status_code bad response status code 503 - -1. Model service unavailable -2. Incompatible model API parameters (temperature, max token, etc.) -3. ... - -### Tiktoken Download Failed - -OneAPI downloads a tiktoken dependency at startup. Network failure causes startup failure. See [OneAPI Offline Deployment](https://blog.csdn.net/wanh/article/details/139039216). - -## 4. Common Model Issues - -### How to Check Model Availability - -1. For self-hosted models, confirm the deployment is working. -2. Use CURL to directly test the upstream model (both cloud and private models). -3. Use CURL to test through OneAPI. -4. Test the model in FastGPT. - -Here are some test CURL examples: - - - -```bash -curl https://api.openai.com/v1/chat/completions \ - -H "Content-Type: application/json" \ - -H "Authorization: Bearer $OPENAI_API_KEY" \ - -d '{ - "model": "gpt-4o", - "messages": [ - { - "role": "system", - "content": "You are a helpful assistant." - }, - { - "role": "user", - "content": "Hello!" - } - ] - }' -``` - - -```bash -curl https://api.openai.com/v1/embeddings \ - -H "Authorization: Bearer $OPENAI_API_KEY" \ - -H "Content-Type: application/json" \ - -d '{ - "input": "The food was delicious and the waiter...", - "model": "text-embedding-ada-002", - "encoding_format": "float" - }' -``` - - -```bash -curl --location --request POST 'https://xxxx.com/api/v1/rerank' \ ---header 'Authorization: Bearer {{ACCESS_TOKEN}}' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "bge-rerank-m3", - "query": "导演是谁", - "documents": [ - "你是谁?\n我是电影《铃芽之旅》助手" - ] -}' -``` - - -```bash -curl https://api.openai.com/v1/audio/speech \ - -H "Authorization: Bearer $OPENAI_API_KEY" \ - -H "Content-Type: application/json" \ - -d '{ - "model": "tts-1", - "input": "The quick brown fox jumped over the lazy dog.", - "voice": "alloy" - }' \ - --output speech.mp3 -``` - - -```bash -curl https://api.openai.com/v1/audio/transcriptions \ - -H "Authorization: Bearer $OPENAI_API_KEY" \ - -H "Content-Type: multipart/form-data" \ - -F file="@/path/to/file/audio.mp3" \ - -F model="whisper-1" -``` - - - -### Error — Model Response Empty / Model Error - -This occurs when OneAPI ends the stream request without returning any content. - -Version 4.8.10 added error logging — the actual request body is printed in logs on error. Copy it and use curl to test against OneAPI. - -Since OneAPI can't properly catch errors in stream mode, you can set `stream=false` to get precise error messages. - -Possible causes: - -1. Content moderation triggered -2. Unsupported model parameters: keep only messages and essential parameters, remove the rest -3. Parameters don't meet model requirements: e.g., some models don't support temperature=0, some don't support two decimal places, max_tokens exceeded, context too long, etc. -4. Model deployment issues with stream mode incompatibility - -Test example — copy the request body from error logs: - -```bash -curl --location --request POST 'https://api.openai.com/v1/chat/completions' \ ---header 'Authorization: Bearer sk-xxxx' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "xxx", - "temperature": 0.01, - "max_tokens": 1000, - "stream": true, - "messages": [ - { - "role": "user", - "content": " 你是饿" - } - ] -}' -``` - -### How to Test if a Model Supports Tool Calling - -Both the model provider and OneAPI must support tool calling. Test as follows: - -##### 1. Send a first-round stream mode tool call request to OneAPI via `curl`. - -```bash -curl --location --request POST 'https://oneapi.xxx/v1/chat/completions' \ ---header 'Authorization: Bearer sk-xxxx' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "gpt-5", - "temperature": 0.01, - "max_tokens": 8000, - "stream": true, - "messages": [ - { - "role": "user", - "content": "几点了" - } - ], - "tools": [ - { - "type": "function", - "function": { - "name": "hCVbIY", - "description": "获取用户当前时区的时间。", - "parameters": { - "type": "object", - "properties": {}, - "required": [] - } - } - } - ], - "tool_choice": "auto" -}' -``` - -##### 2. Check the Response - -If tool calling works, the response includes `tool_calls` parameters. - -```json -{ - "id": "chatcmpl-A7kwo1rZ3OHYSeIFgfWYxu8X2koN3", - "object": "chat.completion.chunk", - "created": 1726412126, - "model": "gpt-5", - "system_fingerprint": "fp_483d39d857", - "choices": [ - { - "index": 0, - "id": "call_0n24eiFk8OUyIyrdEbLdirU7", - "type": "function", - "function": { - "name": "mEYIcFl84rYC", - "arguments": "" - } - } - ], - "refusal": null - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null -} -``` - -##### 3. Send a second-round stream mode tool call request to OneAPI via `curl`. - -The second round sends tool results back to the model and returns the model's response. - -```bash -curl --location --request POST 'https://oneapi.xxxx/v1/chat/completions' \ ---header 'Authorization: Bearer sk-xxx' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "gpt-5", - "temperature": 0.01, - "max_tokens": 8000, - "stream": true, - "messages": [ - { - "role": "user", - "content": "几点了" - }, - { - "role": "assistant", - "tool_calls": [ - { - "id": "kDia9S19c4RO", - "type": "function", - "function": { - "name": "hCVbIY", - "arguments": "{}" - } - } - ] - }, - { - "tool_call_id": "kDia9S19c4RO", - "role": "tool", - "name": "hCVbIY", - "content": "{\n \"time\": \"2024-09-14 22:59:21 Sunday\"\n}" - } - ], - "tools": [ - { - "type": "function", - "function": { - "name": "hCVbIY", - "description": "获取用户当前时区的时间。", - "parameters": { - "type": "object", - "properties": {}, - "required": [] - } - } - } - ], - "tool_choice": "auto" -}' -``` - -### Vector Retrieval Score Greater Than 1 - -Caused by the model not being normalized. Only normalized models are currently supported. diff --git a/document/content/docs/self-host/meta.json b/document/content/docs/self-host/meta.json deleted file mode 100644 index 3f2954d343..0000000000 --- a/document/content/docs/self-host/meta.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "title": "自部署", - "description": "FastGPT 自部署使用案例", - "root": true, - "pages": [ - "---开始---", - "deploy/docker", - "deploy/sealos", - "dev", - "---配置说明---", - "config/model", - "config/object-storage", - "config/json", - "config/signoz", - "---故障排查---", - "troubleshooting/attention", - "troubleshooting/faq", - "troubleshooting/methods", - "troubleshooting/model-errors", - "troubleshooting/s3-issues", - "---版本升级---", - "upgrading/upgrade-intruction", - "...upgrading", - "---其他---", - "migration", - "custom-models", - "design" - ] -} diff --git a/document/content/docs/self-host/upgrading/meta.json b/document/content/docs/self-host/upgrading/meta.json deleted file mode 100644 index 73238bb3ed..0000000000 --- a/document/content/docs/self-host/upgrading/meta.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "title": "版本列表", - "description": "FastGPT 版本列表", - "pages": ["4-15", "4-14", "4-13", "4-12", "outdated"] -} diff --git a/document/content/docs/toc.en.mdx b/document/content/docs/toc.en.mdx deleted file mode 100644 index 4db2f09e0d..0000000000 --- a/document/content/docs/toc.en.mdx +++ /dev/null @@ -1,217 +0,0 @@ ---- -title: FastGPT Toc -description: FastGPT Toc ---- - -- [/en/docs/faq/app](/en/docs/faq/app) -- [/en/docs/faq/chat](/en/docs/faq/chat) -- [/en/docs/faq/dataset](/en/docs/faq/dataset) -- [/en/docs/faq/external_channel_integration](/en/docs/faq/external_channel_integration) -- [/en/docs/faq/other](/en/docs/faq/other) -- [/en/docs/faq/points_consumption](/en/docs/faq/points_consumption) -- [/en/docs/introduction/cloud/faq](/en/docs/introduction/cloud/faq) -- [/en/docs/introduction/cloud/intro](/en/docs/introduction/cloud/intro) -- [/en/docs/introduction/cloud/privacy](/en/docs/introduction/cloud/privacy) -- [/en/docs/introduction/cloud/terms](/en/docs/introduction/cloud/terms) -- [/en/docs/introduction/commercial](/en/docs/introduction/commercial) -- [/en/docs/introduction/guide/DialogBoxes/htmlRendering](/en/docs/introduction/guide/DialogBoxes/htmlRendering) -- [/en/docs/introduction/guide/DialogBoxes/quoteList](/en/docs/introduction/guide/DialogBoxes/quoteList) -- [/en/docs/introduction/guide/admin/sso](/en/docs/introduction/guide/admin/sso) -- [/en/docs/introduction/guide/admin/teamMode](/en/docs/introduction/guide/admin/teamMode) -- [/en/docs/introduction/guide/course/ai_settings](/en/docs/introduction/guide/course/ai_settings) -- [/en/docs/introduction/guide/course/chat_input_guide](/en/docs/introduction/guide/course/chat_input_guide) -- [/en/docs/introduction/guide/course/fileInput](/en/docs/introduction/guide/course/fileInput) -- [/en/docs/introduction/guide/course/quick-start](/en/docs/introduction/guide/course/quick-start) -- [/en/docs/introduction/guide/dashboard/basic-mode](/en/docs/introduction/guide/dashboard/basic-mode) -- [/en/docs/introduction/guide/dashboard/evaluation](/en/docs/introduction/guide/dashboard/evaluation) -- [/en/docs/introduction/guide/dashboard/gapier](/en/docs/introduction/guide/dashboard/gapier) -- [/en/docs/introduction/guide/dashboard/intro](/en/docs/introduction/guide/dashboard/intro) -- [/en/docs/introduction/guide/dashboard/mcp_server](/en/docs/introduction/guide/dashboard/mcp_server) -- [/en/docs/introduction/guide/dashboard/mcp_tools](/en/docs/introduction/guide/dashboard/mcp_tools) -- [/en/docs/introduction/guide/dashboard/workflow/ai_chat](/en/docs/introduction/guide/dashboard/workflow/ai_chat) -- [/en/docs/introduction/guide/dashboard/workflow/content_extract](/en/docs/introduction/guide/dashboard/workflow/content_extract) -- [/en/docs/introduction/guide/dashboard/workflow/coreferenceResolution](/en/docs/introduction/guide/dashboard/workflow/coreferenceResolution) -- [/en/docs/introduction/guide/dashboard/workflow/custom_feedback](/en/docs/introduction/guide/dashboard/workflow/custom_feedback) -- [/en/docs/introduction/guide/dashboard/workflow/dataset_search](/en/docs/introduction/guide/dashboard/workflow/dataset_search) -- [/en/docs/introduction/guide/dashboard/workflow/document_parsing](/en/docs/introduction/guide/dashboard/workflow/document_parsing) -- [/en/docs/introduction/guide/dashboard/workflow/form_input](/en/docs/introduction/guide/dashboard/workflow/form_input) -- [/en/docs/introduction/guide/dashboard/workflow/http](/en/docs/introduction/guide/dashboard/workflow/http) -- [/en/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge](/en/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge) -- [/en/docs/introduction/guide/dashboard/workflow/laf](/en/docs/introduction/guide/dashboard/workflow/laf) -- [/en/docs/introduction/guide/dashboard/workflow/loop](/en/docs/introduction/guide/dashboard/workflow/loop) -- [/en/docs/introduction/guide/dashboard/workflow/parallel_run](/en/docs/introduction/guide/dashboard/workflow/parallel_run) -- [/en/docs/introduction/guide/dashboard/workflow/question_classify](/en/docs/introduction/guide/dashboard/workflow/question_classify) -- [/en/docs/introduction/guide/dashboard/workflow/reply](/en/docs/introduction/guide/dashboard/workflow/reply) -- [/en/docs/introduction/guide/dashboard/workflow/sandbox](/en/docs/introduction/guide/dashboard/workflow/sandbox) -- [/en/docs/introduction/guide/dashboard/workflow/sandbox-v2](/en/docs/introduction/guide/dashboard/workflow/sandbox-v2) -- [/en/docs/introduction/guide/dashboard/workflow/text_editor](/en/docs/introduction/guide/dashboard/workflow/text_editor) -- [/en/docs/introduction/guide/dashboard/workflow/tfswitch](/en/docs/introduction/guide/dashboard/workflow/tfswitch) -- [/en/docs/introduction/guide/dashboard/workflow/tool](/en/docs/introduction/guide/dashboard/workflow/tool) -- [/en/docs/introduction/guide/dashboard/workflow/user-selection](/en/docs/introduction/guide/dashboard/workflow/user-selection) -- [/en/docs/introduction/guide/dashboard/workflow/variable_update](/en/docs/introduction/guide/dashboard/workflow/variable_update) -- [/en/docs/introduction/guide/knowledge_base/RAG](/en/docs/introduction/guide/knowledge_base/RAG) -- [/en/docs/introduction/guide/knowledge_base/api_dataset](/en/docs/introduction/guide/knowledge_base/api_dataset) -- [/en/docs/introduction/guide/knowledge_base/collection_tags](/en/docs/introduction/guide/knowledge_base/collection_tags) -- [/en/docs/introduction/guide/knowledge_base/dataset_engine](/en/docs/introduction/guide/knowledge_base/dataset_engine) -- [/en/docs/introduction/guide/knowledge_base/lark_dataset](/en/docs/introduction/guide/knowledge_base/lark_dataset) -- [/en/docs/introduction/guide/knowledge_base/template](/en/docs/introduction/guide/knowledge_base/template) -- [/en/docs/introduction/guide/knowledge_base/third_dataset](/en/docs/introduction/guide/knowledge_base/third_dataset) -- [/en/docs/introduction/guide/knowledge_base/websync](/en/docs/introduction/guide/knowledge_base/websync) -- [/en/docs/introduction/guide/knowledge_base/yuque_dataset](/en/docs/introduction/guide/knowledge_base/yuque_dataset) -- [/en/docs/introduction/guide/plugins/bing_search_plugin](/en/docs/introduction/guide/plugins/bing_search_plugin) -- [/en/docs/introduction/guide/plugins/dev_system_tool](/en/docs/introduction/guide/plugins/dev_system_tool) -- [/en/docs/introduction/guide/plugins/doc2x_plugin_guide](/en/docs/introduction/guide/plugins/doc2x_plugin_guide) -- [/en/docs/introduction/guide/plugins/google_search_plugin_guide](/en/docs/introduction/guide/plugins/google_search_plugin_guide) -- [/en/docs/introduction/guide/plugins/searxng_plugin_guide](/en/docs/introduction/guide/plugins/searxng_plugin_guide) -- [/en/docs/introduction/guide/plugins/upload_system_tool](/en/docs/introduction/guide/plugins/upload_system_tool) -- [/en/docs/introduction/guide/team_permissions/customDomain](/en/docs/introduction/guide/team_permissions/customDomain) -- [/en/docs/introduction/guide/team_permissions/invitation_link](/en/docs/introduction/guide/team_permissions/invitation_link) -- [/en/docs/introduction/guide/team_permissions/team_roles_permissions](/en/docs/introduction/guide/team_permissions/team_roles_permissions) -- [/en/docs/introduction/index](/en/docs/introduction/index) -- [/en/docs/introduction/opensource/intro](/en/docs/introduction/opensource/intro) -- [/en/docs/introduction/opensource/license](/en/docs/introduction/opensource/license) -- [/en/docs/openapi/app](/en/docs/openapi/app) -- [/en/docs/openapi/chat](/en/docs/openapi/chat) -- [/en/docs/openapi/dataset](/en/docs/openapi/dataset) -- [/en/docs/openapi/index](/en/docs/openapi/index) -- [/en/docs/openapi/intro](/en/docs/openapi/intro) -- [/en/docs/openapi/share](/en/docs/openapi/share) -- [/en/docs/self-host/config/json](/en/docs/self-host/config/json) -- [/en/docs/self-host/config/model/intro](/en/docs/self-host/config/model/intro) -- [/en/docs/self-host/config/model/minimax](/en/docs/self-host/config/model/minimax) -- [/en/docs/self-host/config/model/siliconCloud](/en/docs/self-host/config/model/siliconCloud) -- [/en/docs/self-host/config/object-storage](/en/docs/self-host/config/object-storage) -- [/en/docs/self-host/config/signoz](/en/docs/self-host/config/signoz) -- [/en/docs/self-host/custom-models/bge-rerank](/en/docs/self-host/custom-models/bge-rerank) -- [/en/docs/self-host/custom-models/chatglm2](/en/docs/self-host/custom-models/chatglm2) -- [/en/docs/self-host/custom-models/chatglm2-m3e](/en/docs/self-host/custom-models/chatglm2-m3e) -- [/en/docs/self-host/custom-models/m3e](/en/docs/self-host/custom-models/m3e) -- [/en/docs/self-host/custom-models/marker](/en/docs/self-host/custom-models/marker) -- [/en/docs/self-host/custom-models/mineru](/en/docs/self-host/custom-models/mineru) -- [/en/docs/self-host/custom-models/ollama](/en/docs/self-host/custom-models/ollama) -- [/en/docs/self-host/custom-models/xinference](/en/docs/self-host/custom-models/xinference) -- [/en/docs/self-host/deploy/docker](/en/docs/self-host/deploy/docker) -- [/en/docs/self-host/deploy/sealos](/en/docs/self-host/deploy/sealos) -- [/en/docs/self-host/design/dataset](/en/docs/self-host/design/dataset) -- [/en/docs/self-host/design/design_plugin](/en/docs/self-host/design/design_plugin) -- [/en/docs/self-host/dev](/en/docs/self-host/dev) -- [/en/docs/self-host/faq](/en/docs/self-host/faq) -- [/en/docs/self-host/index](/en/docs/self-host/index) -- [/en/docs/self-host/migration/docker_db](/en/docs/self-host/migration/docker_db) -- [/en/docs/self-host/migration/docker_mongo](/en/docs/self-host/migration/docker_mongo) -- [/en/docs/self-host/troubleshooting/attention](/en/docs/self-host/troubleshooting/attention) -- [/en/docs/self-host/troubleshooting/faq](/en/docs/self-host/troubleshooting/faq) -- [/en/docs/self-host/troubleshooting/methods](/en/docs/self-host/troubleshooting/methods) -- [/en/docs/self-host/troubleshooting/model-errors](/en/docs/self-host/troubleshooting/model-errors) -- [/en/docs/self-host/troubleshooting/s3-issues](/en/docs/self-host/troubleshooting/s3-issues) -- [/en/docs/self-host/upgrading/4-12/4120](/en/docs/self-host/upgrading/4-12/4120) -- [/en/docs/self-host/upgrading/4-12/4121](/en/docs/self-host/upgrading/4-12/4121) -- [/en/docs/self-host/upgrading/4-12/4122](/en/docs/self-host/upgrading/4-12/4122) -- [/en/docs/self-host/upgrading/4-12/4123](/en/docs/self-host/upgrading/4-12/4123) -- [/en/docs/self-host/upgrading/4-12/4124](/en/docs/self-host/upgrading/4-12/4124) -- [/en/docs/self-host/upgrading/4-13/4130](/en/docs/self-host/upgrading/4-13/4130) -- [/en/docs/self-host/upgrading/4-13/4131](/en/docs/self-host/upgrading/4-13/4131) -- [/en/docs/self-host/upgrading/4-13/4132](/en/docs/self-host/upgrading/4-13/4132) -- [/en/docs/self-host/upgrading/4-14/4140](/en/docs/self-host/upgrading/4-14/4140) -- [/en/docs/self-host/upgrading/4-14/4141](/en/docs/self-host/upgrading/4-14/4141) -- [/en/docs/self-host/upgrading/4-14/41410](/en/docs/self-host/upgrading/4-14/41410) -- [/en/docs/self-host/upgrading/4-14/41411](/en/docs/self-host/upgrading/4-14/41411) -- [/en/docs/self-host/upgrading/4-14/41412](/en/docs/self-host/upgrading/4-14/41412) -- [/en/docs/self-host/upgrading/4-14/41413](/en/docs/self-host/upgrading/4-14/41413) -- [/en/docs/self-host/upgrading/4-14/41414](/en/docs/self-host/upgrading/4-14/41414) -- [/en/docs/self-host/upgrading/4-14/41415](/en/docs/self-host/upgrading/4-14/41415) -- [/en/docs/self-host/upgrading/4-14/4142](/en/docs/self-host/upgrading/4-14/4142) -- [/en/docs/self-host/upgrading/4-14/4143](/en/docs/self-host/upgrading/4-14/4143) -- [/en/docs/self-host/upgrading/4-14/4144](/en/docs/self-host/upgrading/4-14/4144) -- [/en/docs/self-host/upgrading/4-14/4145](/en/docs/self-host/upgrading/4-14/4145) -- [/en/docs/self-host/upgrading/4-14/41451](/en/docs/self-host/upgrading/4-14/41451) -- [/en/docs/self-host/upgrading/4-14/4146](/en/docs/self-host/upgrading/4-14/4146) -- [/en/docs/self-host/upgrading/4-14/4147](/en/docs/self-host/upgrading/4-14/4147) -- [/en/docs/self-host/upgrading/4-14/4148](/en/docs/self-host/upgrading/4-14/4148) -- [/en/docs/self-host/upgrading/4-14/41481](/en/docs/self-host/upgrading/4-14/41481) -- [/en/docs/self-host/upgrading/4-14/4149](/en/docs/self-host/upgrading/4-14/4149) -- [/en/docs/self-host/upgrading/outdated/40](/en/docs/self-host/upgrading/outdated/40) -- [/en/docs/self-host/upgrading/outdated/41](/en/docs/self-host/upgrading/outdated/41) -- [/en/docs/self-host/upgrading/outdated/4100](/en/docs/self-host/upgrading/outdated/4100) -- [/en/docs/self-host/upgrading/outdated/4101](/en/docs/self-host/upgrading/outdated/4101) -- [/en/docs/self-host/upgrading/outdated/4110](/en/docs/self-host/upgrading/outdated/4110) -- [/en/docs/self-host/upgrading/outdated/4111](/en/docs/self-host/upgrading/outdated/4111) -- [/en/docs/self-host/upgrading/outdated/42](/en/docs/self-host/upgrading/outdated/42) -- [/en/docs/self-host/upgrading/outdated/421](/en/docs/self-host/upgrading/outdated/421) -- [/en/docs/self-host/upgrading/outdated/43](/en/docs/self-host/upgrading/outdated/43) -- [/en/docs/self-host/upgrading/outdated/44](/en/docs/self-host/upgrading/outdated/44) -- [/en/docs/self-host/upgrading/outdated/441](/en/docs/self-host/upgrading/outdated/441) -- [/en/docs/self-host/upgrading/outdated/442](/en/docs/self-host/upgrading/outdated/442) -- [/en/docs/self-host/upgrading/outdated/445](/en/docs/self-host/upgrading/outdated/445) -- [/en/docs/self-host/upgrading/outdated/446](/en/docs/self-host/upgrading/outdated/446) -- [/en/docs/self-host/upgrading/outdated/447](/en/docs/self-host/upgrading/outdated/447) -- [/en/docs/self-host/upgrading/outdated/45](/en/docs/self-host/upgrading/outdated/45) -- [/en/docs/self-host/upgrading/outdated/451](/en/docs/self-host/upgrading/outdated/451) -- [/en/docs/self-host/upgrading/outdated/452](/en/docs/self-host/upgrading/outdated/452) -- [/en/docs/self-host/upgrading/outdated/46](/en/docs/self-host/upgrading/outdated/46) -- [/en/docs/self-host/upgrading/outdated/461](/en/docs/self-host/upgrading/outdated/461) -- [/en/docs/self-host/upgrading/outdated/462](/en/docs/self-host/upgrading/outdated/462) -- [/en/docs/self-host/upgrading/outdated/463](/en/docs/self-host/upgrading/outdated/463) -- [/en/docs/self-host/upgrading/outdated/464](/en/docs/self-host/upgrading/outdated/464) -- [/en/docs/self-host/upgrading/outdated/465](/en/docs/self-host/upgrading/outdated/465) -- [/en/docs/self-host/upgrading/outdated/466](/en/docs/self-host/upgrading/outdated/466) -- [/en/docs/self-host/upgrading/outdated/467](/en/docs/self-host/upgrading/outdated/467) -- [/en/docs/self-host/upgrading/outdated/468](/en/docs/self-host/upgrading/outdated/468) -- [/en/docs/self-host/upgrading/outdated/469](/en/docs/self-host/upgrading/outdated/469) -- [/en/docs/self-host/upgrading/outdated/47](/en/docs/self-host/upgrading/outdated/47) -- [/en/docs/self-host/upgrading/outdated/471](/en/docs/self-host/upgrading/outdated/471) -- [/en/docs/self-host/upgrading/outdated/48](/en/docs/self-host/upgrading/outdated/48) -- [/en/docs/self-host/upgrading/outdated/481](/en/docs/self-host/upgrading/outdated/481) -- [/en/docs/self-host/upgrading/outdated/4810](/en/docs/self-host/upgrading/outdated/4810) -- [/en/docs/self-host/upgrading/outdated/4811](/en/docs/self-host/upgrading/outdated/4811) -- [/en/docs/self-host/upgrading/outdated/4812](/en/docs/self-host/upgrading/outdated/4812) -- [/en/docs/self-host/upgrading/outdated/4813](/en/docs/self-host/upgrading/outdated/4813) -- [/en/docs/self-host/upgrading/outdated/4814](/en/docs/self-host/upgrading/outdated/4814) -- [/en/docs/self-host/upgrading/outdated/4815](/en/docs/self-host/upgrading/outdated/4815) -- [/en/docs/self-host/upgrading/outdated/4816](/en/docs/self-host/upgrading/outdated/4816) -- [/en/docs/self-host/upgrading/outdated/4817](/en/docs/self-host/upgrading/outdated/4817) -- [/en/docs/self-host/upgrading/outdated/4818](/en/docs/self-host/upgrading/outdated/4818) -- [/en/docs/self-host/upgrading/outdated/4819](/en/docs/self-host/upgrading/outdated/4819) -- [/en/docs/self-host/upgrading/outdated/482](/en/docs/self-host/upgrading/outdated/482) -- [/en/docs/self-host/upgrading/outdated/4820](/en/docs/self-host/upgrading/outdated/4820) -- [/en/docs/self-host/upgrading/outdated/4821](/en/docs/self-host/upgrading/outdated/4821) -- [/en/docs/self-host/upgrading/outdated/4822](/en/docs/self-host/upgrading/outdated/4822) -- [/en/docs/self-host/upgrading/outdated/4823](/en/docs/self-host/upgrading/outdated/4823) -- [/en/docs/self-host/upgrading/outdated/483](/en/docs/self-host/upgrading/outdated/483) -- [/en/docs/self-host/upgrading/outdated/484](/en/docs/self-host/upgrading/outdated/484) -- [/en/docs/self-host/upgrading/outdated/485](/en/docs/self-host/upgrading/outdated/485) -- [/en/docs/self-host/upgrading/outdated/486](/en/docs/self-host/upgrading/outdated/486) -- [/en/docs/self-host/upgrading/outdated/487](/en/docs/self-host/upgrading/outdated/487) -- [/en/docs/self-host/upgrading/outdated/488](/en/docs/self-host/upgrading/outdated/488) -- [/en/docs/self-host/upgrading/outdated/489](/en/docs/self-host/upgrading/outdated/489) -- [/en/docs/self-host/upgrading/outdated/490](/en/docs/self-host/upgrading/outdated/490) -- [/en/docs/self-host/upgrading/outdated/491](/en/docs/self-host/upgrading/outdated/491) -- [/en/docs/self-host/upgrading/outdated/4910](/en/docs/self-host/upgrading/outdated/4910) -- [/en/docs/self-host/upgrading/outdated/4911](/en/docs/self-host/upgrading/outdated/4911) -- [/en/docs/self-host/upgrading/outdated/4912](/en/docs/self-host/upgrading/outdated/4912) -- [/en/docs/self-host/upgrading/outdated/4913](/en/docs/self-host/upgrading/outdated/4913) -- [/en/docs/self-host/upgrading/outdated/4914](/en/docs/self-host/upgrading/outdated/4914) -- [/en/docs/self-host/upgrading/outdated/492](/en/docs/self-host/upgrading/outdated/492) -- [/en/docs/self-host/upgrading/outdated/493](/en/docs/self-host/upgrading/outdated/493) -- [/en/docs/self-host/upgrading/outdated/494](/en/docs/self-host/upgrading/outdated/494) -- [/en/docs/self-host/upgrading/outdated/495](/en/docs/self-host/upgrading/outdated/495) -- [/en/docs/self-host/upgrading/outdated/496](/en/docs/self-host/upgrading/outdated/496) -- [/en/docs/self-host/upgrading/outdated/497](/en/docs/self-host/upgrading/outdated/497) -- [/en/docs/self-host/upgrading/outdated/498](/en/docs/self-host/upgrading/outdated/498) -- [/en/docs/self-host/upgrading/outdated/499](/en/docs/self-host/upgrading/outdated/499) -- [/en/docs/self-host/upgrading/upgrade-intruction](/en/docs/self-host/upgrading/upgrade-intruction) -- [/en/docs/use-cases/app-cases/dalle3](/en/docs/use-cases/app-cases/dalle3) -- [/en/docs/use-cases/app-cases/english_essay_correction_bot](/en/docs/use-cases/app-cases/english_essay_correction_bot) -- [/en/docs/use-cases/app-cases/feishu_webhook](/en/docs/use-cases/app-cases/feishu_webhook) -- [/en/docs/use-cases/app-cases/fixingEvidence](/en/docs/use-cases/app-cases/fixingEvidence) -- [/en/docs/use-cases/app-cases/google_search](/en/docs/use-cases/app-cases/google_search) -- [/en/docs/use-cases/app-cases/lab_appointment](/en/docs/use-cases/app-cases/lab_appointment) -- [/en/docs/use-cases/app-cases/multi_turn_translation_bot](/en/docs/use-cases/app-cases/multi_turn_translation_bot) -- [/en/docs/use-cases/app-cases/submit_application_template](/en/docs/use-cases/app-cases/submit_application_template) -- [/en/docs/use-cases/app-cases/translate-subtitle-using-gpt](/en/docs/use-cases/app-cases/translate-subtitle-using-gpt) -- [/en/docs/use-cases/external-integration/dingtalk](/en/docs/use-cases/external-integration/dingtalk) -- [/en/docs/use-cases/external-integration/feishu](/en/docs/use-cases/external-integration/feishu) -- [/en/docs/use-cases/external-integration/official_account](/en/docs/use-cases/external-integration/official_account) -- [/en/docs/use-cases/external-integration/openapi](/en/docs/use-cases/external-integration/openapi) -- [/en/docs/use-cases/external-integration/wechat](/en/docs/use-cases/external-integration/wechat) -- [/en/docs/use-cases/external-integration/wecom](/en/docs/use-cases/external-integration/wecom) diff --git a/document/content/docs/toc.mdx b/document/content/docs/toc.mdx deleted file mode 100644 index 2627fa1161..0000000000 --- a/document/content/docs/toc.mdx +++ /dev/null @@ -1,217 +0,0 @@ ---- -title: FastGPT 文档目录 -description: FastGPT 文档目录 ---- - -- [/docs/faq/app](/docs/faq/app) -- [/docs/faq/chat](/docs/faq/chat) -- [/docs/faq/dataset](/docs/faq/dataset) -- [/docs/faq/external_channel_integration](/docs/faq/external_channel_integration) -- [/docs/faq/other](/docs/faq/other) -- [/docs/faq/points_consumption](/docs/faq/points_consumption) -- [/docs/introduction/cloud/faq](/docs/introduction/cloud/faq) -- [/docs/introduction/cloud/intro](/docs/introduction/cloud/intro) -- [/docs/introduction/cloud/privacy](/docs/introduction/cloud/privacy) -- [/docs/introduction/cloud/terms](/docs/introduction/cloud/terms) -- [/docs/introduction/commercial](/docs/introduction/commercial) -- [/docs/introduction/guide/DialogBoxes/htmlRendering](/docs/introduction/guide/DialogBoxes/htmlRendering) -- [/docs/introduction/guide/DialogBoxes/quoteList](/docs/introduction/guide/DialogBoxes/quoteList) -- [/docs/introduction/guide/admin/sso](/docs/introduction/guide/admin/sso) -- [/docs/introduction/guide/admin/teamMode](/docs/introduction/guide/admin/teamMode) -- [/docs/introduction/guide/course/ai_settings](/docs/introduction/guide/course/ai_settings) -- [/docs/introduction/guide/course/chat_input_guide](/docs/introduction/guide/course/chat_input_guide) -- [/docs/introduction/guide/course/fileInput](/docs/introduction/guide/course/fileInput) -- [/docs/introduction/guide/course/quick-start](/docs/introduction/guide/course/quick-start) -- [/docs/introduction/guide/dashboard/basic-mode](/docs/introduction/guide/dashboard/basic-mode) -- [/docs/introduction/guide/dashboard/evaluation](/docs/introduction/guide/dashboard/evaluation) -- [/docs/introduction/guide/dashboard/gapier](/docs/introduction/guide/dashboard/gapier) -- [/docs/introduction/guide/dashboard/intro](/docs/introduction/guide/dashboard/intro) -- [/docs/introduction/guide/dashboard/mcp_server](/docs/introduction/guide/dashboard/mcp_server) -- [/docs/introduction/guide/dashboard/mcp_tools](/docs/introduction/guide/dashboard/mcp_tools) -- [/docs/introduction/guide/dashboard/workflow/ai_chat](/docs/introduction/guide/dashboard/workflow/ai_chat) -- [/docs/introduction/guide/dashboard/workflow/content_extract](/docs/introduction/guide/dashboard/workflow/content_extract) -- [/docs/introduction/guide/dashboard/workflow/coreferenceResolution](/docs/introduction/guide/dashboard/workflow/coreferenceResolution) -- [/docs/introduction/guide/dashboard/workflow/custom_feedback](/docs/introduction/guide/dashboard/workflow/custom_feedback) -- [/docs/introduction/guide/dashboard/workflow/dataset_search](/docs/introduction/guide/dashboard/workflow/dataset_search) -- [/docs/introduction/guide/dashboard/workflow/document_parsing](/docs/introduction/guide/dashboard/workflow/document_parsing) -- [/docs/introduction/guide/dashboard/workflow/form_input](/docs/introduction/guide/dashboard/workflow/form_input) -- [/docs/introduction/guide/dashboard/workflow/http](/docs/introduction/guide/dashboard/workflow/http) -- [/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge](/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge) -- [/docs/introduction/guide/dashboard/workflow/laf](/docs/introduction/guide/dashboard/workflow/laf) -- [/docs/introduction/guide/dashboard/workflow/loop](/docs/introduction/guide/dashboard/workflow/loop) -- [/docs/introduction/guide/dashboard/workflow/parallel_run](/docs/introduction/guide/dashboard/workflow/parallel_run) -- [/docs/introduction/guide/dashboard/workflow/question_classify](/docs/introduction/guide/dashboard/workflow/question_classify) -- [/docs/introduction/guide/dashboard/workflow/reply](/docs/introduction/guide/dashboard/workflow/reply) -- [/docs/introduction/guide/dashboard/workflow/sandbox](/docs/introduction/guide/dashboard/workflow/sandbox) -- [/docs/introduction/guide/dashboard/workflow/sandbox-v2](/docs/introduction/guide/dashboard/workflow/sandbox-v2) -- [/docs/introduction/guide/dashboard/workflow/text_editor](/docs/introduction/guide/dashboard/workflow/text_editor) -- [/docs/introduction/guide/dashboard/workflow/tfswitch](/docs/introduction/guide/dashboard/workflow/tfswitch) -- [/docs/introduction/guide/dashboard/workflow/tool](/docs/introduction/guide/dashboard/workflow/tool) -- [/docs/introduction/guide/dashboard/workflow/user-selection](/docs/introduction/guide/dashboard/workflow/user-selection) -- [/docs/introduction/guide/dashboard/workflow/variable_update](/docs/introduction/guide/dashboard/workflow/variable_update) -- [/docs/introduction/guide/knowledge_base/RAG](/docs/introduction/guide/knowledge_base/RAG) -- [/docs/introduction/guide/knowledge_base/api_dataset](/docs/introduction/guide/knowledge_base/api_dataset) -- [/docs/introduction/guide/knowledge_base/collection_tags](/docs/introduction/guide/knowledge_base/collection_tags) -- [/docs/introduction/guide/knowledge_base/dataset_engine](/docs/introduction/guide/knowledge_base/dataset_engine) -- [/docs/introduction/guide/knowledge_base/lark_dataset](/docs/introduction/guide/knowledge_base/lark_dataset) -- [/docs/introduction/guide/knowledge_base/template](/docs/introduction/guide/knowledge_base/template) -- [/docs/introduction/guide/knowledge_base/third_dataset](/docs/introduction/guide/knowledge_base/third_dataset) -- [/docs/introduction/guide/knowledge_base/websync](/docs/introduction/guide/knowledge_base/websync) -- [/docs/introduction/guide/knowledge_base/yuque_dataset](/docs/introduction/guide/knowledge_base/yuque_dataset) -- [/docs/introduction/guide/plugins/bing_search_plugin](/docs/introduction/guide/plugins/bing_search_plugin) -- [/docs/introduction/guide/plugins/dev_system_tool](/docs/introduction/guide/plugins/dev_system_tool) -- [/docs/introduction/guide/plugins/doc2x_plugin_guide](/docs/introduction/guide/plugins/doc2x_plugin_guide) -- [/docs/introduction/guide/plugins/google_search_plugin_guide](/docs/introduction/guide/plugins/google_search_plugin_guide) -- [/docs/introduction/guide/plugins/searxng_plugin_guide](/docs/introduction/guide/plugins/searxng_plugin_guide) -- [/docs/introduction/guide/plugins/upload_system_tool](/docs/introduction/guide/plugins/upload_system_tool) -- [/docs/introduction/guide/team_permissions/customDomain](/docs/introduction/guide/team_permissions/customDomain) -- [/docs/introduction/guide/team_permissions/invitation_link](/docs/introduction/guide/team_permissions/invitation_link) -- [/docs/introduction/guide/team_permissions/team_roles_permissions](/docs/introduction/guide/team_permissions/team_roles_permissions) -- [/docs/introduction/index](/docs/introduction/index) -- [/docs/introduction/opensource/intro](/docs/introduction/opensource/intro) -- [/docs/introduction/opensource/license](/docs/introduction/opensource/license) -- [/docs/openapi/app](/docs/openapi/app) -- [/docs/openapi/chat](/docs/openapi/chat) -- [/docs/openapi/dataset](/docs/openapi/dataset) -- [/docs/openapi/index](/docs/openapi/index) -- [/docs/openapi/intro](/docs/openapi/intro) -- [/docs/openapi/share](/docs/openapi/share) -- [/docs/self-host/config/json](/docs/self-host/config/json) -- [/docs/self-host/config/model/intro](/docs/self-host/config/model/intro) -- [/docs/self-host/config/model/minimax](/docs/self-host/config/model/minimax) -- [/docs/self-host/config/model/siliconCloud](/docs/self-host/config/model/siliconCloud) -- [/docs/self-host/config/object-storage](/docs/self-host/config/object-storage) -- [/docs/self-host/config/signoz](/docs/self-host/config/signoz) -- [/docs/self-host/custom-models/bge-rerank](/docs/self-host/custom-models/bge-rerank) -- [/docs/self-host/custom-models/chatglm2](/docs/self-host/custom-models/chatglm2) -- [/docs/self-host/custom-models/chatglm2-m3e](/docs/self-host/custom-models/chatglm2-m3e) -- [/docs/self-host/custom-models/m3e](/docs/self-host/custom-models/m3e) -- [/docs/self-host/custom-models/marker](/docs/self-host/custom-models/marker) -- [/docs/self-host/custom-models/mineru](/docs/self-host/custom-models/mineru) -- [/docs/self-host/custom-models/ollama](/docs/self-host/custom-models/ollama) -- [/docs/self-host/custom-models/xinference](/docs/self-host/custom-models/xinference) -- [/docs/self-host/deploy/docker](/docs/self-host/deploy/docker) -- [/docs/self-host/deploy/sealos](/docs/self-host/deploy/sealos) -- [/docs/self-host/design/dataset](/docs/self-host/design/dataset) -- [/docs/self-host/design/design_plugin](/docs/self-host/design/design_plugin) -- [/docs/self-host/dev](/docs/self-host/dev) -- [/docs/self-host/index](/docs/self-host/index) -- [/docs/self-host/migration/docker_db](/docs/self-host/migration/docker_db) -- [/docs/self-host/migration/docker_mongo](/docs/self-host/migration/docker_mongo) -- [/docs/self-host/troubleshooting/attention](/docs/self-host/troubleshooting/attention) -- [/docs/self-host/troubleshooting/faq](/docs/self-host/troubleshooting/faq) -- [/docs/self-host/troubleshooting/methods](/docs/self-host/troubleshooting/methods) -- [/docs/self-host/troubleshooting/model-errors](/docs/self-host/troubleshooting/model-errors) -- [/docs/self-host/troubleshooting/s3-issues](/docs/self-host/troubleshooting/s3-issues) -- [/docs/self-host/upgrading/4-12/4120](/docs/self-host/upgrading/4-12/4120) -- [/docs/self-host/upgrading/4-12/4121](/docs/self-host/upgrading/4-12/4121) -- [/docs/self-host/upgrading/4-12/4122](/docs/self-host/upgrading/4-12/4122) -- [/docs/self-host/upgrading/4-12/4123](/docs/self-host/upgrading/4-12/4123) -- [/docs/self-host/upgrading/4-12/4124](/docs/self-host/upgrading/4-12/4124) -- [/docs/self-host/upgrading/4-13/4130](/docs/self-host/upgrading/4-13/4130) -- [/docs/self-host/upgrading/4-13/4131](/docs/self-host/upgrading/4-13/4131) -- [/docs/self-host/upgrading/4-13/4132](/docs/self-host/upgrading/4-13/4132) -- [/docs/self-host/upgrading/4-14/4140](/docs/self-host/upgrading/4-14/4140) -- [/docs/self-host/upgrading/4-14/4141](/docs/self-host/upgrading/4-14/4141) -- [/docs/self-host/upgrading/4-14/41410](/docs/self-host/upgrading/4-14/41410) -- [/docs/self-host/upgrading/4-14/41411](/docs/self-host/upgrading/4-14/41411) -- [/docs/self-host/upgrading/4-14/41412](/docs/self-host/upgrading/4-14/41412) -- [/docs/self-host/upgrading/4-14/41413](/docs/self-host/upgrading/4-14/41413) -- [/docs/self-host/upgrading/4-14/41414](/docs/self-host/upgrading/4-14/41414) -- [/docs/self-host/upgrading/4-14/41415](/docs/self-host/upgrading/4-14/41415) -- [/docs/self-host/upgrading/4-14/4142](/docs/self-host/upgrading/4-14/4142) -- [/docs/self-host/upgrading/4-14/4143](/docs/self-host/upgrading/4-14/4143) -- [/docs/self-host/upgrading/4-14/4144](/docs/self-host/upgrading/4-14/4144) -- [/docs/self-host/upgrading/4-14/4145](/docs/self-host/upgrading/4-14/4145) -- [/docs/self-host/upgrading/4-14/41451](/docs/self-host/upgrading/4-14/41451) -- [/docs/self-host/upgrading/4-14/4146](/docs/self-host/upgrading/4-14/4146) -- [/docs/self-host/upgrading/4-14/4147](/docs/self-host/upgrading/4-14/4147) -- [/docs/self-host/upgrading/4-14/4148](/docs/self-host/upgrading/4-14/4148) -- [/docs/self-host/upgrading/4-14/41481](/docs/self-host/upgrading/4-14/41481) -- [/docs/self-host/upgrading/4-14/4149](/docs/self-host/upgrading/4-14/4149) -- [/docs/self-host/upgrading/4-15/4150](/docs/self-host/upgrading/4-15/4150) -- [/docs/self-host/upgrading/outdated/40](/docs/self-host/upgrading/outdated/40) -- [/docs/self-host/upgrading/outdated/41](/docs/self-host/upgrading/outdated/41) -- [/docs/self-host/upgrading/outdated/4100](/docs/self-host/upgrading/outdated/4100) -- [/docs/self-host/upgrading/outdated/4101](/docs/self-host/upgrading/outdated/4101) -- [/docs/self-host/upgrading/outdated/4110](/docs/self-host/upgrading/outdated/4110) -- [/docs/self-host/upgrading/outdated/4111](/docs/self-host/upgrading/outdated/4111) -- [/docs/self-host/upgrading/outdated/42](/docs/self-host/upgrading/outdated/42) -- [/docs/self-host/upgrading/outdated/421](/docs/self-host/upgrading/outdated/421) -- [/docs/self-host/upgrading/outdated/43](/docs/self-host/upgrading/outdated/43) -- [/docs/self-host/upgrading/outdated/44](/docs/self-host/upgrading/outdated/44) -- [/docs/self-host/upgrading/outdated/441](/docs/self-host/upgrading/outdated/441) -- [/docs/self-host/upgrading/outdated/442](/docs/self-host/upgrading/outdated/442) -- [/docs/self-host/upgrading/outdated/445](/docs/self-host/upgrading/outdated/445) -- [/docs/self-host/upgrading/outdated/446](/docs/self-host/upgrading/outdated/446) -- [/docs/self-host/upgrading/outdated/447](/docs/self-host/upgrading/outdated/447) -- [/docs/self-host/upgrading/outdated/45](/docs/self-host/upgrading/outdated/45) -- [/docs/self-host/upgrading/outdated/451](/docs/self-host/upgrading/outdated/451) -- [/docs/self-host/upgrading/outdated/452](/docs/self-host/upgrading/outdated/452) -- [/docs/self-host/upgrading/outdated/46](/docs/self-host/upgrading/outdated/46) -- [/docs/self-host/upgrading/outdated/461](/docs/self-host/upgrading/outdated/461) -- [/docs/self-host/upgrading/outdated/462](/docs/self-host/upgrading/outdated/462) -- [/docs/self-host/upgrading/outdated/463](/docs/self-host/upgrading/outdated/463) -- [/docs/self-host/upgrading/outdated/464](/docs/self-host/upgrading/outdated/464) -- [/docs/self-host/upgrading/outdated/465](/docs/self-host/upgrading/outdated/465) -- [/docs/self-host/upgrading/outdated/466](/docs/self-host/upgrading/outdated/466) -- [/docs/self-host/upgrading/outdated/467](/docs/self-host/upgrading/outdated/467) -- [/docs/self-host/upgrading/outdated/468](/docs/self-host/upgrading/outdated/468) -- [/docs/self-host/upgrading/outdated/469](/docs/self-host/upgrading/outdated/469) -- [/docs/self-host/upgrading/outdated/47](/docs/self-host/upgrading/outdated/47) -- [/docs/self-host/upgrading/outdated/471](/docs/self-host/upgrading/outdated/471) -- [/docs/self-host/upgrading/outdated/48](/docs/self-host/upgrading/outdated/48) -- [/docs/self-host/upgrading/outdated/481](/docs/self-host/upgrading/outdated/481) -- [/docs/self-host/upgrading/outdated/4810](/docs/self-host/upgrading/outdated/4810) -- [/docs/self-host/upgrading/outdated/4811](/docs/self-host/upgrading/outdated/4811) -- [/docs/self-host/upgrading/outdated/4812](/docs/self-host/upgrading/outdated/4812) -- [/docs/self-host/upgrading/outdated/4813](/docs/self-host/upgrading/outdated/4813) -- [/docs/self-host/upgrading/outdated/4814](/docs/self-host/upgrading/outdated/4814) -- [/docs/self-host/upgrading/outdated/4815](/docs/self-host/upgrading/outdated/4815) -- [/docs/self-host/upgrading/outdated/4816](/docs/self-host/upgrading/outdated/4816) -- [/docs/self-host/upgrading/outdated/4817](/docs/self-host/upgrading/outdated/4817) -- [/docs/self-host/upgrading/outdated/4818](/docs/self-host/upgrading/outdated/4818) -- [/docs/self-host/upgrading/outdated/4819](/docs/self-host/upgrading/outdated/4819) -- [/docs/self-host/upgrading/outdated/482](/docs/self-host/upgrading/outdated/482) -- [/docs/self-host/upgrading/outdated/4820](/docs/self-host/upgrading/outdated/4820) -- [/docs/self-host/upgrading/outdated/4821](/docs/self-host/upgrading/outdated/4821) -- [/docs/self-host/upgrading/outdated/4822](/docs/self-host/upgrading/outdated/4822) -- [/docs/self-host/upgrading/outdated/4823](/docs/self-host/upgrading/outdated/4823) -- [/docs/self-host/upgrading/outdated/483](/docs/self-host/upgrading/outdated/483) -- [/docs/self-host/upgrading/outdated/484](/docs/self-host/upgrading/outdated/484) -- [/docs/self-host/upgrading/outdated/485](/docs/self-host/upgrading/outdated/485) -- [/docs/self-host/upgrading/outdated/486](/docs/self-host/upgrading/outdated/486) -- [/docs/self-host/upgrading/outdated/487](/docs/self-host/upgrading/outdated/487) -- [/docs/self-host/upgrading/outdated/488](/docs/self-host/upgrading/outdated/488) -- [/docs/self-host/upgrading/outdated/489](/docs/self-host/upgrading/outdated/489) -- [/docs/self-host/upgrading/outdated/490](/docs/self-host/upgrading/outdated/490) -- [/docs/self-host/upgrading/outdated/491](/docs/self-host/upgrading/outdated/491) -- [/docs/self-host/upgrading/outdated/4910](/docs/self-host/upgrading/outdated/4910) -- [/docs/self-host/upgrading/outdated/4911](/docs/self-host/upgrading/outdated/4911) -- [/docs/self-host/upgrading/outdated/4912](/docs/self-host/upgrading/outdated/4912) -- [/docs/self-host/upgrading/outdated/4913](/docs/self-host/upgrading/outdated/4913) -- [/docs/self-host/upgrading/outdated/4914](/docs/self-host/upgrading/outdated/4914) -- [/docs/self-host/upgrading/outdated/492](/docs/self-host/upgrading/outdated/492) -- [/docs/self-host/upgrading/outdated/493](/docs/self-host/upgrading/outdated/493) -- [/docs/self-host/upgrading/outdated/494](/docs/self-host/upgrading/outdated/494) -- [/docs/self-host/upgrading/outdated/495](/docs/self-host/upgrading/outdated/495) -- [/docs/self-host/upgrading/outdated/496](/docs/self-host/upgrading/outdated/496) -- [/docs/self-host/upgrading/outdated/497](/docs/self-host/upgrading/outdated/497) -- [/docs/self-host/upgrading/outdated/498](/docs/self-host/upgrading/outdated/498) -- [/docs/self-host/upgrading/outdated/499](/docs/self-host/upgrading/outdated/499) -- [/docs/self-host/upgrading/upgrade-intruction](/docs/self-host/upgrading/upgrade-intruction) -- [/docs/use-cases/app-cases/dalle3](/docs/use-cases/app-cases/dalle3) -- [/docs/use-cases/app-cases/english_essay_correction_bot](/docs/use-cases/app-cases/english_essay_correction_bot) -- [/docs/use-cases/app-cases/feishu_webhook](/docs/use-cases/app-cases/feishu_webhook) -- [/docs/use-cases/app-cases/fixingEvidence](/docs/use-cases/app-cases/fixingEvidence) -- [/docs/use-cases/app-cases/google_search](/docs/use-cases/app-cases/google_search) -- [/docs/use-cases/app-cases/lab_appointment](/docs/use-cases/app-cases/lab_appointment) -- [/docs/use-cases/app-cases/multi_turn_translation_bot](/docs/use-cases/app-cases/multi_turn_translation_bot) -- [/docs/use-cases/app-cases/submit_application_template](/docs/use-cases/app-cases/submit_application_template) -- [/docs/use-cases/app-cases/translate-subtitle-using-gpt](/docs/use-cases/app-cases/translate-subtitle-using-gpt) -- [/docs/use-cases/external-integration/dingtalk](/docs/use-cases/external-integration/dingtalk) -- [/docs/use-cases/external-integration/feishu](/docs/use-cases/external-integration/feishu) -- [/docs/use-cases/external-integration/official_account](/docs/use-cases/external-integration/official_account) -- [/docs/use-cases/external-integration/openapi](/docs/use-cases/external-integration/openapi) -- [/docs/use-cases/external-integration/wechat](/docs/use-cases/external-integration/wechat) -- [/docs/use-cases/external-integration/wecom](/docs/use-cases/external-integration/wecom) diff --git a/document/content/docs/faq/app.en.mdx b/document/content/faq/app.en.mdx similarity index 94% rename from document/content/docs/faq/app.en.mdx rename to document/content/faq/app.en.mdx index e6e3eaf7dc..487ea6ee16 100644 --- a/document/content/docs/faq/app.en.mdx +++ b/document/content/faq/app.en.mdx @@ -26,7 +26,7 @@ This is usually caused by not publishing correctly. Click **Save and Publish** i ## How do I make "Suggested Questions" display in Chinese? Make sure you're on V4.8.17 or later, then change the suggested questions prompt to Chinese. -![](/imgs/quizApp2.png) +![](../../public/imgs/quizApp2.png) ## How do I stop AI responses from using Markdown formatting? @@ -34,7 +34,7 @@ Edit the Knowledge Base default prompt. The built-in standard template instructs | | | | --- | --- | -| ![](/imgs/image-83.png) | ![](/imgs/image-84.png) | +| ![](../../public/imgs/image-83.png) | ![](../../public/imgs/image-84.png) | ## Why does my app behave differently across different sources? @@ -44,7 +44,7 @@ A: This is usually caused by differences in context. Check the conversation logs | | | | | --- | --- | --- | -| ![](/imgs/image-85.png) | ![](/imgs/image-86.png) | ![](/imgs/image-87.png) | +| ![](../../public/imgs/image-85.png) | ![](../../public/imgs/image-86.png) | ![](../../public/imgs/image-87.png) | The Knowledge Base response settings require a custom prompt. Without one, the default prompt (which includes Markdown formatting instructions) is used. ## How do I route follow-up questions directly to the Knowledge Base instead of going through Question Classification again? @@ -61,7 +61,7 @@ Scheduled execution doesn't support that kind of frequency. To build a real-time Yes. Workflows support database connections. The database connection plugin can implement text-to-SQL, but it's risky — write operations are not recommended. -![](/imgs/quizApp1.png) +![](../../public/imgs/quizApp1.png) ## How does the Loop node work? diff --git a/document/content/docs/faq/app.mdx b/document/content/faq/app.mdx similarity index 94% rename from document/content/docs/faq/app.mdx rename to document/content/faq/app.mdx index 8e9c7a5fa7..7f48057661 100644 --- a/document/content/docs/faq/app.mdx +++ b/document/content/faq/app.mdx @@ -28,7 +28,7 @@ description: FastGPT 常见应用使用问题,包括简易应用、工作流 ## 如何解决猜你想问使用中文回答显示 注意需要更新到V4.8.17及以上,把猜你想问的提示词改成中文。 -![](/imgs/quizApp2.png) +![](../../public/imgs/quizApp2.png) ## AI对话回答要求中的Markdown语法取消 @@ -36,7 +36,7 @@ description: FastGPT 常见应用使用问题,包括简易应用、工作流 | | | | --- | --- | -| ![](/imgs/image-83.png) | ![](/imgs/image-84.png) | +| ![](../../public/imgs/image-83.png) | ![](../../public/imgs/image-84.png) | ## 应用在不同来源效果不一致 @@ -46,7 +46,7 @@ A: 通常是由于上下文不一致导致,可以在对话日志中,找到 | | | | | --- | --- | --- | -| ![](/imgs/image-85.png) | ![](/imgs/image-86.png) | ![](/imgs/image-87.png) | +| ![](../../public/imgs/image-85.png) | ![](../../public/imgs/image-86.png) | ![](../../public/imgs/image-87.png) | 在针对知识库的回答要求里有, 要给它配置提示词,不然他就是默认的,默认的里面就有该语法。 ## 工作流操作:一个工作流,以一个问题分类节点开始,根据不同的分类导入到不同的分支,访问相应的知识库和AI对话,AI对话返回内容后,怎么样不进入问题分类节点,而是将问题到知识库搜索,然后把历史记录一起作为背景再次AI查询。 @@ -62,7 +62,7 @@ A: 通常是由于上下文不一致导致,可以在对话日志中,找到 工作流提供该连接数据库功能,用这个数据库连接的 plugin 可以实现 text2SQL,但是相对危险,不建议做写入等操作。 -![](/imgs/quizApp1.png) +![](../../public/imgs/quizApp1.png) ## 关于循环体,协助理解循环体的循环条件和终止条件、循环的方式,循环体内参数调用后、在循环体内属于是局部作用域的参数还是全局作用域的参数 diff --git a/document/content/docs/faq/chat.en.mdx b/document/content/faq/chat.en.mdx similarity index 100% rename from document/content/docs/faq/chat.en.mdx rename to document/content/faq/chat.en.mdx diff --git a/document/content/docs/faq/chat.mdx b/document/content/faq/chat.mdx similarity index 100% rename from document/content/docs/faq/chat.mdx rename to document/content/faq/chat.mdx diff --git a/document/content/docs/faq/dataset.en.mdx b/document/content/faq/dataset.en.mdx similarity index 93% rename from document/content/docs/faq/dataset.en.mdx rename to document/content/faq/dataset.en.mdx index 0dc2b5ae59..a27f759cd0 100644 --- a/document/content/docs/faq/dataset.en.mdx +++ b/document/content/faq/dataset.en.mdx @@ -22,14 +22,14 @@ All token counts use the GPT-3.5 tokenizer as the standard. ## I accidentally deleted the rerank model. How do I add it back? -![](/imgs/dataset3.png) +![](../../public/imgs/dataset3.png) Add the rerank model configuration in your `config.json` file, then you'll be able to select it again. ## If I created apps and Knowledge Bases on the cloud platform, will my data be deleted if I don't renew right away? On the free plan, Knowledge Base data is cleared after 30 days of inactivity (no login). Apps are not affected. Paid plans automatically downgrade to the free plan upon expiration. -![](/imgs/dataset4.png) +![](../../public/imgs/dataset4.png) ## The AI stops responding mid-answer when there are too many relevant Knowledge Base results. @@ -46,9 +46,9 @@ To fix this: Where to find the max response setting: -![](/imgs/dataset1.png) +![](../../public/imgs/dataset1.png) -![](/imgs/dataset2.png) +![](../../public/imgs/dataset2.png) For self-hosted deployments, you can reserve headroom when configuring model context limits. For example, set a 128K model to 120K — the remaining space will be allocated to output. @@ -68,8 +68,8 @@ To fix this: Where to find the max response setting: -![](/imgs/dataset1.png) +![](../../public/imgs/dataset1.png) -![](/imgs/dataset2.png) +![](../../public/imgs/dataset2.png) For self-hosted deployments, you can reserve headroom when configuring model context limits. For example, set a 128K model to 120K — the remaining space will be allocated to output. diff --git a/document/content/docs/faq/dataset.mdx b/document/content/faq/dataset.mdx similarity index 93% rename from document/content/docs/faq/dataset.mdx rename to document/content/faq/dataset.mdx index 0617a38348..884c18c60c 100644 --- a/document/content/docs/faq/dataset.mdx +++ b/document/content/faq/dataset.mdx @@ -20,13 +20,13 @@ xlsx等都可以上传的,不止支持CSV。 ## (6)误删除重排模型后,重排模型怎么加入到fastgpt -![](/imgs/dataset3.png) +![](../../public/imgs/dataset3.png) config.json文件里面配置后就可以勾选重排模型 ## (7)线上平台上创建了应用和知识库,到期之后如果短期内不续费,数据是否会被清理。 免费版是三十天不登录后清空知识库,应用不会动。其他付费套餐到期后自动切免费版。 -![](/imgs/dataset4.png) +![](../../public/imgs/dataset4.png) ## (8)基于知识库的查询,但是问题相关的答案过多。ai回答到一半就不继续回答。 FastGPT回复长度计算公式: @@ -45,9 +45,9 @@ FastGPT回复长度计算公式: 配置的最大回复: -![](/imgs/dataset1.png) +![](../../public/imgs/dataset1.png) -![](/imgs/dataset2.png) +![](../../public/imgs/dataset2.png) 另外私有化部署的时候,后台配模型参数,可以在配置最大上文时,预留一些空间,比如 128000 的模型,可以只配置 120000, 剩余的空间后续会被安排给输出 @@ -69,9 +69,9 @@ FastGPT回复长度计算公式: 配置的最大回复: -![](/imgs/dataset1.png) +![](../../public/imgs/dataset1.png) -![](/imgs/dataset2.png) +![](../../public/imgs/dataset2.png) 另外,私有化部署的时候,后台配模型参数,可以在配置最大上文时,预留一些空间,比如 128000 的模型,可以只配置 120000, 剩余的空间后续会被安排给输出。 diff --git a/document/content/docs/faq/external_channel_integration.en.mdx b/document/content/faq/external_channel_integration.en.mdx similarity index 92% rename from document/content/docs/faq/external_channel_integration.en.mdx rename to document/content/faq/external_channel_integration.en.mdx index 76c7c673ec..2c01b1e11d 100644 --- a/document/content/docs/faq/external_channel_integration.en.mdx +++ b/document/content/faq/external_channel_integration.en.mdx @@ -11,4 +11,4 @@ Use prompts to instruct the model not to output in Markdown format. To display i Yes — check the conversation logs in your app. -![](/imgs/integration1.png) +![](../../public/imgs/integration1.png) diff --git a/document/content/docs/faq/external_channel_integration.mdx b/document/content/faq/external_channel_integration.mdx similarity index 90% rename from document/content/docs/faq/external_channel_integration.mdx rename to document/content/faq/external_channel_integration.mdx index d440b32d71..7263c1c93e 100644 --- a/document/content/docs/faq/external_channel_integration.mdx +++ b/document/content/faq/external_channel_integration.mdx @@ -11,4 +11,4 @@ description: 如何通过外部渠道与 FastGPT 集成,实现对多种平台 在应用的对话日志里可以查看。 -![](/imgs/integration1.png) +![](../../public/imgs/integration1.png) diff --git a/document/content/docs/faq/index.en.mdx b/document/content/faq/index.en.mdx similarity index 79% rename from document/content/docs/faq/index.en.mdx rename to document/content/faq/index.en.mdx index 6c1df1df14..f516afd7c0 100644 --- a/document/content/docs/faq/index.en.mdx +++ b/document/content/faq/index.en.mdx @@ -5,4 +5,4 @@ description: FastGPT frequently asked questions import { Redirect } from '@/components/docs/Redirect'; - + diff --git a/document/content/docs/faq/index.mdx b/document/content/faq/index.mdx similarity index 78% rename from document/content/docs/faq/index.mdx rename to document/content/faq/index.mdx index ea6f99ddd4..f424151a25 100644 --- a/document/content/docs/faq/index.mdx +++ b/document/content/faq/index.mdx @@ -5,4 +5,4 @@ description: FastGPT 使用案例 import { Redirect } from '@/components/docs/Redirect'; - + diff --git a/document/content/docs/faq/meta.en.json b/document/content/faq/meta.en.json similarity index 100% rename from document/content/docs/faq/meta.en.json rename to document/content/faq/meta.en.json diff --git a/document/content/docs/faq/meta.json b/document/content/faq/meta.json similarity index 100% rename from document/content/docs/faq/meta.json rename to document/content/faq/meta.json diff --git a/document/content/docs/faq/other.en.mdx b/document/content/faq/other.en.mdx similarity index 100% rename from document/content/docs/faq/other.en.mdx rename to document/content/faq/other.en.mdx diff --git a/document/content/docs/faq/other.mdx b/document/content/faq/other.mdx similarity index 100% rename from document/content/docs/faq/other.mdx rename to document/content/faq/other.mdx diff --git a/document/content/docs/faq/points_consumption.en.mdx b/document/content/faq/points_consumption.en.mdx similarity index 89% rename from document/content/docs/faq/points_consumption.en.mdx rename to document/content/faq/points_consumption.en.mdx index 3f933a850d..143ab31798 100644 --- a/document/content/docs/faq/points_consumption.en.mdx +++ b/document/content/faq/points_consumption.en.mdx @@ -7,4 +7,4 @@ description: Understanding how points are consumed in FastGPT Vector database searches consume points by default. Check your usage records and billing details for more information. -![](/imgs/points1.png) +![](../../public/imgs/points1.png) diff --git a/document/content/docs/faq/points_consumption.mdx b/document/content/faq/points_consumption.mdx similarity index 87% rename from document/content/docs/faq/points_consumption.mdx rename to document/content/faq/points_consumption.mdx index 9124d60fc7..e98be3e9db 100644 --- a/document/content/docs/faq/points_consumption.mdx +++ b/document/content/faq/points_consumption.mdx @@ -7,4 +7,4 @@ description: 了解 FastGPT 中的积分消耗机制和使用场景 矢量数据库检索会默认消耗。可以查看看绑定提示和使用记录。 -![](/imgs/points1.png) +![](../../public/imgs/points1.png) diff --git a/document/content/docs/introduction/cloud/faq.en.mdx b/document/content/introduction/cloud/faq.en.mdx similarity index 100% rename from document/content/docs/introduction/cloud/faq.en.mdx rename to document/content/introduction/cloud/faq.en.mdx diff --git a/document/content/docs/introduction/cloud/faq.mdx b/document/content/introduction/cloud/faq.mdx similarity index 100% rename from document/content/docs/introduction/cloud/faq.mdx rename to document/content/introduction/cloud/faq.mdx diff --git a/document/content/docs/introduction/cloud/intro.en.mdx b/document/content/introduction/cloud/intro.en.mdx similarity index 100% rename from document/content/docs/introduction/cloud/intro.en.mdx rename to document/content/introduction/cloud/intro.en.mdx diff --git a/document/content/docs/introduction/cloud/intro.mdx b/document/content/introduction/cloud/intro.mdx similarity index 100% rename from document/content/docs/introduction/cloud/intro.mdx rename to document/content/introduction/cloud/intro.mdx diff --git a/document/content/docs/introduction/cloud/meta.en.json b/document/content/introduction/cloud/meta.en.json similarity index 100% rename from document/content/docs/introduction/cloud/meta.en.json rename to document/content/introduction/cloud/meta.en.json diff --git a/document/content/docs/introduction/cloud/meta.json b/document/content/introduction/cloud/meta.json similarity index 100% rename from document/content/docs/introduction/cloud/meta.json rename to document/content/introduction/cloud/meta.json diff --git a/document/content/docs/introduction/cloud/privacy.en.mdx b/document/content/introduction/cloud/privacy.en.mdx similarity index 100% rename from document/content/docs/introduction/cloud/privacy.en.mdx rename to document/content/introduction/cloud/privacy.en.mdx diff --git a/document/content/docs/introduction/cloud/privacy.mdx b/document/content/introduction/cloud/privacy.mdx similarity index 100% rename from document/content/docs/introduction/cloud/privacy.mdx rename to document/content/introduction/cloud/privacy.mdx diff --git a/document/content/docs/introduction/cloud/terms.en.mdx b/document/content/introduction/cloud/terms.en.mdx similarity index 100% rename from document/content/docs/introduction/cloud/terms.en.mdx rename to document/content/introduction/cloud/terms.en.mdx diff --git a/document/content/docs/introduction/cloud/terms.mdx b/document/content/introduction/cloud/terms.mdx similarity index 100% rename from document/content/docs/introduction/cloud/terms.mdx rename to document/content/introduction/cloud/terms.mdx diff --git a/document/content/docs/introduction/commercial.en.mdx b/document/content/introduction/commercial.en.mdx similarity index 96% rename from document/content/docs/introduction/commercial.en.mdx rename to document/content/introduction/commercial.en.mdx index dc4483c23f..8edaa04983 100644 --- a/document/content/docs/introduction/commercial.en.mdx +++ b/document/content/introduction/commercial.en.mdx @@ -36,7 +36,7 @@ FastGPT Commercial Edition is an enhanced version built on top of the Community | Team spaces & permissions | ❌ | ✅ | ✅ | | Admin dashboard | ❌ | ✅ | Not needed | | SSO login | ❌ | ✅ | In design | -| Commercial license | [View open source license](/docs/introduction/opensource/license) | Full | Full | +| Commercial license | [View open source license](./opensource/license.en.mdx) | Full | Full | ## Pricing @@ -100,10 +100,10 @@ You can modify the Community Edition source code, but the Commercial Edition ima Sealos cloud services use pay-as-you-go billing. Here's the pricing table: -![alt text](/imgs/image-58.png) +![alt text](../../public/imgs/image-58.png) ## Admin Dashboard Screenshots | | | | | ------------------------------- | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-55.png) | ![alt text](/imgs/image-56.png) | ![alt text](/imgs/image-57.png) | +| ![alt text](../../public/imgs/image-55.png) | ![alt text](../../public/imgs/image-56.png) | ![alt text](../../public/imgs/image-57.png) | diff --git a/document/content/docs/introduction/commercial.mdx b/document/content/introduction/commercial.mdx similarity index 95% rename from document/content/docs/introduction/commercial.mdx rename to document/content/introduction/commercial.mdx index 2e900577df..b433a28a2b 100644 --- a/document/content/docs/introduction/commercial.mdx +++ b/document/content/introduction/commercial.mdx @@ -36,7 +36,7 @@ FastGPT 商业版是基于 FastGPT 社区版的增强版本,增加了一些独 | 团队空间 & 权限 | ❌ | ✅ | ✅ | | 管理后台 | ❌ | ✅ | 不需要 | | SSO 登录 | ❌ | ✅ | 设计中 | -| 商业授权 | [查看开源协议](/docs/introduction/opensource/license) | 完整 | 完整 | +| 商业授权 | [查看开源协议](./opensource/license.mdx) | 完整 | 完整 | ## 商业版软件价格 @@ -101,10 +101,10 @@ FastGPT 商业版软件根据不同的部署方式,分为 3 类收费模式。 Sealos 云服务属于按量计费,下面是它的价格表: -![alt text](/imgs/image-58.png) +![alt text](../../public/imgs/image-58.png) ## 管理后台部分截图 | | | | | ------------------------------- | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-55.png) | ![alt text](/imgs/image-56.png) | ![alt text](/imgs/image-57.png) | +| ![alt text](../../public/imgs/image-55.png) | ![alt text](../../public/imgs/image-56.png) | ![alt text](../../public/imgs/image-57.png) | diff --git a/document/content/docs/introduction/guide/DialogBoxes/htmlRendering.en.mdx b/document/content/introduction/guide/DialogBoxes/htmlRendering.en.mdx similarity index 94% rename from document/content/docs/introduction/guide/DialogBoxes/htmlRendering.en.mdx rename to document/content/introduction/guide/DialogBoxes/htmlRendering.en.mdx index b4c9c6d9d8..b88b83e0f2 100644 --- a/document/content/docs/introduction/guide/DialogBoxes/htmlRendering.en.mdx +++ b/document/content/introduction/guide/DialogBoxes/htmlRendering.en.mdx @@ -5,7 +5,7 @@ description: How to embed HTML code blocks in FastGPT via Markdown, with fullscr | Source Mode | Preview Mode | Fullscreen Mode | | --- | --- | --- | -| ![](/imgs/htmlRendering1.png) | ![](/imgs/htmlRendering2.png) | ![](/imgs/htmlRendering3.png) | +| ![](../../../../public/imgs/htmlRendering1.png) | ![](../../../../public/imgs/htmlRendering2.png) | ![](../../../../public/imgs/htmlRendering3.png) | ### 1. Design Background diff --git a/document/content/docs/introduction/guide/DialogBoxes/htmlRendering.mdx b/document/content/introduction/guide/DialogBoxes/htmlRendering.mdx similarity index 94% rename from document/content/docs/introduction/guide/DialogBoxes/htmlRendering.mdx rename to document/content/introduction/guide/DialogBoxes/htmlRendering.mdx index 957758f42a..0f5cd79d21 100644 --- a/document/content/docs/introduction/guide/DialogBoxes/htmlRendering.mdx +++ b/document/content/introduction/guide/DialogBoxes/htmlRendering.mdx @@ -5,7 +5,7 @@ description: 如何在FastGPT中通过Markdown嵌入HTML代码块,并提供全 | 源码模式 | 预览模式 | 全屏模式 | | --- | --- | --- | -| ![](/imgs/htmlRendering1.png) | ![](/imgs/htmlRendering2.png) | ![](/imgs/htmlRendering3.png) | +| ![](../../../../public/imgs/htmlRendering1.png) | ![](../../../../public/imgs/htmlRendering2.png) | ![](../../../../public/imgs/htmlRendering3.png) | ### 1. **设计背景** diff --git a/document/content/docs/introduction/guide/DialogBoxes/meta.en.json b/document/content/introduction/guide/DialogBoxes/meta.en.json similarity index 100% rename from document/content/docs/introduction/guide/DialogBoxes/meta.en.json rename to document/content/introduction/guide/DialogBoxes/meta.en.json diff --git a/document/content/docs/introduction/guide/DialogBoxes/meta.json b/document/content/introduction/guide/DialogBoxes/meta.json similarity index 100% rename from document/content/docs/introduction/guide/DialogBoxes/meta.json rename to document/content/introduction/guide/DialogBoxes/meta.json diff --git a/document/content/docs/introduction/guide/DialogBoxes/quoteList.en.mdx b/document/content/introduction/guide/DialogBoxes/quoteList.en.mdx similarity index 91% rename from document/content/docs/introduction/guide/DialogBoxes/quoteList.en.mdx rename to document/content/introduction/guide/DialogBoxes/quoteList.en.mdx index d4c7a3155a..22c9b17e9b 100644 --- a/document/content/docs/introduction/guide/DialogBoxes/quoteList.en.mdx +++ b/document/content/introduction/guide/DialogBoxes/quoteList.en.mdx @@ -15,13 +15,13 @@ Previously, after uploading documents to the knowledge base, traditional citatio | Question | Citation | | --- | --- | -| ![](/imgs/chunkReader1.png) | ![](/imgs/chunkReader2.jpg) | +| ![](../../../../public/imgs/chunkReader1.png) | ![](../../../../public/imgs/chunkReader2.jpg) | ## FastGPT Chunk Reader: Precise Positioning, Seamless Reading With FastGPT's Chunk Reader, the same knowledge base content and questions are presented in a fundamentally better way: -![](/imgs/chunkReader4.jpg) +![](../../../../public/imgs/chunkReader4.jpg) When AI cites knowledge base content, click the citation link to open a popup showing the full original text with the cited passage clearly highlighted. This ensures traceability while providing a convenient reading experience. @@ -35,25 +35,25 @@ In the conversation interface, when AI cites knowledge base content, source info This design ensures answer traceability and makes it easy to verify AI accuracy and review surrounding context. -![](/imgs/chunkReader3.webp) +![](../../../../public/imgs/chunkReader3.webp) ## Citation Navigation The top-right corner of the Chunk Reader provides simple navigation controls for switching between multiple citations. The navigation area displays the current citation index and total count (e.g., "7/10"), so you always know your browsing progress. -![](/imgs/chunkReader5.jpg) +![](../../../../public/imgs/chunkReader5.jpg) ## Citation Quality Scoring Each citation includes a relevance score label showing its ranking among all matched knowledge fragments. Hover over the label to see full scoring details, including why the citation was selected and how its relevance score breaks down. -![](/imgs/chunkReader6.png) +![](../../../../public/imgs/chunkReader6.png) ## One-Click Document Export The Chunk Reader includes a content export feature so valuable information is never lost. Users with read access to the knowledge base can save the full cited document to their local device with a single click. -![](/imgs/chunkReader7.jpg) +![](../../../../public/imgs/chunkReader7.jpg) # Advanced Features @@ -65,7 +65,7 @@ When set to "citation content only," external users clicking a citation link wil | | | | --- | --- | -| ![](/imgs/chunkReader8.png) | ![](/imgs/chunkReader9.jpg) | +| ![](../../../../public/imgs/chunkReader8.png) | ![](../../../../public/imgs/chunkReader9.jpg) | ## Instant Annotation diff --git a/document/content/docs/introduction/guide/DialogBoxes/quoteList.mdx b/document/content/introduction/guide/DialogBoxes/quoteList.mdx similarity index 91% rename from document/content/docs/introduction/guide/DialogBoxes/quoteList.mdx rename to document/content/introduction/guide/DialogBoxes/quoteList.mdx index 046eb88e6f..83a6cff9f0 100644 --- a/document/content/docs/introduction/guide/DialogBoxes/quoteList.mdx +++ b/document/content/introduction/guide/DialogBoxes/quoteList.mdx @@ -14,13 +14,13 @@ description: FastGPT 分块阅读器功能介绍 | 问题 | 引用 | | --- | --- | -| ![](/imgs/chunkReader1.png) | ![](/imgs/chunkReader2.jpg) | +| ![](../../../../public/imgs/chunkReader1.png) | ![](../../../../public/imgs/chunkReader2.jpg) | ## FastGPT 分块阅读器:精准定位,无缝阅读 而在 FastGPT 全新的分块式阅读器中,同样的知识库内容和问题,呈现方式发生了质的飞跃 -![](/imgs/chunkReader4.jpg) +![](../../../../public/imgs/chunkReader4.jpg) 当 AI 引用知识库内容时,用户只需点击引用链接,即可打开一个浮窗,呈现完整的原文内容,并通过醒目的高亮标记精确显示引用的文本片段。这既保证了回答的可溯源性,又提供了便捷的原文查阅体验。 @@ -34,27 +34,27 @@ description: FastGPT 分块阅读器功能介绍 这一设计既保证了回答的可溯源性,又提供了便捷的原文查阅体验,让用户能轻松验证AI回答的准确性和相关上下文。 -![](/imgs/chunkReader3.webp) +![](../../../../public/imgs/chunkReader3.webp) ## 便捷引用导航 分块阅读器右上角设计了简洁实用的导航控制,用户可以通过这对按钮轻松在多个引用间切换浏览。导航区还直观显示当前查看的引用序号及总引用数量(如 "7/10"),帮助用户随时了解浏览进度和引用内容的整体规模。 -![](/imgs/chunkReader5.jpg) +![](../../../../public/imgs/chunkReader5.jpg) ## 引用质量评分 每条引用内容旁边都配有智能评分标签,直观展示该引用在所有知识片段中的相关性排名。用户只需将鼠标悬停在评分标签上,即可查看完整的评分详情,了解这段引用内容为何被AI选中以及其相关性的具体构成。 -![](/imgs/chunkReader6.png) +![](../../../../public/imgs/chunkReader6.png) ## 文档内容一键导出 分块阅读器贴心配备了内容导出功能,让有效信息不再流失。只要用户拥有相应知识库的阅读权限,便可通过简单点击将引用涉及的全文直接保存到本地设备。 -![](/imgs/chunkReader7.jpg) +![](../../../../public/imgs/chunkReader7.jpg) # 进阶特性 @@ -66,7 +66,7 @@ FastGPT提供灵活的引用可见度设置,让知识共享既开放又安全 | | | | --- | --- | -| ![](/imgs/chunkReader8.png) | ![](/imgs/chunkReader9.jpg) | +| ![](../../../../public/imgs/chunkReader8.png) | ![](../../../../public/imgs/chunkReader9.jpg) | ## 即时标注优化 diff --git a/document/content/docs/introduction/guide/admin/meta.en.json b/document/content/introduction/guide/admin/meta.en.json similarity index 100% rename from document/content/docs/introduction/guide/admin/meta.en.json rename to document/content/introduction/guide/admin/meta.en.json diff --git a/document/content/docs/introduction/guide/admin/meta.json b/document/content/introduction/guide/admin/meta.json similarity index 100% rename from document/content/docs/introduction/guide/admin/meta.json rename to document/content/introduction/guide/admin/meta.json diff --git a/document/content/docs/introduction/guide/admin/sso.en.mdx b/document/content/introduction/guide/admin/sso.en.mdx similarity index 95% rename from document/content/docs/introduction/guide/admin/sso.en.mdx rename to document/content/introduction/guide/admin/sso.en.mdx index 93f380519b..dbb05ccb9c 100644 --- a/document/content/docs/introduction/guide/admin/sso.en.mdx +++ b/document/content/introduction/guide/admin/sso.en.mdx @@ -22,7 +22,7 @@ FastGPT-pro includes a standard set of SSO and member sync interfaces. The syste FastGPT-SSO-Service aggregates SSO and member sync interfaces from different sources and converts them into the format recognized by fastgpt-pro. - ![](/imgs/sso2.png) + ![](../../../../public/imgs/sso2.png) ## System Configuration Tutorial @@ -106,18 +106,18 @@ env: - ![WeCom](/imgs/sso15.png) - ![DingTalk](/imgs/sso16.png) - ![Lark](/imgs/sso17.png) + ![WeCom](../../../../public/imgs/sso15.png) + ![DingTalk](../../../../public/imgs/sso16.png) + ![Lark](../../../../public/imgs/sso17.png) #### 3. Enable Member Sync (Optional) -If you need to sync members from an external system, you can enable member sync. For team mode details, see: [Team Mode Documentation](/docs/introduction/guide/admin/teamMode) +If you need to sync members from an external system, you can enable member sync. For team mode details, see: [Team Mode Documentation](./teamMode.en.mdx) -![](/imgs/sso1.png) +![](../../../../public/imgs/sso1.png) #### 4. Optional Configuration @@ -140,13 +140,13 @@ env: Go to the developer console, click on your enterprise self-built app, and view the app credentials on the Credentials & Basic Info page. - ![](/imgs/sso3.png) + ![](../../../../public/imgs/sso3.png) #### 2. Permission Configuration Go to the developer console, click on your enterprise self-built app, and enable permissions on the Permission Management page under Development Configuration. - ![](/imgs/sso4.png) + ![](../../../../public/imgs/sso4.png) You can use the **Batch Import/Export Permissions** feature to import the following permission configuration: @@ -174,7 +174,7 @@ Note: The accessible data scope must be set to visible to all members. Go to the developer console, click on your enterprise self-built app, and set the redirect URL in Security Settings under Development Configuration. The redirect URL should follow the format `https://www.fastgpt.cn/login/provider` — replace the domain with your publicly accessible FastGPT domain. - ![](/imgs/sso5.png) + ![](../../../../public/imgs/sso5.png) #### 4. yml Configuration Example @@ -209,7 +209,7 @@ fastgpt-sso: CLIENT_ID and CLIENT_SECRET Go to the DingTalk Open Platform, click App Development, select your app, and record the Client ID and Client Secret on the Credentials & Basic Info page. - ![](/imgs/sso6.png) + ![](../../../../public/imgs/sso6.png) #### 2. Permission Configuration @@ -261,7 +261,7 @@ fastgpt-sso: b. Go to the "My Enterprise" page and find the Enterprise ID - ![](/imgs/sso7.png) + ![](../../../../public/imgs/sso7.png) 2. Create an internal app for FastGPT: @@ -269,10 +269,10 @@ fastgpt-sso: b. Ensure the app's visibility scope is set to all (i.e., root department) - ![](/imgs/sso8.png) + ![](../../../../public/imgs/sso8.png) - ![](/imgs/sso9.png) + ![](../../../../public/imgs/sso9.png) 3. A domain name with the following requirements: @@ -284,11 +284,11 @@ fastgpt-sso: d. You can set "Hide app in workbench" at the bottom of the WeCom Authorization Login page - ![](/imgs/sso10.png) + ![](../../../../public/imgs/sso10.png) - ![](/imgs/sso11.png) + ![](../../../../public/imgs/sso11.png) - ![](/imgs/sso12.png) + ![](../../../../public/imgs/sso12.png) 4. Get the "Contact Sync Assistant" secret @@ -296,7 +296,7 @@ fastgpt-sso: Security & Management -- Management Tools -- Contact Sync - ![](/imgs/sso13.png) + ![](../../../../public/imgs/sso13.png) 5. Enable interface sync @@ -304,7 +304,7 @@ fastgpt-sso: 7. Configure enterprise trusted IPs - ![](/imgs/sso14.png) + ![](../../../../public/imgs/sso14.png) #### 2. yml Configuration Example @@ -427,7 +427,7 @@ fastgpt-sso: Below is the standard interface documentation for SSO and member sync in FastGPT-pro. If you need to integrate with a non-standard system, refer to this section for development. -![](/imgs/sso18.png) +![](../../../../public/imgs/sso18.png) FastGPT provides the following standard interfaces: diff --git a/document/content/docs/introduction/guide/admin/sso.mdx b/document/content/introduction/guide/admin/sso.mdx similarity index 95% rename from document/content/docs/introduction/guide/admin/sso.mdx rename to document/content/introduction/guide/admin/sso.mdx index f5c4184ba0..4beda9bacc 100644 --- a/document/content/docs/introduction/guide/admin/sso.mdx +++ b/document/content/introduction/guide/admin/sso.mdx @@ -22,7 +22,7 @@ FastGPT-pro 中,有一套标准的SSO 和成员同步接口,系统会根据 FastGPT-SSO-Service 是为了聚合不同来源的 SSO 和成员同步接口,将他们转成 fastgpt-pro 可识别的接口。 - ![](/imgs/sso2.png) + ![](../../../../public/imgs/sso2.png) ## 系统配置教程 @@ -106,18 +106,18 @@ env: - ![企业微信](/imgs/sso15.png) - ![钉钉](/imgs/sso16.png) - ![飞书](/imgs/sso17.png) + ![企业微信](../../../../public/imgs/sso15.png) + ![钉钉](../../../../public/imgs/sso16.png) + ![飞书](../../../../public/imgs/sso17.png) #### 3. 开启成员同步(可选) -如果需要同步外部系统的成员,可以选择开启成员同步。团队模式具体可参考:[团队模式说明文档](/docs/introduction/guide/admin/teamMode) +如果需要同步外部系统的成员,可以选择开启成员同步。团队模式具体可参考:[团队模式说明文档](./teamMode.mdx) -![](/imgs/sso1.png) +![](../../../../public/imgs/sso1.png) #### 4. 可选配置 @@ -140,13 +140,13 @@ env: 进入开发者后台,点击企业自建应用,在凭证与基础信息页面查看应用凭证。 - ![](/imgs/sso3.png) + ![](../../../../public/imgs/sso3.png) #### 2. 权限配置 进入开发者后台,点击企业自建应用,在开发配置的权限管理页面开通权限。 - ![](/imgs/sso4.png) + ![](../../../../public/imgs/sso4.png) 可以使用**批量导入/导出权限** 功能,导入如下权限配置: @@ -174,7 +174,7 @@ env: 进入开发者后台,点击企业自建应用,在开发配置的安全设置中设置重定向URL, 重定向 URL 形如 `https://www.fastgpt.cn/login/provider` 前面的域名修改为部署后公开可访问的 fastgpt 的域名 - ![](/imgs/sso5.png) + ![](../../../../public/imgs/sso5.png) #### 4. yml 配置示例 @@ -209,7 +209,7 @@ fastgpt-sso: CLIENT_ID 与 CLIENT_SECRET 进入钉钉开放平台,点击应用开发,选择自己的应用进入,记录在凭证与基础信息页面下的Client ID与Client secret。 - ![](/imgs/sso6.png) + ![](../../../../public/imgs/sso6.png) #### 2. 权限配置 @@ -261,7 +261,7 @@ fastgpt-sso: b. 点击 【我的企业】 页面,查看企业的 **企业ID** - ![](/imgs/sso7.png) + ![](../../../../public/imgs/sso7.png) 2. 创建一个供 FastGPT 使用的内部应用: @@ -269,10 +269,10 @@ fastgpt-sso: b. 保证这个应用的可见范围为全部(也就是根部门) - ![](/imgs/sso8.png) + ![](../../../../public/imgs/sso8.png) - ![](/imgs/sso9.png) + ![](../../../../public/imgs/sso9.png) 3. 一个域名。并且要求: @@ -284,11 +284,11 @@ fastgpt-sso: d. 可以在【企业微信授权登陆】页面下方设置"在工作台隐藏应用" - ![](/imgs/sso10.png) + ![](../../../../public/imgs/sso10.png) - ![](/imgs/sso11.png) + ![](../../../../public/imgs/sso11.png) - ![](/imgs/sso12.png) + ![](../../../../public/imgs/sso12.png) 4. 获取 "通讯录同步助手" secret @@ -296,7 +296,7 @@ fastgpt-sso: 【安全与管理】-- 【管理工具】 -- 【通讯录同步】 - ![](/imgs/sso13.png) + ![](../../../../public/imgs/sso13.png) 5. 开启接口同步 @@ -304,7 +304,7 @@ fastgpt-sso: 7. 配置企业可信 IP - ![](/imgs/sso14.png) + ![](../../../../public/imgs/sso14.png) #### 2. yml 配置示例 @@ -427,7 +427,7 @@ fastgpt-sso: 以下是 FastGPT-pro 中,SSO 和成员同步的标准接口文档,如果需要对接非标准系统,可以参考该章节进行开发。 -![](/imgs/sso18.png) +![](../../../../public/imgs/sso18.png) FastGPT 提供如下标准接口支持: diff --git a/document/content/docs/introduction/guide/admin/teamMode.en.mdx b/document/content/introduction/guide/admin/teamMode.en.mdx similarity index 97% rename from document/content/docs/introduction/guide/admin/teamMode.en.mdx rename to document/content/introduction/guide/admin/teamMode.en.mdx index 6ef086d503..d70893f51c 100644 --- a/document/content/docs/introduction/guide/admin/teamMode.en.mdx +++ b/document/content/introduction/guide/admin/teamMode.en.mdx @@ -71,11 +71,11 @@ Single-team mode is a new feature introduced in v4.9. To simplify personnel and When system configuration is complete and sync mode is enabled, members from external member systems are automatically synced to FastGPT. -For specific sync methods and rules, see [SSO & External Member Sync](/docs/introduction/guide/admin/sso.md). +For specific sync methods and rules, see [SSO & External Member Sync](./sso.en.mdx). ## Configuration In `fastgpt-pro`'s System Configuration - Member Configuration, you can configure the team mode. -![](/imgs/teammode.png) +![](../../../../public/imgs/teammode.png) diff --git a/document/content/docs/introduction/guide/admin/teamMode.mdx b/document/content/introduction/guide/admin/teamMode.mdx similarity index 97% rename from document/content/docs/introduction/guide/admin/teamMode.mdx rename to document/content/introduction/guide/admin/teamMode.mdx index 33c823bbad..dc4c12a43e 100644 --- a/document/content/docs/introduction/guide/admin/teamMode.mdx +++ b/document/content/introduction/guide/admin/teamMode.mdx @@ -71,11 +71,11 @@ description: FastGPT 团队模式说明文档 在完成系统配置,开启同步模式的情况下,外部成员系统的成员会自动同步到 FastGPT 中。 -具体的同步方式和规则请参考 [SSO & 外部成员同步](/docs/introduction/guide/admin/sso.md)。 +具体的同步方式和规则请参考 [SSO & 外部成员同步](./sso.mdx)。 ## 配置 在 `fastgpt-pro` 的`系统配置-成员配置`中,可以配置团队模式。 -![](/imgs/teammode.png) +![](../../../../public/imgs/teammode.png) diff --git a/document/content/docs/introduction/guide/course/ai_settings.en.mdx b/document/content/introduction/guide/course/ai_settings.en.mdx similarity index 90% rename from document/content/docs/introduction/guide/course/ai_settings.en.mdx rename to document/content/introduction/guide/course/ai_settings.en.mdx index c007358e1f..fb5c2d32e1 100644 --- a/document/content/docs/introduction/guide/course/ai_settings.en.mdx +++ b/document/content/introduction/guide/course/ai_settings.en.mdx @@ -9,7 +9,7 @@ The AI Chat module in FastGPT includes an advanced configuration section with va | | | | | --- | --- | --- | -| ![alt text](/imgs/image-51.png) | ![alt text](/imgs/image-52.png) | ![alt text](/imgs/image-53.png) | +| ![alt text](../../../../public/imgs/image-51.png) | ![alt text](../../../../public/imgs/image-52.png) | ![alt text](../../../../public/imgs/image-53.png) | ## Stream Response (Workflow AI Chat only) @@ -51,7 +51,7 @@ So even if you set 30 rounds, the actual number at runtime may be fewer. After a Knowledge Base search, you can customize how search results are formatted into prompts. This setting is only available in the AI Chat node within workflows, and only takes effect when Knowledge Base content is referenced. -![alt text](/imgs/image-54.png) +![alt text](../../../../public/imgs/image-54.png) ### AI Chat Message Structure @@ -78,7 +78,7 @@ Citation templates and citation prompts typically work as a pair — the citatio FastGPT stores Knowledge Base data in QA pairs (not necessarily in question-answer format — just two variables). When converting to strings, the data is formatted according to the **citation template**. Available variables include: q, a, sourceId (data ID), index (nth entry), source (collection/file name), and score (distance score, 0-1). Reference them as needed using `{{q}}` `{{a}}` `{{sourceId}}` `{{index}}` `{{source}}` `{{score}}`. Here's an example: -See [Knowledge Base Structure](/docs/introduction/guide/knowledge_base/dataset_engine/) for details on how the Knowledge Base is structured. +See [Knowledge Base Structure](../knowledge_base/dataset_engine.en.mdx) for details on how the Knowledge Base is structured. #### Citation Template @@ -143,9 +143,9 @@ Tip: For best results, use only one data type per Knowledge Base for each scenar | General template config & results | QA template config & results | | --- | --- | -| ![](/imgs/datasetprompt1.jpg) | ![](/imgs/datasetprompt2.jpg) | -| ![](/imgs/datasetprompt3.jpg) | ![](/imgs/datasetprompt5.jpg) | -| ![](/imgs/datasetprompt4.jpg) | ![](/imgs/datasetprompt6.jpg) | +| ![](../../../../public/imgs/datasetprompt1.jpg) | ![](../../../../public/imgs/datasetprompt2.jpg) | +| ![](../../../../public/imgs/datasetprompt3.jpg) | ![](../../../../public/imgs/datasetprompt5.jpg) | +| ![](../../../../public/imgs/datasetprompt4.jpg) | ![](../../../../public/imgs/datasetprompt6.jpg) | #### Strict Template @@ -153,7 +153,7 @@ With a non-strict template, asking about something not in the Knowledge Base typ | Non-strict template results | Selecting strict template | Strict template results | | --- | --- | --- | -| ![](/imgs/datasetprompt7.webp) | ![](/imgs/datasetprompt8.jpg) |![](/imgs/datasetprompt9.jpg) | +| ![](../../../../public/imgs/datasetprompt7.webp) | ![](../../../../public/imgs/datasetprompt8.jpg) |![](../../../../public/imgs/datasetprompt9.jpg) | #### Prompt Design Tips diff --git a/document/content/docs/introduction/guide/course/ai_settings.mdx b/document/content/introduction/guide/course/ai_settings.mdx similarity index 90% rename from document/content/docs/introduction/guide/course/ai_settings.mdx rename to document/content/introduction/guide/course/ai_settings.mdx index 1e763e0a3d..cc9382e3c7 100644 --- a/document/content/docs/introduction/guide/course/ai_settings.mdx +++ b/document/content/introduction/guide/course/ai_settings.mdx @@ -9,7 +9,7 @@ import { Alert } from '@/components/docs/Alert'; | | | | | --- | --- | --- | -| ![alt text](/imgs/image-51.png) | ![alt text](/imgs/image-52.png) | ![alt text](/imgs/image-53.png) | +| ![alt text](../../../../public/imgs/image-51.png) | ![alt text](../../../../public/imgs/image-52.png) | ![alt text](../../../../public/imgs/image-53.png) | ## 流响应(高级编排 AI 对话 特有) @@ -52,7 +52,7 @@ import { Alert } from '@/components/docs/Alert'; 进行知识库搜索后,你可以自定义组织检索结果构成的提示词,这个配置,仅工作流中 AI 对话节点可用。并且,只会在有引用知识库内容时才会生效。 -![alt text](/imgs/image-54.png) +![alt text](../../../../public/imgs/image-54.png) ### AI 对话消息组成 @@ -79,7 +79,7 @@ Tips: 可以通过点击上下文按键查看完整的上下文组成,便于 FastGPT 知识库采用 QA 对(不一定都是问答格式,仅代表两个变量)的格式存储,在转义成字符串时候会根据**引用模板**来进行格式化。知识库包含多个可用变量: q, a, sourceId(数据的ID), index(第n个数据), source(数据的集合名、文件名),score(距离得分,0-1) 可以通过 `{{q}}` `{{a}}` `{{sourceId}}` `{{index}}` `{{source}}` `{{score}}` 按需引入。下面一个模板例子: -可以通过 [知识库结构讲解](/docs/introduction/guide/knowledge_base/dataset_engine/) 了解详细的知识库的结构。 +可以通过 [知识库结构讲解](../knowledge_base/dataset_engine.mdx) 了解详细的知识库的结构。 #### 引用模板 @@ -144,9 +144,9 @@ Tips: 建议根据不同的场景,每种知识库仅选择1类数据类型, | 通用模板配置及效果 | 问答模板配置及效果 | | --- | --- | -| ![](/imgs/datasetprompt1.jpg) | ![](/imgs/datasetprompt2.jpg) | -| ![](/imgs/datasetprompt3.jpg) | ![](/imgs/datasetprompt5.jpg) | -| ![](/imgs/datasetprompt4.jpg) | ![](/imgs/datasetprompt6.jpg) | +| ![](../../../../public/imgs/datasetprompt1.jpg) | ![](../../../../public/imgs/datasetprompt2.jpg) | +| ![](../../../../public/imgs/datasetprompt3.jpg) | ![](../../../../public/imgs/datasetprompt5.jpg) | +| ![](../../../../public/imgs/datasetprompt4.jpg) | ![](../../../../public/imgs/datasetprompt6.jpg) | #### 严格模板 @@ -154,7 +154,7 @@ Tips: 建议根据不同的场景,每种知识库仅选择1类数据类型, | 非严格模板效果 | 选择严格模板 | 严格模板效果 | | --- | --- | --- | -| ![](/imgs/datasetprompt7.webp) | ![](/imgs/datasetprompt8.jpg) |![](/imgs/datasetprompt9.jpg) | +| ![](../../../../public/imgs/datasetprompt7.webp) | ![](../../../../public/imgs/datasetprompt8.jpg) |![](../../../../public/imgs/datasetprompt9.jpg) | #### 提示词设计思路 diff --git a/document/content/docs/introduction/guide/course/chat_input_guide.en.mdx b/document/content/introduction/guide/course/chat_input_guide.en.mdx similarity index 95% rename from document/content/docs/introduction/guide/course/chat_input_guide.en.mdx rename to document/content/introduction/guide/course/chat_input_guide.en.mdx index 6ec362cd73..42d386e005 100644 --- a/document/content/docs/introduction/guide/course/chat_input_guide.en.mdx +++ b/document/content/introduction/guide/course/chat_input_guide.en.mdx @@ -3,7 +3,7 @@ title: Chat Input Guide description: FastGPT chat input guide --- -![](/imgs/questionGuide.png) +![](../../../../public/imgs/questionGuide.png) ## What is Custom Question Guidance? diff --git a/document/content/docs/introduction/guide/course/chat_input_guide.mdx b/document/content/introduction/guide/course/chat_input_guide.mdx similarity index 95% rename from document/content/docs/introduction/guide/course/chat_input_guide.mdx rename to document/content/introduction/guide/course/chat_input_guide.mdx index e0c73cda12..0bc4e05120 100644 --- a/document/content/docs/introduction/guide/course/chat_input_guide.mdx +++ b/document/content/introduction/guide/course/chat_input_guide.mdx @@ -3,7 +3,7 @@ title: 对话问题引导 description: FastGPT 对话问题引导 --- -![](/imgs/questionGuide.png) +![](../../../../public/imgs/questionGuide.png) ## 什么是自定义问题引导 diff --git a/document/content/docs/introduction/guide/course/fileInput.en.mdx b/document/content/introduction/guide/course/fileInput.en.mdx similarity index 93% rename from document/content/docs/introduction/guide/course/fileInput.en.mdx rename to document/content/introduction/guide/course/fileInput.en.mdx index 9e1b7b2120..4944c3e14d 100644 --- a/document/content/docs/introduction/guide/course/fileInput.en.mdx +++ b/document/content/introduction/guide/course/fileInput.en.mdx @@ -12,11 +12,11 @@ When file upload is enabled in Basic Mode, it uses tool-calling mode — the mod Find the file upload option on the left panel and click the `Enable`/`Disable` toggle to open the configuration dialog. -![Enable file upload](/imgs/fileinpu-1.png) +![Enable file upload](../../../../public/imgs/fileinpu-1.png) Once enabled, a file selection icon appears in the chat input area. Click it to select files for upload. -![Enable file upload](/imgs/fileinpu-2.png) +![Enable file upload](../../../../public/imgs/fileinpu-2.png) **Behavior** @@ -26,17 +26,17 @@ Starting from version 4.8.13, Basic Mode forces file parsing and injects the con In Workflows, find the `File Input` option in the system configuration panel and click the `Enable`/`Disable` toggle to open the configuration dialog. -![Enable file upload](/imgs/fileinpu-4.jpg) +![Enable file upload](../../../../public/imgs/fileinpu-4.jpg) There are many ways to use files in Workflows. The simplest approach, shown below, connects document parsing via tool calling — achieving the same result as Basic Mode. | | | | --------------------- | --------------------- | -| ![](/imgs/image-5.png) | ![](/imgs/image-6.png) | +| ![](../../../../public/imgs/image-5.png) | ![](../../../../public/imgs/image-6.png) | You can also use Workflows to extract or analyze document content, then pass the results to HTTP requests or other modules to build a document processing pipeline. -![Document parsing](/imgs/image-7.png) +![Document parsing](../../../../public/imgs/image-7.png) ## How Document Parsing Works diff --git a/document/content/docs/introduction/guide/course/fileInput.mdx b/document/content/introduction/guide/course/fileInput.mdx similarity index 100% rename from document/content/docs/introduction/guide/course/fileInput.mdx rename to document/content/introduction/guide/course/fileInput.mdx diff --git a/document/content/docs/introduction/guide/course/meta.en.json b/document/content/introduction/guide/course/meta.en.json similarity index 100% rename from document/content/docs/introduction/guide/course/meta.en.json rename to document/content/introduction/guide/course/meta.en.json diff --git a/document/content/docs/introduction/guide/course/meta.json b/document/content/introduction/guide/course/meta.json similarity index 100% rename from document/content/docs/introduction/guide/course/meta.json rename to document/content/introduction/guide/course/meta.json diff --git a/document/content/docs/introduction/guide/course/quick-start.en.mdx b/document/content/introduction/guide/course/quick-start.en.mdx similarity index 82% rename from document/content/docs/introduction/guide/course/quick-start.en.mdx rename to document/content/introduction/guide/course/quick-start.en.mdx index 4414258900..7c6af5a0d9 100644 --- a/document/content/docs/introduction/guide/course/quick-start.en.mdx +++ b/document/content/introduction/guide/course/quick-start.en.mdx @@ -13,7 +13,7 @@ We'll use the FastGPT Chinese README file as an example. First, create a Knowledge Base. -![](/imgs/create-rep.png) +![](../../../../public/imgs/create-rep.png) After creating the Knowledge Base, upload some content. @@ -25,26 +25,26 @@ There are four upload modes: Here we'll use QA Split to let AI generate QA pairs automatically. You can edit them manually later if the quality isn't satisfactory. -![](/imgs/upload-data.png) +![](../../../../public/imgs/upload-data.png) After uploading, wait for processing to complete until the file status shows as available. -![](/imgs/upload-data2.png) +![](../../../../public/imgs/upload-data2.png) ## Application Click the "Application" button to create a new app. There are four templates — select "Knowledge Base + Chat Guide." -![](/imgs/create-app.png) +![](../../../../public/imgs/create-app.png) After creating the app, go to the detail page, find the "Knowledge Base" section, and add the Knowledge Base you just created. -![](/imgs/create-app2.png) +![](../../../../public/imgs/create-app2.png) After adding the Knowledge Base, click "Save and Preview" to link your app with the Knowledge Base. -![](/imgs/create-app3.png) +![](../../../../public/imgs/create-app3.png) Now you're ready to start chatting. -![](/imgs/create-app4.png) +![](../../../../public/imgs/create-app4.png) diff --git a/document/content/docs/introduction/guide/course/quick-start.mdx b/document/content/introduction/guide/course/quick-start.mdx similarity index 81% rename from document/content/docs/introduction/guide/course/quick-start.mdx rename to document/content/introduction/guide/course/quick-start.mdx index 535f42ca91..9f60989033 100644 --- a/document/content/docs/introduction/guide/course/quick-start.mdx +++ b/document/content/introduction/guide/course/quick-start.mdx @@ -13,7 +13,7 @@ description: 快速体验 FastGPT 基础功能 首先我们需要创建一个知识库。 -![](/imgs/create-rep.png) +![](../../../../public/imgs/create-rep.png) 知识库创建完之后我们需要上传一点内容。 @@ -25,26 +25,26 @@ description: 快速体验 FastGPT 基础功能 这里,我们选择 QA 拆分,让 AI 自动生成问答,若问答质量不高,可以后期手动修改。 -![](/imgs/upload-data.png) +![](../../../../public/imgs/upload-data.png) 点击上传后我们需要等待数据处理完成,直到我们上传的文件状态为可用。 -![](/imgs/upload-data2.png) +![](../../../../public/imgs/upload-data2.png) ## 应用 点击「应用」按钮来新建一个应用,这里有四个模板,我们选择「知识库 + 对话引导」。 -![](/imgs/create-app.png) +![](../../../../public/imgs/create-app.png) 应用创建后来再应用详情页找到「知识库」模块,把我们刚刚创建的知识库添加进去。 -![](/imgs/create-app2.png) +![](../../../../public/imgs/create-app2.png) 添加完知识库后记得点击「保存并预览」,这样我们的应用就和知识库关联起来了。 -![](/imgs/create-app3.png) +![](../../../../public/imgs/create-app3.png) 然后我们就可以愉快的开始聊天啦。 -![](/imgs/create-app4.png) +![](../../../../public/imgs/create-app4.png) diff --git a/document/content/docs/introduction/guide/dashboard/basic-mode.en.mdx b/document/content/introduction/guide/dashboard/basic-mode.en.mdx similarity index 100% rename from document/content/docs/introduction/guide/dashboard/basic-mode.en.mdx rename to document/content/introduction/guide/dashboard/basic-mode.en.mdx diff --git a/document/content/docs/introduction/guide/dashboard/basic-mode.mdx b/document/content/introduction/guide/dashboard/basic-mode.mdx similarity index 100% rename from document/content/docs/introduction/guide/dashboard/basic-mode.mdx rename to document/content/introduction/guide/dashboard/basic-mode.mdx diff --git a/document/content/docs/introduction/guide/dashboard/evaluation.en.mdx b/document/content/introduction/guide/dashboard/evaluation.en.mdx similarity index 86% rename from document/content/docs/introduction/guide/dashboard/evaluation.en.mdx rename to document/content/introduction/guide/dashboard/evaluation.en.mdx index a548c9f446..3ce598140c 100644 --- a/document/content/docs/introduction/guide/dashboard/evaluation.en.mdx +++ b/document/content/introduction/guide/dashboard/evaluation.en.mdx @@ -11,13 +11,13 @@ The system supports three evaluation metrics: answer accuracy, question relevanc ### Go to the Evaluation Page -![Create app evaluation](/imgs/evaluation1.png) +![Create app evaluation](../../../../public/imgs/evaluation1.png) Navigate to the App Evaluation section under Workspace and click the "Create Task" button in the upper right corner. ### Fill in Evaluation Details -![Create app evaluation](/imgs/evaluation2.png) +![Create app evaluation](../../../../public/imgs/evaluation2.png) On the task creation page, provide the following: @@ -27,7 +27,7 @@ On the task creation page, provide the following: ### Prepare Evaluation Data -![Create app evaluation](/imgs/evaluation2.png) +![Create app evaluation](../../../../public/imgs/evaluation2.png) After selecting the target app, a button appears to download the CSV template. The template includes these fields: @@ -47,7 +47,7 @@ Upload the completed file and click "Start Evaluation" to create the task. ### Evaluation List -![View app evaluation](/imgs/evaluation4.png) +![View app evaluation](../../../../public/imgs/evaluation4.png) The evaluation list shows all tasks with key information: @@ -61,7 +61,7 @@ Use this to compare results across iterations as you improve your app. ### Evaluation Details -![View app evaluation](/imgs/evaluation5.png) +![View app evaluation](../../../../public/imgs/evaluation5.png) Click "View Details" to open the detail page: diff --git a/document/content/docs/introduction/guide/dashboard/evaluation.mdx b/document/content/introduction/guide/dashboard/evaluation.mdx similarity index 86% rename from document/content/docs/introduction/guide/dashboard/evaluation.mdx rename to document/content/introduction/guide/dashboard/evaluation.mdx index 067d9c9b68..605d33c669 100644 --- a/document/content/docs/introduction/guide/dashboard/evaluation.mdx +++ b/document/content/introduction/guide/dashboard/evaluation.mdx @@ -11,13 +11,13 @@ FastGPT v4.11.0 版本开始支持应用批量评测功能。通过传入多组 ### 进入评测页面 -![创建应用评测](/imgs/evaluation1.png) +![创建应用评测](../../../../public/imgs/evaluation1.png) 进入工作台下的应用评测目录,点击右上角的"创建任务"按钮。 ### 填写评测信息 -![创建应用评测](/imgs/evaluation2.png) +![创建应用评测](../../../../public/imgs/evaluation2.png) 在创建任务页面中,需要填写以下信息: @@ -27,7 +27,7 @@ FastGPT v4.11.0 版本开始支持应用批量评测功能。通过传入多组 ### 准备评测数据 -![创建应用评测](/imgs/evaluation2.png) +![创建应用评测](../../../../public/imgs/evaluation2.png) 选择评测应用后,系统会弹出下载CSV模板的按钮。模板包含以下字段: @@ -47,7 +47,7 @@ FastGPT v4.11.0 版本开始支持应用批量评测功能。通过传入多组 ### 评测列表 -![查看应用评测](/imgs/evaluation4.png) +![查看应用评测](../../../../public/imgs/evaluation4.png) 评测列表页面显示所有评测任务,包含以下关键信息: @@ -61,7 +61,7 @@ FastGPT v4.11.0 版本开始支持应用批量评测功能。通过传入多组 ### 评测详情 -![查看应用评测](/imgs/evaluation5.png) +![查看应用评测](../../../../public/imgs/evaluation5.png) 点击"查看详情"可进入评测任务的详情页面: diff --git a/document/content/docs/introduction/guide/dashboard/intro.en.mdx b/document/content/introduction/guide/dashboard/intro.en.mdx similarity index 96% rename from document/content/docs/introduction/guide/dashboard/intro.en.mdx rename to document/content/introduction/guide/dashboard/intro.en.mdx index 5e2590db0f..548cd9021f 100644 --- a/document/content/docs/introduction/guide/dashboard/intro.en.mdx +++ b/document/content/introduction/guide/dashboard/intro.en.mdx @@ -7,7 +7,7 @@ Starting from V4.0, FastGPT adopted a new approach to building AI applications. [Watch the video tutorial](https://www.bilibili.com/video/BV1is421u7bQ/) -![](/imgs/flow-intro1.png) +![](../../../../public/imgs/flow-intro1.png) ## What is a Node? @@ -15,7 +15,7 @@ In programming terms, a node is like a function or API endpoint — think of it Below is the simplest AI conversation, consisting of a Workflow Start node and an AI Chat node. -![](/imgs/flow-intro2.png) +![](../../../../public/imgs/flow-intro2.png) Execution flow: 1. The user inputs a question. The [Workflow Start] node executes and saves the user's question. @@ -33,7 +33,7 @@ Functionally, nodes fall into 2 categories: Each node has 3 core parts: inputs, outputs, and triggers. - ![](/imgs/flow-intro3.png) + ![](../../../../public/imgs/flow-intro3.png) - AI model, prompt, chat history, user question, and Knowledge Base citation are inputs. Inputs can be manual entries or variable references, which include "global variables" and outputs from any previous node. - New context and AI reply content are outputs. Outputs can be referenced by any subsequent node. @@ -45,7 +45,7 @@ FastGPT Workflows start from the [Workflow Start] node, triggered when the user Let's look at how workflows execute and when each node is triggered. - ![](/imgs/flow-intro1.png) + ![](../../../../public/imgs/flow-intro1.png) As shown above, nodes can "be connected to" and "connect to other nodes." We call incoming connections "predecessor lines" and outgoing connections "successor lines." In the example, the [Knowledge Base Search] node has one predecessor line on the left and one successor line on the right. The [AI Chat] node only has a predecessor line on the left. diff --git a/document/content/docs/introduction/guide/dashboard/intro.mdx b/document/content/introduction/guide/dashboard/intro.mdx similarity index 96% rename from document/content/docs/introduction/guide/dashboard/intro.mdx rename to document/content/introduction/guide/dashboard/intro.mdx index 0389f899c8..3a17d0f805 100644 --- a/document/content/docs/introduction/guide/dashboard/intro.mdx +++ b/document/content/introduction/guide/dashboard/intro.mdx @@ -7,7 +7,7 @@ FastGPT 从 V4.0 版本开始采用新的交互方式来构建 AI 应用。使 [查看视频教程](https://www.bilibili.com/video/BV1is421u7bQ/) -![](/imgs/flow-intro1.png) +![](../../../../public/imgs/flow-intro1.png) ## 什么是节点? @@ -15,7 +15,7 @@ FastGPT 从 V4.0 版本开始采用新的交互方式来构建 AI 应用。使 如下图,这是一个最简单的 AI 对话。它由用流程开始和 AI 对话节点组成。 -![](/imgs/flow-intro2.png) +![](../../../../public/imgs/flow-intro2.png) 执行流程如下: 1. 用户输入问题后,【流程开始】节点执行,用户问题被保存。 @@ -33,7 +33,7 @@ FastGPT 从 V4.0 版本开始采用新的交互方式来构建 AI 应用。使 每个节点会包含 3 个核心部分:输入、输出和触发器。 - ![](/imgs/flow-intro3.png) + ![](../../../../public/imgs/flow-intro3.png) - AI模型、提示词、聊天记录、用户问题,知识库引用为输入,节点的输入可以是手动输入也可以是变量引用,变量引用的范围包括“全局变量”和之前任意一个节点的输出。 - 新的上下文和AI回复内容为输出,输出可以被之后任意节点变量引用。 @@ -45,7 +45,7 @@ FastGPT的工作流从【流程开始】节点开始执行,可以理解为从 下面我们来看下,工作流是如何运行的,以及每个节点何时被触发执行。 - ![](/imgs/flow-intro1.png) + ![](../../../../public/imgs/flow-intro1.png) 如上图所示节点会“被连接”也会“连接其他节点”,我们称“被连接”的那根线为前置线,“连接其他节点的线”为后置线。上图例子中【知识库搜索】模块左侧有一根前置线,右侧有一根后置线。而【AI对话】节点只有左侧一根前置线。 diff --git a/document/content/docs/introduction/guide/dashboard/mcp_server.en.mdx b/document/content/introduction/guide/dashboard/mcp_server.en.mdx similarity index 86% rename from document/content/docs/introduction/guide/dashboard/mcp_server.en.mdx rename to document/content/introduction/guide/dashboard/mcp_server.en.mdx index 1cd17d7f86..942ac768e1 100644 --- a/document/content/docs/introduction/guide/dashboard/mcp_server.en.mdx +++ b/document/content/introduction/guide/dashboard/mcp_server.en.mdx @@ -19,13 +19,13 @@ Currently, FastGPT's MCP Server uses the SSE transport protocol, with plans to m After logging into FastGPT, open `Workspace` and click `MCP Server` to access the management page. Here you can see all your MCP Servers and the number of applications each one manages. -![Create MCP server](/imgs/mcp_server1.png) +![Create MCP server](../../../../public/imgs/mcp_server1.png) You can customize the MCP Server name and select which applications to associate. | | | |---|---| -| ![](/imgs/mcp_server2.png) | ![](/imgs/mcp_server3.png) | +| ![](../../../../public/imgs/mcp_server2.png) | ![](../../../../public/imgs/mcp_server3.png) | ### 2. Get the MCP Server URL @@ -33,7 +33,7 @@ After creating an MCP Server, click `Start Using` to get the access URL. | | | |---|---| -| ![](/imgs/mcp_server4.png) | ![](/imgs/mcp_server5.png) | +| ![](../../../../public/imgs/mcp_server4.png) | ![](../../../../public/imgs/mcp_server5.png) | #### 3. Use the MCP Server @@ -45,7 +45,7 @@ Return to Cursor's MCP management page and you'll see your MCP Server listed. Ma | | | | |---|---|---| -| ![](/imgs/mcp_server6.png) | ![](/imgs/mcp_server7.png) | ![](/imgs/mcp_server8.png) | +| ![](../../../../public/imgs/mcp_server6.png) | ![](../../../../public/imgs/mcp_server7.png) | ![](../../../../public/imgs/mcp_server8.png) | Open Cursor's chat panel and switch to `Agent` mode — only this mode triggers MCP Server calls. @@ -53,7 +53,7 @@ After sending a question about `fastgpt`, you'll see Cursor invoke an MCP tool ( | | | |---|---| -| ![](/imgs/mcp_server9.png) | ![](/imgs/mcp_server10.png) | +| ![](../../../../public/imgs/mcp_server9.png) | ![](../../../../public/imgs/mcp_server10.png) | ## Self-Hosted MCP Server Setup diff --git a/document/content/docs/introduction/guide/dashboard/mcp_server.mdx b/document/content/introduction/guide/dashboard/mcp_server.mdx similarity index 87% rename from document/content/docs/introduction/guide/dashboard/mcp_server.mdx rename to document/content/introduction/guide/dashboard/mcp_server.mdx index e986b08250..8cc47fc3a8 100644 --- a/document/content/docs/introduction/guide/dashboard/mcp_server.mdx +++ b/document/content/introduction/guide/dashboard/mcp_server.mdx @@ -19,13 +19,13 @@ FastGPT MCP Server 功能允许你选择`多个`在 FastGPT 上构建好的应 登录 FastGPT 后,打开`工作台`,点击`MCP server`,即可进入管理页面,这里可以看到你创建的所有 MCP server,以及他们管理的应用数量。 -![创建 MCP server](/imgs/mcp_server1.png) +![创建 MCP server](../../../../public/imgs/mcp_server1.png) 可以自定义 MCP server 名称和选择关联的应用 | | | |---|---| -| ![](/imgs/mcp_server2.png) | ![](/imgs/mcp_server3.png) | +| ![](../../../../public/imgs/mcp_server2.png) | ![](../../../../public/imgs/mcp_server3.png) | ### 2. 获取 MCP server 地址 @@ -33,7 +33,7 @@ FastGPT MCP Server 功能允许你选择`多个`在 FastGPT 上构建好的应 | | | |---|---| -| ![](/imgs/mcp_server4.png) | ![](/imgs/mcp_server5.png) | +| ![](../../../../public/imgs/mcp_server4.png) | ![](../../../../public/imgs/mcp_server5.png) | #### 3. 使用 MCP server @@ -45,7 +45,7 @@ FastGPT MCP Server 功能允许你选择`多个`在 FastGPT 上构建好的应 | | | | |---|---|---| -| ![](/imgs/mcp_server6.png) | ![](/imgs/mcp_server7.png) | ![](/imgs/mcp_server8.png) | +| ![](../../../../public/imgs/mcp_server6.png) | ![](../../../../public/imgs/mcp_server7.png) | ![](../../../../public/imgs/mcp_server8.png) | 打开 Cursor 的对话框,切换成`Agent`模型,只有这个模型,cursor 才会调用 MCP server。 @@ -53,7 +53,7 @@ FastGPT MCP Server 功能允许你选择`多个`在 FastGPT 上构建好的应 | | | |---|---| -| ![](/imgs/mcp_server9.png) | ![](/imgs/mcp_server10.png) | +| ![](../../../../public/imgs/mcp_server9.png) | ![](../../../../public/imgs/mcp_server10.png) | ## 私有化部署 MCP server 问题 diff --git a/document/content/docs/introduction/guide/dashboard/mcp_tools.en.mdx b/document/content/introduction/guide/dashboard/mcp_tools.en.mdx similarity index 81% rename from document/content/docs/introduction/guide/dashboard/mcp_tools.en.mdx rename to document/content/introduction/guide/dashboard/mcp_tools.en.mdx index 2cc70fc400..0ec8b9438c 100644 --- a/document/content/docs/introduction/guide/dashboard/mcp_tools.en.mdx +++ b/document/content/introduction/guide/dashboard/mcp_tools.en.mdx @@ -11,7 +11,7 @@ First, select "New MCP Tools Collection." We'll use the Amap (Gaode Maps) MCP Se You'll need an MCP URL, e.g., https://mcp.amap.com/sse?key=xxx -![Create MCP tools](/imgs/mcp_tools1.png) +![Create MCP tools](../../../../public/imgs/mcp_tools1.png) Enter the URL in the dialog and click Parse. The system will discover and list the available tools. @@ -21,7 +21,7 @@ Click Create to finish setting up the MCP tools and collection. Inside the MCP Tools collection, you can debug each tool individually. -![Test MCP tools](/imgs/mcp_tools3.png) +![Test MCP tools](../../../../public/imgs/mcp_tools3.png) For example, select the maps_weather tool and click Run to see the weather data for Hangzhou. @@ -30,13 +30,13 @@ For example, select the maps_weather tool and click Run to see the weather data ### Call Individual Tools -![Call individual tools](/imgs/mcp_tools4.png) +![Call individual tools](../../../../public/imgs/mcp_tools4.png) Using maps_weather and maps_text_search as examples, ask the AI two different questions. The AI intelligently selects the appropriate tool, retrieves the needed information, and responds based on the results. | | | |---|---| -| ![](/imgs/mcp_tools5.png) | ![](/imgs/mcp_tools6.png) | +| ![](../../../../public/imgs/mcp_tools5.png) | ![](../../../../public/imgs/mcp_tools6.png) | ### Call an Entire Tools Collection @@ -46,6 +46,6 @@ Click the MCP Tools collection to add a collection-type node, then connect it us | | | |---|---| -| ![](/imgs/mcp_tools7.png) | ![](/imgs/mcp_tools8.png) | +| ![](../../../../public/imgs/mcp_tools7.png) | ![](../../../../public/imgs/mcp_tools8.png) | The AI similarly selects the appropriate tool, retrieves the needed information, and responds based on the results. diff --git a/document/content/docs/introduction/guide/dashboard/mcp_tools.mdx b/document/content/introduction/guide/dashboard/mcp_tools.mdx similarity index 81% rename from document/content/docs/introduction/guide/dashboard/mcp_tools.mdx rename to document/content/introduction/guide/dashboard/mcp_tools.mdx index a2768285d8..765199db5e 100644 --- a/document/content/docs/introduction/guide/dashboard/mcp_tools.mdx +++ b/document/content/introduction/guide/dashboard/mcp_tools.mdx @@ -11,7 +11,7 @@ FastGPT v4.9.6 版本开始,新增了 MCP 工具集 这种新的应用类型 需要获取到一个 MCP 地址,例 https://mcp.amap.com/sse?key=xxx -![创建 MCP tools](/imgs/mcp_tools1.png) +![创建 MCP tools](../../../../public/imgs/mcp_tools1.png) 然后填入到弹窗中的对应位置,点击后面的解析,会解析出对应的一系列工具 @@ -21,7 +21,7 @@ FastGPT v4.9.6 版本开始,新增了 MCP 工具集 这种新的应用类型 进入到 MCP 工具集内部,能够对每个单独的 MCP 工具进行调试 -![测试 MCP tools](/imgs/mcp_tools3.png) +![测试 MCP tools](../../../../public/imgs/mcp_tools3.png) 以 maps_weather 这个查询天气的工具为例,点击运行,可以看到能够获得杭州的具体天气 @@ -30,13 +30,13 @@ FastGPT v4.9.6 版本开始,新增了 MCP 工具集 这种新的应用类型 ### 调用单个工具 -![调用单个工具](/imgs/mcp_tools4.png) +![调用单个工具](../../../../public/imgs/mcp_tools4.png) 选中 maps_weather 和 maps_text_search 这两个工具为例,分别问 AI 两个问题,可以看到 AI 智能地调用了相应的工具获得了需要的信息,然后根据获得的信息回答 | | | |---|---| -| ![](/imgs/mcp_tools5.png) | ![](/imgs/mcp_tools6.png) | +| ![](../../../../public/imgs/mcp_tools5.png) | ![](../../../../public/imgs/mcp_tools6.png) | ### 调用工具集 @@ -46,6 +46,6 @@ FastGPT 也支持调用整个 MCP 工具集,AI 会自动选取需要的工具 | | | |---|---| -| ![](/imgs/mcp_tools7.png) | ![](/imgs/mcp_tools8.png) | +| ![](../../../../public/imgs/mcp_tools7.png) | ![](../../../../public/imgs/mcp_tools8.png) | 可以看到 AI 同样智能调用了相应的工具,获得了需要的信息,然后根据获得的信息回答 diff --git a/document/content/introduction/guide/dashboard/meta.en.json b/document/content/introduction/guide/dashboard/meta.en.json new file mode 100644 index 0000000000..93a91466ca --- /dev/null +++ b/document/content/introduction/guide/dashboard/meta.en.json @@ -0,0 +1,5 @@ +{ + "title": "Dashboard", + "description": "FastGPT dashboard and workflow node usage guide", + "pages": ["basic-mode", "intro", "workflow", "mcp_server", "mcp_tools", "evaluation"] +} diff --git a/document/content/docs/introduction/guide/dashboard/meta.json b/document/content/introduction/guide/dashboard/meta.json similarity index 82% rename from document/content/docs/introduction/guide/dashboard/meta.json rename to document/content/introduction/guide/dashboard/meta.json index c23b1c1dbc..3842ecf271 100644 --- a/document/content/docs/introduction/guide/dashboard/meta.json +++ b/document/content/introduction/guide/dashboard/meta.json @@ -1,5 +1,5 @@ { "title": "工作台", "description": "FastGPT 工作台及工作流节点的使用说明", - "pages": ["basic-mode", "intro", "workflow", "mcp_server", "mcp_tools", "gapier", "evaluation"] + "pages": ["basic-mode", "intro", "workflow", "mcp_server", "mcp_tools", "evaluation"] } diff --git a/document/content/docs/introduction/guide/dashboard/workflow/ai_chat.en.mdx b/document/content/introduction/guide/dashboard/workflow/ai_chat.en.mdx similarity index 59% rename from document/content/docs/introduction/guide/dashboard/workflow/ai_chat.en.mdx rename to document/content/introduction/guide/dashboard/workflow/ai_chat.en.mdx index 3870ae4442..4665a210d8 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/ai_chat.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/ai_chat.en.mdx @@ -11,20 +11,20 @@ import { Alert } from '@/components/docs/Alert'; - Trigger-based execution - Core module -![](/imgs/aichat.png) +![](../../../../../public/imgs/aichat.png) ## Parameters ## AI Model -Configure available chat models via [config.json](/docs/self-host/config/model/intro)。 +Configure available chat models via [config.json](../../../../self-host/config/model/intro.en.mdx)。 Click the AI model to configure its parameters. -![](/imgs/aichat02.png) +![](../../../../../public/imgs/aichat02.png) -![](/imgs/aichat2.png) +![](../../../../../public/imgs/aichat2.png) - For detailed parameter descriptions, see: [AI Parameter Configuration](/docs/introduction/guide/course/ai_settings/) + For detailed parameter descriptions, see: [AI Parameter Configuration](../../course/ai_settings.en.mdx) diff --git a/document/content/introduction/guide/dashboard/workflow/ai_chat.mdx b/document/content/introduction/guide/dashboard/workflow/ai_chat.mdx new file mode 100644 index 0000000000..9d41db9319 --- /dev/null +++ b/document/content/introduction/guide/dashboard/workflow/ai_chat.mdx @@ -0,0 +1,30 @@ +--- +title: AI 对话 +description: FastGPT AI 对话模块介绍 +--- + +import { Alert } from '@/components/docs/Alert'; + +## 特点 + +- 可重复添加 +- 触发执行 +- 核心模块 + +![](../../../../../public/imgs/aichat.png) + +## 参数说明 + +## AI模型 + +可以通过 [config.json](../../../../self-host/config/model/intro.mdx) 配置可选的对话模型。 + +点击AI模型后,可以配置模型的相关参数。 + +![](../../../../../public/imgs/aichat02.png) + +![](../../../../../public/imgs/aichat2.png) + + + 具体配置参数介绍可以参考: [AI参数配置说明](../../course/ai_settings.mdx) + diff --git a/document/content/docs/introduction/guide/dashboard/workflow/content_extract.en.mdx b/document/content/introduction/guide/dashboard/workflow/content_extract.en.mdx similarity index 97% rename from document/content/docs/introduction/guide/dashboard/workflow/content_extract.en.mdx rename to document/content/introduction/guide/dashboard/workflow/content_extract.en.mdx index d186579fc2..fc5752458d 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/content_extract.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/content_extract.en.mdx @@ -11,7 +11,7 @@ description: FastGPT Text Content Extraction node overview - function_call module - Core module -![](/imgs/extract1.png) +![](../../../../../public/imgs/extract1.png) ## What It Does diff --git a/document/content/docs/introduction/guide/dashboard/workflow/content_extract.mdx b/document/content/introduction/guide/dashboard/workflow/content_extract.mdx similarity index 97% rename from document/content/docs/introduction/guide/dashboard/workflow/content_extract.mdx rename to document/content/introduction/guide/dashboard/workflow/content_extract.mdx index 731960f7d5..4e3fe68e6e 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/content_extract.mdx +++ b/document/content/introduction/guide/dashboard/workflow/content_extract.mdx @@ -11,7 +11,7 @@ description: FastGPT 内容提取模块介绍 - function_call 模块 - 核心模块 -![](/imgs/extract1.png) +![](../../../../../public/imgs/extract1.png) ## 功能 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/coreferenceResolution.en.mdx b/document/content/introduction/guide/dashboard/workflow/coreferenceResolution.en.mdx similarity index 84% rename from document/content/docs/introduction/guide/dashboard/workflow/coreferenceResolution.en.mdx rename to document/content/introduction/guide/dashboard/workflow/coreferenceResolution.en.mdx index 67956827d7..008831717d 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/coreferenceResolution.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/coreferenceResolution.en.mdx @@ -9,7 +9,7 @@ description: FastGPT Query Enhancement node overview and usage - Has external input - Trigger-based execution -![](/imgs/coreferenceResolution1.jpg) +![](../../../../../public/imgs/coreferenceResolution1.jpg) ## Background @@ -17,11 +17,11 @@ In RAG, we perform embedding searches against the database based on the input qu During search -- especially in multi-turn conversations -- follow-up questions often fail to retrieve useful results. One reason is that Knowledge Base search only uses the "current" question. Consider this example: -![](/imgs/coreferenceResolution2.webp) +![](../../../../../public/imgs/coreferenceResolution2.webp) When the user asks "What is the second point?", the system searches the Knowledge Base for exactly that phrase and finds nothing. The actual intended query is "What is the QA structure?". This is why we need a Query Enhancement node to refine the user's current question so the Knowledge Base search can return relevant results. With query enhancement applied: -![](/imgs/coreferenceResolution3.webp) +![](../../../../../public/imgs/coreferenceResolution3.webp) ## What It Does @@ -31,4 +31,4 @@ The main challenge is that the model may not have a clear understanding of "comp ## Examples -- [Integrate Google Search](/docs/use-cases/app-cases/google_search/) +- [Integrate Google Search](../../../../use-cases/app-cases/google_search.en.mdx) diff --git a/document/content/docs/introduction/guide/dashboard/workflow/coreferenceResolution.mdx b/document/content/introduction/guide/dashboard/workflow/coreferenceResolution.mdx similarity index 83% rename from document/content/docs/introduction/guide/dashboard/workflow/coreferenceResolution.mdx rename to document/content/introduction/guide/dashboard/workflow/coreferenceResolution.mdx index c000a25451..893ef7ff14 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/coreferenceResolution.mdx +++ b/document/content/introduction/guide/dashboard/workflow/coreferenceResolution.mdx @@ -9,7 +9,7 @@ description: 问题优化模块介绍和使用 - 有外部输入 - 触发执行 -![](/imgs/coreferenceResolution1.jpg) +![](../../../../../public/imgs/coreferenceResolution1.jpg) ## 背景 @@ -17,11 +17,11 @@ description: 问题优化模块介绍和使用 在搜索的过程中,尤其是连续对话的搜索,我们通常会发现后续的问题难以搜索到合适的内容,其中一个原因是知识库搜索只会使用“当前”的问题去执行。看下面的例子: -![](/imgs/coreferenceResolution2.webp) +![](../../../../../public/imgs/coreferenceResolution2.webp) 用户在提问“第二点是什么”的时候,只会去知识库里查找“第二点是什么”,压根查不到内容。实际上需要查询的是“QA结构是什么”。因此我们需要引入一个【问题优化】模块,来对用户当前的问题进行补全,从而使得知识库搜索能够搜索到合适的内容。使用补全后效果如下: -![](/imgs/coreferenceResolution3.webp) +![](../../../../../public/imgs/coreferenceResolution3.webp) ## 功能 @@ -32,4 +32,4 @@ description: 问题优化模块介绍和使用 ## 示例 -- [接入谷歌搜索](/docs/use-cases/app-cases/google_search/) +- [接入谷歌搜索](../../../../use-cases/app-cases/google_search.mdx) diff --git a/document/content/docs/introduction/guide/dashboard/workflow/custom_feedback.en.mdx b/document/content/introduction/guide/dashboard/workflow/custom_feedback.en.mdx similarity index 80% rename from document/content/docs/introduction/guide/dashboard/workflow/custom_feedback.en.mdx rename to document/content/introduction/guide/dashboard/workflow/custom_feedback.en.mdx index 41f5d014fb..3d61591466 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/custom_feedback.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/custom_feedback.en.mdx @@ -14,8 +14,8 @@ This is a temporary module that will receive a more comprehensive redesign in th | | | | --------------------- | --------------------- | -| ![](/imgs/customfeedback1.jpg) | ![](/imgs/customfeedback2.jpg) | -| ![](/imgs/customfeedback3.jpg) | ![](/imgs/customfeedback4.jpg) | +| ![](../../../../../public/imgs/customfeedback1.jpg) | ![](../../../../../public/imgs/customfeedback2.jpg) | +| ![](../../../../../public/imgs/customfeedback3.jpg) | ![](../../../../../public/imgs/customfeedback4.jpg) | ## Overview diff --git a/document/content/docs/introduction/guide/dashboard/workflow/custom_feedback.mdx b/document/content/introduction/guide/dashboard/workflow/custom_feedback.mdx similarity index 79% rename from document/content/docs/introduction/guide/dashboard/workflow/custom_feedback.mdx rename to document/content/introduction/guide/dashboard/workflow/custom_feedback.mdx index ad22d367a8..3ff480cc87 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/custom_feedback.mdx +++ b/document/content/introduction/guide/dashboard/workflow/custom_feedback.mdx @@ -14,8 +14,8 @@ description: 自定义反馈模块介绍 | | | | --------------------- | --------------------- | -| ![](/imgs/customfeedback1.jpg) | ![](/imgs/customfeedback2.jpg) | -| ![](/imgs/customfeedback3.jpg) | ![](/imgs/customfeedback4.jpg) | +| ![](../../../../../public/imgs/customfeedback1.jpg) | ![](../../../../../public/imgs/customfeedback2.jpg) | +| ![](../../../../../public/imgs/customfeedback3.jpg) | ![](../../../../../public/imgs/customfeedback4.jpg) | ## 介绍 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/dataset_search.en.mdx b/document/content/introduction/guide/dashboard/workflow/dataset_search.en.mdx similarity index 78% rename from document/content/docs/introduction/guide/dashboard/workflow/dataset_search.en.mdx rename to document/content/introduction/guide/dashboard/workflow/dataset_search.en.mdx index ea5f887d83..b3f30eb2a8 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/dataset_search.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/dataset_search.en.mdx @@ -3,7 +3,7 @@ title: Knowledge Base Search description: FastGPT Knowledge Base Search node overview --- -For detailed parameters and internal logic, see: [FastGPT Knowledge Base Search](/docs/introduction/guide/knowledge_base/rag/) +For detailed parameters and internal logic, see: [FastGPT Knowledge Base Search](../../knowledge_base/rag.en.mdx) ## Characteristics @@ -13,7 +13,7 @@ For detailed parameters and internal logic, see: [FastGPT Knowledge Base Search] - Trigger-based execution - Core module -![](/imgs/flow-dataset1.png) +![](../../../../../public/imgs/flow-dataset1.png) ## Parameters @@ -23,7 +23,7 @@ Select one or more Knowledge Bases using the **same embedding model** for vector ### Input - Search Parameters -[View parameter details](/docs/introduction/guide/knowledge_base/dataset_engine/#搜索参数) +[View parameter details](../../knowledge_base/dataset_engine.en.mdx#搜索参数) ### Output - Referenced Content diff --git a/document/content/docs/introduction/guide/dashboard/workflow/dataset_search.mdx b/document/content/introduction/guide/dashboard/workflow/dataset_search.mdx similarity index 75% rename from document/content/docs/introduction/guide/dashboard/workflow/dataset_search.mdx rename to document/content/introduction/guide/dashboard/workflow/dataset_search.mdx index 441f7086ad..fcd73e6888 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/dataset_search.mdx +++ b/document/content/introduction/guide/dashboard/workflow/dataset_search.mdx @@ -3,7 +3,7 @@ title: 知识库搜索 description: FastGPT AI 知识库搜索模块介绍 --- -知识库搜索具体参数说明,以及内部逻辑请移步:[FastGPT知识库搜索方案](/docs/introduction/guide/knowledge_base/rag/) +知识库搜索具体参数说明,以及内部逻辑请移步:[FastGPT知识库搜索方案](../../knowledge_base/rag.mdx) ## 特点 @@ -13,7 +13,7 @@ description: FastGPT AI 知识库搜索模块介绍 - 触发执行 - 核心模块 -![](/imgs/flow-dataset1.png) +![](../../../../../public/imgs/flow-dataset1.png) ## 参数说明 @@ -23,7 +23,7 @@ description: FastGPT AI 知识库搜索模块介绍 ### 输入 - 搜索参数 -[点击查看参数介绍](/docs/introduction/guide/knowledge_base/dataset_engine/#搜索参数) +[点击查看参数介绍](../../knowledge_base/dataset_engine.mdx#搜索参数) ### 输出 - 引用内容 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/document_parsing.en.mdx b/document/content/introduction/guide/dashboard/workflow/document_parsing.en.mdx similarity index 64% rename from document/content/docs/introduction/guide/dashboard/workflow/document_parsing.en.mdx rename to document/content/introduction/guide/dashboard/workflow/document_parsing.en.mdx index b033746af6..394f5fe1a9 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/document_parsing.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/document_parsing.en.mdx @@ -5,7 +5,7 @@ description: FastGPT Document Parsing node overview | | | | --- | --- | -| ![](/imgs/document_analysis1.png) | ![](/imgs/document_analysis2.png) | +| ![](../../../../../public/imgs/document_analysis1.png) | ![](../../../../../public/imgs/document_analysis2.png) | The Document Parsing component becomes available after enabling file upload. diff --git a/document/content/docs/introduction/guide/dashboard/workflow/document_parsing.mdx b/document/content/introduction/guide/dashboard/workflow/document_parsing.mdx similarity index 60% rename from document/content/docs/introduction/guide/dashboard/workflow/document_parsing.mdx rename to document/content/introduction/guide/dashboard/workflow/document_parsing.mdx index f99be39527..7ea14b32ba 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/document_parsing.mdx +++ b/document/content/introduction/guide/dashboard/workflow/document_parsing.mdx @@ -5,7 +5,7 @@ description: FastGPT 文档解析模块介绍 | | | | --- | --- | -| ![](/imgs/document_analysis1.png) | ![](/imgs/document_analysis2.png) | +| ![](../../../../../public/imgs/document_analysis1.png) | ![](../../../../../public/imgs/document_analysis2.png) | 开启文件上传后,可使用文档解析组件。 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/form_input.en.mdx b/document/content/introduction/guide/dashboard/workflow/form_input.en.mdx similarity index 84% rename from document/content/docs/introduction/guide/dashboard/workflow/form_input.en.mdx rename to document/content/introduction/guide/dashboard/workflow/form_input.en.mdx index 8ed662c5fc..16da75e112 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/form_input.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/form_input.en.mdx @@ -9,17 +9,17 @@ description: FastGPT Form Input node overview - Can be added multiple times - Trigger-based execution -![](/imgs/form_input1.png) +![](../../../../../public/imgs/form_input1.png) ## What It Does The Form Input node is a user interaction node. When triggered, the conversation enters an "interactive" state -- the workflow state is saved and execution pauses until the user completes the interaction. -![](/imgs/form_input2.png) +![](../../../../../public/imgs/form_input2.png) In the example above, when the Form Input node is triggered, the chat box is hidden and the conversation enters interactive mode. -![](/imgs/form_input3.png) +![](../../../../../public/imgs/form_input3.png) After the user fills in the required fields and clicks submit, the node collects the form data and passes it to subsequent nodes. diff --git a/document/content/docs/introduction/guide/dashboard/workflow/form_input.mdx b/document/content/introduction/guide/dashboard/workflow/form_input.mdx similarity index 82% rename from document/content/docs/introduction/guide/dashboard/workflow/form_input.mdx rename to document/content/introduction/guide/dashboard/workflow/form_input.mdx index 9aa6bc5790..41cf8c62d9 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/form_input.mdx +++ b/document/content/introduction/guide/dashboard/workflow/form_input.mdx @@ -9,17 +9,17 @@ description: FastGPT 表单输入模块介绍 - 可重复添加 - 触发执行 -![](/imgs/form_input1.png) +![](../../../../../public/imgs/form_input1.png) ## 功能 「表单输入」节点属于用户交互节点,当触发这个节点时,对话会进入“交互”状态,会记录工作流的状态,等用户完成交互后,继续向下执行工作流 -![](/imgs/form_input2.png) +![](../../../../../public/imgs/form_input2.png) 比如上图中的例子,当触发表单输入节点时,对话框隐藏,对话进入“交互状态” -![](/imgs/form_input3.png) +![](../../../../../public/imgs/form_input3.png) 当用户填完必填的信息并点击提交后,节点能够收集用户填写的表单信息,传递到后续的节点中使用 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/http.en.mdx b/document/content/introduction/guide/dashboard/workflow/http.en.mdx similarity index 95% rename from document/content/docs/introduction/guide/dashboard/workflow/http.en.mdx rename to document/content/introduction/guide/dashboard/workflow/http.en.mdx index d4b5f4b4ee..0e683e281d 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/http.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/http.en.mdx @@ -12,7 +12,7 @@ import { Alert } from '@/components/docs/Alert'; - Trigger-based execution - Core of core modules -![](/imgs/http1.jpg) +![](../../../../../public/imgs/http1.jpg) ## Overview @@ -248,6 +248,6 @@ The HTTP node enables unlimited extensibility, such as: ## Related Examples -- [Google Search](/docs/use-cases/app-cases/google_search/) -- [Send Lark Webhook](/docs/use-cases/app-cases/feishu_webhook/) -- [Lab Appointment (Database Operations)](/docs/use-cases/app-cases/lab_appointment/) +- [Google Search](../../../../use-cases/app-cases/google_search.en.mdx) +- [Send Lark Webhook](../../../../use-cases/app-cases/feishu_webhook.en.mdx) +- [Lab Appointment (Database Operations)](../../../../use-cases/app-cases/lab_appointment.en.mdx) diff --git a/document/content/docs/introduction/guide/dashboard/workflow/http.mdx b/document/content/introduction/guide/dashboard/workflow/http.mdx similarity index 95% rename from document/content/docs/introduction/guide/dashboard/workflow/http.mdx rename to document/content/introduction/guide/dashboard/workflow/http.mdx index bb39cd2d7c..fc0a145d24 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/http.mdx +++ b/document/content/introduction/guide/dashboard/workflow/http.mdx @@ -12,7 +12,7 @@ import { Alert } from '@/components/docs/Alert'; - 触发执行 - 核中核模块 -![](/imgs/http1.jpg) +![](../../../../../public/imgs/http1.jpg) ## 介绍 @@ -248,6 +248,6 @@ export default async function (ctx: FunctionContext) { ## 相关示例 -- [谷歌搜索](/docs/use-cases/app-cases/google_search/) -- [发送飞书webhook](/docs/use-cases/app-cases/feishu_webhook/) -- [实验室预约(操作数据库)](/docs/use-cases/app-cases/lab_appointment/) +- [谷歌搜索](../../../../use-cases/app-cases/google_search.mdx) +- [发送飞书webhook](../../../../use-cases/app-cases/feishu_webhook.mdx) +- [实验室预约(操作数据库)](../../../../use-cases/app-cases/lab_appointment.mdx) diff --git a/document/content/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge.en.mdx b/document/content/introduction/guide/dashboard/workflow/knowledge_base_search_merge.en.mdx similarity index 83% rename from document/content/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge.en.mdx rename to document/content/introduction/guide/dashboard/workflow/knowledge_base_search_merge.en.mdx index ecd20c9dfe..ede65aa66b 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/knowledge_base_search_merge.en.mdx @@ -4,7 +4,7 @@ description: FastGPT Knowledge Base Search Merge node overview --- -![](/imgs/knowledge_merge1.png) +![](../../../../../public/imgs/knowledge_merge1.png) ## What It Does @@ -14,11 +14,11 @@ Merges search results from multiple Knowledge Bases into a single output, re-ran The AI Chat node can only accept one Knowledge Base reference input. If you call multiple Knowledge Bases, you cannot directly reference all of them (as shown below). -![](/imgs/knowledge_merge2.png) +![](../../../../../public/imgs/knowledge_merge2.png) Use **Knowledge Base Search Merge** to combine results from multiple Knowledge Bases into one. -![](/imgs/knowledge_merge3.png) +![](../../../../../public/imgs/knowledge_merge3.png) ## Example Use Cases diff --git a/document/content/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx b/document/content/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx similarity index 82% rename from document/content/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx rename to document/content/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx index 720349816f..6829692768 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx +++ b/document/content/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx @@ -4,7 +4,7 @@ description: FastGPT 知识库搜索引用合并模块介绍 --- -![](/imgs/knowledge_merge1.png) +![](../../../../../public/imgs/knowledge_merge1.png) ## 作用 @@ -14,11 +14,11 @@ description: FastGPT 知识库搜索引用合并模块介绍 AI对话只能接收一个知识库引用内容。因此,如果调用了多个知识库,无法直接引用所有知识库(如下图) -![](/imgs/knowledge_merge2.png) +![](../../../../../public/imgs/knowledge_merge2.png) 使用**知识库搜索引用合并**,可以把多个知识库的搜索结果合在一起。 -![](/imgs/knowledge_merge3.png) +![](../../../../../public/imgs/knowledge_merge3.png) ## 可用例子: diff --git a/document/content/docs/introduction/guide/dashboard/workflow/laf.en.mdx b/document/content/introduction/guide/dashboard/workflow/laf.en.mdx similarity index 95% rename from document/content/docs/introduction/guide/dashboard/workflow/laf.en.mdx rename to document/content/introduction/guide/dashboard/workflow/laf.en.mdx index 6b8be9bff5..ea5a82d3b3 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/laf.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/laf.en.mdx @@ -4,7 +4,7 @@ description: FastGPT Laf Function Call node overview --- -![](/imgs/laf1.webp) +![](../../../../../public/imgs/laf1.webp) ## Overview @@ -23,7 +23,7 @@ After obtaining a PAT, go to FastGPT's `Account page` or the `Laf module` in the Enter the PAT for verification, then select the application to bind (the application must be in Running status). You can then call cloud functions under that application. -![](/imgs/laf2.webp) +![](../../../../../public/imgs/laf2.webp) ## Writing Cloud Functions @@ -79,13 +79,13 @@ You can also select the `fastgpt_template` on the Laf platform to quickly genera To do this, go to the Laf functions page and create a new function (note: FastGPT only calls POST functions). Then either paste the code above or click "More Templates" and search for "fastgpt" to use the template shown below. -![](/imgs/laf3.webp) +![](../../../../../public/imgs/laf3.webp) ## Using in FastGPT After selecting a function, click "Sync Parameters" to automatically sync the cloud function's parameters into FastGPT. You can also add parameters manually -- manually modified parameters will not be overwritten by "Sync Parameters". -![](/imgs/laf4.png) +![](../../../../../public/imgs/laf4.png) ## Notes diff --git a/document/content/docs/introduction/guide/dashboard/workflow/laf.mdx b/document/content/introduction/guide/dashboard/workflow/laf.mdx similarity index 94% rename from document/content/docs/introduction/guide/dashboard/workflow/laf.mdx rename to document/content/introduction/guide/dashboard/workflow/laf.mdx index 10f0d55356..fd8b3b6ba4 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/laf.mdx +++ b/document/content/introduction/guide/dashboard/workflow/laf.mdx @@ -4,7 +4,7 @@ description: FastGPT Laf 函数调用模块介绍 --- -![](/imgs/laf1.webp) +![](../../../../../public/imgs/laf1.webp) ## 介绍 @@ -23,7 +23,7 @@ Laf 提供了 PAT(访问凭证) 来实现 Laf 平台外的快捷登录,可以 填入 PAT 验证后,选择需要绑定的应用(应用需要是 Running 状态),即可调用该应用下的云函数。 -![](/imgs/laf2.webp) +![](../../../../../public/imgs/laf2.webp) ## 编写云函数 @@ -79,13 +79,13 @@ export default async function (ctx: FunctionContext): Promise { 具体操作可以是,进入 Laf 的函数页面,新建函数(注意 fastgpt 只会调用 post 请求的函数),然后复制上面的代码或者点击更多模板搜索“fastgpt”,使用下面的模板 -![](/imgs/laf3.webp) +![](../../../../../public/imgs/laf3.webp) ## FastGPT 中使用 在选择函数后,可以通过点击“同步参数”,自动同步云函数的参数到 FastGPT 中。当然也可以手动添加,手动修改后的参数不会被“同步参数”修改。 -![](/imgs/laf4.png) +![](../../../../../public/imgs/laf4.png) ## 使用注意事项 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/loop.en.mdx b/document/content/introduction/guide/dashboard/workflow/loop.en.mdx similarity index 95% rename from document/content/docs/introduction/guide/dashboard/workflow/loop.en.mdx rename to document/content/introduction/guide/dashboard/workflow/loop.en.mdx index c94020ff7f..f14291d5fa 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/loop.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/loop.en.mdx @@ -9,7 +9,7 @@ The **Batch Processing** node was introduced in FastGPT V4.8.11. It allows workf This node is inspired by loop structures in programming languages, presented in a visual format. -![Batch Processing node](/imgs/fastgpt-loop-node.png) +![Batch Processing node](../../../../../public/imgs/fastgpt-loop-node.png) > In programming terms, nodes are like functions or API endpoints -- each one is a **step**. By connecting multiple nodes together, you build a step-by-step process that produces the final AI output. @@ -74,7 +74,7 @@ The **Batch Processing** node requires two core inputs: ### Loop Body Configuration -![Loop body configuration](/imgs/fastgpt-loop-node-config.webp) +![Loop body configuration](../../../../../public/imgs/fastgpt-loop-node-config.webp) 1. Inside the loop body, you can add any type of node: - AI Chat node @@ -97,7 +97,7 @@ Suppose you have an array of texts that each need AI processing. This is the mos 1. Prepare the input array - ![Prepare input array](/imgs/fastgpt-loop-node-example-1.png) + ![Prepare input array](../../../../../public/imgs/fastgpt-loop-node-example-1.png) Use a Code Execution node to create a test array: @@ -112,7 +112,7 @@ Suppose you have an array of texts that each need AI processing. This is the mos 2. Configure the Batch Processing node - ![Configure Batch Processing node](/imgs/fastgpt-loop-node-example-2.png) + ![Configure Batch Processing node](../../../../../public/imgs/fastgpt-loop-node-example-2.png) - Array input: Select the `textArray` output from the previous Code Execution node. - Add an AI Chat node inside the loop body to process each text. Set the prompt to: `Please translate this text to English`. @@ -121,7 +121,7 @@ Suppose you have an array of texts that each need AI processing. This is the mos #### Execution Flow -![Execution flow](/imgs/fastgpt-loop-node-example-3.png) +![Execution flow](../../../../../public/imgs/fastgpt-loop-node-example-3.png) 1. The Code Execution node runs and generates the test array 2. The Batch Processing node receives the array and begins iteration @@ -146,7 +146,7 @@ The **Batch Processing** node handles these well. 1. Text preprocessing and segmentation - ![Text preprocessing and segmentation](/imgs/fastgpt-loop-node-example-4.png) + ![Text preprocessing and segmentation](../../../../../public/imgs/fastgpt-loop-node-example-4.png) Use a Code Execution node for text segmentation: @@ -279,7 +279,7 @@ The **Batch Processing** node handles these well. 2. Configure the Batch Processing node - ![Configure Batch Processing node](/imgs/fastgpt-loop-node-example-5.png) + ![Configure Batch Processing node](../../../../../public/imgs/fastgpt-loop-node-example-5.png) - Array input: Select the `chunks` output from the previous Code Execution node. - Add a Code Execution node inside the loop body to format the source text. diff --git a/document/content/docs/introduction/guide/dashboard/workflow/loop.mdx b/document/content/introduction/guide/dashboard/workflow/loop.mdx similarity index 95% rename from document/content/docs/introduction/guide/dashboard/workflow/loop.mdx rename to document/content/introduction/guide/dashboard/workflow/loop.mdx index 36d7a53a4a..62606a4cdc 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/loop.mdx +++ b/document/content/introduction/guide/dashboard/workflow/loop.mdx @@ -9,7 +9,7 @@ description: FastGPT 批量运行节点介绍和使用 这个节点的设计灵感来自编程语言中的循环结构,但以可视化的方式呈现。 -![批量运行节点](/imgs/fastgpt-loop-node.png) +![批量运行节点](../../../../../public/imgs/fastgpt-loop-node.png) > 在程序中,节点可以理解为一个个 Function 或者接口。可以理解为它就是一个**步骤**。将多个节点一个个拼接起来,即可一步步的去实现最终的 AI 输出。 @@ -74,7 +74,7 @@ description: FastGPT 批量运行节点介绍和使用 ### 循环体配置 -![循环体配置](/imgs/fastgpt-loop-node-config.webp) +![循环体配置](../../../../../public/imgs/fastgpt-loop-node-config.webp) 1. 在循环体内部,可以添加任意类型的节点,如: - AI 对话节点 @@ -97,7 +97,7 @@ description: FastGPT 批量运行节点介绍和使用 1. 准备输入数组 - ![准备输入数组](/imgs/fastgpt-loop-node-example-1.png) + ![准备输入数组](../../../../../public/imgs/fastgpt-loop-node-example-1.png) 使用【代码运行】节点创建测试数组: @@ -112,7 +112,7 @@ description: FastGPT 批量运行节点介绍和使用 2. 配置批量运行节点 - ![配置批量运行节点](/imgs/fastgpt-loop-node-example-2.png) + ![配置批量运行节点](../../../../../public/imgs/fastgpt-loop-node-example-2.png) - 数组输入:选择上一步代码运行节点的输出变量 `textArray`。 - 循环体内添加一个【AI 对话】节点,用于处理每个文本。这里我们输入的 prompt 为:`请将这段文本翻译成英文`。 @@ -121,7 +121,7 @@ description: FastGPT 批量运行节点介绍和使用 #### 运行流程 -![运行流程](/imgs/fastgpt-loop-node-example-3.png) +![运行流程](../../../../../public/imgs/fastgpt-loop-node-example-3.png) 1. 【代码运行】节点执行,生成测试数组 2. 【批量运行】节点接收数组,开始遍历 @@ -146,7 +146,7 @@ description: FastGPT 批量运行节点介绍和使用 1. 文本预处理与分段 - ![文本预处理与分段](/imgs/fastgpt-loop-node-example-4.png) + ![文本预处理与分段](../../../../../public/imgs/fastgpt-loop-node-example-4.png) 使用【代码运行】节点进行文本分段,代码如下: @@ -279,7 +279,7 @@ description: FastGPT 批量运行节点介绍和使用 2. 配置批量运行节点 - ![配置批量运行节点](/imgs/fastgpt-loop-node-example-5.png) + ![配置批量运行节点](../../../../../public/imgs/fastgpt-loop-node-example-5.png) - 数组输入:选择上一步代码运行节点的输出变量 `chunks`。 - 循环体内添加一个【代码运行】节点,对源文本进行格式化。 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/meta.en.json b/document/content/introduction/guide/dashboard/workflow/meta.en.json similarity index 97% rename from document/content/docs/introduction/guide/dashboard/workflow/meta.en.json rename to document/content/introduction/guide/dashboard/workflow/meta.en.json index 4d891de967..7226bfbaf2 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/meta.en.json +++ b/document/content/introduction/guide/dashboard/workflow/meta.en.json @@ -16,7 +16,6 @@ "tfswitch", "variable_update", "sandbox-v2", - "sandbox", "loop", "parallel_run", "knowledge_base_search_merge", diff --git a/document/content/docs/introduction/guide/dashboard/workflow/meta.json b/document/content/introduction/guide/dashboard/workflow/meta.json similarity index 97% rename from document/content/docs/introduction/guide/dashboard/workflow/meta.json rename to document/content/introduction/guide/dashboard/workflow/meta.json index 10be303f4a..3c63ceab26 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/meta.json +++ b/document/content/introduction/guide/dashboard/workflow/meta.json @@ -16,7 +16,6 @@ "tfswitch", "variable_update", "sandbox-v2", - "sandbox", "loop", "parallel_run", "knowledge_base_search_merge", diff --git a/document/content/docs/introduction/guide/dashboard/workflow/parallel_run.en.mdx b/document/content/introduction/guide/dashboard/workflow/parallel_run.en.mdx similarity index 96% rename from document/content/docs/introduction/guide/dashboard/workflow/parallel_run.en.mdx rename to document/content/introduction/guide/dashboard/workflow/parallel_run.en.mdx index c76433ae8a..259a300f9d 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/parallel_run.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/parallel_run.en.mdx @@ -7,7 +7,7 @@ description: FastGPT Parallel Run node overview and usage (available in 4.14.11+ The **Parallel Run** node takes an array as input and runs the same sub-workflow for **every element at the same time**, then aggregates the results. -![Parallel Run node](/imgs/fastgpt-parallel-run-node.png) +![Parallel Run node](../../../../../public/imgs/fastgpt-parallel-run-node.png) It fits batch tasks where each item is **independent and does not depend on the others** — for example: @@ -70,7 +70,7 @@ The following environment variables can be tuned on self-hosted deployments: The minimal flow below translates a few text snippets into English in parallel. -![Parallel translate example](/imgs/fastgpt-parallel-run-example.png) +![Parallel translate example](../../../../../public/imgs/fastgpt-parallel-run-example.png) #### Steps @@ -105,7 +105,7 @@ The minimal flow below translates a few text snippets into English in parallel. #### Execution Flow -![Parallel run detail](/imgs/fastgpt-parallel-run-detail.png) +![Parallel run detail](../../../../../public/imgs/fastgpt-parallel-run-detail.png) 1. The Code Execution node produces 3 text snippets 2. The Parallel Run node sends all 3 snippets to the AI chat node at the same time diff --git a/document/content/docs/introduction/guide/dashboard/workflow/parallel_run.mdx b/document/content/introduction/guide/dashboard/workflow/parallel_run.mdx similarity index 96% rename from document/content/docs/introduction/guide/dashboard/workflow/parallel_run.mdx rename to document/content/introduction/guide/dashboard/workflow/parallel_run.mdx index 71dadc8227..39b0f043bf 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/parallel_run.mdx +++ b/document/content/introduction/guide/dashboard/workflow/parallel_run.mdx @@ -7,7 +7,7 @@ description: FastGPT 并行执行节点介绍和使用(适用于 4.14.11 及 【**并行执行**】节点接收一个数组,对每个元素**同时**执行同一段子工作流,最后把所有结果汇总输出。 -![并行执行节点](/imgs/fastgpt-parallel-run-node.png) +![并行执行节点](../../../../../public/imgs/fastgpt-parallel-run-node.png) 适合那些**每一项都可以独立完成、互不依赖**的批量任务,比如: @@ -69,7 +69,7 @@ description: FastGPT 并行执行节点介绍和使用(适用于 4.14.11 及 ## 场景示例:并行翻译文本数组 假设我们要把一组文本片段并行翻译成英文,下面是最简流程。 -![并行翻译文本数组](/imgs/fastgpt-parallel-run-example.png) +![并行翻译文本数组](../../../../../public/imgs/fastgpt-parallel-run-example.png) #### 实现步骤 @@ -104,7 +104,7 @@ description: FastGPT 并行执行节点介绍和使用(适用于 4.14.11 及 #### 执行流程 -![并行执行详情](/imgs/fastgpt-parallel-run-detail.png) +![并行执行详情](../../../../../public/imgs/fastgpt-parallel-run-detail.png) 1. 【代码运行】节点生成 3 段文本 2. 【并行执行】节点接收数组,3 段文本同时送入 AI 翻译 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/question_classify.en.mdx b/document/content/introduction/guide/dashboard/workflow/question_classify.en.mdx similarity index 98% rename from document/content/docs/introduction/guide/dashboard/workflow/question_classify.en.mdx rename to document/content/introduction/guide/dashboard/workflow/question_classify.en.mdx index ed61d0efd3..b0288454b3 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/question_classify.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/question_classify.en.mdx @@ -11,7 +11,7 @@ description: FastGPT Question Classification node overview - Trigger-based execution - function_call module -![](/imgs/cq1.png) +![](../../../../../public/imgs/cq1.png) ## What It Does diff --git a/document/content/docs/introduction/guide/dashboard/workflow/question_classify.mdx b/document/content/introduction/guide/dashboard/workflow/question_classify.mdx similarity index 97% rename from document/content/docs/introduction/guide/dashboard/workflow/question_classify.mdx rename to document/content/introduction/guide/dashboard/workflow/question_classify.mdx index 721ab008e8..cb0469afbf 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/question_classify.mdx +++ b/document/content/introduction/guide/dashboard/workflow/question_classify.mdx @@ -11,7 +11,7 @@ description: FastGPT 问题分类模块介绍 - 触发执行 - function_call 模块 -![](/imgs/cq1.png) +![](../../../../../public/imgs/cq1.png) ## 功能 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/reply.en.mdx b/document/content/introduction/guide/dashboard/workflow/reply.en.mdx similarity index 90% rename from document/content/docs/introduction/guide/dashboard/workflow/reply.en.mdx rename to document/content/introduction/guide/dashboard/workflow/reply.en.mdx index f44e81b8a0..07aa6199d0 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/reply.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/reply.en.mdx @@ -15,4 +15,4 @@ The Specified Reply module is typically used for special-case responses. There a 1. Manually enter fixed content. 2. Use variable references. -![](/imgs/specialreply.png) +![](../../../../../public/imgs/specialreply.png) diff --git a/document/content/docs/introduction/guide/dashboard/workflow/reply.mdx b/document/content/introduction/guide/dashboard/workflow/reply.mdx similarity index 88% rename from document/content/docs/introduction/guide/dashboard/workflow/reply.mdx rename to document/content/introduction/guide/dashboard/workflow/reply.mdx index 9209fb499c..a7f8413050 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/reply.mdx +++ b/document/content/introduction/guide/dashboard/workflow/reply.mdx @@ -15,4 +15,4 @@ description: FastGPT 指定回复模块介绍 1. 一种是手动输入固定内容。 2. 一种是通过变量引用。 -![](/imgs/specialreply.png) +![](../../../../../public/imgs/specialreply.png) diff --git a/document/content/docs/introduction/guide/dashboard/workflow/sandbox-v2.en.mdx b/document/content/introduction/guide/dashboard/workflow/sandbox-v2.en.mdx similarity index 98% rename from document/content/docs/introduction/guide/dashboard/workflow/sandbox-v2.en.mdx rename to document/content/introduction/guide/dashboard/workflow/sandbox-v2.en.mdx index cee959f9db..ab5be813d1 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/sandbox-v2.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/sandbox-v2.en.mdx @@ -3,7 +3,7 @@ title: Code Run description: FastGPT Code Run node documentation (for version 4.14.8 and above) --- -> This document applies to FastGPT **version 4.14.8 and above**. For version 4.14.7 and earlier, see [Code Run (Deprecated)](/docs/introduction/guide/dashboard/workflow/sandbox). +> This document applies to FastGPT **version 4.14.8 and above**. ## Features diff --git a/document/content/docs/introduction/guide/dashboard/workflow/sandbox-v2.mdx b/document/content/introduction/guide/dashboard/workflow/sandbox-v2.mdx similarity index 98% rename from document/content/docs/introduction/guide/dashboard/workflow/sandbox-v2.mdx rename to document/content/introduction/guide/dashboard/workflow/sandbox-v2.mdx index e9da954f25..18c7727e7f 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/sandbox-v2.mdx +++ b/document/content/introduction/guide/dashboard/workflow/sandbox-v2.mdx @@ -3,7 +3,7 @@ title: 代码运行 description: FastGPT 代码运行节点介绍(适用于 4.14.8 及以上版本) --- -> 本文档适用于 FastGPT **4.14.8 及以上版本**。4.14.7 及以下版本请参考 [代码运行(弃)](/docs/introduction/guide/dashboard/workflow/sandbox)。 +> 本文档适用于 FastGPT **4.14.8 及以上版本**。 ## 功能 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/text_editor.en.mdx b/document/content/introduction/guide/dashboard/workflow/text_editor.en.mdx similarity index 81% rename from document/content/docs/introduction/guide/dashboard/workflow/text_editor.en.mdx rename to document/content/introduction/guide/dashboard/workflow/text_editor.en.mdx index 210d5eac8c..066eb1d75c 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/text_editor.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/text_editor.en.mdx @@ -10,7 +10,7 @@ description: FastGPT Text Concatenation module overview - Trigger-based execution - Manual configuration -![](/imgs/string.png) +![](../../../../../public/imgs/string.png) ## Function @@ -24,4 +24,4 @@ Provide custom-formatted text to any module, or preprocess system prompts for AI ## Examples -- [Google Search Integration](/docs/use-cases/app-cases/google_search/) +- [Google Search Integration](../../../../use-cases/app-cases/google_search.en.mdx) diff --git a/document/content/docs/introduction/guide/dashboard/workflow/text_editor.mdx b/document/content/introduction/guide/dashboard/workflow/text_editor.mdx similarity index 81% rename from document/content/docs/introduction/guide/dashboard/workflow/text_editor.mdx rename to document/content/introduction/guide/dashboard/workflow/text_editor.mdx index efde8e4af2..3b01ddb288 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/text_editor.mdx +++ b/document/content/introduction/guide/dashboard/workflow/text_editor.mdx @@ -10,7 +10,7 @@ description: FastGPT 文本加工模块介绍 - 触发执行 - 手动配置 -![](/imgs/string.png) +![](../../../../../public/imgs/string.png) ## 功能 @@ -25,4 +25,4 @@ description: FastGPT 文本加工模块介绍 ## 示例 -- [接入谷歌搜索](/docs/use-cases/app-cases/google_search/) +- [接入谷歌搜索](../../../../use-cases/app-cases/google_search.mdx) diff --git a/document/content/docs/introduction/guide/dashboard/workflow/tfswitch.en.mdx b/document/content/introduction/guide/dashboard/workflow/tfswitch.en.mdx similarity index 94% rename from document/content/docs/introduction/guide/dashboard/workflow/tfswitch.en.mdx rename to document/content/introduction/guide/dashboard/workflow/tfswitch.en.mdx index 947b5a9e90..6973b16d7e 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/tfswitch.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/tfswitch.en.mdx @@ -9,7 +9,7 @@ description: FastGPT Conditional module overview - Has external inputs - Trigger-based execution -![](/imgs/judgement1.png) +![](../../../../../public/imgs/judgement1.png) ## Function diff --git a/document/content/docs/introduction/guide/dashboard/workflow/tfswitch.mdx b/document/content/introduction/guide/dashboard/workflow/tfswitch.mdx similarity index 92% rename from document/content/docs/introduction/guide/dashboard/workflow/tfswitch.mdx rename to document/content/introduction/guide/dashboard/workflow/tfswitch.mdx index a43fa5cf61..c37a9ecbd1 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/tfswitch.mdx +++ b/document/content/introduction/guide/dashboard/workflow/tfswitch.mdx @@ -9,7 +9,7 @@ description: FastGPT 判断器模块介绍 - 有外部输入 - 触发执行 -![](/imgs/judgement1.png) +![](../../../../../public/imgs/judgement1.png) ## 功能 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/tool.en.mdx b/document/content/introduction/guide/dashboard/workflow/tool.en.mdx similarity index 91% rename from document/content/docs/introduction/guide/dashboard/workflow/tool.en.mdx rename to document/content/introduction/guide/dashboard/workflow/tool.en.mdx index 12c2793d54..79bae8e7ef 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/tool.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/tool.en.mdx @@ -3,7 +3,7 @@ title: Tool Calling & Termination description: FastGPT Tool Calling module overview --- -![](/imgs/flow-tool1.png) +![](../../../../../public/imgs/flow-tool1.png) ### What is a Tool @@ -34,13 +34,13 @@ Based on the tool description, parameter descriptions, and whether parameters ar Models that support `function calling` can invoke multiple tools in a single turn. The calling logic: -![](/imgs/flow-tool2.png) +![](../../../../../public/imgs/flow-tool2.png) ### How to Use | | | | --- | --- | -| ![](/imgs/flow-tool3.png) | ![](/imgs/flow-tool4.png) | +| ![](../../../../../public/imgs/flow-tool3.png) | ![](../../../../../public/imgs/flow-tool4.png) | In the advanced workflow editor, drag from the tool calling connection point. Eligible tools display a diamond icon at the top, which you can connect to the diamond at the bottom of the tool calling module. @@ -54,7 +54,7 @@ By default, after the tool calling node invokes a tool, it returns the tool's ou In the example below, after the Knowledge Base Search runs, results are sent to an HTTP request. The search results are not returned to the tool calling node for AI summarization. -![](/imgs/flow-tool5.png) +![](../../../../../public/imgs/flow-tool5.png) ### Additional Nodes @@ -64,13 +64,13 @@ When you use the tool calling node, a Tool Calling Termination node and a Custom Tool Calling Termination ends the current call cycle. Place it after a tool node. When the workflow reaches this node, it forcibly ends the current tool call -- no further tools are invoked, and the AI won't generate a summary based on tool results. -![](/imgs/flow-tool6.png) +![](../../../../../public/imgs/flow-tool6.png) ### Custom Tool Variables Custom variables extend tool input capabilities. For nodes that aren't recognized as tool parameters or can't be directly tool-called, you can define custom tool variables with appropriate parameter descriptions. The tool calling node will then invoke this node and its downstream workflow accordingly. -![](/imgs/flow-tool7.png) +![](../../../../../public/imgs/flow-tool7.png) ### Related Examples diff --git a/document/content/docs/introduction/guide/dashboard/workflow/tool.mdx b/document/content/introduction/guide/dashboard/workflow/tool.mdx similarity index 91% rename from document/content/docs/introduction/guide/dashboard/workflow/tool.mdx rename to document/content/introduction/guide/dashboard/workflow/tool.mdx index d489bc4ef6..797ddadaaa 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/tool.mdx +++ b/document/content/introduction/guide/dashboard/workflow/tool.mdx @@ -4,7 +4,7 @@ description: FastGPT 工具调用模块介绍 --- -![](/imgs/flow-tool1.png) +![](../../../../../public/imgs/flow-tool1.png) ### **什么是工具** @@ -35,14 +35,14 @@ description: FastGPT 工具调用模块介绍 在支持`函数调用`的模型中,可以一次性调用多个工具,调用逻辑如下: -![](/imgs/flow-tool2.png) +![](../../../../../public/imgs/flow-tool2.png) ### **怎么用** | | | | --- | --- | -| ![](/imgs/flow-tool3.png) | ![](/imgs/flow-tool4.png) | +| ![](../../../../../public/imgs/flow-tool3.png) | ![](../../../../../public/imgs/flow-tool4.png) | 高级编排中,拖动工具调用的连接点,可用的工具头部会出现一个菱形,可以将它与工具调用模块底部的菱形相连接。 @@ -57,7 +57,7 @@ description: FastGPT 工具调用模块介绍 如下图,在执行知识库搜索后,发送给了 HTTP 请求,搜索将不会返回搜索的结果给工具调用进行 AI 总结。 -![](/imgs/flow-tool5.png) +![](../../../../../public/imgs/flow-tool5.png) ### 附加节点 @@ -67,13 +67,13 @@ description: FastGPT 工具调用模块介绍 工具调用终止可用于结束本次调用,即可以接在某个工具后面,当工作流执行到这个节点时,便会强制结束本次工具调用,不再调用其他工具,也不会再调用 AI 针对工具调用结果回答问题。 -![](/imgs/flow-tool6.png) +![](../../../../../public/imgs/flow-tool6.png) ### 自定义工具变量 自定义变量可以扩展工具的变量输入,即对于一些未被视作工具参数或无法工具调用的节点,可以自定义工具变量,填上对应的参数描述,那么工具调用便会相对应的调用这个节点,进而调用其之后的工作流。 -![](/imgs/flow-tool7.png) +![](../../../../../public/imgs/flow-tool7.png) ### **相关示例** diff --git a/document/content/docs/introduction/guide/dashboard/workflow/user-selection.en.mdx b/document/content/introduction/guide/dashboard/workflow/user-selection.en.mdx similarity index 83% rename from document/content/docs/introduction/guide/dashboard/workflow/user-selection.en.mdx rename to document/content/introduction/guide/dashboard/workflow/user-selection.en.mdx index d74b072b08..30234a9687 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/user-selection.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/user-selection.en.mdx @@ -9,17 +9,17 @@ description: FastGPT User Selection module usage guide - Can be added multiple times - Trigger-based execution -![](/imgs/user-selection1.png) +![](../../../../../public/imgs/user-selection1.png) ## Function The "User Selection" node is an interactive node. When triggered, the conversation enters an "interactive" state -- the workflow state is saved and execution pauses until the user completes the interaction. -![](/imgs/user-selection2.png) +![](../../../../../public/imgs/user-selection2.png) In the example above, when the User Selection node triggers, the chat input is hidden and the conversation enters interactive mode. -![](/imgs/user-selection3.png) +![](../../../../../public/imgs/user-selection3.png) When the user makes a choice, the node evaluates the selection and executes the corresponding branch (e.g., the "Yes" branch). diff --git a/document/content/docs/introduction/guide/dashboard/workflow/user-selection.mdx b/document/content/introduction/guide/dashboard/workflow/user-selection.mdx similarity index 81% rename from document/content/docs/introduction/guide/dashboard/workflow/user-selection.mdx rename to document/content/introduction/guide/dashboard/workflow/user-selection.mdx index 36a6e6ff91..5731bbe52f 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/user-selection.mdx +++ b/document/content/introduction/guide/dashboard/workflow/user-selection.mdx @@ -9,17 +9,17 @@ description: FastGPT 用户选择模块的使用说明 - 可重复添加 - 触发执行 -![](/imgs/user-selection1.png) +![](../../../../../public/imgs/user-selection1.png) ## 功能 「用户选择」节点属于用户交互节点,当触发这个节点时,对话会进入“交互”状态,会记录工作流的状态,等用户完成交互后,继续向下执行工作流 -![](/imgs/user-selection2.png) +![](../../../../../public/imgs/user-selection2.png) 比如上图中的例子,当触发用户选择节点时,对话框隐藏,对话进入“交互状态” -![](/imgs/user-selection3.png) +![](../../../../../public/imgs/user-selection3.png) 当用户做出选择时,节点会判断用户的选择,执行“是”的分支 diff --git a/document/content/docs/introduction/guide/dashboard/workflow/variable_update.en.mdx b/document/content/introduction/guide/dashboard/workflow/variable_update.en.mdx similarity index 67% rename from document/content/docs/introduction/guide/dashboard/workflow/variable_update.en.mdx rename to document/content/introduction/guide/dashboard/workflow/variable_update.en.mdx index add07122ef..b74c7319e3 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/variable_update.en.mdx +++ b/document/content/introduction/guide/dashboard/workflow/variable_update.en.mdx @@ -10,21 +10,21 @@ description: FastGPT Variable Update module overview - Trigger-based execution - Manual configuration -![](/imgs/variable_update1.png) +![](../../../../../public/imgs/variable_update1.png) ## Function - Update the output value of a specified node -![](/imgs/variable_update2.png) +![](../../../../../public/imgs/variable_update2.png) -![](/imgs/variable_update3.png) +![](../../../../../public/imgs/variable_update3.png) - Update global variables -![](/imgs/variable_update4.png) +![](../../../../../public/imgs/variable_update4.png) -![](/imgs/variable_update5.png) +![](../../../../../public/imgs/variable_update5.png) ## Use Cases diff --git a/document/content/docs/introduction/guide/dashboard/workflow/variable_update.mdx b/document/content/introduction/guide/dashboard/workflow/variable_update.mdx similarity index 65% rename from document/content/docs/introduction/guide/dashboard/workflow/variable_update.mdx rename to document/content/introduction/guide/dashboard/workflow/variable_update.mdx index 2f2953c3d9..cea5158089 100644 --- a/document/content/docs/introduction/guide/dashboard/workflow/variable_update.mdx +++ b/document/content/introduction/guide/dashboard/workflow/variable_update.mdx @@ -10,21 +10,21 @@ description: FastGPT 变量更新模块介绍 - 触发执行 - 手动配置 -![](/imgs/variable_update1.png) +![](../../../../../public/imgs/variable_update1.png) ## 功能 - 更新指定节点的输出值 -![](/imgs/variable_update2.png) +![](../../../../../public/imgs/variable_update2.png) -![](/imgs/variable_update3.png) +![](../../../../../public/imgs/variable_update3.png) - 更新全局变量 -![](/imgs/variable_update4.png) +![](../../../../../public/imgs/variable_update4.png) -![](/imgs/variable_update5.png) +![](../../../../../public/imgs/variable_update5.png) ## 作用 diff --git a/document/content/docs/introduction/guide/knowledge_base/api_dataset.en.mdx b/document/content/introduction/guide/knowledge_base/api_dataset.en.mdx similarity index 98% rename from document/content/docs/introduction/guide/knowledge_base/api_dataset.en.mdx rename to document/content/introduction/guide/knowledge_base/api_dataset.en.mdx index 0bf12cadb4..f15373ae7e 100644 --- a/document/content/docs/introduction/guide/knowledge_base/api_dataset.en.mdx +++ b/document/content/introduction/guide/knowledge_base/api_dataset.en.mdx @@ -7,7 +7,7 @@ import { Alert } from '@/components/docs/Alert'; | | | | --- | --- | -| ![](/imgs/image-18.png) | ![](/imgs/image-19.png) | +| ![](../../../../public/imgs/image-18.png) | ![](../../../../public/imgs/image-19.png) | ## Background diff --git a/document/content/docs/introduction/guide/knowledge_base/api_dataset.mdx b/document/content/introduction/guide/knowledge_base/api_dataset.mdx similarity index 98% rename from document/content/docs/introduction/guide/knowledge_base/api_dataset.mdx rename to document/content/introduction/guide/knowledge_base/api_dataset.mdx index 91c1aa3ba8..4d569fa27e 100644 --- a/document/content/docs/introduction/guide/knowledge_base/api_dataset.mdx +++ b/document/content/introduction/guide/knowledge_base/api_dataset.mdx @@ -7,7 +7,7 @@ import { Alert } from '@/components/docs/Alert'; | | | | --- | --- | -| ![](/imgs/image-18.png) | ![](/imgs/image-19.png) | +| ![](../../../../public/imgs/image-18.png) | ![](../../../../public/imgs/image-19.png) | ## 背景 diff --git a/document/content/docs/introduction/guide/knowledge_base/collection_tags.en.mdx b/document/content/introduction/guide/knowledge_base/collection_tags.en.mdx similarity index 90% rename from document/content/docs/introduction/guide/knowledge_base/collection_tags.en.mdx rename to document/content/introduction/guide/knowledge_base/collection_tags.en.mdx index 821b6be373..1f8f896b02 100644 --- a/document/content/docs/introduction/guide/knowledge_base/collection_tags.en.mdx +++ b/document/content/introduction/guide/knowledge_base/collection_tags.en.mdx @@ -9,7 +9,7 @@ You can also use tags as collection filters during knowledge base searches for m | | | | | --------------------- | --------------------- | --------------------- | -| ![](/imgs/collection-tags-1.png) | ![](/imgs/collection-tags-2.png) | ![](/imgs/collection-tags-3.png) | +| ![](../../../../public/imgs/collection-tags-1.png) | ![](../../../../public/imgs/collection-tags-2.png) | ![](../../../../public/imgs/collection-tags-3.png) | ## Basic Tag Operations diff --git a/document/content/docs/introduction/guide/knowledge_base/collection_tags.mdx b/document/content/introduction/guide/knowledge_base/collection_tags.mdx similarity index 90% rename from document/content/docs/introduction/guide/knowledge_base/collection_tags.mdx rename to document/content/introduction/guide/knowledge_base/collection_tags.mdx index d4c11b72cc..8430af98d1 100644 --- a/document/content/docs/introduction/guide/knowledge_base/collection_tags.mdx +++ b/document/content/introduction/guide/knowledge_base/collection_tags.mdx @@ -9,7 +9,7 @@ description: FastGPT 知识库集合标签使用说明 | | | | | --------------------- | --------------------- | --------------------- | -| ![](/imgs/collection-tags-1.png) | ![](/imgs/collection-tags-2.png) | ![](/imgs/collection-tags-3.png) | +| ![](../../../../public/imgs/collection-tags-1.png) | ![](../../../../public/imgs/collection-tags-2.png) | ![](../../../../public/imgs/collection-tags-3.png) | ## 标签基础操作说明 diff --git a/document/content/docs/introduction/guide/knowledge_base/dataset_engine.en.mdx b/document/content/introduction/guide/knowledge_base/dataset_engine.en.mdx similarity index 94% rename from document/content/docs/introduction/guide/knowledge_base/dataset_engine.en.mdx rename to document/content/introduction/guide/knowledge_base/dataset_engine.en.mdx index 6e0440df6e..c3c4c7a983 100644 --- a/document/content/docs/introduction/guide/knowledge_base/dataset_engine.en.mdx +++ b/document/content/introduction/guide/knowledge_base/dataset_engine.en.mdx @@ -34,7 +34,7 @@ Retriever precision is relatively straightforward to address, and training vecto In FastGPT, a knowledge base consists of three parts: libraries, collections, and data entries. A collection can be thought of as a "file." A library can contain multiple collections, and a collection can contain multiple data entries. The smallest searchable unit is the library — searches span the entire library. Collections are only for organizing and managing data and do not affect search results (at least for now). -![](/imgs/dataset_tree.png) +![](../../../../public/imgs/dataset_tree.png) ### Vector Storage Structure @@ -44,7 +44,7 @@ In `MongoDB`'s `dataset.datas` collection, vector source data is stored along wi In `PostgreSQL`, a `vector` field stores the vectors. During search, vectors are recalled first, then their IDs are used to look up the original data in `MongoDB`. If multiple vectors map to the same source data, they are merged and the highest vector score is used. -![](/imgs/datasetSetting1.png) +![](../../../../public/imgs/datasetSetting1.png) ### Purpose and Usage of Multi-Vector Mapping @@ -61,13 +61,13 @@ This means you can continuously improve data chunk accuracy through annotation. 3. Use `RRF` (Reciprocal Rank Fusion) to merge results from multiple search channels. 4. Use `Rerank` for secondary sorting to improve precision. -![](/imgs/dataset_search_process.png) +![](../../../../public/imgs/dataset_search_process.png) ## Search Parameters | | | | | --- |---| --- | -|![](/imgs/dataset_search_params1.png)| ![](/imgs/dataset_search_params2.png) | ![](/imgs/dataset_search_params3.png) | +|![](../../../../public/imgs/dataset_search_params1.png)| ![](../../../../public/imgs/dataset_search_params2.png) | ![](../../../../public/imgs/dataset_search_params3.png) | ### Search Modes @@ -123,11 +123,11 @@ In RAG, we need to perform embedding searches against the database based on the During search — especially in multi-turn conversations — follow-up questions often fail to find relevant content because knowledge base search only uses the "current" question. Consider this example: -![](/imgs/coreferenceResolution2.webp) +![](../../../../public/imgs/coreferenceResolution2.webp) When the user asks "What's the second point?", the system searches for "What's the second point?" in the knowledge base, which returns nothing useful. The actual query should be "What is the QA structure?". This is why we need a Query Optimization module to complete the user's current question, enabling the knowledge base search to find relevant content. Here's the result after optimization: -![](/imgs/coreferenceResolution3.webp) +![](../../../../public/imgs/coreferenceResolution3.webp) #### How It Works diff --git a/document/content/docs/introduction/guide/knowledge_base/dataset_engine.mdx b/document/content/introduction/guide/knowledge_base/dataset_engine.mdx similarity index 94% rename from document/content/docs/introduction/guide/knowledge_base/dataset_engine.mdx rename to document/content/introduction/guide/knowledge_base/dataset_engine.mdx index 7c4a446b7d..03ea9a3dcd 100644 --- a/document/content/docs/introduction/guide/knowledge_base/dataset_engine.mdx +++ b/document/content/introduction/guide/knowledge_base/dataset_engine.mdx @@ -34,7 +34,7 @@ FastGPT 采用了 RAG 中的 Embedding 方案构建知识库,要使用好 Fast 在 FastGPT 中,整个知识库由库、集合和数据 3 部分组成。集合可以简单理解为一个`文件`。一个`库`中可以包含多个`集合`,一个`集合`中可以包含多组`数据`。最小的搜索单位是`库`,也就是说,知识库搜索时,是对整个`库`进行搜索,而集合仅是为了对数据进行分类管理,与搜索效果无关。(起码目前还是) -![](/imgs/dataset_tree.png) +![](../../../../public/imgs/dataset_tree.png) ### 向量存储结构 @@ -44,7 +44,7 @@ FastGPT 采用了`PostgresSQL`的`PG Vector`插件作为向量检索器,索引 在`PostgresSQL`的表中,设置一个`vector`字段用于存储向量。在检索时,会先召回向量,再根据向量的ID,去`MongoDB`中寻找原数据内容,如果对应了同一组原数据,则进行合并,向量得分取最高得分。 -![](/imgs/datasetSetting1.png) +![](../../../../public/imgs/datasetSetting1.png) ### 多向量的目的和使用方式 @@ -61,13 +61,13 @@ FastGPT 采用了`PostgresSQL`的`PG Vector`插件作为向量检索器,索引 3. 通过`RRF`合并方式,综合多个渠道的检索效果。 4. 通过`Rerank`来二次排序,提高精度。 -![](/imgs/dataset_search_process.png) +![](../../../../public/imgs/dataset_search_process.png) ## 搜索参数 | | | | | --- |---| --- | -|![](/imgs/dataset_search_params1.png)| ![](/imgs/dataset_search_params2.png) | ![](/imgs/dataset_search_params3.png) | +|![](../../../../public/imgs/dataset_search_params1.png)| ![](../../../../public/imgs/dataset_search_params2.png) | ![](../../../../public/imgs/dataset_search_params3.png) | ### 搜索模式 @@ -123,11 +123,11 @@ FastGPT 会使用 `RRF` 对重排结果、向量搜索结果、全文检索结 在搜索的过程中,尤其是连续对话的搜索,我们通常会发现后续的问题难以搜索到合适的内容,其中一个原因是知识库搜索只会使用“当前”的问题去执行。看下面的例子: -![](/imgs/coreferenceResolution2.webp) +![](../../../../public/imgs/coreferenceResolution2.webp) 用户在提问“第二点是什么”的时候,只会去知识库里查找“第二点是什么”,压根查不到内容。实际上需要查询的是“QA结构是什么”。因此我们需要引入一个【问题优化】模块,来对用户当前的问题进行补全,从而使得知识库搜索能够搜索到合适的内容。使用补全后效果如下: -![](/imgs/coreferenceResolution3.webp) +![](../../../../public/imgs/coreferenceResolution3.webp) #### 实现方式 diff --git a/document/content/docs/introduction/guide/knowledge_base/lark_dataset.en.mdx b/document/content/introduction/guide/knowledge_base/lark_dataset.en.mdx similarity index 83% rename from document/content/docs/introduction/guide/knowledge_base/lark_dataset.en.mdx rename to document/content/introduction/guide/knowledge_base/lark_dataset.en.mdx index c16dccd052..db6fd77846 100644 --- a/document/content/docs/introduction/guide/knowledge_base/lark_dataset.en.mdx +++ b/document/content/introduction/guide/knowledge_base/lark_dataset.en.mdx @@ -5,7 +5,7 @@ description: Introduction and usage of the FastGPT Lark Knowledge Base | | | | --- | --- | -| ![alt text](/imgs/image-39.png) | ![alt text](/imgs/image-40.png) | +| ![alt text](../../../../public/imgs/image-39.png) | ![alt text](../../../../public/imgs/image-40.png) | Starting from FastGPT v4.8.16, commercial edition users can import from Lark knowledge bases. Configure a Lark app's appId and appSecret, then select a **top-level folder in a document space** to import. This feature is currently in beta — some interactions may still need refinement. @@ -26,11 +26,11 @@ After creating the app, configure the following **3 permissions**: 2. View new-format documents 3. View, comment, edit, and manage all files in the cloud space -![alt text](/imgs/image-41.png) +![alt text](../../../../public/imgs/image-41.png) ## 3. Get the appId and appSecret -![alt text](/imgs/image-42.png) +![alt text](../../../../public/imgs/image-42.png) ## 4. Grant Folder Permissions @@ -43,16 +43,16 @@ In summary: If your directory already has permissions granted to the "All Members" group, you can skip the steps above and go directly to getting the Folder Token. -![alt text](/imgs/image-43.png) +![alt text](../../../../public/imgs/image-43.png) ## 5. Get the Folder Token You can find the Folder Token in the page URL. Make sure not to include the question mark. -![alt text](/imgs/image-44.png) +![alt text](../../../../public/imgs/image-44.png) ## 6. Create the Knowledge Base Using the 3 parameters obtained from steps 3 and 5, create a knowledge base. Select the Lark file library type, fill in the parameters, and click Create. -![alt text](/imgs/image-39.png) +![alt text](../../../../public/imgs/image-39.png) diff --git a/document/content/docs/introduction/guide/knowledge_base/lark_dataset.mdx b/document/content/introduction/guide/knowledge_base/lark_dataset.mdx similarity index 82% rename from document/content/docs/introduction/guide/knowledge_base/lark_dataset.mdx rename to document/content/introduction/guide/knowledge_base/lark_dataset.mdx index d24b042d68..f20c1ea722 100644 --- a/document/content/docs/introduction/guide/knowledge_base/lark_dataset.mdx +++ b/document/content/introduction/guide/knowledge_base/lark_dataset.mdx @@ -5,7 +5,7 @@ description: FastGPT 飞书知识库功能介绍和使用方式 | | | | --- | --- | -| ![alt text](/imgs/image-39.png) | ![alt text](/imgs/image-40.png) | +| ![alt text](../../../../public/imgs/image-39.png) | ![alt text](../../../../public/imgs/image-40.png) | FastGPT v4.8.16 版本开始,商业版用户支持飞书知识库导入,用户可以通过配置飞书应用的 appId 和 appSecret,并选中一个**文档空间的顶层文件夹**来导入飞书知识库。目前处于测试阶段,部分交互有待优化。 @@ -26,11 +26,11 @@ FastGPT v4.8.16 版本开始,商业版用户支持飞书知识库导入,用 2. 查看新版文档 3. 查看、评论、编辑和管理云空间中所有文件 -![alt text](/imgs/image-41.png) +![alt text](../../../../public/imgs/image-41.png) ## 3. 获取 appId 和 appSecret -![alt text](/imgs/image-42.png) +![alt text](../../../../public/imgs/image-42.png) ## 4. 给 Folder 增加权限 @@ -43,16 +43,16 @@ FastGPT v4.8.16 版本开始,商业版用户支持飞书知识库导入,用 如果你的目录已经给全员组增加权限了,则可以跳过上面步骤,直接获取 Folder Token。 -![alt text](/imgs/image-43.png) +![alt text](../../../../public/imgs/image-43.png) ## 5. 获取 Folder Token 可以页面路径上获取 Folder Token,注意不要把问号复制进来。 -![alt text](/imgs/image-44.png) +![alt text](../../../../public/imgs/image-44.png) ## 6. 创建知识库 根据 3 和 5 获取到的 3 个参数,创建知识库,选择飞书文件库类型,然后填入对应的参数,点击创建。 -![alt text](/imgs/image-39.png) +![alt text](../../../../public/imgs/image-39.png) diff --git a/document/content/docs/introduction/guide/knowledge_base/meta.en.json b/document/content/introduction/guide/knowledge_base/meta.en.json similarity index 97% rename from document/content/docs/introduction/guide/knowledge_base/meta.en.json rename to document/content/introduction/guide/knowledge_base/meta.en.json index 9e13f77f01..9ffcbd069a 100644 --- a/document/content/docs/introduction/guide/knowledge_base/meta.en.json +++ b/document/content/introduction/guide/knowledge_base/meta.en.json @@ -2,7 +2,7 @@ "title": "Knowledge Base", "description": "Basic principles of knowledge base, search solutions, web site synchronization, and usage methods for external file knowledge bases.", "pages": [ - "RAG", + "rag", "dataset_engine", "collection_tags", "api_dataset", diff --git a/document/content/docs/introduction/guide/knowledge_base/meta.json b/document/content/introduction/guide/knowledge_base/meta.json similarity index 96% rename from document/content/docs/introduction/guide/knowledge_base/meta.json rename to document/content/introduction/guide/knowledge_base/meta.json index 7fab0acd73..5ff5fe1c2e 100644 --- a/document/content/docs/introduction/guide/knowledge_base/meta.json +++ b/document/content/introduction/guide/knowledge_base/meta.json @@ -2,7 +2,7 @@ "title": "知识库", "description": "知识库的基础原理、搜索方案、Web站点同步和外部文件知识库的使用方法。", "pages": [ - "RAG", + "rag", "dataset_engine", "collection_tags", "api_dataset", diff --git a/document/content/docs/introduction/guide/knowledge_base/RAG.en.mdx b/document/content/introduction/guide/knowledge_base/rag.en.mdx similarity index 99% rename from document/content/docs/introduction/guide/knowledge_base/RAG.en.mdx rename to document/content/introduction/guide/knowledge_base/rag.en.mdx index 64a5ed66d7..ae1a36ab1e 100644 --- a/document/content/docs/introduction/guide/knowledge_base/RAG.en.mdx +++ b/document/content/introduction/guide/knowledge_base/rag.en.mdx @@ -179,7 +179,7 @@ The generator produces natural language answers based on retrieved context. Accu ## 5.5 RAG Pipeline -![](/imgs/RAG1.png) +![](../../../../public/imgs/RAG1.png) 1. Data loading and query input: 1. The user submits a natural language query through the UI or API. @@ -208,7 +208,7 @@ RAG models have been widely adopted across multiple domains: - RAG generates accurate, detailed answers by retrieving from external knowledge bases in real time, avoiding the hallucination issues of traditional generative models. For example, in medical Q&A systems, RAG can incorporate the latest medical literature to generate answers with current treatment protocols, helping medical professionals quickly access the latest research and clinical recommendations. - [Medical Q&A System Case Study](https://www.apexon.com/blog/empowering-discovery-the-role-of-rag-architecture-generative-ai-in-healthcare-life-sciences/) - - ![](/imgs/RAG2.png) + - ![](../../../../public/imgs/RAG2.png) - User submits a query through the web application: 1. The user enters a query in the web app, which enters the backend system and initiates the data processing pipeline. - Authentication via Azure AD: @@ -234,7 +234,7 @@ RAG models have been widely adopted across multiple domains: - Summary: - Background: Traditional LLMs perform well in generation tasks but have limitations with complex legal tasks. Legal documents have unique structures and terminology that standard retrieval benchmarks often fail to capture. LegalBench-RAG aims to provide a dedicated benchmark for evaluating legal document retrieval. - LegalBench-RAG structure: - 1. ![](/imgs/RAG3.png) + 1. ![](../../../../public/imgs/RAG3.png) 2. Workflow: 3. User inputs a question (Q: ?, A: ?): The user submits a query through the interface. 4. Embed + Retrieve module: Receives the query, embeds it as a vector, and performs similarity search in external knowledge bases or documents. diff --git a/document/content/docs/introduction/guide/knowledge_base/RAG.mdx b/document/content/introduction/guide/knowledge_base/rag.mdx similarity index 99% rename from document/content/docs/introduction/guide/knowledge_base/RAG.mdx rename to document/content/introduction/guide/knowledge_base/rag.mdx index b5ddd71948..7997e9d5cc 100644 --- a/document/content/docs/introduction/guide/knowledge_base/RAG.mdx +++ b/document/content/introduction/guide/knowledge_base/rag.mdx @@ -244,7 +244,7 @@ RAG模型的数据分块与内容管理是优化检索与生成流程的关键 ## 5.5 RAG流程 -![](/imgs/RAG1.png) +![](../../../../public/imgs/RAG1.png) 1. 数据加载与查询输入: 1. 用户通过界面或API提交自然语言查询,系统接收查询作为输入。 @@ -273,7 +273,7 @@ RAG模型已在多个领域得到广泛应用,主要包括: - RAG通过实时检索外部知识库,生成包含准确且详细的答案,避免传统生成模型可能产生的错误信息。例如,在医疗问答系统中,RAG能够结合最新的医学文献,生成包含最新治疗方案的准确答案,避免生成模型提供过时或错误的建议。这种方法帮助医疗专家快速获得最新的研究成果和诊疗建议,提升医疗决策的质量。 - [医疗问答系统案例](https://www.apexon.com/blog/empowering-discovery-the-role-of-rag-architecture-generative-ai-in-healthcare-life-sciences/) - - ![](/imgs/RAG2.png) + - ![](../../../../public/imgs/RAG2.png) - 用户通过Web应用程序发起查询: 1. 用户在一个Web应用上输入查询请求,这个请求进入后端系统,启动了整个数据处理流程。 - 使用Azure AD进行身份验证: @@ -299,7 +299,7 @@ RAG模型已在多个领域得到广泛应用,主要包括: - 内容总结: - 背景: 传统的大语言模型 (LLMs) 在生成任务中表现优异,但在处理法律领域中的复杂任务时存在局限。法律文档具有独特的结构和术语,标准的检索评估基准往往无法充分捕捉这些领域特有的复杂性。为了弥补这一不足,LegalBench-RAG 旨在提供一个评估法律文档检索效果的专用基准。 - LegalBench-RAG 的结构: - 1. ![](/imgs/RAG3.png) + 1. ![](../../../../public/imgs/RAG3.png) 2. 工作流程: 3. 用户输入问题(Q: ?,A: ?):用户通过界面输入查询问题,提出需要答案的具体问题。 4. 嵌入与检索模块(Embed + Retrieve):该模块接收到用户的查询后,会对问题进行嵌入(将其转化为向量),并在外部知识库或文档中执行相似度检索。通过检索算法,系统找到与查询相关的文档片段或信息。 diff --git a/document/content/docs/introduction/guide/knowledge_base/template.en.mdx b/document/content/introduction/guide/knowledge_base/template.en.mdx similarity index 91% rename from document/content/docs/introduction/guide/knowledge_base/template.en.mdx rename to document/content/introduction/guide/knowledge_base/template.en.mdx index 8a427795a1..332890e8ba 100644 --- a/document/content/docs/introduction/guide/knowledge_base/template.en.mdx +++ b/document/content/introduction/guide/knowledge_base/template.en.mdx @@ -28,9 +28,9 @@ q,a,indexes ### 1. Open the Knowledge Base, Click Import, and Select Template Import -![](/imgs/template/import.png) +![](../../../../public/imgs/template/import.png) -![](/imgs/template/box.png) +![](../../../../public/imgs/template/box.png) ### 2. Download the Template @@ -38,21 +38,21 @@ Click to download the CSV template. It contains two content modes: #### Standard Mode Template -![](/imgs/template/nomal.png) +![](../../../../public/imgs/template/nomal.png) Corresponding CSV format: -![](/imgs/template/nomal_data.png) +![](../../../../public/imgs/template/nomal_data.png) In standard mode, q is the content, a is empty, and indexes can have multiple entries. #### Q&A Pair Mode Template -![](/imgs/template/Question-answer.png) +![](../../../../public/imgs/template/Question-answer.png) Corresponding CSV format: -![](/imgs/template/Question-answer_data.png) +![](../../../../public/imgs/template/Question-answer_data.png) In Q&A pair mode, q is the question, a is the answer, and indexes are the index entries. @@ -72,7 +72,7 @@ Fill in your Q&A data following the template format: After a successful import: -![](/imgs/template/import_csv.png) +![](../../../../public/imgs/template/import_csv.png) ### 4. Important Notes diff --git a/document/content/docs/introduction/guide/knowledge_base/template.mdx b/document/content/introduction/guide/knowledge_base/template.mdx similarity index 90% rename from document/content/docs/introduction/guide/knowledge_base/template.mdx rename to document/content/introduction/guide/knowledge_base/template.mdx index 2dffe7d4a8..c12c554804 100644 --- a/document/content/docs/introduction/guide/knowledge_base/template.mdx +++ b/document/content/introduction/guide/knowledge_base/template.mdx @@ -28,9 +28,9 @@ q,a,indexes ### 1. 打开知识库,点击导入,选择模版导入 -![](/imgs/template/import.png) +![](../../../../public/imgs/template/import.png) -![](/imgs/template/box.png) +![](../../../../public/imgs/template/box.png) ### 2. 下载模板 @@ -38,21 +38,21 @@ q,a,indexes #### 常规模式的数据模版 -![](/imgs/template/nomal.png) +![](../../../../public/imgs/template/nomal.png) 对应 CSV 格式为 -![](/imgs/template/nomal_data.png) +![](../../../../public/imgs/template/nomal_data.png) 常规模式下,q为内容,a为空,indexes可多个 #### 问答对的数据模版 -![](/imgs/template/Question-answer.png) +![](../../../../public/imgs/template/Question-answer.png) 对应CSV格式为 -![](/imgs/template/Question-answer_data.png) +![](../../../../public/imgs/template/Question-answer_data.png) 问答对模式下,q为问题,a为答案,indexes即为索引部分 @@ -72,7 +72,7 @@ q,a,indexes 成功导入后如下: -![](/imgs/template/import_csv.png) +![](../../../../public/imgs/template/import_csv.png) ### 4. 注意事项 diff --git a/document/content/docs/introduction/guide/knowledge_base/third_dataset.en.mdx b/document/content/introduction/guide/knowledge_base/third_dataset.en.mdx similarity index 83% rename from document/content/docs/introduction/guide/knowledge_base/third_dataset.en.mdx rename to document/content/introduction/guide/knowledge_base/third_dataset.en.mdx index 5fc2f59409..790c7bc213 100644 --- a/document/content/docs/introduction/guide/knowledge_base/third_dataset.en.mdx +++ b/document/content/introduction/guide/knowledge_base/third_dataset.en.mdx @@ -10,7 +10,7 @@ There are many document libraries available online, such as Lark, Yuque, and oth ## Unified API Specification -To provide a unified interface for different document libraries, FastGPT defines a standard API specification with 4 endpoints. See the [API File Library endpoints](/docs/introduction/guide/knowledge_base/api_dataset). +To provide a unified interface for different document libraries, FastGPT defines a standard API specification with 4 endpoints. See the [API File Library endpoints](./api_dataset.en.mdx). All built-in document libraries are extensions of the standard API File Library. Refer to the code in `FastGPT/packages/service/core/dataset/apiDataset/yuqueDataset/api.ts` to build extensions for other document libraries. You need to implement 4 endpoints: @@ -37,11 +37,11 @@ export type YuqueServer = { -If the document library supports a `root directory` selection feature, add a `basePath` field. [See the root directory feature](/docs/introduction/guide/knowledge_base/third_dataset/#adding-the-configuration-form) +If the document library supports a `root directory` selection feature, add a `basePath` field. [See the root directory feature](./third_dataset.en.mdx#adding-the-configuration-form) -![](/imgs/thirddataset-1.png) +![](../../../../public/imgs/thirddataset-1.png) ### 2. Create the Hook File @@ -59,29 +59,29 @@ Each third-party document library uses a Hook pattern to maintain a set of API e In `FastGPT\packages\global\core\dataset\type.d.ts`, import your new knowledge base type. -![](/imgs/thirddataset-2.png) +![](../../../../public/imgs/thirddataset-2.png) ### 4. Add Knowledge Base Data Retrieval In `FastGPT\packages\global\core\dataset\apiDataset\utils.ts`, add the following content. -![](/imgs/thirddataset-3.png) +![](../../../../public/imgs/thirddataset-3.png) ### 5. Add Knowledge Base Invocation Method In `FastGPT\packages\service\core\dataset\apiDataset\index.ts`, add the following content. -![](/imgs/thirddataset-4.png) +![](../../../../public/imgs/thirddataset-4.png) ## Adding the Frontend Add your i18n translations in `FastGPT\packages\web\i18n\zh-CN\dataset.json`, `FastGPT\packages\web\i18n\en\dataset.json`, and `FastGPT\packages\web\i18n\zh-Hant\dataset.json`. Using Chinese translations as an example, you'll generally need the following: -![](/imgs/thirddataset-5.png) +![](../../../../public/imgs/thirddataset-5.png) In `FastGPT\packages\service\support\user/audit\util.ts`, add the following to support i18n translation retrieval. -![](/imgs/thirddataset-6.png) +![](../../../../public/imgs/thirddataset-6.png) @@ -91,23 +91,23 @@ The i18n translation content is stored in `FastGPT\packages\web\i18n\zh-Hant\acc Add your knowledge base icons under `FastGPT\packages\web\components\common\Icon\icons\core\dataset\`. You need two icons: `Outline` (monochrome) and `Color` (colored), as shown below. -![](/imgs/thirddataset-7.png) +![](../../../../public/imgs/thirddataset-7.png) In `FastGPT\packages\web\components\common\Icon\constants.ts`, register your icons. The `import` path points to where the icons are stored. -![](/imgs/thirddataset-8.png) +![](../../../../public/imgs/thirddataset-8.png) In `FastGPT\packages\global\core\dataset\constants.ts`, add your knowledge base type to both `DatasetTypeEnum` and `ApiDatasetTypeMap`. | | | | --- | --- | -| ![](/imgs/thirddataset-9.png) | ![](/imgs/thirddataset-10.png) | +| ![](../../../../public/imgs/thirddataset-9.png) | ![](../../../../public/imgs/thirddataset-10.png) | The `courseUrl` field links to the relevant documentation — add it if available. -Documentation goes in `FastGPT/document/content/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx`. +Documentation goes in `FastGPT/document/content/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx`. The `label` value is the knowledge base name you added via i18n translations. `icon` and `avatar` are the two icons you added earlier. @@ -115,13 +115,13 @@ The `label` value is the knowledge base name you added via i18n translations. In `FastGPT\projects\app\src\pages\dataset\list\index.tsx`, add the following. This file handles the menu that appears when clicking the "New" button on the knowledge base list page. Your knowledge base must be added here to be creatable. -![](/imgs/thirddataset-11.png) +![](../../../../public/imgs/thirddataset-11.png) In `FastGPT\projects\app\src\pageComponents\dataset\detail\Info\index.tsx`, add the following. This configuration corresponds to the UI shown below. | | | | --- | --- | -![](/imgs/thirddataset-12.png)|![](/imgs/thirddataset-13.png) +![](../../../../public/imgs/thirddataset-12.png)|![](../../../../public/imgs/thirddataset-13.png) ## Adding the Configuration Form @@ -129,7 +129,7 @@ In `FastGPT\projects\app\src\pageComponents\dataset\ApiDatasetForm.tsx`, add the | | | | | --- | --- | --- | -| ![](/imgs/thirddataset-14.png) | ![](/imgs/thirddataset-15.png) | ![](/imgs/thirddataset-16.png) | +| ![](../../../../public/imgs/thirddataset-14.png) | ![](../../../../public/imgs/thirddataset-15.png) | ![](../../../../public/imgs/thirddataset-16.png) | The two components added in the code render the root directory selector, corresponding to the `getFileDetail` API method. If your knowledge base doesn't support this, you can omit them. @@ -140,7 +140,7 @@ The two components added in the code render the root directory selector, corresp | | | | --- | --- | -| ![](/imgs/thirddataset-17.png) | ![](/imgs/thirddataset-18.png) | +| ![](../../../../public/imgs/thirddataset-17.png) | ![](../../../../public/imgs/thirddataset-18.png) | If the knowledge base needs root directory support, also add the following in the `ApiDatasetForm` file. @@ -148,19 +148,19 @@ If the knowledge base needs root directory support, also add the following in th Parse your knowledge base type from `apiDatasetServer`, as shown: -![](/imgs/thirddataset-19.png) +![](../../../../public/imgs/thirddataset-19.png) ### 2. Add Root Directory Selection Logic and `parentId` Assignment Add root directory selection logic to ensure the user has filled in all required fields for the API methods, such as the Token. -![](/imgs/thirddataset-20.png) +![](../../../../public/imgs/thirddataset-20.png) ### 3. Add Field Validation and Assignment Logic Verify that all required fields are present before calling the API, and assign the root directory value to the corresponding field after selection. -![](/imgs/thirddataset-21.png) +![](../../../../public/imgs/thirddataset-21.png) ## Tips diff --git a/document/content/docs/introduction/guide/knowledge_base/third_dataset.mdx b/document/content/introduction/guide/knowledge_base/third_dataset.mdx similarity index 82% rename from document/content/docs/introduction/guide/knowledge_base/third_dataset.mdx rename to document/content/introduction/guide/knowledge_base/third_dataset.mdx index 1782a79b5f..7d4231c7fe 100644 --- a/document/content/docs/introduction/guide/knowledge_base/third_dataset.mdx +++ b/document/content/introduction/guide/knowledge_base/third_dataset.mdx @@ -10,7 +10,7 @@ import { Alert } from '@/components/docs/Alert'; ## 统一的接口规范 -为了实现对不同文档库的统一接入,FastGPT 对第三方文档库进行了接口的规范,共包含 4 个接口内容,可以[查看 API 文件库接口](/docs/introduction/guide/knowledge_base/api_dataset)。 +为了实现对不同文档库的统一接入,FastGPT 对第三方文档库进行了接口的规范,共包含 4 个接口内容,可以[查看 API 文件库接口](./api_dataset.mdx)。 所有内置的文档库,都是基于标准的 API 文件库进行扩展。可以参考`FastGPT/packages/service/core/dataset/apiDataset/yuqueDataset/api.ts`中的代码,进行其他文档库的扩展。一共需要完成 4 个接口开发: @@ -37,11 +37,11 @@ export type YuqueServer = { -如果文档库有`根目录`选择的功能,需要设置添加一个字段`basePath`[点击查看`根目录`功能](/docs/introduction/guide/knowledge_base/third_dataset/#添加配置表单) +如果文档库有`根目录`选择的功能,需要设置添加一个字段`basePath`[点击查看`根目录`功能](./third_dataset.mdx#添加配置表单) -![](/imgs/thirddataset-1.png) +![](../../../../public/imgs/thirddataset-1.png) ### 2. 创建 Hook 文件 @@ -59,29 +59,29 @@ export type YuqueServer = { 在`FastGPT\packages\global\core\dataset\type.d.ts`文件中,导入自己创建的知识库类型。 -![](/imgs/thirddataset-2.png) +![](../../../../public/imgs/thirddataset-2.png) ### 4. 添加知识库数据获取 在`FastGPT\packages\global\core\dataset\apiDataset\utils.ts`文件中,添加如下内容。 -![](/imgs/thirddataset-3.png) +![](../../../../public/imgs/thirddataset-3.png) ### 5. 添加知识库调用方法 在`FastGPT\packages\service\core\dataset\apiDataset\index.ts`文件下,添加如下内容。 -![](/imgs/thirddataset-4.png) +![](../../../../public/imgs/thirddataset-4.png) ## 添加前端 `FastGPT\packages\web\i18n\zh-CN\dataset.json`,`FastGPT\packages\web\i18n\en\dataset.json`和`FastGPT\packages\web\i18n\zh-Hant\dataset.json`中添加自己的 I18n 翻译,以中文翻译为例,大体需要如下几个内容: -![](/imgs/thirddataset-5.png) +![](../../../../public/imgs/thirddataset-5.png) `FastGPT\packages\service\support\user/audit\util.ts`文件下添加如下内容,以支持获取 I18n 翻译。 -![](/imgs/thirddataset-6.png) +![](../../../../public/imgs/thirddataset-6.png) @@ -91,23 +91,23 @@ export type YuqueServer = { `FastGPT\packages\web\components\common\Icon\icons\core\dataset\`添加自己的知识库图标,一共是两个,分为`Outline`和`Color`,分别是有颜色的和无色的,具体看如下图片。 -![](/imgs/thirddataset-7.png) +![](../../../../public/imgs/thirddataset-7.png) 在`FastGPT\packages\web\components\common\Icon\constants.ts`文件中,添加自己的图标。 `import` 是图标的存放路径。 -![](/imgs/thirddataset-8.png) +![](../../../../public/imgs/thirddataset-8.png) 在`FastGPT\packages\global\core\dataset\constants.ts`中,添加自己的知识库类型,分别要在`DatasetTypeEnum`和`ApiDatasetTypeMap`中添加内容。 | | | | --- | --- | -| ![](/imgs/thirddataset-9.png) | ![](/imgs/thirddataset-10.png) | +| ![](../../../../public/imgs/thirddataset-9.png) | ![](../../../../public/imgs/thirddataset-10.png) | `courseUrl`字段是相应的文档说明,如果有的话,可以添加。 -文档添加在`FastGPT/document/content/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx` +文档添加在`FastGPT/document/content/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx` `label`内容是自己之前通过 i18n 翻译添加的知识库名称的。 `icon`和`avatar`是自己之前添加的两个图标 @@ -115,13 +115,13 @@ export type YuqueServer = { 在`FastGPT\projects\app\src\pages\dataset\list\index.tsx`文件下,添加如下内容。这个文件负责的是知识库列表页的`新建`按钮点击后的菜单,只有在该文件添加知识库后,才能创建知识库。 -![](/imgs/thirddataset-11.png) +![](../../../../public/imgs/thirddataset-11.png) 在`FastGPT\projects\app\src\pageComponents\dataset\detail\Info\index.tsx`文件下,添加如下内容。此处配置对应ui界面的如下。 | | | | --- | --- | -![](/imgs/thirddataset-12.png)|![](/imgs/thirddataset-13.png) +![](../../../../public/imgs/thirddataset-12.png)|![](../../../../public/imgs/thirddataset-13.png) ## 添加配置表单 @@ -129,7 +129,7 @@ export type YuqueServer = { | | | | | --- | --- | --- | -| ![](/imgs/thirddataset-14.png) | ![](/imgs/thirddataset-15.png) | ![](/imgs/thirddataset-16.png) | +| ![](../../../../public/imgs/thirddataset-14.png) | ![](../../../../public/imgs/thirddataset-15.png) | ![](../../../../public/imgs/thirddataset-16.png) | 代码中添加的两个组件是对根目录选择的渲染,对应设计的 api 的 getfiledetail 方法,如果你的知识库不支持,你可以不引用。 @@ -140,7 +140,7 @@ export type YuqueServer = { | | | | --- | --- | -| ![](/imgs/thirddataset-17.png) | ![](/imgs/thirddataset-18.png) | +| ![](../../../../public/imgs/thirddataset-17.png) | ![](../../../../public/imgs/thirddataset-18.png) | 如果知识库需要支持根目录,还需要在`ApiDatasetForm`文件中添加如下内容。 @@ -148,19 +148,19 @@ export type YuqueServer = { 需要从`apiDatasetServer`解析出自己的知识库类型,如图: -![](/imgs/thirddataset-19.png) +![](../../../../public/imgs/thirddataset-19.png) ### 2. 添加选择根目录逻辑和`parentId`赋值逻辑 需要添加根目录选择逻辑,来确保用户已经填写了调动的 api 方法所必需的字段,比如 Token 之类的。 -![](/imgs/thirddataset-20.png) +![](../../../../public/imgs/thirddataset-20.png) ### 3. 添加字段检查和赋值逻辑 需要在调用方法前再次检测是否以及获取完所有必须字段,在选择根目录后,将根目录值赋值给对应的字段。 -![](/imgs/thirddataset-21.png) +![](../../../../public/imgs/thirddataset-21.png) ## 提示 diff --git a/document/content/docs/introduction/guide/knowledge_base/websync.en.mdx b/document/content/introduction/guide/knowledge_base/websync.en.mdx similarity index 83% rename from document/content/docs/introduction/guide/knowledge_base/websync.en.mdx rename to document/content/introduction/guide/knowledge_base/websync.en.mdx index 4fff674e79..9bb0248339 100644 --- a/document/content/docs/introduction/guide/knowledge_base/websync.en.mdx +++ b/document/content/introduction/guide/knowledge_base/websync.en.mdx @@ -3,7 +3,7 @@ title: Web Site Sync description: Introduction and usage of the FastGPT Web Site Sync feature --- -![](/imgs/webSync1.jpg) +![](../../../../public/imgs/webSync1.jpg) This feature is currently only available to commercial edition users. @@ -14,32 +14,32 @@ Web Site Sync uses crawler technology to automatically discover all pages under Tip: Most China-based media sites are not supported, including WeChat Official Accounts, CSDN, Zhihu, etc. You can verify whether a site is static by sending a `curl` request from the terminal: ```bash -curl https://doc.fastgpt.io/docs/intro/ +curl https://doc.fastgpt.io/intro/ ``` ## How to Use ### 1. Create a New Knowledge Base and Select Web Site Sync -![](/imgs/webSync2.jpg) +![](../../../../public/imgs/webSync2.jpg) -![](/imgs/webSync3.jpg) +![](../../../../public/imgs/webSync3.jpg) ### 2. Click to Configure Site Information -![](/imgs/webSync4.jpg) +![](../../../../public/imgs/webSync4.jpg) ### 3. Enter the URL and Selector -![](/imgs/webSync5.jpg) +![](../../../../public/imgs/webSync5.jpg) -![](/imgs/webSync5-1.jpg) +![](../../../../public/imgs/webSync5-1.jpg) Click Start Sync and wait for the system to automatically crawl the site content. ## Create an App and Bind the Knowledge Base -![](/imgs/webSync6.jpg) +![](../../../../public/imgs/webSync6.jpg) ## How to Use Selectors @@ -47,9 +47,9 @@ Selectors are based on HTML/CSS/JS. You can use selectors to target specific con ### Open the Browser DevTools (usually F12, or Right-click > Inspect) -![](/imgs/webSync7.webp) +![](../../../../public/imgs/webSync7.webp) -![](/imgs/webSync8.webp) +![](../../../../public/imgs/webSync8.webp) ### Enter the Element Selector @@ -60,7 +60,7 @@ In the image above, we selected an area corresponding to a `div` tag with three Besides attribute selectors, class and ID selectors are also common. For example: -![](/imgs/webSync9.webp) +![](../../../../public/imgs/webSync9.webp) The `class` in the image contains class names (there may be multiple separated by spaces — just pick one). The selector would be: **`.docs-content`** @@ -68,7 +68,7 @@ The `class` in the image contains class names (there may be multiple separated b In the earlier demo, we used multiple selectors for the FastGPT documentation site, separated by commas. -![](/imgs/webSync10.webp) +![](../../../../public/imgs/webSync10.webp) We want to select content from the two tags shown above, which requires two selectors. The first is: `.docs-content .mb-0.d-flex`, meaning child elements under the `docs-content` class that have both the `mb-0` and `d-flex` classes. diff --git a/document/content/docs/introduction/guide/knowledge_base/websync.mdx b/document/content/introduction/guide/knowledge_base/websync.mdx similarity index 82% rename from document/content/docs/introduction/guide/knowledge_base/websync.mdx rename to document/content/introduction/guide/knowledge_base/websync.mdx index d161baf6df..c7b690844d 100644 --- a/document/content/docs/introduction/guide/knowledge_base/websync.mdx +++ b/document/content/introduction/guide/knowledge_base/websync.mdx @@ -3,7 +3,7 @@ title: Web 站点同步 description: FastGPT Web 站点同步功能介绍和使用方式 --- -![](/imgs/webSync1.jpg) +![](../../../../public/imgs/webSync1.jpg) 该功能目前仅向商业版用户开放。 @@ -14,32 +14,32 @@ Web 站点同步利用爬虫的技术,可以通过一个入口网站,自动 Tips: 国内的媒体站点基本不可用,公众号、csdn、知乎等。可以通过终端发送`curl`请求检测是否为静态站点,例如: ```bash -curl https://doc.fastgpt.io/docs/intro/ +curl https://doc.fastgpt.io/intro/ ``` ## 如何使用 ### 1. 新建知识库,选择 Web 站点同步 -![](/imgs/webSync2.jpg) +![](../../../../public/imgs/webSync2.jpg) -![](/imgs/webSync3.jpg) +![](../../../../public/imgs/webSync3.jpg) ### 2. 点击配置站点信息 -![](/imgs/webSync4.jpg) +![](../../../../public/imgs/webSync4.jpg) ### 3. 填写网址和选择器 -![](/imgs/webSync5.jpg) +![](../../../../public/imgs/webSync5.jpg) -![](/imgs/webSync5-1.jpg) +![](../../../../public/imgs/webSync5-1.jpg) 好了, 现在点击开始同步,静等系统自动抓取网站信息即可。 ## 创建应用,绑定知识库 -![](/imgs/webSync6.jpg) +![](../../../../public/imgs/webSync6.jpg) ## 选择器如何使用 @@ -47,9 +47,9 @@ curl https://doc.fastgpt.io/docs/intro/ ### 首先打开浏览器调试面板(通常是 F12,或者【右键 - 检查】) -![](/imgs/webSync7.webp) +![](../../../../public/imgs/webSync7.webp) -![](/imgs/webSync8.webp) +![](../../../../public/imgs/webSync8.webp) ### 输入对应元素的选择器 @@ -60,7 +60,7 @@ curl https://doc.fastgpt.io/docs/intro/ 除了属性选择器,常见的还有类和ID选择器。例如: -![](/imgs/webSync9.webp) +![](../../../../public/imgs/webSync9.webp) 上图 class 里的是类名(可能包含多个类名,都是空格隔开的,选择一个即可),选择器可以为:**`.docs-content`** @@ -68,7 +68,7 @@ curl https://doc.fastgpt.io/docs/intro/ 在开头的演示中,我们对 FastGPT 文档是使用了多选择器的方式来选择,通过逗号隔开了两个选择器。 -![](/imgs/webSync10.webp) +![](../../../../public/imgs/webSync10.webp) 我们希望选中上图两个标签中的内容,此时就需要两组选择器。一组是:`.docs-content .mb-0.d-flex`,含义是 `docs-content` 类下同时包含 `mb-0`和`d-flex` 两个类的子元素; diff --git a/document/content/docs/introduction/guide/knowledge_base/yuque_dataset.en.mdx b/document/content/introduction/guide/knowledge_base/yuque_dataset.en.mdx similarity index 69% rename from document/content/docs/introduction/guide/knowledge_base/yuque_dataset.en.mdx rename to document/content/introduction/guide/knowledge_base/yuque_dataset.en.mdx index 8731b241d6..fb6e70dc20 100644 --- a/document/content/docs/introduction/guide/knowledge_base/yuque_dataset.en.mdx +++ b/document/content/introduction/guide/knowledge_base/yuque_dataset.en.mdx @@ -5,7 +5,7 @@ description: Introduction and usage of the FastGPT Yuque File Library | | | | --- | --- | -| ![alt text](/imgs/image-31.png) | ![alt text](/imgs/image-32.png) | +| ![alt text](../../../../public/imgs/image-31.png) | ![alt text](../../../../public/imgs/image-32.png) | Starting from FastGPT v4.8.16, commercial edition users can import from Yuque file libraries by configuring a Yuque token and uid. This feature is currently in beta — some interactions may still need refinement. @@ -13,7 +13,7 @@ Starting from FastGPT v4.8.16, commercial edition users can import from Yuque fi Go to the Yuque homepage > click your avatar > Settings to find the relevant parameters. -![alt text](/imgs/image-36.png) +![alt text](../../../../public/imgs/image-36.png) Follow the images below to get the Token and User ID. Make sure to assign the appropriate permissions to the Token: @@ -21,21 +21,21 @@ Follow the images below to get the Token and User ID. Make sure to assign the ap | Get Token | Add Permissions | Get User ID | | --- | --- | --- | -| ![alt text](/imgs/image-33.png) | ![alt text](/imgs/image-34.png) | ![alt text](/imgs/image-35.png) | +| ![alt text](../../../../public/imgs/image-33.png) | ![alt text](../../../../public/imgs/image-34.png) | ![alt text](../../../../public/imgs/image-35.png) | **Enterprise Edition**: | Get Token | Get User ID | | --- | --- | -| ![alt text](/imgs/image-109.png) | ![alt text](/imgs/image-108.png) | +| ![alt text](../../../../public/imgs/image-109.png) | ![alt text](../../../../public/imgs/image-108.png) | ## 2. Create the Knowledge Base Using the token and uid from the previous step, create a knowledge base. Select the Yuque file library type, fill in the parameters, and click Create. -![alt text](/imgs/image-37.png) +![alt text](../../../../public/imgs/image-37.png) -![alt text](/imgs/image-31.png) +![alt text](../../../../public/imgs/image-31.png) ## 3. Import Documents @@ -43,4 +43,4 @@ After creating the knowledge base, click `Add File` to import from your Yuque do The Yuque knowledge base supports scheduled sync — it scans once daily at varying times. If documents have been updated, they will be synced automatically. You can also trigger a manual sync. -![alt text](/imgs/image-38.png) +![alt text](../../../../public/imgs/image-38.png) diff --git a/document/content/docs/introduction/guide/knowledge_base/yuque_dataset.mdx b/document/content/introduction/guide/knowledge_base/yuque_dataset.mdx similarity index 65% rename from document/content/docs/introduction/guide/knowledge_base/yuque_dataset.mdx rename to document/content/introduction/guide/knowledge_base/yuque_dataset.mdx index aa2f992b89..5739cbcb14 100644 --- a/document/content/docs/introduction/guide/knowledge_base/yuque_dataset.mdx +++ b/document/content/introduction/guide/knowledge_base/yuque_dataset.mdx @@ -5,7 +5,7 @@ description: FastGPT 语雀文件库功能介绍和使用方式 | | | | --- | --- | -| ![alt text](/imgs/image-31.png) | ![alt text](/imgs/image-32.png) | +| ![alt text](../../../../public/imgs/image-31.png) | ![alt text](../../../../public/imgs/image-32.png) | FastGPT v4.8.16 版本开始,商业版用户支持语雀文件库导入,用户可以通过配置语雀的 token 和 uid 来导入语雀文档库。目前处于测试阶段,部分交互有待优化。 @@ -13,7 +13,7 @@ FastGPT v4.8.16 版本开始,商业版用户支持语雀文件库导入,用 在语雀首页 - 个人头像 - 设置,可找到对应参数。 -![alt text](/imgs/image-36.png) +![alt text](../../../../public/imgs/image-36.png) 参考下图获取 Token 和 User ID,注意给 Token 赋值权限: @@ -21,21 +21,21 @@ FastGPT v4.8.16 版本开始,商业版用户支持语雀文件库导入,用 | 获取 Token | 增加权限 | 获取 User ID | | --- | --- | --- | -| ![alt text](/imgs/image-33.png) | ![alt text](/imgs/image-34.png) | ![alt text](/imgs/image-35.png) | +| ![alt text](../../../../public/imgs/image-33.png) | ![alt text](../../../../public/imgs/image-34.png) | ![alt text](../../../../public/imgs/image-35.png) | **企业版**: | 获取 Token | 获取 User ID | | --- | --- | -| ![alt text](/imgs/image-109.png) | ![alt text](/imgs/image-108.png) | +| ![alt text](../../../../public/imgs/image-109.png) | ![alt text](../../../../public/imgs/image-108.png) | ## 2. 创建知识库 使用上一步获取的 token 和 uid,创建知识库,选择语雀文件库类型,然后填入对应的参数,点击创建。 -![alt text](/imgs/image-37.png) +![alt text](../../../../public/imgs/image-37.png) -![alt text](/imgs/image-31.png) +![alt text](../../../../public/imgs/image-31.png) ## 3. 导入文档 @@ -43,4 +43,4 @@ FastGPT v4.8.16 版本开始,商业版用户支持语雀文件库导入,用 语雀知识库支持定时同步功能,每天会不定时的扫描一次,如果文档有更新,则会进行同步,也可以进行手动同步。 -![alt text](/imgs/image-38.png) +![alt text](../../../../public/imgs/image-38.png) diff --git a/document/content/docs/introduction/guide/meta.en.json b/document/content/introduction/guide/meta.en.json similarity index 100% rename from document/content/docs/introduction/guide/meta.en.json rename to document/content/introduction/guide/meta.en.json diff --git a/document/content/docs/introduction/guide/meta.json b/document/content/introduction/guide/meta.json similarity index 100% rename from document/content/docs/introduction/guide/meta.json rename to document/content/introduction/guide/meta.json diff --git a/document/content/docs/introduction/guide/plugins/bing_search_plugin.en.mdx b/document/content/introduction/guide/plugins/bing_search_plugin.en.mdx similarity index 63% rename from document/content/docs/introduction/guide/plugins/bing_search_plugin.en.mdx rename to document/content/introduction/guide/plugins/bing_search_plugin.en.mdx index e01de90093..d4e9543021 100644 --- a/document/content/docs/introduction/guide/plugins/bing_search_plugin.en.mdx +++ b/document/content/introduction/guide/plugins/bing_search_plugin.en.mdx @@ -7,7 +7,7 @@ description: Step-by-step guide for configuring the FastGPT Bing Search plugin https://portal.azure.com/ -![](/imgs/bing_search_plugin1.png) +![](../../../../public/imgs/bing_search_plugin1.png) 2. # Create a Bing Web Search Resource @@ -15,14 +15,14 @@ Search for Bing Search v7 and click Create. https://portal.azure.com/#create/Microsoft.BingSearch -![](/imgs/bing_search_plugin2.png) +![](../../../../public/imgs/bing_search_plugin2.png) 3. # Go to the Resource Details and Click Manage Keys -![](/imgs/bing_search_plugin3.png) +![](../../../../public/imgs/bing_search_plugin3.png) # 4. Copy Either Key and Paste It into the Plugin Input -![](/imgs/bing_search_plugin4.png) +![](../../../../public/imgs/bing_search_plugin4.png) -![](/imgs/bing_search_plugin5.png) +![](../../../../public/imgs/bing_search_plugin5.png) diff --git a/document/content/docs/introduction/guide/plugins/bing_search_plugin.mdx b/document/content/introduction/guide/plugins/bing_search_plugin.mdx similarity index 59% rename from document/content/docs/introduction/guide/plugins/bing_search_plugin.mdx rename to document/content/introduction/guide/plugins/bing_search_plugin.mdx index ef8d164c50..f9b13cf9f0 100644 --- a/document/content/docs/introduction/guide/plugins/bing_search_plugin.mdx +++ b/document/content/introduction/guide/plugins/bing_search_plugin.mdx @@ -7,7 +7,7 @@ description: FastGPT Bing 搜索插件配置步骤详解 https://portal.azure.com/ -![](/imgs/bing_search_plugin1.png) +![](../../../../public/imgs/bing_search_plugin1.png) 1. # 创建bing web搜索资源 @@ -15,14 +15,14 @@ https://portal.azure.com/ https://portal.azure.com/#create/Microsoft.BingSearch -![](/imgs/bing_search_plugin2.png) +![](../../../../public/imgs/bing_search_plugin2.png) 1. # 进入资源详情点击管理密钥 -![](/imgs/bing_search_plugin3.png) +![](../../../../public/imgs/bing_search_plugin3.png) # 4. 复制任意一个密钥填入插件输入 -![](/imgs/bing_search_plugin4.png) +![](../../../../public/imgs/bing_search_plugin4.png) -![](/imgs/bing_search_plugin5.png) +![](../../../../public/imgs/bing_search_plugin5.png) diff --git a/document/content/docs/introduction/guide/plugins/dev_system_tool.en.mdx b/document/content/introduction/guide/plugins/dev_system_tool.en.mdx similarity index 98% rename from document/content/docs/introduction/guide/plugins/dev_system_tool.en.mdx rename to document/content/introduction/guide/plugins/dev_system_tool.en.mdx index 44caea9088..5fe6af9284 100644 --- a/document/content/docs/introduction/guide/plugins/dev_system_tool.en.mdx +++ b/document/content/introduction/guide/plugins/dev_system_tool.en.mdx @@ -322,7 +322,7 @@ Simple tools may not need E2E testing. For complex tools, the review team may re ### 6.1 Deploy the E2E Test Environment -1. Follow [Quick Start Local Development](/docs/self-host/dev) to set up a local FastGPT development environment +1. Follow [Quick Start Local Development](../../../self-host/dev.en.mdx) to set up a local FastGPT development environment 2. Run `cd runtime && cp .env.template .env.local` to copy the environment variable template, then connect to the Minio, Mongo, and Redis instances from step 1 3. Run `bun run dev` to start the development environment, then update FastGPT's environment variables to connect to your fastgpt-plugin instance @@ -332,11 +332,11 @@ Start the fastgpt-plugin development environment. Open `http://localhost:PORT/openapi` in a browser to access the `fastgpt-plugin` OpenAPI page for API debugging. Replace PORT with your fastgpt-plugin port number. -![](/imgs/plugin-openapi.png) +![](../../../../public/imgs/plugin-openapi.png) First, use the `/tool/list` endpoint to get the tool list and find the `toolId` of the tool you want to debug. Then use `/tool/runStream` to run the tool and get results. -![](/imgs/plugin-openapi2.png) +![](../../../../public/imgs/plugin-openapi2.png) ### 6.3 E2E Testing in Dev Mode (with Hot Reload) diff --git a/document/content/docs/introduction/guide/plugins/dev_system_tool.mdx b/document/content/introduction/guide/plugins/dev_system_tool.mdx similarity index 98% rename from document/content/docs/introduction/guide/plugins/dev_system_tool.mdx rename to document/content/introduction/guide/plugins/dev_system_tool.mdx index 813228043b..ba5087469a 100644 --- a/document/content/docs/introduction/guide/plugins/dev_system_tool.mdx +++ b/document/content/introduction/guide/plugins/dev_system_tool.mdx @@ -323,7 +323,7 @@ FastGPT-plugin 使用 Vitest 作为单测框架。 ### 6.1 部署 E2E 测试环境 -1. 参考 [快速开始本地开发](/docs/self-host/dev),在本地部署一套 FastGPT 开发环境 +1. 参考 [快速开始本地开发](../../../self-host/dev.mdx),在本地部署一套 FastGPT 开发环境 2. `cd runtime && cp .env.template .env.local` 复制环境变量样例文件,连接到上一步部署的 Minio, Mongo, Redis 中 3. `bun run dev` 运行开发环境,修改 FastGPT 的环境变量,连接到你刚刚启动的 fastgpt-plugin @@ -334,11 +334,11 @@ FastGPT-plugin 使用 Vitest 作为单测框架。 浏览器打开`http://localhost:PORT/openapi`可进入`fastgpt-plugin`的 OpenAPI 页面,进行 API 调试。 PORT 为你的 fastgpt-plugin 的端口 -![](/imgs/plugin-openapi.png) +![](../../../../public/imgs/plugin-openapi.png) 可以先通过`/tool/list`接口,获取工具列表,找到需要调试的工具的`toolId`。紧接着,通过`/tool/runStream`来运行工具获取实际结果。 -![](/imgs/plugin-openapi2.png) +![](../../../../public/imgs/plugin-openapi2.png) ### 6.3 在开发环境下 e2e 测试(有热更新) diff --git a/document/content/docs/introduction/guide/plugins/doc2x_plugin_guide.en.mdx b/document/content/introduction/guide/plugins/doc2x_plugin_guide.en.mdx similarity index 60% rename from document/content/docs/introduction/guide/plugins/doc2x_plugin_guide.en.mdx rename to document/content/introduction/guide/plugins/doc2x_plugin_guide.en.mdx index e71f72c566..a56784f2a8 100644 --- a/document/content/docs/introduction/guide/plugins/doc2x_plugin_guide.en.mdx +++ b/document/content/introduction/guide/plugins/doc2x_plugin_guide.en.mdx @@ -7,16 +7,16 @@ description: How to configure and use the Doc2x plugin https://doc2x.noedgeai.com/ -![](/imgs/doc2x_plugin1.png) +![](../../../../public/imgs/doc2x_plugin1.png) -![](/imgs/doc2x_plugin2.png) +![](../../../../public/imgs/doc2x_plugin2.png) 2. # Enter the API Key in FastGPT **In Workflow mode:** -![](/imgs/doc2x_plugin3.png) +![](../../../../public/imgs/doc2x_plugin3.png) **In Simple mode:** -![](/imgs/doc2x_plugin4.png) +![](../../../../public/imgs/doc2x_plugin4.png) diff --git a/document/content/docs/introduction/guide/plugins/doc2x_plugin_guide.mdx b/document/content/introduction/guide/plugins/doc2x_plugin_guide.mdx similarity index 58% rename from document/content/docs/introduction/guide/plugins/doc2x_plugin_guide.mdx rename to document/content/introduction/guide/plugins/doc2x_plugin_guide.mdx index dbdf1ef80e..d4f0bda6c2 100644 --- a/document/content/docs/introduction/guide/plugins/doc2x_plugin_guide.mdx +++ b/document/content/introduction/guide/plugins/doc2x_plugin_guide.mdx @@ -7,16 +7,16 @@ description: 如何配置和使用 Doc2x 插件 https://doc2x.noedgeai.com/ -![](/imgs/doc2x_plugin1.png) +![](../../../../public/imgs/doc2x_plugin1.png) -![](/imgs/doc2x_plugin2.png) +![](../../../../public/imgs/doc2x_plugin2.png) 1. # 填写apikey到fastgpt中 **工作流****中:** -![](/imgs/doc2x_plugin3.png) +![](../../../../public/imgs/doc2x_plugin3.png) **简易模式使用:** -![](/imgs/doc2x_plugin4.png) +![](../../../../public/imgs/doc2x_plugin4.png) diff --git a/document/content/docs/introduction/guide/plugins/google_search_plugin_guide.en.mdx b/document/content/introduction/guide/plugins/google_search_plugin_guide.en.mdx similarity index 70% rename from document/content/docs/introduction/guide/plugins/google_search_plugin_guide.en.mdx rename to document/content/introduction/guide/plugins/google_search_plugin_guide.en.mdx index 03ba744ef7..ab6330da74 100644 --- a/document/content/docs/introduction/guide/plugins/google_search_plugin_guide.en.mdx +++ b/document/content/introduction/guide/plugins/google_search_plugin_guide.en.mdx @@ -9,20 +9,20 @@ https://programmablesearchengine.google.com/ Go to the Custom Search Engine control panel and create a new Search Engine. -![](/imgs/google_search_plugin1.png) +![](../../../../public/imgs/google_search_plugin1.png) Get the Search Engine ID (cx). -![](/imgs/google_search_plugin2.png) +![](../../../../public/imgs/google_search_plugin2.png) ## 2. Get an API Key https://developers.google.com/custom-search/v1/overview -![](/imgs/google_search_plugin3.png) +![](../../../../public/imgs/google_search_plugin3.png) ## 3. Fill in the Plugin Input Parameters Enter the Search Engine ID in the cx field and the API key in the key field. -![](/imgs/google_search_plugin4.png) +![](../../../../public/imgs/google_search_plugin4.png) diff --git a/document/content/docs/introduction/guide/plugins/google_search_plugin_guide.mdx b/document/content/introduction/guide/plugins/google_search_plugin_guide.mdx similarity index 67% rename from document/content/docs/introduction/guide/plugins/google_search_plugin_guide.mdx rename to document/content/introduction/guide/plugins/google_search_plugin_guide.mdx index d19ddcced6..249a32f8ee 100644 --- a/document/content/docs/introduction/guide/plugins/google_search_plugin_guide.mdx +++ b/document/content/introduction/guide/plugins/google_search_plugin_guide.mdx @@ -9,20 +9,20 @@ https://programmablesearchengine.google.com/ 我们连到Custom Search Engine control panel 建立Search Engine -![](/imgs/google_search_plugin1.png) +![](../../../../public/imgs/google_search_plugin1.png) 取得搜索引擎的ID,即cx -![](/imgs/google_search_plugin2.png) +![](../../../../public/imgs/google_search_plugin2.png) 1. # 获取api key https://developers.google.com/custom-search/v1/overview?hl=zh-cn -![](/imgs/google_search_plugin3.png) +![](../../../../public/imgs/google_search_plugin3.png) 1. # 填入插件输入参数 将搜索引擎ID填入cx字段,api key填入key字段 -![](/imgs/google_search_plugin4.png) +![](../../../../public/imgs/google_search_plugin4.png) diff --git a/document/content/docs/introduction/guide/plugins/meta.en.json b/document/content/introduction/guide/plugins/meta.en.json similarity index 100% rename from document/content/docs/introduction/guide/plugins/meta.en.json rename to document/content/introduction/guide/plugins/meta.en.json diff --git a/document/content/docs/introduction/guide/plugins/meta.json b/document/content/introduction/guide/plugins/meta.json similarity index 100% rename from document/content/docs/introduction/guide/plugins/meta.json rename to document/content/introduction/guide/plugins/meta.json diff --git a/document/content/docs/introduction/guide/plugins/searxng_plugin_guide.en.mdx b/document/content/introduction/guide/plugins/searxng_plugin_guide.en.mdx similarity index 94% rename from document/content/docs/introduction/guide/plugins/searxng_plugin_guide.en.mdx rename to document/content/introduction/guide/plugins/searxng_plugin_guide.en.mdx index 8dc191fc87..379ef1008a 100644 --- a/document/content/docs/introduction/guide/plugins/searxng_plugin_guide.en.mdx +++ b/document/content/introduction/guide/plugins/searxng_plugin_guide.en.mdx @@ -13,7 +13,7 @@ Open [Sealos Beijing Region](https://bja.sealos.run?uid=fnWRt09fZP), click App L | Open App Launchpad | Create New App | | --- | --- | -| ![](/imgs/searxng_plugin_guide1.png) | ![alt text](/imgs/image-45.png) | +| ![](../../../../public/imgs/searxng_plugin_guide1.png) | ![alt text](../../../../public/imgs/image-45.png) | ## 2. Deployment Configuration @@ -26,7 +26,7 @@ Fill in the following parameters: * Enable public access * Click Advanced Configuration to add environment variables and config files -![alt text](/imgs/image-50.png) +![alt text](../../../../public/imgs/image-50.png) **Environment Variables** @@ -144,7 +144,7 @@ Copy the public URL from your Sealos deployment and paste it into the SearXNG pl | Copy Public URL | Paste into URL | | --- | --- | -| ![alt text](/imgs/image-48.png) | ![alt text](/imgs/image-49.png) | +| ![alt text](../../../../public/imgs/image-48.png) | ![alt text](../../../../public/imgs/image-49.png) | ## Response Format diff --git a/document/content/docs/introduction/guide/plugins/searxng_plugin_guide.mdx b/document/content/introduction/guide/plugins/searxng_plugin_guide.mdx similarity index 94% rename from document/content/docs/introduction/guide/plugins/searxng_plugin_guide.mdx rename to document/content/introduction/guide/plugins/searxng_plugin_guide.mdx index b6c3596a5b..cdad331f9b 100644 --- a/document/content/docs/introduction/guide/plugins/searxng_plugin_guide.mdx +++ b/document/content/introduction/guide/plugins/searxng_plugin_guide.mdx @@ -14,7 +14,7 @@ description: FastGPT SearXNG 搜索插件配置指南 | 打开应用部署 | 点击新建应用 | | --- | --- | -| ![](/imgs/searxng_plugin_guide1.png) | ![alt text](/imgs/image-45.png) | +| ![](../../../../public/imgs/searxng_plugin_guide1.png) | ![alt text](../../../../public/imgs/image-45.png) | ## 2. 部署配置 @@ -27,7 +27,7 @@ description: FastGPT SearXNG 搜索插件配置指南 * 开启公网访问 * 点击高级配置,填写环境变量和配置文件 -![alt text](/imgs/image-50.png) +![alt text](../../../../public/imgs/image-50.png) **环境变量** @@ -144,7 +144,7 @@ default_doi_resolver: 'oadoi.org' | 复制公网地址| 填入 URL | | --- | --- | -| ![alt text](/imgs/image-48.png) | ![alt text](/imgs/image-49.png) | +| ![alt text](../../../../public/imgs/image-48.png) | ![alt text](../../../../public/imgs/image-49.png) | ## 返回格式 diff --git a/document/content/docs/introduction/guide/plugins/upload_system_tool.en.mdx b/document/content/introduction/guide/plugins/upload_system_tool.en.mdx similarity index 94% rename from document/content/docs/introduction/guide/plugins/upload_system_tool.en.mdx rename to document/content/introduction/guide/plugins/upload_system_tool.en.mdx index 66f517e9ce..e59489d6f6 100644 --- a/document/content/docs/introduction/guide/plugins/upload_system_tool.en.mdx +++ b/document/content/introduction/guide/plugins/upload_system_tool.en.mdx @@ -22,13 +22,13 @@ description: FastGPT System Tool Online Upload Guide ### 1. Access the Configuration Page -![](/imgs/plugins/entry.png) +![](../../../../public/imgs/plugins/entry.png) ### 2. Prepare Tool Files Before uploading, make sure your `.pkg` files are from the `dist/pkgs` folder, built by running `bun run build:pkg` in the fastgpt-plugin project. -![](/imgs/plugins/files.png) +![](../../../../public/imgs/plugins/files.png) ### 3. Upload diff --git a/document/content/docs/introduction/guide/plugins/upload_system_tool.mdx b/document/content/introduction/guide/plugins/upload_system_tool.mdx similarity index 94% rename from document/content/docs/introduction/guide/plugins/upload_system_tool.mdx rename to document/content/introduction/guide/plugins/upload_system_tool.mdx index a68b7b9d4b..7cc5182137 100644 --- a/document/content/docs/introduction/guide/plugins/upload_system_tool.mdx +++ b/document/content/introduction/guide/plugins/upload_system_tool.mdx @@ -22,13 +22,13 @@ description: FastGPT 系统工具在线上传指南 ### 1. 进入配置页面 -![](/imgs/plugins/entry.png) +![](../../../../public/imgs/plugins/entry.png) ### 2. 准备工具文件 在上传之前,请确保您的 `.pkg` 文件是从 fastgpt-plugin 项目中通过 `bun run build:pkg` 命令打包后的 `dist/pkgs` 文件夹下得到的 -![](/imgs/plugins/files.png) +![](../../../../public/imgs/plugins/files.png) ### 3. 执行上传 diff --git a/document/content/docs/introduction/guide/team_permissions/customDomain.en.mdx b/document/content/introduction/guide/team_permissions/customDomain.en.mdx similarity index 80% rename from document/content/docs/introduction/guide/team_permissions/customDomain.en.mdx rename to document/content/introduction/guide/team_permissions/customDomain.en.mdx index 2f535b0520..02a93d373d 100644 --- a/document/content/docs/introduction/guide/team_permissions/customDomain.en.mdx +++ b/document/content/introduction/guide/team_permissions/customDomain.en.mdx @@ -13,7 +13,7 @@ In the sidebar, go to "Account" -> "Custom Domain" to open the configuration pag If your plan does not support this feature, follow the on-screen instructions to upgrade. -![Open configuration page](/imgs/guide/team_permissions/customDomain/1.png) +![Open configuration page](../../../../public/imgs/guide/team_permissions/customDomain/1.png) ### 2. Add a Custom Domain @@ -24,7 +24,7 @@ If your plan does not support this feature, follow the on-screen instructions to 5. After adding the DNS record, click "Save". The system will automatically verify the DNS configuration -- this usually takes less than a minute. If verification takes too long, try again. 6. Once the status shows "Active", click "Confirm" to finish. -![Configure custom domain](/imgs/guide/team_permissions/customDomain/2.png) +![Configure custom domain](../../../../public/imgs/guide/team_permissions/customDomain/2.png) You can now access FastGPT services and call FastGPT APIs using your own domain. @@ -32,11 +32,11 @@ You can now access FastGPT services and call FastGPT APIs using your own domain. The system checks DNS resolution daily. If the DNS record becomes invalid, the custom domain will be disabled. You can re-verify it by clicking "Edit" on the "Custom Domain" management page. -![Edit](/imgs/guide/team_permissions/customDomain/3.png) +![Edit](../../../../public/imgs/guide/team_permissions/customDomain/3.png) To change your custom domain or switch providers, delete the existing configuration and set it up again. ## Use Cases -- [Integrate with WeCom Bot](/docs/use-cases/external-integration/wecom) +- [Integrate with WeCom Bot](../../../use-cases/external-integration/wecom.en.mdx) diff --git a/document/content/docs/introduction/guide/team_permissions/customDomain.mdx b/document/content/introduction/guide/team_permissions/customDomain.mdx similarity index 81% rename from document/content/docs/introduction/guide/team_permissions/customDomain.mdx rename to document/content/introduction/guide/team_permissions/customDomain.mdx index febbada271..377d1ab714 100644 --- a/document/content/docs/introduction/guide/team_permissions/customDomain.mdx +++ b/document/content/introduction/guide/team_permissions/customDomain.mdx @@ -13,7 +13,7 @@ FastGPT 云服务版自 v4.14.4 后支持配置自定义域名。 如果您的套餐等级不支持配置,请根据页面的指引升级套餐。 -![打开配置页面](/imgs/guide/team_permissions/customDomain/1.png) +![打开配置页面](../../../../public/imgs/guide/team_permissions/customDomain/1.png) ### 2. 添加自定义域名 @@ -24,7 +24,7 @@ FastGPT 云服务版自 v4.14.4 后支持配置自定义域名。 5. 添加解析记录后,点击"保存"按钮。系统将自动检查 DNS 解析情况,一般情况下,在一分钟内就可以获取到解析记录。如果长时间没有获取到记录,可以重试一次。 6. 待状态提示显示为“已生效”后,点击“确认”按钮即可。 -![配置自定义域名](/imgs/guide/team_permissions/customDomain/2.png) +![配置自定义域名](../../../../public/imgs/guide/team_permissions/customDomain/2.png) 现在您可以通过您自己的域名访问 fastgpt 服务、调用 fastgpt 的 API 了。 @@ -32,11 +32,11 @@ FastGPT 云服务版自 v4.14.4 后支持配置自定义域名。 系统会每天对 DNS 解析进行检查,如果发现 DNS 解析记录失效,则会停用该自定义域名,可以在"自定义域名"管理界面中点击"编辑"进行重新解析。 -![编辑](/imgs/guide/team_permissions/customDomain/3.png) +![编辑](../../../../public/imgs/guide/team_permissions/customDomain/3.png) 如果您需要修改自定义域名、或修改服务商,则需要删除自定义域名配置后进行重新配置。 ## 使用案例 -- [接入企业微信智能机器人](/docs/use-cases/external-integration/wecom) +- [接入企业微信智能机器人](../../../use-cases/external-integration/wecom.mdx) diff --git a/document/content/docs/introduction/guide/team_permissions/invitation_link.en.mdx b/document/content/introduction/guide/team_permissions/invitation_link.en.mdx similarity index 81% rename from document/content/docs/introduction/guide/team_permissions/invitation_link.en.mdx rename to document/content/introduction/guide/team_permissions/invitation_link.en.mdx index df7fa3cbfe..4172cc60b8 100644 --- a/document/content/docs/introduction/guide/team_permissions/invitation_link.en.mdx +++ b/document/content/introduction/guide/team_permissions/invitation_link.en.mdx @@ -11,15 +11,15 @@ After upgrading, any pending invitations that haven't been accepted will be auto 1. **On the team management page, admins can click the "Invite Members" button to open the invitation dialog** -![](/imgs/guide/team_permissions/invitation_link/image1.png) +![](../../../../public/imgs/guide/team_permissions/invitation_link/image1.png) 2. **In the invitation dialog, click "Create Invitation Link" to generate a new link** -![](/imgs/guide/team_permissions/invitation_link/image2.png) +![](../../../../public/imgs/guide/team_permissions/invitation_link/image2.png) 3. **Fill in the details** -![](/imgs/guide/team_permissions/invitation_link/image3.png) +![](../../../../public/imgs/guide/team_permissions/invitation_link/image3.png) Link description: We recommend describing the intended use case or purpose. The description cannot be changed after creation. @@ -29,13 +29,13 @@ Usage limit: 1 person or unlimited 4. **Click "Copy Link" and send it to the people you want to invite** -![](/imgs/guide/team_permissions/invitation_link/image4.png) +![](../../../../public/imgs/guide/team_permissions/invitation_link/image4.png) 5. **When a user visits the link, they will be redirected to the login page if not logged in or registered. After logging in, they will be taken to the team page to handle the invitation.** > Invitation links look like: fastgpt.cn/account/team?invitelinkid=xxxx -![](/imgs/guide/team_permissions/invitation_link/image5.png) +![](../../../../public/imgs/guide/team_permissions/invitation_link/image5.png) Click "Accept" to join the team. diff --git a/document/content/docs/introduction/guide/team_permissions/invitation_link.mdx b/document/content/introduction/guide/team_permissions/invitation_link.mdx similarity index 80% rename from document/content/docs/introduction/guide/team_permissions/invitation_link.mdx rename to document/content/introduction/guide/team_permissions/invitation_link.mdx index a0554c9901..2a5247664a 100644 --- a/document/content/docs/introduction/guide/team_permissions/invitation_link.mdx +++ b/document/content/introduction/guide/team_permissions/invitation_link.mdx @@ -11,15 +11,15 @@ v4.9.1 团队邀请成员将开始使用「邀请链接」的模式,弃用之 1. **在团队管理页面,管理员可点击「邀请成员」按钮打开邀请成员弹窗** -![](/imgs/guide/team_permissions/invitation_link/image1.png) +![](../../../../public/imgs/guide/team_permissions/invitation_link/image1.png) 2. **在邀请成员弹窗中,点击「创建邀请链接」按钮,创建邀请链接。** -![](/imgs/guide/team_permissions/invitation_link/image2.png) +![](../../../../public/imgs/guide/team_permissions/invitation_link/image2.png) 3. **输入对应内容** -![](/imgs/guide/team_permissions/invitation_link/image3.png) +![](../../../../public/imgs/guide/team_permissions/invitation_link/image3.png) 链接描述:建议将链接描述为使用场景或用途。链接创建后不支持修改噢。 @@ -29,13 +29,13 @@ v4.9.1 团队邀请成员将开始使用「邀请链接」的模式,弃用之 4. **点击复制链接,并将其发送给想要邀请的人。** -![](/imgs/guide/team_permissions/invitation_link/image4.png) +![](../../../../public/imgs/guide/team_permissions/invitation_link/image4.png) 5. **用户访问链接后,如果未登录/未注册,则先跳转到登录页面进行登录。在登录后将进入团队页面,处理邀请。** > 邀请链接形如:fastgpt.cn/account/team?invitelinkid=xxxx -![](/imgs/guide/team_permissions/invitation_link/image5.png) +![](../../../../public/imgs/guide/team_permissions/invitation_link/image5.png) 点击接受,则用户将加入团队 diff --git a/document/content/docs/introduction/guide/team_permissions/meta.en.json b/document/content/introduction/guide/team_permissions/meta.en.json similarity index 100% rename from document/content/docs/introduction/guide/team_permissions/meta.en.json rename to document/content/introduction/guide/team_permissions/meta.en.json diff --git a/document/content/docs/introduction/guide/team_permissions/meta.json b/document/content/introduction/guide/team_permissions/meta.json similarity index 100% rename from document/content/docs/introduction/guide/team_permissions/meta.json rename to document/content/introduction/guide/team_permissions/meta.json diff --git a/document/content/docs/introduction/guide/team_permissions/team_roles_permissions.en.mdx b/document/content/introduction/guide/team_permissions/team_roles_permissions.en.mdx similarity index 93% rename from document/content/docs/introduction/guide/team_permissions/team_roles_permissions.en.mdx rename to document/content/introduction/guide/team_permissions/team_roles_permissions.en.mdx index 9e4953f39f..d8b5547f6e 100644 --- a/document/content/docs/introduction/guide/team_permissions/team_roles_permissions.en.mdx +++ b/document/content/introduction/guide/team_permissions/team_roles_permissions.en.mdx @@ -31,7 +31,7 @@ Final permissions are the combination of the above Authorization logic: -![](/imgs/guide/team_permissions/team_roles_permissions/image1.jpeg) +![](../../../../public/imgs/guide/team_permissions/team_roles_permissions/image1.jpeg) ### Resource Permissions @@ -100,19 +100,19 @@ The table below shows the manageable permissions for different resources. You must add **collaborators** before managing their permissions: -![](/imgs/guide/team_permissions/team_roles_permissions/image2.png) +![](../../../../public/imgs/guide/team_permissions/team_roles_permissions/image2.png) When managing team permissions, first select members/organizations/groups, then configure permissions. -![](/imgs/guide/team_permissions/team_roles_permissions/image3.png) +![](../../../../public/imgs/guide/team_permissions/team_roles_permissions/image3.png) For resources like apps and knowledge bases, you can directly modify member permissions. -![](/imgs/guide/team_permissions/team_roles_permissions/image4.png) +![](../../../../public/imgs/guide/team_permissions/team_roles_permissions/image4.png) Team permissions are set on a dedicated permissions page. -![](/imgs/guide/team_permissions/team_roles_permissions/image5.png) +![](../../../../public/imgs/guide/team_permissions/team_roles_permissions/image5.png) ## Special Permissions diff --git a/document/content/docs/introduction/guide/team_permissions/team_roles_permissions.mdx b/document/content/introduction/guide/team_permissions/team_roles_permissions.mdx similarity index 92% rename from document/content/docs/introduction/guide/team_permissions/team_roles_permissions.mdx rename to document/content/introduction/guide/team_permissions/team_roles_permissions.mdx index 17b5e5afd5..d25ddc86f2 100644 --- a/document/content/docs/introduction/guide/team_permissions/team_roles_permissions.mdx +++ b/document/content/introduction/guide/team_permissions/team_roles_permissions.mdx @@ -32,7 +32,7 @@ FastGPT 提供三种权限管理维度: 鉴权逻辑如下: -![](/imgs/guide/team_permissions/team_roles_permissions/image1.jpeg) +![](../../../../public/imgs/guide/team_permissions/team_roles_permissions/image1.jpeg) ### 资源权限 @@ -101,19 +101,19 @@ FastGPT 提供三种权限管理维度: 必须先添加**协作者**,才能对其进行权限管理: -![](/imgs/guide/team_permissions/team_roles_permissions/image2.png) +![](../../../../public/imgs/guide/team_permissions/team_roles_permissions/image2.png) 管理团队权限时,需先选择成员/组织/群组,再进行权限配置。 -![](/imgs/guide/team_permissions/team_roles_permissions/image3.png) +![](../../../../public/imgs/guide/team_permissions/team_roles_permissions/image3.png) 对于应用和知识库等资源,可直接修改成员权限。 -![](/imgs/guide/team_permissions/team_roles_permissions/image4.png) +![](../../../../public/imgs/guide/team_permissions/team_roles_permissions/image4.png) 团队权限在专门的权限页面进行设置 -![](/imgs/guide/team_permissions/team_roles_permissions/image5.png) +![](../../../../public/imgs/guide/team_permissions/team_roles_permissions/image5.png) ## 特殊权限说明 diff --git a/document/content/docs/introduction/index.en.mdx b/document/content/introduction/index.en.mdx similarity index 92% rename from document/content/docs/introduction/index.en.mdx rename to document/content/introduction/index.en.mdx index 0d75b00e08..eaf2b7898c 100644 --- a/document/content/docs/introduction/index.en.mdx +++ b/document/content/introduction/index.en.mdx @@ -15,7 +15,7 @@ Quick Start | | | | --------------------- | --------------------------------- | -| ![](/imgs/intro/image1.png) | ![](/imgs/intro/image2.png) | +| ![](../../public/imgs/intro/image1.png) | ![](../../public/imgs/intro/image2.png) | # Why FastGPT ## 1. Simple and Flexible, Like Building Blocks 🧱 @@ -30,26 +30,26 @@ FastGPT is open source under the Apache 2.0 license and supports custom developm # What Can FastGPT Do ## 1. Comprehensive Knowledge Base Import documents and data with automatic knowledge structuring. Features intelligent Q&A with multi-turn context understanding and a continuously improving knowledge base management experience. -![](/imgs/intro/image3.png) +![](../../public/imgs/intro/image3.png) ## 2. Visual Workflow FastGPT's intuitive drag-and-drop interface lets you build complex business processes with zero code. Rich functional node components handle diverse business needs with flexible process orchestration. -![](/imgs/intro/image4.png) +![](../../public/imgs/intro/image4.png) ## 3. Intelligent Data Parsing FastGPT's knowledge base system handles imported data with great flexibility — intelligently processing complex PDF structures while preserving images, tables, and LaTeX formulas. It automatically recognizes scanned files and structures content into clean Markdown format. It also supports automatic image annotation and indexing, making visual content searchable and ensuring knowledge is presented accurately in AI Q&A. -![](/imgs/intro/image5.png) +![](../../public/imgs/intro/image5.png) ## 4. Workflow Orchestration Flow-based workflow orchestration lets you design complex Q&A processes — such as querying databases, checking inventory, or booking lab resources. -![](/imgs/intro/image6.png) +![](../../public/imgs/intro/image6.png) ## 5. Powerful API Integration FastGPT is fully compatible with the OpenAI API interface, supporting one-click integration with WeCom, WeChat Official Account, Lark, DingTalk, and more — bringing AI capabilities into your business workflows. -![](/imgs/intro/image7.png) +![](../../public/imgs/intro/image7.png) --- @@ -65,7 +65,7 @@ FastGPT is fully compatible with the OpenAI API interface, supporting one-click # Knowledge Base Core Process Diagram -![](/imgs/intro/image8.png) +![](../../public/imgs/intro/image8.png) --- diff --git a/document/content/docs/introduction/index.mdx b/document/content/introduction/index.mdx similarity index 91% rename from document/content/docs/introduction/index.mdx rename to document/content/introduction/index.mdx index 723b42d30f..fdda463363 100644 --- a/document/content/docs/introduction/index.mdx +++ b/document/content/introduction/index.mdx @@ -15,7 +15,7 @@ FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,将智能 | | | | --------------------- | --------------------------------- | -| ![](/imgs/intro/image1.png) | ![](/imgs/intro/image2.png) | +| ![](../../public/imgs/intro/image1.png) | ![](../../public/imgs/intro/image2.png) | # FastGPT 的优势 ## 1. 简单灵活,像搭积木一样简单 🧱 @@ -30,26 +30,26 @@ FastGPT 基于 Apache 2.0 协议开源,支持二次开发。通过标准 API # FastGPT 能做什么 ## 1. 全能知识库 可轻松导入各式各样的文档及数据,能自动对其开展知识结构化处理工作。同时,具备支持多轮上下文理解的智能问答功能,还可为用户带来持续优化的知识库管理体验。 -![](/imgs/intro/image3.png) +![](../../public/imgs/intro/image3.png) ## 2. 可视化工作流 FastGPT直观的拖拽式界面设计,可零代码搭建复杂业务流程。还拥有丰富的功能节点组件,能应对多种业务需求,有着灵活的流程编排能力,按需定制业务流程。 -![](/imgs/intro/image4.png) +![](../../public/imgs/intro/image4.png) ## 3. 数据智能解析 FastGPT知识库系统对导入数据的处理极为灵活,可以智能处理PDF文档的复杂结构,保留图片、表格和LaTeX公式,自动识别扫描文件,并将内容结构化为清晰的Markdown格式。同时支持图片自动标注和索引,让视觉内容可被理解和检索,确保知识在AI问答中能被完整、准确地呈现和应用。 -![](/imgs/intro/image5.png) +![](../../public/imgs/intro/image5.png) ## 4. 工作流编排 基于 Flow 模块的工作流编排,可以帮助你设计更加复杂的问答流程。例如查询数据库、查询库存、预约实验室等。 -![](/imgs/intro/image6.png) +![](../../public/imgs/intro/image6.png) ## 5. 强大的 API 集成 FastGPT 完全对齐 OpenAI 官方接口,支持一键接入企业微信、公众号、飞书、钉钉等平台,让 AI 能力轻松融入您的业务场景。 -![](/imgs/intro/image7.png) +![](../../public/imgs/intro/image7.png) --- @@ -65,7 +65,7 @@ FastGPT 完全对齐 OpenAI 官方接口,支持一键接入企业微信、公 # 知识库核心流程图 -![](/imgs/intro/image8.png) +![](../../public/imgs/intro/image8.png) --- diff --git a/document/content/docs/introduction/meta.en.json b/document/content/introduction/meta.en.json similarity index 100% rename from document/content/docs/introduction/meta.en.json rename to document/content/introduction/meta.en.json diff --git a/document/content/docs/introduction/meta.json b/document/content/introduction/meta.json similarity index 100% rename from document/content/docs/introduction/meta.json rename to document/content/introduction/meta.json diff --git a/document/content/docs/introduction/opensource/intro.en.mdx b/document/content/introduction/opensource/intro.en.mdx similarity index 67% rename from document/content/docs/introduction/opensource/intro.en.mdx rename to document/content/introduction/opensource/intro.en.mdx index 5965caa84e..c5f595d34b 100644 --- a/document/content/docs/introduction/opensource/intro.en.mdx +++ b/document/content/introduction/opensource/intro.en.mdx @@ -3,10 +3,10 @@ title: Introduction description: FastGPT Community Edition Introduction --- -FastGPT Community Edition is the free version of FastGPT, designed for individual developers and small delivery teams. It includes all core FastGPT features: Agent building, workflows, and knowledge bases. Please use it in compliance with the [FastGPT Open Source License](/docs/introduction/opensource/license). +FastGPT Community Edition is the free version of FastGPT, designed for individual developers and small delivery teams. It includes all core FastGPT features: Agent building, workflows, and knowledge bases. Please use it in compliance with the [FastGPT Open Source License](./license.en.mdx). **Related Links** * [GitHub Repository](https://github.com/labring/FastGPT) -* [Deployment Guide](https://doc.fastgpt.io/docs/self-host/intro/) -* [Local Development Guide](https://doc.fastgpt.io/docs/self-host/intro/) \ No newline at end of file +* [Deployment Guide](https://doc.fastgpt.io/self-host/intro/) +* [Local Development Guide](https://doc.fastgpt.io/self-host/intro/) \ No newline at end of file diff --git a/document/content/docs/introduction/opensource/intro.mdx b/document/content/introduction/opensource/intro.mdx similarity index 60% rename from document/content/docs/introduction/opensource/intro.mdx rename to document/content/introduction/opensource/intro.mdx index 0a4db0525b..023bc6a5a9 100644 --- a/document/content/docs/introduction/opensource/intro.mdx +++ b/document/content/introduction/opensource/intro.mdx @@ -3,10 +3,10 @@ title: 介绍 description: FastGPT 社区版介绍 --- -FastGPT 社区版是 FastGPT 的免费版本,适合于个人开发者或小型交付团队使用。包含了 FastGPT 所有核心功能:Agent 构建、工作流、知识库,请在遵守[FastGPT 开源协议](/docs/introduction/opensource/license)的前提下使用。 +FastGPT 社区版是 FastGPT 的免费版本,适合于个人开发者或小型交付团队使用。包含了 FastGPT 所有核心功能:Agent 构建、工作流、知识库,请在遵守[FastGPT 开源协议](./license.mdx)的前提下使用。 **相关链接** * [GitHub 仓库](https://github.com/labring/FastGPT) -* [部署教程](https://doc.fastgpt.io/docs/self-host/intro/) -* [本地开发介绍](https://doc.fastgpt.io/docs/self-host/intro/) \ No newline at end of file +* [部署教程](https://doc.fastgpt.io/self-host/intro/) +* [本地开发介绍](https://doc.fastgpt.io/self-host/intro/) \ No newline at end of file diff --git a/document/content/docs/introduction/opensource/license.en.mdx b/document/content/introduction/opensource/license.en.mdx similarity index 100% rename from document/content/docs/introduction/opensource/license.en.mdx rename to document/content/introduction/opensource/license.en.mdx diff --git a/document/content/docs/introduction/opensource/license.mdx b/document/content/introduction/opensource/license.mdx similarity index 100% rename from document/content/docs/introduction/opensource/license.mdx rename to document/content/introduction/opensource/license.mdx diff --git a/document/content/docs/introduction/opensource/meta.en.json b/document/content/introduction/opensource/meta.en.json similarity index 100% rename from document/content/docs/introduction/opensource/meta.en.json rename to document/content/introduction/opensource/meta.en.json diff --git a/document/content/docs/introduction/opensource/meta.json b/document/content/introduction/opensource/meta.json similarity index 100% rename from document/content/docs/introduction/opensource/meta.json rename to document/content/introduction/opensource/meta.json diff --git a/document/content/docs/openapi/app.en.mdx b/document/content/openapi/app.en.mdx similarity index 99% rename from document/content/docs/openapi/app.en.mdx rename to document/content/openapi/app.en.mdx index 99f6a51811..644331f3b2 100644 --- a/document/content/docs/openapi/app.en.mdx +++ b/document/content/openapi/app.en.mdx @@ -8,7 +8,7 @@ description: FastGPT OpenAPI Application Interface 1. Prepare your API Key: You can use the global API Key directly 2. Get your application's AppId -![alt text](/imgs/image-120.png) +![alt text](../../public/imgs/image-120.png) ## Log API diff --git a/document/content/docs/openapi/app.mdx b/document/content/openapi/app.mdx similarity index 98% rename from document/content/docs/openapi/app.mdx rename to document/content/openapi/app.mdx index 47c21d8578..8875181a10 100644 --- a/document/content/docs/openapi/app.mdx +++ b/document/content/openapi/app.mdx @@ -8,7 +8,7 @@ description: FastGPT OpenAPI 应用接口 1. 准备 API key: 可用直接使用全局 apikey 2. 准备应用的 AppId -![alt text](/imgs/image-120.png) +![alt text](../../public/imgs/image-120.png) ## 日志接口 diff --git a/document/content/docs/openapi/chat.en.mdx b/document/content/openapi/chat.en.mdx similarity index 99% rename from document/content/docs/openapi/chat.en.mdx rename to document/content/openapi/chat.en.mdx index 811105d709..891d6fbcbf 100644 --- a/document/content/docs/openapi/chat.en.mdx +++ b/document/content/openapi/chat.en.mdx @@ -7,7 +7,7 @@ description: FastGPT OpenAPI Chat Interface You can find the AppId in your application details URL. -![](/imgs/appid.png) +![](../../public/imgs/appid.png) # Start a Conversation diff --git a/document/content/docs/openapi/chat.mdx b/document/content/openapi/chat.mdx similarity index 99% rename from document/content/docs/openapi/chat.mdx rename to document/content/openapi/chat.mdx index fbef8fb6b9..19fc39a0a2 100644 --- a/document/content/docs/openapi/chat.mdx +++ b/document/content/openapi/chat.mdx @@ -7,7 +7,7 @@ description: FastGPT OpenAPI 对话接口 可在应用详情的路径里获取 AppId。 -![](/imgs/appid.png) +![](../../public/imgs/appid.png) # 发起对话 diff --git a/document/content/docs/openapi/dataset.en.mdx b/document/content/openapi/dataset.en.mdx similarity index 99% rename from document/content/docs/openapi/dataset.en.mdx rename to document/content/openapi/dataset.en.mdx index 246032a8af..9c0fb6ff31 100644 --- a/document/content/docs/openapi/dataset.en.mdx +++ b/document/content/openapi/dataset.en.mdx @@ -5,7 +5,7 @@ description: FastGPT OpenAPI Dataset API | How to Get Dataset ID (datasetId) | How to Get Collection ID (collection_id) | | ----------------------------- | ----------------------------------- | -| ![](/imgs/getDatasetId.jpg) | ![](/imgs/getfile_id.webp) | +| ![](../../public/imgs/getDatasetId.jpg) | ![](../../public/imgs/getfile_id.webp) | ## Create Training Order @@ -402,7 +402,7 @@ curl --location --request POST 'http://localhost:3000/api/core/dataset/collectio --header 'Authorization: Bearer {{authorization}}' \ --header 'Content-Type: application/json' \ --data-raw '{ - "link":"https://doc.fastgpt.io/docs/course/quick-start/", + "link":"https://doc.fastgpt.io/course/quick-start/", "datasetId":"6593e137231a2be9c5603ba7", "parentId": null, @@ -704,7 +704,7 @@ curl --location --request POST 'http://localhost:3000/api/core/dataset/collectio "tmbId": "65422be6aa44b7da77729ec9", "type": "link", "name": "快速上手 | FastGPT", - "rawLink": "https://doc.fastgpt.io/docs/course/quick-start/", + "rawLink": "https://doc.fastgpt.io/course/quick-start/", "updateTime": "2024-01-20T13:54:53.031Z", "dataAmount": 3, "trainingAmount": 0, diff --git a/document/content/docs/openapi/dataset.mdx b/document/content/openapi/dataset.mdx similarity index 99% rename from document/content/docs/openapi/dataset.mdx rename to document/content/openapi/dataset.mdx index 9dfe4c52a5..2e68c98971 100644 --- a/document/content/docs/openapi/dataset.mdx +++ b/document/content/openapi/dataset.mdx @@ -5,7 +5,7 @@ description: FastGPT OpenAPI 知识库接口 | 如何获取知识库ID(datasetId) | 如何获取文件集合ID(collection_id) | | ----------------------------- | ----------------------------------- | -| ![](/imgs/getDatasetId.jpg) | ![](/imgs/getfile_id.webp) | +| ![](../../public/imgs/getDatasetId.jpg) | ![](../../public/imgs/getfile_id.webp) | ## 创建训练订单 @@ -399,7 +399,7 @@ curl --location --request POST 'http://localhost:3000/api/core/dataset/collectio --header 'Authorization: Bearer {{authorization}}' \ --header 'Content-Type: application/json' \ --data-raw '{ - "link":"https://doc.fastgpt.io/docs/course/quick-start/", + "link":"https://doc.fastgpt.io/course/quick-start/", "datasetId":"6593e137231a2be9c5603ba7", "parentId": null, @@ -689,7 +689,7 @@ curl --location --request POST 'http://localhost:3000/api/core/dataset/collectio "tmbId": "65422be6aa44b7da77729ec9", "type": "link", "name": "快速上手 | FastGPT", - "rawLink": "https://doc.fastgpt.io/docs/course/quick-start/", + "rawLink": "https://doc.fastgpt.io/course/quick-start/", "updateTime": "2024-01-20T13:54:53.031Z", "dataAmount": 3, "trainingAmount": 0, diff --git a/document/content/docs/openapi/index.en.mdx b/document/content/openapi/index.en.mdx similarity index 78% rename from document/content/docs/openapi/index.en.mdx rename to document/content/openapi/index.en.mdx index f02570cf22..ad3004acdb 100644 --- a/document/content/docs/openapi/index.en.mdx +++ b/document/content/openapi/index.en.mdx @@ -5,4 +5,4 @@ description: FastGPT OpenAPI Documentation import { Redirect } from '@/components/docs/Redirect'; - + diff --git a/document/content/docs/openapi/index.mdx b/document/content/openapi/index.mdx similarity index 76% rename from document/content/docs/openapi/index.mdx rename to document/content/openapi/index.mdx index ea1124e1d1..e90149ce99 100644 --- a/document/content/docs/openapi/index.mdx +++ b/document/content/openapi/index.mdx @@ -5,4 +5,4 @@ description: FastGPT OpenAPI 文档 import { Redirect } from '@/components/docs/Redirect'; - + diff --git a/document/content/docs/openapi/intro.en.mdx b/document/content/openapi/intro.en.mdx similarity index 95% rename from document/content/docs/openapi/intro.en.mdx rename to document/content/openapi/intro.en.mdx index 81ab14e88c..3b55320d96 100644 --- a/document/content/docs/openapi/intro.en.mdx +++ b/document/content/openapi/intro.en.mdx @@ -20,7 +20,7 @@ FastGPT OpenAPI lets you authenticate with an API Key to access FastGPT services **Note: BaseURL is not an endpoint address -- it's the root URL for all endpoints. Requesting the BaseURL directly won't work.** -![](/imgs/fastgpt-api-baseurl.png) +![](../../public/imgs/fastgpt-api-baseurl.png) ## How to Get an API Key @@ -30,7 +30,7 @@ We recommend using `app-specific keys` only for app or chat-related endpoints, a | Global Key | App-Specific Key | | --------------------- | --------------------- | -| ![](/imgs/fastgpt-api2.jpg) | ![](/imgs/fastgpt-api1.jpg) | +| ![](../../public/imgs/fastgpt-api2.jpg) | ![](../../public/imgs/fastgpt-api1.jpg) | ## Basic Configuration diff --git a/document/content/docs/openapi/intro.mdx b/document/content/openapi/intro.mdx similarity index 94% rename from document/content/docs/openapi/intro.mdx rename to document/content/openapi/intro.mdx index 5f3b006581..a656989545 100644 --- a/document/content/docs/openapi/intro.mdx +++ b/document/content/openapi/intro.mdx @@ -20,7 +20,7 @@ FasGPT OpenAPI 接口允许你使用 Api Key 进行鉴权,从而操作 FastGPT **注意:BaseURL 不是接口地址,而是所有接口的根地址,直接请求 BaseURL 是没有用的。** -![](/imgs/fastgpt-api-baseurl.png) +![](../../public/imgs/fastgpt-api-baseurl.png) ## 如何获取 Api Key @@ -30,7 +30,7 @@ FastGPT 的 API Key **有 2 类**,一类是全局通用的 key (无法直接 | 通用key | 应用特定 key | | --------------------- | --------------------- | -| ![](/imgs/fastgpt-api2.jpg) | ![](/imgs/fastgpt-api1.jpg) | +| ![](../../public/imgs/fastgpt-api2.jpg) | ![](../../public/imgs/fastgpt-api1.jpg) | ## 基本配置 diff --git a/document/content/docs/openapi/meta.en.json b/document/content/openapi/meta.en.json similarity index 100% rename from document/content/docs/openapi/meta.en.json rename to document/content/openapi/meta.en.json diff --git a/document/content/docs/openapi/meta.json b/document/content/openapi/meta.json similarity index 100% rename from document/content/docs/openapi/meta.json rename to document/content/openapi/meta.json diff --git a/document/content/docs/openapi/share.en.mdx b/document/content/openapi/share.en.mdx similarity index 98% rename from document/content/docs/openapi/share.en.mdx rename to document/content/openapi/share.en.mdx index e2ff6a6266..22ba3010dc 100644 --- a/document/content/docs/openapi/share.en.mdx +++ b/document/content/openapi/share.en.mdx @@ -32,13 +32,13 @@ In the share link configuration, you can optionally fill in the `Identity Verifi ### Flow Diagram -![](/imgs/sharelink_process.png) +![](../../public/imgs/sharelink_process.png) ## Configuration Guide ### 1. Configure the Identity Verification URL -![](/imgs/share-setlink.png) +![](../../public/imgs/share-setlink.png) Once configured, every time the share link is used, verification and reporting requests will be sent to the corresponding endpoints. @@ -148,7 +148,7 @@ curl --location --request POST '{{host}}/shareAuth/start' \ This endpoint has no required response format. -The response data follows the same format as the [chat endpoint](/docs/openapi/intro/#response), with an additional `token` field. +The response data follows the same format as the [chat endpoint](./intro.en.mdx#response), with an additional `token` field. Key fields to note: `totalPoints` (total AI credits consumed), `token` (total token consumption) @@ -277,7 +277,7 @@ We'll use [Laf as the server](https://laf.dev/) to demonstrate how these 3 endpo ### 1. Create 3 Laf Endpoints -![](/imgs/share-auth1.png) +![](../../public/imgs/share-auth1.png) @@ -352,7 +352,7 @@ export default async function (ctx: FunctionContext) { Copy any of the 3 endpoint URLs, e.g. `https://d8dns0.laf.dev/shareAuth/finish`, remove the `/shareAuth/finish` part, and enter the root URL `https://d8dns0.laf.dev` in the `Identity Verification` field. -![](/imgs/share-auth2.jpg) +![](../../public/imgs/share-auth2.jpg) ### 3. Modify the Share Link Parameters diff --git a/document/content/docs/openapi/share.mdx b/document/content/openapi/share.mdx similarity index 98% rename from document/content/docs/openapi/share.mdx rename to document/content/openapi/share.mdx index 937013a7f4..08d838bedb 100644 --- a/document/content/docs/openapi/share.mdx +++ b/document/content/openapi/share.mdx @@ -32,13 +32,13 @@ description: FastGPT 分享链接身份鉴权 ### 触发流程 -![](/imgs/sharelink_process.png) +![](../../public/imgs/sharelink_process.png) ## 配置教程 ### 1. 配置身份校验地址 -![](/imgs/share-setlink.png) +![](../../public/imgs/share-setlink.png) 配置校验地址后,在每次分享链接使用时,都会向对应的地址发起校验和上报请求。 @@ -148,7 +148,7 @@ curl --location --request POST '{{host}}/shareAuth/start' \ 该接口无规定返回值。 -响应值与[chat 接口格式相同](/docs/openapi/intro/#响应),仅多了一个`token`。 +响应值与[chat 接口格式相同](./intro.mdx#响应),仅多了一个`token`。 重点关注:`totalPoints`(总消耗AI积分),`token`(Token消耗总数) @@ -277,7 +277,7 @@ type ResponseType = { ### 1. 创建3个Laf接口 -![](/imgs/share-auth1.png) +![](../../public/imgs/share-auth1.png) @@ -352,7 +352,7 @@ export default async function (ctx: FunctionContext) { 我们随便复制3个地址中一个接口: `https://d8dns0.laf.dev/shareAuth/finish`, 去除`/shareAuth/finish`后填入`身份校验`:`https://d8dns0.laf.dev` -![](/imgs/share-auth2.jpg) +![](../../public/imgs/share-auth2.jpg) ### 3. 修改分享链接参数 diff --git a/document/content/docs/openapi/translate_chat.py b/document/content/openapi/translate_chat.py similarity index 100% rename from document/content/docs/openapi/translate_chat.py rename to document/content/openapi/translate_chat.py diff --git a/document/content/docs/self-host/config/json.en.mdx b/document/content/self-host/config/json.en.mdx similarity index 93% rename from document/content/docs/self-host/config/json.en.mdx rename to document/content/self-host/config/json.en.mdx index 8d28df10a6..9f97316977 100644 --- a/document/content/docs/self-host/config/json.en.mdx +++ b/document/content/self-host/config/json.en.mdx @@ -3,7 +3,7 @@ title: Configuration File Guide description: FastGPT configuration parameters explained --- -Since environment variables aren't ideal for complex configurations, newer versions of FastGPT use ConfigMap-style mounted configuration files. You can find the default config at `projects/app/data/config.json`. See the [Docker Compose deployment guide](/docs/self-host/deploy/docker/) for how to mount the config file. +Since environment variables aren't ideal for complex configurations, newer versions of FastGPT use ConfigMap-style mounted configuration files. You can find the default config at `projects/app/data/config.json`. See the [Docker Compose deployment guide](../deploy/docker.en.mdx) for how to mount the config file. **In development**, copy the example config `config.json` to `config.local.json` for it to take effect. @@ -70,4 +70,4 @@ When importing data to your knowledge base or configuring file uploads in your a ### Using Marker for PDF Parsing -[View the Marker integration tutorial](/docs/self-host/custom-models/marker) +[View the Marker integration tutorial](../custom-models/marker.en.mdx) diff --git a/document/content/docs/self-host/config/json.mdx b/document/content/self-host/config/json.mdx similarity index 94% rename from document/content/docs/self-host/config/json.mdx rename to document/content/self-host/config/json.mdx index 7da059acc1..3486cb91e8 100644 --- a/document/content/docs/self-host/config/json.mdx +++ b/document/content/self-host/config/json.mdx @@ -5,7 +5,7 @@ description: FastGPT config.json 文件配置 **该配置仅适用于社区版,商业版用户该配置已集成至后台。** -由于环境变量不利于配置复杂的内容,新版 FastGPT 采用了 ConfigMap 的形式挂载配置文件,你可以在 `projects/app/data/config.json` 看到默认的配置文件。可以参考 [docker-compose 快速部署](/docs/self-host/deploy/docker/) 来挂载配置文件。 +由于环境变量不利于配置复杂的内容,新版 FastGPT 采用了 ConfigMap 的形式挂载配置文件,你可以在 `projects/app/data/config.json` 看到默认的配置文件。可以参考 [docker-compose 快速部署](../deploy/docker.mdx) 来挂载配置文件。 **开发环境下**,你需要将示例配置文件 `config.json` 复制成 `config.local.json` 文件才会生效。 @@ -72,4 +72,4 @@ description: FastGPT config.json 文件配置 ### 使用 Marker 解析 PDF 文件 -[点击查看 Marker 接入教程](/docs/self-host/custom-models/marker) +[点击查看 Marker 接入教程](../custom-models/marker.mdx) diff --git a/document/content/self-host/config/meta.en.json b/document/content/self-host/config/meta.en.json new file mode 100644 index 0000000000..a100090646 --- /dev/null +++ b/document/content/self-host/config/meta.en.json @@ -0,0 +1,5 @@ +{ + "title": "Configuration", + "description": "FastGPT self-hosting configuration", + "pages": ["model", "object-storage", "json", "signoz"] +} diff --git a/document/content/self-host/config/meta.json b/document/content/self-host/config/meta.json new file mode 100644 index 0000000000..50ada3c0e7 --- /dev/null +++ b/document/content/self-host/config/meta.json @@ -0,0 +1,5 @@ +{ + "title": "配置说明", + "description": "FastGPT 自部署配置", + "pages": ["model", "object-storage", "json", "signoz"] +} diff --git a/document/content/docs/self-host/config/model/intro.en.mdx b/document/content/self-host/config/model/intro.en.mdx similarity index 89% rename from document/content/docs/self-host/config/model/intro.en.mdx rename to document/content/self-host/config/model/intro.en.mdx index 38d72ce47d..3af3374a8e 100644 --- a/document/content/docs/self-host/config/model/intro.en.mdx +++ b/document/content/self-host/config/model/intro.en.mdx @@ -19,7 +19,7 @@ FastGPT uses the `AI Proxy` service to connect to different model providers. AI ### Architecture Diagram -![alt text](../../../../../public/imgs/image-95.png) +![alt text](../../../../public/imgs/image-95.png) ### Model Types @@ -45,19 +45,19 @@ You can configure models from the `Account - Model Providers` page in FastGPT. Switch to the `Model Channels` tab. Note that you can only add models that already exist in `Model Configuration`. The system only includes mainstream models by default — if you need additional models, add them in `Model Configuration` first. -![aiproxy1](../../../../../public/imgs/aiproxy-1.png) +![aiproxy1](../../../../public/imgs/aiproxy-1.png) Click "Add Channel" in the top-right corner to open the channel configuration page. -![alt text](../../../../../public/imgs/image-122.png) +![alt text](../../../../public/imgs/image-122.png) Using Alibaba Bailian models as an example: -![alt text](../../../../../public/imgs/image-123.png) +![alt text](../../../../public/imgs/image-123.png) 1. Channel Name: A display label for the channel, used for identification only. 2. Protocol Type: The API protocol for the model. Generally, select the provider that offers the model. Most providers support the OpenAI protocol, so you can also choose OpenAI as the protocol type. -3. Models: The specific models available in this channel. The system includes popular models by default. If the model you need isn't in the dropdown, click "Add Model" to [add a custom model](/docs/self-host/config/model/intro/#add-a-custom-model). +3. Models: The specific models available in this channel. The system includes popular models by default. If the model you need isn't in the dropdown, click "Add Model" to [add a custom model](./intro.en.mdx#add-a-custom-model). 4. Model Mapping: Maps the model name in FastGPT requests to the actual model name at the provider. For example: ```json @@ -74,21 +74,21 @@ In FastGPT, the model is `gpt-4o-test`, and requests to AI Proxy also use `gpt-4 Click "Add" to save. The new channel will appear under "Model Channels". -![aiproxy4](/imgs/aiproxy-4.png) +![aiproxy4](../../../../public/imgs/aiproxy-4.png) ### 2. Channel Testing You can test the channel to verify that the configured models are working properly. -![aiproxy5](/imgs/aiproxy-5.png) +![aiproxy5](../../../../public/imgs/aiproxy-5.png) Click "Model Test" to see the list of configured models, then click "Start Test". -![aiproxy6](/imgs/aiproxy-6.png) +![aiproxy6](../../../../public/imgs/aiproxy-6.png) Once testing completes, you'll see the results and response times for each model. -![aiproxy7](/imgs/aiproxy-7.png) +![aiproxy7](../../../../public/imgs/aiproxy-7.png) ### 3. Enable Models @@ -98,13 +98,13 @@ Click "Enable" to activate the model. | Enable Models | Model ID Mapping | | ------------------------------- | ------------------------------- | -|![alt text](../../../../../public/imgs/image-92.png) | ![alt text](../../../../../public/imgs/image-124.png) | +|![alt text](../../../../public/imgs/image-92.png) | ![alt text](../../../../public/imgs/image-124.png) | ### 4. Test Models FastGPT provides simple tests for each model type on the UI to verify that models are working correctly. Each test sends an actual request using a template. -![alt text](/imgs/image-105.png) +![alt text](../../../../public/imgs/image-105.png) ## Model Configuration @@ -114,7 +114,7 @@ Click the gear icon next to a model to open its configuration. Different model t | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-93.png) | ![alt text](/imgs/image-94.png) | +| ![alt text](../../../../public/imgs/image-93.png) | ![alt text](../../../../public/imgs/image-94.png) | ### Add a Custom Model @@ -124,7 +124,7 @@ If the built-in models don't meet your needs, you can add custom models. If the | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-96.png) | ![alt text](/imgs/image-97.png) | +| ![alt text](../../../../public/imgs/image-96.png) | ![alt text](../../../../public/imgs/image-97.png) | 2. **Add via Configuration File** @@ -132,7 +132,7 @@ If you find it tedious to configure models through the UI, you can use a configu | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-98.png) | ![alt text](/imgs/image-99.png) | +| ![alt text](../../../../public/imgs/image-98.png) | ![alt text](../../../../public/imgs/image-99.png) | @@ -261,24 +261,24 @@ If you find it tedious to configure models through the UI, you can use a configu Range: 1–100. Higher values are prioritized. -![aiproxy9](/imgs/aiproxy-9.png) +![aiproxy9](../../../../public/imgs/aiproxy-9.png) ### Enable / Disable Channels In the control menu on the right side of each channel, you can enable or disable it. Disabled channels will no longer serve model requests. -![aiproxy10](/imgs/aiproxy-10.png) +![aiproxy10](../../../../public/imgs/aiproxy-10.png) ### Model Call Logs Model calls made through channels are logged on the `Call Logs` page. Logs include input/output tokens, request time, latency, request URL, and more. Failed requests show detailed parameters and error messages for debugging, but logs are retained for only 1 hour by default (configurable via environment variables). -![aiproxy11](/imgs/aiproxy-11.png) +![aiproxy11](../../../../public/imgs/aiproxy-11.png) ### Self-Hosted Models -[See the ReRank model deployment tutorial](/docs/self-host/custom-models/bge-rerank/) +[See the ReRank model deployment tutorial](../../custom-models/bge-rerank.en.mdx) ### Custom Request URL @@ -294,11 +294,11 @@ The custom request key is included as the `Authorization: Bearer xxx` header whe All endpoints follow the OpenAI model format. Refer to the [OpenAI API documentation](https://platform.openai.com/docs/api-reference/introduction) for details. -Since OpenAI does not provide a Rerank model, the Rerank endpoint follows the Cohere format. [See request examples](/docs/self-host/faq/#how-to-troubleshoot-model-issues) +Since OpenAI does not provide a Rerank model, the Rerank endpoint follows the Cohere format. [See request examples](../../troubleshooting/model-errors.en.mdx) ### Adding Model Presets -You can find model provider configuration files in the `modules/model/provider` directory of the `FastGPT-plugin` project and add model configurations there. Make sure the `model` field is unique across all models. For field descriptions, refer to [Model Configuration Fields](/docs/self-host/config/model/intro/#add-via-configuration-file). +You can find model provider configuration files in the `modules/model/provider` directory of the `FastGPT-plugin` project and add model configurations there. Make sure the `model` field is unique across all models. For field descriptions, refer to [Model Configuration Fields](./intro.en.mdx#add-via-configuration-file). ### Migrating from OneAPI to AI Proxy diff --git a/document/content/docs/self-host/config/model/intro.mdx b/document/content/self-host/config/model/intro.mdx similarity index 89% rename from document/content/docs/self-host/config/model/intro.mdx rename to document/content/self-host/config/model/intro.mdx index cfc59901e9..4253333a30 100644 --- a/document/content/docs/self-host/config/model/intro.mdx +++ b/document/content/self-host/config/model/intro.mdx @@ -19,7 +19,7 @@ FastGPT 借助`AI Proxy`服务,可以连接到不同的模型提供商。同 ### 运行流程图 -![alt text](../../../../../public/imgs/image-95.png) +![alt text](../../../../public/imgs/image-95.png) ### 模型类型 @@ -45,19 +45,19 @@ FastGPT 借助`AI Proxy`服务,可以连接到不同的模型提供商。同 切换到`模型渠道`标签页。 注意,这里只能增加`模型配置`里有的模型,系统仅内置了主流的模型,如果需要增加其他模型,需要先在`模型配置`中增加。 -![aiproxy1](../../../../../public/imgs/aiproxy-1.png) +![aiproxy1](../../../../public/imgs/aiproxy-1.png) 点击右上角的“新增渠道”,即可进入渠道配置页面 -![alt text](../../../../../public/imgs/image-122.png) +![alt text](../../../../public/imgs/image-122.png) 以阿里百炼的模型为例,进行如下配置 -![alt text](../../../../../public/imgs/image-123.png) +![alt text](../../../../public/imgs/image-123.png) 1. 渠道名:展示在外部的渠道名称,仅作标识; 2. 协议类型:模型对应的协议类型,一般哪家提供的模型就选对于服务商即可。大多数都提供了 OpenAI 的协议,也可以选择 OpenAI 协议类型。 -3. 模型:当前渠道具体可以使用的模型,系统内置了主流的一些模型,如果下拉框中没有想要的选项,可以点击“新增模型”,[增加自定义模型](/docs/self-host/config/model/intro/#新增自定义模型); +3. 模型:当前渠道具体可以使用的模型,系统内置了主流的一些模型,如果下拉框中没有想要的选项,可以点击“新增模型”,[增加自定义模型](./intro.mdx#新增自定义模型); 4. 模型映射:将 FastGPT 请求的模型,映射到具体提供的模型上。例如: ```json @@ -74,21 +74,21 @@ FatGPT 中的模型为 `gpt-4o-test`,向 AI Proxy 发起请求时也是 `gpt-4 最后点击“新增”,就能在“模型渠道”下看到刚刚配置的渠道 -![aiproxy4](/imgs/aiproxy-4.png) +![aiproxy4](../../../../public/imgs/aiproxy-4.png) ### 2. 渠道测试 然后可以对渠道进行测试,确保配置的模型有效 -![aiproxy5](/imgs/aiproxy-5.png) +![aiproxy5](../../../../public/imgs/aiproxy-5.png) 点击“模型测试”,可以看到配置的模型列表,点击“开始测试” -![aiproxy6](/imgs/aiproxy-6.png) +![aiproxy6](../../../../public/imgs/aiproxy-6.png) 等待模型测试完成后,会输出每个模型的测试结果以及请求时长 -![aiproxy7](/imgs/aiproxy-7.png) +![aiproxy7](../../../../public/imgs/aiproxy-7.png) ### 3. 启用模型 @@ -98,13 +98,13 @@ FatGPT 中的模型为 `gpt-4o-test`,向 AI Proxy 发起请求时也是 `gpt-4 | 启用模型 | 模型ID映射说明 | | ------------------------------- | ------------------------------- | -|![alt text](../../../../../public/imgs/image-92.png) | ![alt text](../../../../../public/imgs/image-124.png) | +|![alt text](../../../../public/imgs/image-92.png) | ![alt text](../../../../public/imgs/image-124.png) | ### 4. 测试模型 FastGPT 页面上提供了每类模型的简单测试,可以初步检查模型是否正常工作,会实际按模板发送一个请求。 -![alt text](/imgs/image-105.png) +![alt text](../../../../public/imgs/image-105.png) ## 模型配置 @@ -114,7 +114,7 @@ FastGPT 页面上提供了每类模型的简单测试,可以初步检查模型 | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-93.png) | ![alt text](/imgs/image-94.png) | +| ![alt text](../../../../public/imgs/image-93.png) | ![alt text](../../../../public/imgs/image-94.png) | ### 新增自定义模型 @@ -124,7 +124,7 @@ FastGPT 页面上提供了每类模型的简单测试,可以初步检查模型 | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-96.png) | ![alt text](/imgs/image-97.png) | +| ![alt text](../../../../public/imgs/image-96.png) | ![alt text](../../../../public/imgs/image-97.png) | 2. **通过配置文件配置** @@ -132,7 +132,7 @@ FastGPT 页面上提供了每类模型的简单测试,可以初步检查模型 | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-98.png) | ![alt text](/imgs/image-99.png) | +| ![alt text](../../../../public/imgs/image-98.png) | ![alt text](../../../../public/imgs/image-99.png) | @@ -261,24 +261,24 @@ FastGPT 页面上提供了每类模型的简单测试,可以初步检查模型 范围1~100。数值越大,越容易被优先选中。 -![aiproxy9](/imgs/aiproxy-9.png) +![aiproxy9](../../../../public/imgs/aiproxy-9.png) ### 启用/禁用渠道 在渠道右侧的控制菜单中,还可以控制渠道的启用或禁用,被禁用的渠道将无法再提供模型服务 -![aiproxy10](/imgs/aiproxy-10.png) +![aiproxy10](../../../../public/imgs/aiproxy-10.png) ### 模型调用日志 通过渠道调用的模型,可以在 `调用日志` 页面,会展示发送到模型处的请求记录,包括具体的输入输出 tokens、请求时间、请求耗时、请求地址等等。错误的请求,则会详细的入参和错误信息,方便排查,但仅会保留 1 小时(环境变量里可配置)。 -![aiproxy11](/imgs/aiproxy-11.png) +![aiproxy11](../../../../public/imgs/aiproxy-11.png) ### 私有部署模型 -[点击查看部署 ReRank 模型教程](/docs/self-host/custom-models/bge-rerank/) +[点击查看部署 ReRank 模型教程](../../custom-models/bge-rerank.mdx) ### 自定义请求地址说明 @@ -294,11 +294,11 @@ FastGPT 页面上提供了每类模型的简单测试,可以初步检查模型 所有接口均遵循 OpenAI 提供的模型格式,可参考 [OpenAI API 文档](https://platform.openai.com/docs/api-reference/introduction) 进行配置。 -由于 OpenAI 没有提供 ReRank 模型,遵循的是 Cohere 的格式。[点击查看接口请求示例](/docs/self-host/faq/#如何检查模型问题) +由于 OpenAI 没有提供 ReRank 模型,遵循的是 Cohere 的格式。[点击查看接口请求示例](../../troubleshooting/model-errors.mdx) ### 添加模型预设 -你可以在`FastGPT-plugin`项目中`modules/model/provider`目录下,找对应模型提供商的配置文件,并追加模型配置。请自行全文检查,`model`字段,必须在所有模型中唯一。具体配置字段说明,参考[模型配置字段说明](/docs/self-host/config/model/intro/#通过配置文件配置) +你可以在`FastGPT-plugin`项目中`modules/model/provider`目录下,找对应模型提供商的配置文件,并追加模型配置。请自行全文检查,`model`字段,必须在所有模型中唯一。具体配置字段说明,参考[模型配置字段说明](./intro.mdx#通过配置文件配置) ### 从 OneAPI 迁移到 AI Proxy diff --git a/document/content/docs/self-host/config/model/meta.en.json b/document/content/self-host/config/model/meta.en.json similarity index 100% rename from document/content/docs/self-host/config/model/meta.en.json rename to document/content/self-host/config/model/meta.en.json diff --git a/document/content/docs/self-host/config/model/meta.json b/document/content/self-host/config/model/meta.json similarity index 100% rename from document/content/docs/self-host/config/model/meta.json rename to document/content/self-host/config/model/meta.json diff --git a/document/content/docs/self-host/config/model/minimax.en.mdx b/document/content/self-host/config/model/minimax.en.mdx similarity index 90% rename from document/content/docs/self-host/config/model/minimax.en.mdx rename to document/content/self-host/config/model/minimax.en.mdx index 6cfad519d3..8085cc596f 100644 --- a/document/content/docs/self-host/config/model/minimax.en.mdx +++ b/document/content/self-host/config/model/minimax.en.mdx @@ -5,7 +5,7 @@ description: MiniMax integration example for FastGPT [MiniMax](https://www.minimaxi.com) is an AI technology company that provides high-performance large language model API services. MiniMax's API is compatible with the OpenAI format, making it easy to integrate with FastGPT. -Before reading this guide, make sure you've read the [Model Configuration Guide](/docs/self-host/config/model/intro). +Before reading this guide, make sure you've read the [Model Configuration Guide](./intro.en.mdx). ## 1. Get an API Key @@ -14,7 +14,7 @@ Before reading this guide, make sure you've read the [Model Configuration Guide] ## 2. Add Models -The system includes built-in MiniMax models. Simply search for `MiniMax` on the `Model Configuration` page and enable the models you need. If you need additional models, you can [add them manually](/docs/self-host/config/model/intro/#add-a-custom-model). +The system includes built-in MiniMax models. Simply search for `MiniMax` on the `Model Configuration` page and enable the models you need. If you need additional models, you can [add them manually](./intro.en.mdx#add-a-custom-model). ## 3. Add a Model Channel diff --git a/document/content/docs/self-host/config/model/minimax.mdx b/document/content/self-host/config/model/minimax.mdx similarity index 88% rename from document/content/docs/self-host/config/model/minimax.mdx rename to document/content/self-host/config/model/minimax.mdx index a355739d4b..45ac96721e 100644 --- a/document/content/docs/self-host/config/model/minimax.mdx +++ b/document/content/self-host/config/model/minimax.mdx @@ -5,7 +5,7 @@ description: MiniMax 接入示例 [MiniMax](https://www.minimaxi.com) 是一家通用人工智能科技公司,提供高性能的大语言模型 API 服务。MiniMax 的 API 兼容 OpenAI 格式,可以方便地接入 FastGPT。 -在阅读该章之前,请先确保你阅读了[模型配置说明](/docs/self-host/config/model/intro)。 +在阅读该章之前,请先确保你阅读了[模型配置说明](./intro.mdx)。 ## 1. 获取 API Key @@ -14,7 +14,7 @@ description: MiniMax 接入示例 ## 2. 新增模型 -系统内置了 MiniMax 的模型,直接在`模型配置`页面搜索 `MiniMax` 并启用即可。如果需要其他模型,可以[手动添加](/docs/self-host/config/model/intro/#新增自定义模型)。 +系统内置了 MiniMax 的模型,直接在`模型配置`页面搜索 `MiniMax` 并启用即可。如果需要其他模型,可以[手动添加](./intro.mdx#新增自定义模型)。 ## 3. 新增模型渠道 diff --git a/document/content/docs/self-host/config/model/siliconCloud.en.mdx b/document/content/self-host/config/model/siliconCloud.en.mdx similarity index 80% rename from document/content/docs/self-host/config/model/siliconCloud.en.mdx rename to document/content/self-host/config/model/siliconCloud.en.mdx index 8597053a8c..c1fc3a0f57 100644 --- a/document/content/docs/self-host/config/model/siliconCloud.en.mdx +++ b/document/content/self-host/config/model/siliconCloud.en.mdx @@ -5,7 +5,7 @@ description: SiliconCloud integration example for FastGPT [SiliconCloud](https://cloud.siliconflow.cn/i/TR9Ym0c4) is a platform focused on open source model inference, with its own acceleration engine. It helps users test and use open source models quickly at low cost. In our experience, their models offer solid speed and stability, with a wide variety covering language, embedding, reranking, TTS, STT, image generation, and video generation — meeting all model requirements in FastGPT. -Before reading this guide, make sure you've read the [Model Configuration Guide](/docs/self-host/config/model/intro). +Before reading this guide, make sure you've read the [Model Configuration Guide](./intro.en.mdx). ## 1. Register an Account @@ -14,25 +14,25 @@ Before reading this guide, make sure you've read the [Model Configuration Guide] ## 2. Add Models -The system includes a few SiliconCloud models by default for quick testing. If you need additional models, you can [add them manually](/docs/self-host/config/model/intro/#add-a-custom-model). +The system includes a few SiliconCloud models by default for quick testing. If you need additional models, you can [add them manually](./intro.en.mdx#add-a-custom-model). Here we enable `Qwen2.5 72b` for both text and vision; `bge-m3` as the embedding model; `bge-reranker-v2-m3` as the reranking model; `fish-speech-1.5` as the TTS model; and `SenseVoiceSmall` as the STT model. -![alt text](/imgs/image-104.png) +![alt text](../../../../public/imgs/image-104.png) ## 3. Add a Model Channel On the Model Channels page, add a new SiliconCloud channel and select the models you just added. -![alt text](../../../../../public/imgs/image-126.png) +![alt text](../../../../public/imgs/image-126.png) ## 4. Test Models First, verify that all SiliconCloud models are running properly. -![alt text](../../../../../public/imgs/image-127.png) +![alt text](../../../../public/imgs/image-127.png) ## 5. Test in an App @@ -42,7 +42,7 @@ Create a simple app, select the corresponding model, enable image upload, and te | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-68.png) | ![alt text](/imgs/image-70.png) | +| ![alt text](../../../../public/imgs/image-68.png) | ![alt text](../../../../public/imgs/image-70.png) | The 72B model performs quite fast. Without several 4090 GPUs locally, just the output alone would take around 30 seconds — not to mention the environment setup. @@ -52,7 +52,7 @@ Create a knowledge base (since only one embedding model is configured, the embed | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-72.png) | ![alt text](/imgs/image-71.png) | +| ![alt text](../../../../public/imgs/image-72.png) | ![alt text](../../../../public/imgs/image-71.png) | Import a local file — just select the file and click through the steps. 79 indexes were completed in about 20 seconds. Now let's test knowledge base Q&A. @@ -60,31 +60,31 @@ Go back to the app we just created, select the knowledge base, adjust the parame | | | | | ------------------------------- | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-73.png) | ![alt text](/imgs/image-75.png) | ![alt text](/imgs/image-76.png) | +| ![alt text](../../../../public/imgs/image-73.png) | ![alt text](../../../../public/imgs/image-75.png) | ![alt text](../../../../public/imgs/image-76.png) | After the conversation, click the citation at the bottom to view citation details, including retrieval and reranking scores: | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-77.png) | ![alt text](/imgs/image-78.png) | +| ![alt text](../../../../public/imgs/image-77.png) | ![alt text](../../../../public/imgs/image-78.png) | ### Test Text-to-Speech In the same app, find "Voice Playback" in the left sidebar configuration. Click to select a voice model from the popup and preview it: -![alt text](/imgs/image-79.png) +![alt text](../../../../public/imgs/image-79.png) ### Test Speech-to-Text In the same app, find "Voice Input" in the left sidebar configuration. Click to enable voice input from the popup: -![alt text](/imgs/image-80.png) +![alt text](../../../../public/imgs/image-80.png) Once enabled, a microphone icon appears in the chat input box. Click it to start voice input: | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-81.png) | ![alt text](/imgs/image-82.png) | +| ![alt text](../../../../public/imgs/image-81.png) | ![alt text](../../../../public/imgs/image-82.png) | ## Summary diff --git a/document/content/docs/self-host/config/model/siliconCloud.mdx b/document/content/self-host/config/model/siliconCloud.mdx similarity index 79% rename from document/content/docs/self-host/config/model/siliconCloud.mdx rename to document/content/self-host/config/model/siliconCloud.mdx index 8af43ec292..aa4ac49c20 100644 --- a/document/content/docs/self-host/config/model/siliconCloud.mdx +++ b/document/content/self-host/config/model/siliconCloud.mdx @@ -5,7 +5,7 @@ description: 硅基流动接入示例 [SiliconCloud(硅基流动)](https://cloud.siliconflow.cn/i/TR9Ym0c4) 是一个以提供开源模型调用为主的平台,并拥有自己的加速引擎。帮助用户低成本、快速的进行开源模型的测试和使用。实际体验下来,他们家模型的速度和稳定性都非常不错,并且种类丰富,覆盖语言、向量、重排、TTS、STT、绘图、视频生成模型,可以满足 FastGPT 中所有模型需求。 -在阅读该章之前,请先确保你阅读了[模型配置说明](/docs/self-host/config/model/intro)。 +在阅读该章之前,请先确保你阅读了[模型配置说明](./intro.mdx)。 ## 1. 注册账号 @@ -14,25 +14,25 @@ description: 硅基流动接入示例 ## 2. 新增模型 -系统内置了几个硅基流动的模型进行体验,如果需要其他模型,可以[手动添加](/docs/self-host/config/model/intro/#新增自定义模型)。 +系统内置了几个硅基流动的模型进行体验,如果需要其他模型,可以[手动添加](./intro.mdx#新增自定义模型)。 这里启动了 `Qwen2.5 72b` 的纯语言和视觉模型;选择 `bge-m3` 作为向量模型;选择 `bge-reranker-v2-m3` 作为重排模型。选择 `fish-speech-1.5` 作为语音模型;选择 `SenseVoiceSmall` 作为语音输入模型。 -![alt text](/imgs/image-104.png) +![alt text](../../../../public/imgs/image-104.png) ## 3. 新增模型渠道 在模型渠道页,新增一个硅基流动的渠道,选择刚刚添加的模型即可。 -![alt text](../../../../../public/imgs/image-126.png) +![alt text](../../../../public/imgs/image-126.png) ## 4. 测试模型 先测试下硅基流动的模型是否均可正常运行。 -![alt text](../../../../../public/imgs/image-127.png) +![alt text](../../../../public/imgs/image-127.png) ## 5. 在应用中测试 @@ -42,7 +42,7 @@ description: 硅基流动接入示例 | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-68.png) | ![alt text](/imgs/image-70.png) | +| ![alt text](../../../../public/imgs/image-68.png) | ![alt text](../../../../public/imgs/image-70.png) | 可以看到,72B 的模型,性能还是非常快的,这要是本地没几个 4090,不说配置环境,输出怕都要 30s 了。 @@ -52,7 +52,7 @@ description: 硅基流动接入示例 | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-72.png) | ![alt text](/imgs/image-71.png) | +| ![alt text](../../../../public/imgs/image-72.png) | ![alt text](../../../../public/imgs/image-71.png) | 导入本地文件,直接选择文件,然后一路下一步即可。79 个索引,大概花了 20s 的时间就完成了。现在我们去测试一下知识库问答。 @@ -60,31 +60,31 @@ description: 硅基流动接入示例 | | | | | ------------------------------- | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-73.png) | ![alt text](/imgs/image-75.png) | ![alt text](/imgs/image-76.png) | +| ![alt text](../../../../public/imgs/image-73.png) | ![alt text](../../../../public/imgs/image-75.png) | ![alt text](../../../../public/imgs/image-76.png) | 对话完成后,点击底部的引用,可以查看引用详情,同时可以看到具体的检索和重排得分: | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-77.png) | ![alt text](/imgs/image-78.png) | +| ![alt text](../../../../public/imgs/image-77.png) | ![alt text](../../../../public/imgs/image-78.png) | ### 测试语音播放 继续在刚刚的应用中,左侧配置中找到语音播放,点击后可以从弹窗中选择语音模型,并进行试听: -![alt text](/imgs/image-79.png) +![alt text](../../../../public/imgs/image-79.png) ### 测试语言输入 继续在刚刚的应用中,左侧配置中找到语音输入,点击后可以从弹窗中开启语言输入 -![alt text](/imgs/image-80.png) +![alt text](../../../../public/imgs/image-80.png) 开启后,对话输入框中,会增加一个话筒的图标,点击可进行语音输入: | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-81.png) | ![alt text](/imgs/image-82.png) | +| ![alt text](../../../../public/imgs/image-81.png) | ![alt text](../../../../public/imgs/image-82.png) | ## 总结 diff --git a/document/content/docs/self-host/config/object-storage.en.mdx b/document/content/self-host/config/object-storage.en.mdx similarity index 100% rename from document/content/docs/self-host/config/object-storage.en.mdx rename to document/content/self-host/config/object-storage.en.mdx diff --git a/document/content/docs/self-host/config/object-storage.mdx b/document/content/self-host/config/object-storage.mdx similarity index 100% rename from document/content/docs/self-host/config/object-storage.mdx rename to document/content/self-host/config/object-storage.mdx diff --git a/document/content/docs/self-host/config/signoz.en.mdx b/document/content/self-host/config/signoz.en.mdx similarity index 82% rename from document/content/docs/self-host/config/signoz.en.mdx rename to document/content/self-host/config/signoz.en.mdx index a2f057d39d..8889f6b5b7 100644 --- a/document/content/docs/self-host/config/signoz.en.mdx +++ b/document/content/self-host/config/signoz.en.mdx @@ -21,7 +21,7 @@ You can use [SigNoz](https://signoz.io/) cloud service or self-host it. Here's h 1. Click the card below to deploy SigNoz with one click. -[![](/imgs/Deploy-on-Sealos.svg)](https://hzh.sealos.run/?uid=fnWRt09fZP&openapp=system-template%3FtemplateName%3Dsignoz) +[![](../../../public/imgs/Deploy-on-Sealos.svg)](https://hzh.sealos.run/?uid=fnWRt09fZP&openapp=system-template%3FtemplateName%3Dsignoz) 2. Enable external access for SigNoz @@ -29,13 +29,13 @@ After deployment, click **Details** in P1 to open the app details page, then cli | P1 | P2 | P3 | | --- | --- | --- | -| ![alt text](/imgs/image-112.png) | ![alt text](/imgs/image-110.png) | ![alt text](/imgs/image-111.png) | +| ![alt text](../../../public/imgs/image-112.png) | ![alt text](../../../public/imgs/image-110.png) | ![alt text](../../../public/imgs/image-111.png) | 3. Get the SigNoz access address After the change completes, wait for the public address to be ready, copy it, and enter it in FastGPT. If using internal network, copy the internal address for port 4318 directly. -![alt text](/imgs/image-113.png) +![alt text](../../../public/imgs/image-113.png) ## Configure FastGPT @@ -60,17 +60,17 @@ Go back to the Sealos app management list, open the SigNoz frontend project, and | | | | --- | --- | -| ![alt text](/imgs/image-114.png) | ![alt text](/imgs/image-115.png) | +| ![alt text](../../../public/imgs/image-114.png) | ![alt text](../../../public/imgs/image-115.png) | First-time access requires creating an account (data is stored in the local database) — fill in anything. -![alt text](/imgs/image-116.png) +![alt text](../../../public/imgs/image-116.png) After logging in, if `logs` and `traces` are lit up in the COMPLETED steps on the right side, the configuration is successful. -![alt text](/imgs/image-117.png) +![alt text](../../../public/imgs/image-117.png) -![alt text](/imgs/image-118.png) +![alt text](../../../public/imgs/image-118.png) ## Notes @@ -78,4 +78,4 @@ After logging in, if `logs` and `traces` are lit up in the COMPLETED steps on th SigNoz monitoring is very disk-intensive. First, avoid storing FastGPT debug logs in SigNoz. Also consider setting the log retention period to 7 days. If SigNoz data stops growing while memory keeps increasing, the disk is full — expand capacity. -![alt text](/imgs/image-119.png) +![alt text](../../../public/imgs/image-119.png) diff --git a/document/content/docs/self-host/config/signoz.mdx b/document/content/self-host/config/signoz.mdx similarity index 81% rename from document/content/docs/self-host/config/signoz.mdx rename to document/content/self-host/config/signoz.mdx index 78056c0ec4..9ce90c3e84 100644 --- a/document/content/docs/self-host/config/signoz.mdx +++ b/document/content/self-host/config/signoz.mdx @@ -21,7 +21,7 @@ description: FastGPT 接入 Signoz 监控服务 1. 点击下方的卡片,即可一键部署 Signoz。 -[![](/imgs/Deploy-on-Sealos.svg)](https://hzh.sealos.run/?uid=fnWRt09fZP&openapp=system-template%3FtemplateName%3Dsignoz) +[![](../../../public/imgs/Deploy-on-Sealos.svg)](https://hzh.sealos.run/?uid=fnWRt09fZP&openapp=system-template%3FtemplateName%3Dsignoz) 2. 开启 Signoz 外网访问 @@ -29,13 +29,13 @@ description: FastGPT 接入 Signoz 监控服务 | P1 | P2 | P3 | | --- | --- | --- | -| ![alt text](/imgs/image-112.png) | ![alt text](/imgs/image-110.png) | ![alt text](/imgs/image-111.png) | +| ![alt text](../../../public/imgs/image-112.png) | ![alt text](../../../public/imgs/image-110.png) | ![alt text](../../../public/imgs/image-111.png) | 3. 获取 Signoz 访问地址 变更完成后,等待公网地址就绪,复制该地址,将其填入 FastGPT 中。如果是走内网服务,可以直接复制 4318 端口的内网地址。 -![alt text](/imgs/image-113.png) +![alt text](../../../public/imgs/image-113.png) ## 配置 FastGPT @@ -60,17 +60,17 @@ LOG_OTEL_URL=http://localhost:4318/v1/logs # 你的 OTLP 收集器的地址, | | | | --- | --- | -| ![alt text](/imgs/image-114.png) | ![alt text](/imgs/image-115.png) | +| ![alt text](../../../public/imgs/image-114.png) | ![alt text](../../../public/imgs/image-115.png) | 首次注册需要注册一个账号(数据是存储本地数据库),随便填写即可。 -![alt text](/imgs/image-116.png) +![alt text](../../../public/imgs/image-116.png) 登录进去后,如果看到右侧 COMPLETED 的步骤条中,logs 和 traces 亮起,则说明配置成功。 -![alt text](/imgs/image-117.png) +![alt text](../../../public/imgs/image-117.png) -![alt text](/imgs/image-118.png) +![alt text](../../../public/imgs/image-118.png) ## 注意事项 @@ -78,4 +78,4 @@ LOG_OTEL_URL=http://localhost:4318/v1/logs # 你的 OTLP 收集器的地址, Signoz 监控是一个非常占用磁盘的服务,首先不要把 FastGPT debug 日志也存储进来,另外可以将日志存储时长调整为 7 天。如果突然发现 Signoz 数据不增加了,并且内存一直追加,则说明是磁盘满了,需要扩大容量。 -![alt text](/imgs/image-119.png) +![alt text](../../../public/imgs/image-119.png) diff --git a/document/content/docs/self-host/custom-models/bge-rerank.en.mdx b/document/content/self-host/custom-models/bge-rerank.en.mdx similarity index 97% rename from document/content/docs/self-host/custom-models/bge-rerank.en.mdx rename to document/content/self-host/custom-models/bge-rerank.en.mdx index 4425be3b6b..ff3b444430 100644 --- a/document/content/docs/self-host/custom-models/bge-rerank.en.mdx +++ b/document/content/self-host/custom-models/bge-rerank.en.mdx @@ -59,7 +59,7 @@ python app.py On successful startup, you should see an address like this: -![](/imgs/rerank1.png) +![](../../../public/imgs/rerank1.png) > `http://0.0.0.0:6006` is the connection address. @@ -114,7 +114,7 @@ services: 1. Open the FastGPT model configuration and add a new reranking model. 2. Fill in the model configuration form: set the Model ID to `bge-reranker-base` and the address to `{{host}}/v1/rerank`, where host is your deployed domain or IP:Port. -![alt text](/imgs/image-102.png) +![alt text](../../../public/imgs/image-102.png) ## FAQ diff --git a/document/content/docs/self-host/custom-models/bge-rerank.mdx b/document/content/self-host/custom-models/bge-rerank.mdx similarity index 97% rename from document/content/docs/self-host/custom-models/bge-rerank.mdx rename to document/content/self-host/custom-models/bge-rerank.mdx index 22af6ed30e..0a54f1ffa3 100644 --- a/document/content/docs/self-host/custom-models/bge-rerank.mdx +++ b/document/content/self-host/custom-models/bge-rerank.mdx @@ -62,7 +62,7 @@ python app.py 启动成功后应该会显示如下地址: -![](/imgs/rerank1.png) +![](../../../public/imgs/rerank1.png) > 这里的 `http://0.0.0.0:6006` 就是连接地址。 @@ -117,7 +117,7 @@ services: 1. 打开 FastGPT 模型配置,新增一个重排模型。 2. 填写模型配置表单:模型 ID 为`bge-reranker-base`,地址填写`{{host}}/v1/rerank`,host 为你部署的域名/IP:Port。 -![alt text](/imgs/image-102.png) +![alt text](../../../public/imgs/image-102.png) ## QA diff --git a/document/content/docs/self-host/custom-models/chatglm2-m3e.en.mdx b/document/content/self-host/custom-models/chatglm2-m3e.en.mdx similarity index 92% rename from document/content/docs/self-host/custom-models/chatglm2-m3e.en.mdx rename to document/content/self-host/custom-models/chatglm2-m3e.en.mdx index 6ebb908dcd..1d142efb39 100644 --- a/document/content/docs/self-host/custom-models/chatglm2-m3e.en.mdx +++ b/document/content/self-host/custom-models/chatglm2-m3e.en.mdx @@ -21,11 +21,11 @@ You can also set it via the environment variable: sk-key. Refer to Docker docume ## Connect to OneAPI -Documentation: [One API](/docs/self-host/config/model/one-api/) +Documentation: [One API](../config/model/intro.en.mdx) Add a channel for chatglm2 and m3e-large respectively, with the following parameters: -![](/imgs/model-m3e1.png) +![](../../../public/imgs/model-m3e1.png) Here, m3e is used as the embedding model and chatglm2 as the language model. @@ -98,18 +98,18 @@ Edit the config.json file. Add chatglm2 to `llmModels` and M3E to `vectorModels` Note: once selected, the embedding model for the Knowledge Base cannot be changed. - ![](/imgs/model-m3e2.png) + ![](../../../public/imgs/model-m3e2.png) 2. Import data 3. Test search - ![](/imgs/model-m3e3.png) + ![](../../../public/imgs/model-m3e3.png) 4. Bind the Knowledge Base to an app Note: an app can only bind Knowledge Bases that use the same embedding model -- cross-model binding is not supported. You may also need to adjust the similarity threshold, as different embedding models produce different similarity (distance) scores. Test and tune accordingly. - ![](/imgs/model-m3e4.png) + ![](../../../public/imgs/model-m3e4.png) **ChatGLM2 model:** diff --git a/document/content/docs/self-host/custom-models/chatglm2-m3e.mdx b/document/content/self-host/custom-models/chatglm2-m3e.mdx similarity index 90% rename from document/content/docs/self-host/custom-models/chatglm2-m3e.mdx rename to document/content/self-host/custom-models/chatglm2-m3e.mdx index b1487cc596..98a7215cae 100644 --- a/document/content/docs/self-host/custom-models/chatglm2-m3e.mdx +++ b/document/content/self-host/custom-models/chatglm2-m3e.mdx @@ -14,18 +14,18 @@ FastGPT 默认使用了 OpenAI 的 LLM 模型和向量模型,如果想要私 - 端口号: 6006 ``` -# 设置安全凭证(即oneapi中的渠道密钥) +# 设置安全凭证(即 AI Proxy 中的渠道密钥) 默认值:sk-aaabbbcccdddeeefffggghhhiiijjjkkk 也可以通过环境变量引入:sk-key。有关docker环境变量引入的方法请自寻教程,此处不再赘述。 ``` -## 接入 OneAPI +## 接入 AI Proxy -文档链接:[One API](/docs/self-host/config/model/one-api/) +文档链接:[AI Proxy](../config/model/intro.mdx) 为 chatglm2 和 m3e-large 各添加一个渠道,参数如下: -![](/imgs/model-m3e1.png) +![](../../../public/imgs/model-m3e1.png) 这里我填入 m3e 作为向量模型,chatglm2 作为语言模型 @@ -98,18 +98,18 @@ M3E 模型的使用方法如下: 注意,一旦选择后,知识库将无法修改向量模型。 - ![](/imgs/model-m3e2.png) + ![](../../../public/imgs/model-m3e2.png) 2. 导入数据 3. 搜索测试 - ![](/imgs/model-m3e3.png) + ![](../../../public/imgs/model-m3e3.png) 4. 应用绑定知识库 注意,应用只能绑定同一个向量模型的知识库,不能跨模型绑定。并且,需要注意调整相似度,不同向量模型的相似度(距离)会有所区别,需要自行测试实验。 - ![](/imgs/model-m3e4.png) + ![](../../../public/imgs/model-m3e4.png) chatglm2 模型的使用方法如下: 模型选择 chatglm2 即可 diff --git a/document/content/docs/self-host/custom-models/chatglm2.en.mdx b/document/content/self-host/custom-models/chatglm2.en.mdx similarity index 97% rename from document/content/docs/self-host/custom-models/chatglm2.en.mdx rename to document/content/self-host/custom-models/chatglm2.en.mdx index 97566e38e7..d17318eec2 100644 --- a/document/content/docs/self-host/custom-models/chatglm2.en.mdx +++ b/document/content/self-host/custom-models/chatglm2.en.mdx @@ -53,7 +53,7 @@ Wait for the model to download and load. If you encounter errors, try asking GPT On successful startup, you should see an address like this: -![](/imgs/chatglm2.png) +![](../../../public/imgs/chatglm2.png) > `http://0.0.0.0:6006` is the connection address. @@ -75,7 +75,7 @@ You can also set it via the environment variable: sk-key. Refer to Docker docume Add a channel for chatglm2 with the following parameters: -![](/imgs/model-m3e1.png) +![](../../../public/imgs/model-m3e1.png) Here, chatglm2 is used as the language model. diff --git a/document/content/docs/self-host/custom-models/chatglm2.mdx b/document/content/self-host/custom-models/chatglm2.mdx similarity index 97% rename from document/content/docs/self-host/custom-models/chatglm2.mdx rename to document/content/self-host/custom-models/chatglm2.mdx index 426b051633..b8c9d4eed6 100644 --- a/document/content/docs/self-host/custom-models/chatglm2.mdx +++ b/document/content/self-host/custom-models/chatglm2.mdx @@ -53,7 +53,7 @@ ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本, 启动成功后应该会显示如下地址: -![](/imgs/chatglm2.png) +![](../../../public/imgs/chatglm2.png) > 这里的 `http://0.0.0.0:6006` 就是连接地址。 @@ -75,7 +75,7 @@ ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本, 为 chatglm2 添加一个渠道,参数如下: -![](/imgs/model-m3e1.png) +![](../../../public/imgs/model-m3e1.png) 这里我填入 chatglm2 作为语言模型 diff --git a/document/content/docs/self-host/custom-models/m3e.en.mdx b/document/content/self-host/custom-models/m3e.en.mdx similarity index 92% rename from document/content/docs/self-host/custom-models/m3e.en.mdx rename to document/content/self-host/custom-models/m3e.en.mdx index fdc1784de9..f39241f5e7 100644 --- a/document/content/docs/self-host/custom-models/m3e.en.mdx +++ b/document/content/self-host/custom-models/m3e.en.mdx @@ -24,7 +24,7 @@ You can also set it via the environment variable: sk-key. Refer to Docker docume Add a channel with the following parameters: -![](/imgs/model-m3e1.png) +![](../../../public/imgs/model-m3e1.png) ## Test @@ -71,15 +71,15 @@ Edit the config.json file and add the M3E model to `vectorModels`: Note: once selected, the embedding model for the Knowledge Base cannot be changed. - ![](/imgs/model-m3e2.png) + ![](../../../public/imgs/model-m3e2.png) 2. Import data 3. Test search - ![](/imgs/model-m3e3.png) + ![](../../../public/imgs/model-m3e3.png) 4. Bind the Knowledge Base to an app Note: an app can only bind Knowledge Bases that use the same embedding model -- cross-model binding is not supported. You may also need to adjust the similarity threshold, as different embedding models produce different similarity (distance) scores. Test and tune accordingly. - ![](/imgs/model-m3e4.png) + ![](../../../public/imgs/model-m3e4.png) diff --git a/document/content/docs/self-host/custom-models/m3e.mdx b/document/content/self-host/custom-models/m3e.mdx similarity index 91% rename from document/content/docs/self-host/custom-models/m3e.mdx rename to document/content/self-host/custom-models/m3e.mdx index 9ea8fdca11..4ead9b2529 100644 --- a/document/content/docs/self-host/custom-models/m3e.mdx +++ b/document/content/self-host/custom-models/m3e.mdx @@ -24,7 +24,7 @@ FastGPT 默认使用了 openai 的 embedding 向量模型,如果你想私有 添加一个渠道,参数如下: -![](/imgs/model-m3e1.png) +![](../../../public/imgs/model-m3e1.png) ## 测试 @@ -71,15 +71,15 @@ Authorization 为 sk-key。model 为刚刚在 One API 填写的自定义模型 注意,一旦选择后,知识库将无法修改向量模型。 - ![](/imgs/model-m3e2.png) + ![](../../../public/imgs/model-m3e2.png) 2. 导入数据 3. 搜索测试 - ![](/imgs/model-m3e3.png) + ![](../../../public/imgs/model-m3e3.png) 4. 应用绑定知识库 注意,应用只能绑定同一个向量模型的知识库,不能跨模型绑定。并且,需要注意调整相似度,不同向量模型的相似度(距离)会有所区别,需要自行测试实验。 - ![](/imgs/model-m3e4.png) + ![](../../../public/imgs/model-m3e4.png) diff --git a/document/content/docs/self-host/custom-models/marker.en.mdx b/document/content/self-host/custom-models/marker.en.mdx similarity index 89% rename from document/content/docs/self-host/custom-models/marker.en.mdx rename to document/content/self-host/custom-models/marker.en.mdx index f86f855342..6fa02cf232 100644 --- a/document/content/docs/self-host/custom-models/marker.en.mdx +++ b/document/content/self-host/custom-models/marker.en.mdx @@ -47,7 +47,7 @@ Restart the service after making changes. Upload a PDF file through the Knowledge Base and enable the `Enhanced PDF Parsing` option. -![alt text](/imgs/marker2.png) +![alt text](../../../public/imgs/marker2.png) After uploading, you should see the following logs (LOG_LEVEL must be set to info or debug): @@ -58,11 +58,11 @@ After uploading, you should see the following logs (LOG_LEVEL must be set to inf You'll notice that PDFs parsed by Marker include image links: -![alt text](/imgs/image-10.png) +![alt text](../../../public/imgs/image-10.png) Similarly, in apps you can enable `Enhanced PDF Parsing` in the file upload settings. -![alt text](/imgs/marker3.png) +![alt text](../../../public/imgs/marker3.png) ## Results @@ -70,8 +70,8 @@ Using Tsinghua's [ChatDev Communicative Agents for Software Develop.pdf](https:/ | | | | | ------------------------------- | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-11.png) | ![alt text](/imgs/image-12.png) | ![alt text](/imgs/image-13.png) | -| ![alt text](/imgs/image-14.png) | ![alt text](/imgs/image-15.png) | ![alt text](/imgs/image-16.png) | +| ![alt text](../../../public/imgs/image-11.png) | ![alt text](../../../public/imgs/image-12.png) | ![alt text](../../../public/imgs/image-13.png) | +| ![alt text](../../../public/imgs/image-14.png) | ![alt text](../../../public/imgs/image-15.png) | ![alt text](../../../public/imgs/image-16.png) | The top row shows chunked results; the bottom row shows the original PDF. Images, formulas, and tables are all extracted effectively. diff --git a/document/content/docs/self-host/custom-models/marker.mdx b/document/content/self-host/custom-models/marker.mdx similarity index 89% rename from document/content/docs/self-host/custom-models/marker.mdx rename to document/content/self-host/custom-models/marker.mdx index 6b6ea3a28b..4f3311c258 100644 --- a/document/content/docs/self-host/custom-models/marker.mdx +++ b/document/content/self-host/custom-models/marker.mdx @@ -47,7 +47,7 @@ docker run --gpus all -itd -p 7231:7232 --name model_pdf_v2 -e PROCESSES_PER_GPU 通过知识库上传一个 pdf 文件,并勾选上 `PDF 增强解析`。 -![alt text](/imgs/marker2.png) +![alt text](../../../public/imgs/marker2.png) 确认上传后,可以在日志中看到 LOG (LOG_LEVEL需要设置 info 或者 debug): @@ -58,11 +58,11 @@ docker run --gpus all -itd -p 7231:7232 --name model_pdf_v2 -e PROCESSES_PER_GPU 然后你就可以发现,通过 Marker 解析出来的 pdf 会携带图片链接: -![alt text](/imgs/image-10.png) +![alt text](../../../public/imgs/image-10.png) 同样的,在应用中,你可以在文件上传配置里,勾选上 `PDF 增强解析`。 -![alt text](/imgs/marker3.png) +![alt text](../../../public/imgs/marker3.png) ## 效果展示 @@ -70,8 +70,8 @@ docker run --gpus all -itd -p 7231:7232 --name model_pdf_v2 -e PROCESSES_PER_GPU | | | | | ------------------------------- | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-11.png) | ![alt text](/imgs/image-12.png) | ![alt text](/imgs/image-13.png) | -| ![alt text](/imgs/image-14.png) | ![alt text](/imgs/image-15.png) | ![alt text](/imgs/image-16.png) | +| ![alt text](../../../public/imgs/image-11.png) | ![alt text](../../../public/imgs/image-12.png) | ![alt text](../../../public/imgs/image-13.png) | +| ![alt text](../../../public/imgs/image-14.png) | ![alt text](../../../public/imgs/image-15.png) | ![alt text](../../../public/imgs/image-16.png) | 上图是分块后的结果,下图是 pdf 原文。整体图片、公式、表格都可以提取出来,效果还是杠杠的。 diff --git a/document/content/docs/self-host/custom-models/meta.en.json b/document/content/self-host/custom-models/meta.en.json similarity index 100% rename from document/content/docs/self-host/custom-models/meta.en.json rename to document/content/self-host/custom-models/meta.en.json diff --git a/document/content/docs/self-host/custom-models/meta.json b/document/content/self-host/custom-models/meta.json similarity index 100% rename from document/content/docs/self-host/custom-models/meta.json rename to document/content/self-host/custom-models/meta.json diff --git a/document/content/docs/self-host/custom-models/mineru.en.mdx b/document/content/self-host/custom-models/mineru.en.mdx similarity index 88% rename from document/content/docs/self-host/custom-models/mineru.en.mdx rename to document/content/self-host/custom-models/mineru.en.mdx index 0954becd86..85e3f27c5c 100644 --- a/document/content/docs/self-host/custom-models/mineru.en.mdx +++ b/document/content/self-host/custom-models/mineru.en.mdx @@ -46,7 +46,7 @@ This MinerU integration uses pipeline mode with built-in parallelization inside For the commercial edition, configure as shown below: -![alt text](/imgs/mineru6.png) +![alt text](../../../public/imgs/mineru6.png) **Note:** Services added via the configuration file require a restart to take effect. @@ -54,7 +54,7 @@ For the commercial edition, configure as shown below: Upload a PDF file through the Knowledge Base and enable the `Enhanced PDF Parsing` option. -![alt text](/imgs/mineru1.png) +![alt text](../../../public/imgs/mineru1.png) After uploading, you should see the following logs (LOG_LEVEL must be set to info or debug): @@ -66,7 +66,7 @@ After uploading, you should see the following logs (LOG_LEVEL must be set to inf Similarly, in apps you can enable `Enhanced PDF Parsing` in the file upload settings. -![alt text](/imgs/mineru2.png) +![alt text](../../../public/imgs/mineru2.png) ## Results @@ -74,8 +74,8 @@ Using Tsinghua's [ChatDev Communicative Agents for Software Develop.pdf](https:/ | | | | | ------------------------------- | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/mineru3-1.png) | ![alt text](/imgs/mineru4-1.png) | ![alt text](/imgs/mineru5-1.png) | -| ![alt text](/imgs/mineru3.png) | ![alt text](/imgs/mineru4.png) | ![alt text](/imgs/mineru5.png) | +| ![alt text](../../../public/imgs/mineru3-1.png) | ![alt text](../../../public/imgs/mineru4-1.png) | ![alt text](../../../public/imgs/mineru5-1.png) | +| ![alt text](../../../public/imgs/mineru3.png) | ![alt text](../../../public/imgs/mineru4.png) | ![alt text](../../../public/imgs/mineru5.png) | The top row shows chunked results; the bottom row shows the original PDF. Images, formulas, and OCR handwriting are all extracted effectively. diff --git a/document/content/docs/self-host/custom-models/mineru.mdx b/document/content/self-host/custom-models/mineru.mdx similarity index 88% rename from document/content/docs/self-host/custom-models/mineru.mdx rename to document/content/self-host/custom-models/mineru.mdx index 773a24de13..21665cdc88 100644 --- a/document/content/docs/self-host/custom-models/mineru.mdx +++ b/document/content/self-host/custom-models/mineru.mdx @@ -46,7 +46,7 @@ docker run --gpus all -itd -p 7231:8001 --name mode_pdf_minerU crpi-h3snc261q1do 商业版请按下图配置 -![alt text](/imgs/mineru6.png) +![alt text](../../../public/imgs/mineru6.png) **注意:** 通过配置文件添加的服务需要重启服务。 @@ -54,7 +54,7 @@ docker run --gpus all -itd -p 7231:8001 --name mode_pdf_minerU crpi-h3snc261q1do 通过知识库上传一个 pdf 文件,并勾选上 `PDF 增强解析`。 -![alt text](/imgs/mineru1.png) +![alt text](../../../public/imgs/mineru1.png) 确认上传后,可以在日志中看到 LOG (LOG_LEVEL需要设置 info 或者 debug): @@ -66,7 +66,7 @@ docker run --gpus all -itd -p 7231:8001 --name mode_pdf_minerU crpi-h3snc261q1do 同样的,在应用中,你可以在文件上传配置里,勾选上 `PDF 增强解析`。 -![alt text](/imgs/mineru2.png) +![alt text](../../../public/imgs/mineru2.png) ## 效果展示 @@ -74,8 +74,8 @@ docker run --gpus all -itd -p 7231:8001 --name mode_pdf_minerU crpi-h3snc261q1do | | | | | ------------------------------- | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/mineru3-1.png) | ![alt text](/imgs/mineru4-1.png) | ![alt text](/imgs/mineru5-1.png) | -| ![alt text](/imgs/mineru3.png) | ![alt text](/imgs/mineru4.png) | ![alt text](/imgs/mineru5.png) | +| ![alt text](../../../public/imgs/mineru3-1.png) | ![alt text](../../../public/imgs/mineru4-1.png) | ![alt text](../../../public/imgs/mineru5-1.png) | +| ![alt text](../../../public/imgs/mineru3.png) | ![alt text](../../../public/imgs/mineru4.png) | ![alt text](../../../public/imgs/mineru5.png) | 上图是分块后的结果,下图是 pdf 原文。整体图片、公式、ocr手写体都可以提取出来,效果还是可以的。 diff --git a/document/content/docs/self-host/custom-models/ollama.en.mdx b/document/content/self-host/custom-models/ollama.en.mdx similarity index 88% rename from document/content/docs/self-host/custom-models/ollama.en.mdx rename to document/content/self-host/custom-models/ollama.en.mdx index 44fe0da804..c9d9f72fea 100644 --- a/document/content/docs/self-host/custom-models/ollama.en.mdx +++ b/document/content/self-host/custom-models/ollama.en.mdx @@ -79,7 +79,7 @@ After installing Ollama, no models are available locally -- you need to pull the ollama pull [model name] ``` -![](/imgs/Ollama-pull.png) +![](../../../public/imgs/Ollama-pull.png) ### Test Communication @@ -103,31 +103,31 @@ First, check which models Ollama has: ollama ls ``` -![](/imgs/Ollama-models1.png) +![](../../../public/imgs/Ollama-models1.png) ### 2. AI Proxy Integration -If you're using FastGPT's default configuration from [here](/docs/self-host/deploy/docker), AI Proxy is enabled by default. +If you're using FastGPT's default configuration from [here](../deploy/docker.en.mdx), AI Proxy is enabled by default. -![](/imgs/Ollama-aiproxy1.png) +![](../../../public/imgs/Ollama-aiproxy1.png) Make sure your FastGPT can access the Ollama container. If not, refer to the [installation section](#installing-ollama) above -- check whether the host isn't listening on 0.0.0.0 or the containers aren't on the same network. -![](/imgs/Ollama-aiproxy2.png) +![](../../../public/imgs/Ollama-aiproxy2.png) -In FastGPT, go to Account -> Model Providers -> Model Configuration -> Add Model. Make sure the model ID matches the model name in OneAPI. See details [here](/docs/self-host/config/model/intro). +In FastGPT, go to Account -> Model Providers -> Model Configuration -> Add Model. Make sure the model ID matches the model name in OneAPI. See details [here](../config/model/intro.en.mdx). -![](/imgs/Ollama-models2.png) +![](../../../public/imgs/Ollama-models2.png) -![](/imgs/Ollama-models3.png) +![](../../../public/imgs/Ollama-models3.png) Run FastGPT, then go to Account -> Model Providers -> Model Channels -> Add Channel. Select Ollama as the channel type, add your pulled model, and fill in the proxy address. For container-deployed Ollama, the address is http://address:port. Note: container deployment uses "http://[container name]:[port]", host installation uses "http://[host IP]:[port]" (host IP cannot be localhost). -![](/imgs/Ollama-aiproxy3.png) +![](../../../public/imgs/Ollama-aiproxy3.png) Create an app in the workspace and select the model you added. The model name shown is the alias you set. Note: the same model cannot be added multiple times -- the system uses the alias from the most recent addition. -![](/imgs/Ollama-models4.png) +![](../../../public/imgs/Ollama-models4.png) ### 3. OneAPI Integration @@ -143,15 +143,15 @@ docker run -it --network [FastGPT network] --name container_name intel/oneapi-hp In the OneAPI page, add a new channel with type Ollama. Enter your Ollama model name (must match exactly), then fill in the Ollama proxy address below -- default is http://address:port, without /v1. Test the channel after adding. This example uses Docker-deployed Ollama; for host-installed Ollama, use http://[host IP]:[port]. -![](/imgs/Ollama-oneapi1.png) +![](../../../public/imgs/Ollama-oneapi1.png) After adding the channel, click Token -> Add Token, fill in the name, and configure as needed. -![](/imgs/Ollama-oneapi2.png) +![](../../../public/imgs/Ollama-oneapi2.png) Edit the FastGPT docker-compose.yml file: comment out AI Proxy, set OPENAI_BASE_URL to your OneAPI address (default http://address:port/v1 -- /v1 is required), and set KEY to your OneAPI token. -![](/imgs/Ollama-oneapi3.png) +![](../../../public/imgs/Ollama-oneapi3.png) Then [jump to section 5](#5-model-addition-and-usage) to add and use models. @@ -159,7 +159,7 @@ Then [jump to section 5](#5-model-addition-and-usage) to add and use models. If you don't want to use AI Proxy or OneAPI, you can connect directly. Edit the FastGPT docker-compose.yml: comment out AI Proxy code, set OPENAI_BASE_URL to your Ollama address (default http://address:port/v1 -- /v1 is required), and set KEY to any value (Ollama has no authentication by default; if you've enabled it, use the correct key). Everything else is the same as the OneAPI approach -- just add your model in FastGPT. This example uses Docker-deployed Ollama; for host-installed Ollama, use http://[host IP]:[port]. -![](/imgs/Ollama-direct1.png) +![](../../../public/imgs/Ollama-direct1.png) After completing the setup, [click here](#5-model-addition-and-usage) to add and use models. @@ -167,13 +167,13 @@ After completing the setup, [click here](#5-model-addition-and-usage) to add and In FastGPT, go to Account -> Model Providers -> Model Configuration -> Add Model. Make sure the model ID matches the model name in OneAPI. -![](/imgs/Ollama-models2.png) +![](../../../public/imgs/Ollama-models2.png) -![](/imgs/Ollama-models3.png) +![](../../../public/imgs/Ollama-models3.png) Create an app in the workspace and select the model you added. The model name shown is the alias you set. Note: the same model cannot be added multiple times -- the system uses the alias from the most recent addition. -![](/imgs/Ollama-models4.png) +![](../../../public/imgs/Ollama-models4.png) ### 6. Additional Notes diff --git a/document/content/docs/self-host/custom-models/ollama.mdx b/document/content/self-host/custom-models/ollama.mdx similarity index 91% rename from document/content/docs/self-host/custom-models/ollama.mdx rename to document/content/self-host/custom-models/ollama.mdx index a4cdf0202c..f52329bd11 100644 --- a/document/content/docs/self-host/custom-models/ollama.mdx +++ b/document/content/self-host/custom-models/ollama.mdx @@ -79,7 +79,7 @@ ollama serve #安装完成并启动服务后,你可以在浏览器中访问 ht ollama pull [模型名] ``` -![](/imgs/Ollama-pull.png) +![](../../../public/imgs/Ollama-pull.png) ### 测试通信 @@ -103,31 +103,31 @@ curl http://XXX.XXX.XXX.XXX:11434 #容器部署地址为“http://[容器名]:[ ollama ls ``` -![](/imgs/Ollama-models1.png) +![](../../../public/imgs/Ollama-models1.png) ### 2. AI Proxy 接入 -如果你采用的是 FastGPT 中的默认配置文件部署[这里](/docs/self-host/deploy/docker.md),即默认采用 AI Proxy 进行启动。 +如果你采用的是 FastGPT 中的默认配置文件部署[这里](../deploy/docker.mdx),即默认采用 AI Proxy 进行启动。 -![](/imgs/Ollama-aiproxy1.png) +![](../../../public/imgs/Ollama-aiproxy1.png) 以及在确保你的 FastGPT 可以直接访问 Ollama 容器的情况下,无法访问,参考上文[点此跳转](#安装-ollama)的安装过程,检测是不是主机不能监测0.0.0.0,或者容器不在同一个网络。 -![](/imgs/Ollama-aiproxy2.png) +![](../../../public/imgs/Ollama-aiproxy2.png) -在 FastGPT 中点击账号->模型提供商->模型配置->新增模型,添加自己的模型即可,添加模型时需要保证模型ID和 OneAPI 中的模型名称一致。详细参考[这里](/docs/self-host/config/model/intro.md) +在 FastGPT 中点击账号->模型提供商->模型配置->新增模型,添加自己的模型即可,添加模型时需要保证模型ID和 OneAPI 中的模型名称一致。详细参考[这里](../config/model/intro.mdx) -![](/imgs/Ollama-models2.png) +![](../../../public/imgs/Ollama-models2.png) -![](/imgs/Ollama-models3.png) +![](../../../public/imgs/Ollama-models3.png) 运行 FastGPT ,在页面中选择账号->模型提供商->模型渠道->新增渠道。之后,在渠道选择中选择 Ollama ,然后加入自己拉取的模型,填入代理地址,如果是容器中安装 Ollama ,代理地址为http://地址:端口,补充:容器部署地址为“http://[容器名]:[端口]”,主机安装地址为"http://[主机IP]:[端口]",主机IP不可为localhost -![](/imgs/Ollama-aiproxy3.png) +![](../../../public/imgs/Ollama-aiproxy3.png) 在工作台中创建一个应用,选择自己之前添加的模型,此处模型名称为自己当时设置的别名。注:同一个模型无法多次添加,系统会采取最新添加时设置的别名。 -![](/imgs/Ollama-models4.png) +![](../../../public/imgs/Ollama-models4.png) ### 3. OneAPI 接入 @@ -143,15 +143,15 @@ docker run -it --network [ FastGPT 网络 ] --name 容器名 intel/oneapi-hpckit 进入 OneAPI 页面,添加新的渠道,类型选择 Ollama ,在模型中填入自己 Ollama 中的模型,需要保证添加的模型名称和 Ollama 中一致,再在下方填入自己的 Ollama 代理地址,默认http://地址:端口,不需要填写/v1。添加成功后在 OneAPI 进行渠道测试,测试成功则说明添加成功。此处演示采用的是 Docker 部署 Ollama 的效果,主机 Ollama需要修改代理地址为http://[主机IP]:[端口] -![](/imgs/Ollama-oneapi1.png) +![](../../../public/imgs/Ollama-oneapi1.png) 渠道添加成功后,点击令牌,点击添加令牌,填写名称,修改配置。 -![](/imgs/Ollama-oneapi2.png) +![](../../../public/imgs/Ollama-oneapi2.png) 修改部署 FastGPT 的 docker-compose.yml 文件,在其中将 AI Proxy 的使用注释,在 OPENAI_BASE_URL 中加入自己的 OneAPI 开放地址,默认是http://地址:端口/v1,v1必须填写。KEY 中填写自己在 OneAPI 的令牌。 -![](/imgs/Ollama-oneapi3.png) +![](../../../public/imgs/Ollama-oneapi3.png) [直接跳转5](#5-模型添加和使用)添加模型,并使用。 @@ -159,7 +159,7 @@ docker run -it --network [ FastGPT 网络 ] --name 容器名 intel/oneapi-hpckit 如果你既不想使用 AI Proxy,也不想使用 OneAPI,也可以选择直接接入,修改部署 FastGPT 的 docker-compose.yml 文件,在其中将 AI Proxy 的使用注释,采用和 OneAPI 的类似配置。注释掉 AIProxy 相关代码,在OPENAI_BASE_URL中加入自己的 Ollama 开放地址,默认是http://地址:端口/v1,强调:v1必须填写。在KEY中随便填入,因为 Ollama 默认没有鉴权,如果开启鉴权,请自行填写。其他操作和在 OneAPI 中加入 Ollama 一致,只需在 FastGPT 中加入自己的模型即可使用。此处演示采用的是 Docker 部署 Ollama 的效果,主机 Ollama需要修改代理地址为http://[主机IP]:[端口] -![](/imgs/Ollama-direct1.png) +![](../../../public/imgs/Ollama-direct1.png) 完成后[点击这里](#5-模型添加和使用)进行模型添加并使用。 @@ -167,13 +167,13 @@ docker run -it --network [ FastGPT 网络 ] --name 容器名 intel/oneapi-hpckit 在 FastGPT 中点击账号->模型提供商->模型配置->新增模型,添加自己的模型即可,添加模型时需要保证模型ID和 OneAPI 中的模型名称一致。 -![](/imgs/Ollama-models2.png) +![](../../../public/imgs/Ollama-models2.png) -![](/imgs/Ollama-models3.png) +![](../../../public/imgs/Ollama-models3.png) 在工作台中创建一个应用,选择自己之前添加的模型,此处模型名称为自己当时设置的别名。注:同一个模型无法多次添加,系统会采取最新添加时设置的别名。 -![](/imgs/Ollama-models4.png) +![](../../../public/imgs/Ollama-models4.png) ### 6. 补充 diff --git a/document/content/docs/self-host/custom-models/xinference.en.mdx b/document/content/self-host/custom-models/xinference.en.mdx similarity index 96% rename from document/content/docs/self-host/custom-models/xinference.en.mdx rename to document/content/self-host/custom-models/xinference.en.mdx index d4a2ac8772..f6e62d2313 100644 --- a/document/content/docs/self-host/custom-models/xinference.en.mdx +++ b/document/content/self-host/custom-models/xinference.en.mdx @@ -82,7 +82,7 @@ After starting Xinference, open `http://127.0.0.1:9997` in your browser to acces Go to the "Launch Model" tab, search for qwen-chat, select the launch parameters, then click the rocket button in the lower left of the model card to deploy. The default Model UID is qwen-chat (used to access the model later). -![](/imgs/xinference-launch-model.png) +![](../../../public/imgs/xinference-launch-model.png) On first launch, Xinference downloads model parameters from HuggingFace, which takes a few minutes. Model files are cached locally for subsequent launches. Xinference also supports downloading from other sources like [modelscope](https://inference.readthedocs.io/en/latest/models/sources/sources.html). @@ -98,11 +98,11 @@ Beyond WebUI and CLI, Xinference also provides Python SDK and RESTful API. For m ## Integrate Local Models with One API -For One API deployment and setup, refer to [here](/docs/self-host/config/model/one-api/). +For One API deployment and setup, refer to [here](../config/model/intro.en.mdx). Add a channel for qwen1.5-chat. Set the Base URL to the Xinference service endpoint and register qwen-chat (the model's UID). -![](/imgs/one-api-add-xinference-models.jpg) +![](../../../public/imgs/one-api-add-xinference-models.jpg) Test with this command: @@ -149,6 +149,6 @@ Add the qwen-chat model to the `llmModels` section of FastGPT's `config.json`: Restart FastGPT to select the Qwen model in app configuration: -## ![](/imgs/fastgpt-list-models.png) +## ![](../../../public/imgs/fastgpt-list-models.png) - Reference: [FastGPT + Xinference: One-Stop Local LLM Private Deployment and Application Development](https://xorbits.cn/blogs/fastgpt-weather-chat) diff --git a/document/content/docs/self-host/custom-models/xinference.mdx b/document/content/self-host/custom-models/xinference.mdx similarity index 97% rename from document/content/docs/self-host/custom-models/xinference.mdx rename to document/content/self-host/custom-models/xinference.mdx index ec2637b6fa..54241f9051 100644 --- a/document/content/docs/self-host/custom-models/xinference.mdx +++ b/document/content/self-host/custom-models/xinference.mdx @@ -82,7 +82,7 @@ Xinference 启动之后,在浏览器中输入: `http://127.0.0.1:9997`,我 打开“Launch Model”标签,搜索到 qwen-chat,选择模型启动的相关参数,然后点击模型卡片左下方的小火箭🚀按钮,就可以部署该模型到 Xinference。 默认 Model UID 是 qwen-chat(后续通过将通过这个 ID 来访问模型)。 -![](/imgs/xinference-launch-model.png) +![](../../../public/imgs/xinference-launch-model.png) 当你第一次启动 Qwen 模型时,Xinference 会从 HuggingFace 下载模型参数,大概需要几分钟的时间。Xinference 将模型文件缓存在本地,这样之后启动时就不需要重新下载了。 Xinference 还支持从其他模型站点下载模型文件,例如 [modelscope](https://inference.readthedocs.io/en/latest/models/sources/sources.html)。 @@ -98,11 +98,11 @@ xinference launch -n qwen-chat -s 14 -f pytorch ## 将本地模型接入 One API -One API 的部署和接入请参考[这里](/docs/self-host/config/model/one-api/)。 +One API 的部署和接入请参考[这里](../config/model/intro.mdx)。 为 qwen1.5-chat 添加一个渠道,这里的 Base URL 需要填 Xinference 服务的端点,并且注册 qwen-chat (模型的 UID) 。 -![](/imgs/one-api-add-xinference-models.jpg) +![](../../../public/imgs/one-api-add-xinference-models.jpg) 可以使用以下命令进行测试: @@ -149,6 +149,6 @@ curl --location --request POST 'https://[oneapi_url]/v1/chat/completions' \ 然后重启 FastGPT 就可以在应用配置中选择 Qwen 模型进行对话: -## ![](/imgs/fastgpt-list-models.png) +## ![](../../../public/imgs/fastgpt-list-models.png) - 参考:[FastGPT + Xinference:一站式本地 LLM 私有化部署和应用开发](https://xorbits.cn/blogs/fastgpt-weather-chat) diff --git a/document/content/docs/self-host/deploy/docker.en.mdx b/document/content/self-host/deploy/docker.en.mdx similarity index 96% rename from document/content/docs/self-host/deploy/docker.en.mdx rename to document/content/self-host/deploy/docker.en.mdx index 49bc4350df..8b1e0ebf22 100644 --- a/document/content/docs/self-host/deploy/docker.en.mdx +++ b/document/content/self-host/deploy/docker.en.mdx @@ -12,7 +12,7 @@ import { Alert } from '@/components/docs/Alert'; ## Deployment Architecture -![](/imgs/sealos-fastgpt.webp) +![](../../../public/imgs/sealos-fastgpt.webp) @@ -185,7 +185,7 @@ Each container restart automatically initializes the root user with password `12 ### 6. Configure Models - After first login, the system prompts that `Language Model` and `Index Model` are not configured and automatically redirects to the model configuration page. At least these two model types are required. -- If the redirect doesn't happen, go to `Account - Model Providers` to configure models. [View tutorial](/docs/self-host/config/model/intro) +- If the redirect doesn't happen, go to `Account - Model Providers` to configure models. [View tutorial](../config/model/intro.en.mdx) - Known issue: after first entering the system, the browser tab may become unresponsive. Close the tab and reopen it. ### 7. Install System Plugins as Needed @@ -196,7 +196,7 @@ Starting from V4.14.0, the fastgpt-plugin image only provides the runtime enviro * If your FastGPT can't access the marketplace, visit [FastGPT Plugin Marketplace](https://marketplace.fastgpt.cn/), download .pkg files, and import them via file upload. * You can also sort tools, set default installations, and manage tags. -![alt text](/imgs/image-121.png) +![alt text](../../../public/imgs/image-121.png) ## FAQ @@ -216,7 +216,7 @@ Check the `STORAGE_EXTERNAL_ENDPOINT` variable — it must be accessible by both > Don't use `127.0.0.1` or `localhost` or other loopback addresses. Use the host machine's local IP when deploying with Docker, but set it to a static IP; or use a fixed domain name. This prevents 403 errors caused by URL mismatches when signing object storage URLs. > -> See [Object Storage Configuration & Common Issues](/docs/self-host/config/object-storage) +> See [Object Storage Configuration & Common Issues](../config/object-storage.en.mdx) ### Browser Unresponsive After Login @@ -303,7 +303,7 @@ docker compose up -d ### How to Update Versions? -1. Check the [update documentation](/docs/self-host/upgrading/upgrade-intruction) to confirm the target version — avoid skipping versions. +1. Check the [update documentation](../upgrading/upgrade-intruction.en.mdx) to confirm the target version — avoid skipping versions. 2. Change the image tag to the target version 3. Run these commands to pull and restart: @@ -315,7 +315,7 @@ docker compose up -d ### How to Customize Configuration Files? -Modify `config.json`, then run `docker compose down` followed by `docker compose up -d` to restart. For details, see [Configuration Guide](/docs/self-host/config/json). +Modify `config.json`, then run `docker compose down` followed by `docker compose up -d` to restart. For details, see [Configuration Guide](../config/json.en.mdx). ### How to Check if Custom Config File is Mounted @@ -396,7 +396,7 @@ Modify `DEFAULT_ROOT_PSW` in `docker-compose.yml` and restart — the password a Open [Zilliz Cloud](https://zilliz.com.cn/), create an instance, and get the credentials. -![zilliz_key](/imgs/zilliz_key.png) +![zilliz_key](../../../public/imgs/zilliz_key.png) diff --git a/document/content/docs/self-host/deploy/docker.mdx b/document/content/self-host/deploy/docker.mdx similarity index 97% rename from document/content/docs/self-host/deploy/docker.mdx rename to document/content/self-host/deploy/docker.mdx index 8ccc8ff44a..8d2a0763dc 100644 --- a/document/content/docs/self-host/deploy/docker.mdx +++ b/document/content/self-host/deploy/docker.mdx @@ -12,7 +12,7 @@ import { Alert } from '@/components/docs/Alert'; ## 部署架构图 -![](/imgs/sealos-fastgpt.webp) +![](../../../public/imgs/sealos-fastgpt.webp) @@ -186,7 +186,7 @@ docker compose --profile prepull pull opensandbox-agent-sandbox-image opensandbo ### 6. 配置模型 - 首次登录FastGPT后,系统会提示未配置`语言模型`和`索引模型`,并自动跳转模型配置页面。系统必须至少有这两类模型才能正常使用。 -- 如果系统未正常跳转,可以在`账号-模型提供商`页面,进行模型配置。[点击查看相关教程](/docs/self-host/config/model/intro) +- 如果系统未正常跳转,可以在`账号-模型提供商`页面,进行模型配置。[点击查看相关教程](../config/model/intro.mdx) - 目前已知可能问题:首次进入系统后,整个浏览器 tab 无法响应。此时需要删除该tab,重新打开一次即可。 ### 7. 按需安装系统插件 @@ -197,7 +197,7 @@ docker compose --profile prepull pull opensandbox-agent-sandbox-image opensandbo * 如果你的 FastGPT 无法访问插件市场,则可以手动访问[FastGPT 插件市场](https://marketplace.fastgpt.cn/),先下载 .pkg 文件,再通过文件导入的方式安装到系统里。 * 除了安装外,还可对工具进行排序、默认安装、标签管理等。 -![alt text](/imgs/image-121.png) +![alt text](../../../public/imgs/image-121.png) ## FAQ @@ -218,7 +218,7 @@ docker compose --profile prepull pull opensandbox-agent-sandbox-image opensandbo > 填入的地址不可为`127.0.0.1`或者`localhost`等本地回环地址,可填 Docker 部署时的宿主机本地IP,但是需要把宿主机固定为静态 IP;或者统一为一个固定域名;目的是为了避免对象存储签名 URL 时,签发与上传的 URL 不一致导致的 403 错误。 > -> 具体查看 [对象存储配置及常见问题](/docs/self-host/config/object-storage) +> 具体查看 [对象存储配置及常见问题](../config/object-storage.mdx) ### 登录系统后,浏览器无法响应 @@ -305,7 +305,7 @@ docker compose up -d ### 如何更新版本? -1. 查看[更新文档](/docs/self-host/upgrading/upgrade-intruction),确认要升级的版本,避免跨版本升级。 +1. 查看[更新文档](../upgrading/upgrade-intruction.mdx),确认要升级的版本,避免跨版本升级。 2. 修改镜像 tag 到指定版本 3. 执行下面命令会自动拉取镜像: @@ -317,7 +317,7 @@ docker compose up -d ### 如何自定义配置文件? -修改`config.json`文件,并执行`docker compose down`再执行`docker compose up -d`重起容器。具体配置,参考[配置详解](/docs/self-host/config/json)。 +修改`config.json`文件,并执行`docker compose down`再执行`docker compose up -d`重起容器。具体配置,参考[配置详解](../config/json.mdx)。 ### 如何检查自定义配置文件是否挂载 @@ -397,7 +397,7 @@ mongo连接失败,查看mongo的运行状态**对应日志**。 ### 部署 Zilliz 版本,获取账号和密钥 打开 [Zilliz Cloud](https://zilliz.com.cn/), 创建实例并获取相关秘钥。 -![zilliz_key](/imgs/zilliz_key.png) +![zilliz_key](../../../public/imgs/zilliz_key.png) diff --git a/document/content/self-host/deploy/meta.en.json b/document/content/self-host/deploy/meta.en.json new file mode 100644 index 0000000000..08856ae136 --- /dev/null +++ b/document/content/self-host/deploy/meta.en.json @@ -0,0 +1,5 @@ +{ + "title": "Deployment", + "description": "FastGPT self-hosting deployment", + "pages": ["docker", "sealos"] +} diff --git a/document/content/self-host/deploy/meta.json b/document/content/self-host/deploy/meta.json new file mode 100644 index 0000000000..80dd0158bd --- /dev/null +++ b/document/content/self-host/deploy/meta.json @@ -0,0 +1,5 @@ +{ + "title": "部署方案", + "description": "FastGPT 自部署方案", + "pages": ["docker", "sealos"] +} diff --git a/document/content/docs/self-host/deploy/sealos.en.mdx b/document/content/self-host/deploy/sealos.en.mdx similarity index 83% rename from document/content/docs/self-host/deploy/sealos.en.mdx rename to document/content/self-host/deploy/sealos.en.mdx index a52d495062..da2df985db 100644 --- a/document/content/docs/self-host/deploy/sealos.en.mdx +++ b/document/content/self-host/deploy/sealos.en.mdx @@ -7,13 +7,13 @@ import { Alert } from '@/components/docs/Alert'; ## Deployment Architecture -![](/imgs/sealos-fastgpt.webp) +![](../../../public/imgs/sealos-fastgpt.webp) ## Multi-Model Support FastGPT uses the one-api project to manage model pools, supporting OpenAI, Azure, mainstream domestic models, and local models. -See: [Quick OneAPI Deployment on Sealos](/docs/self-host/config/model/one-api) +See: [Quick OneAPI Deployment on Sealos](../config/model/intro.en.mdx) ## One-Click Deployment @@ -55,17 +55,17 @@ Since databases need to be deployed, wait 2–4 minutes after deployment before Follow the prompts to enter `root_password` and the `openai`/`oneapi` address and key. -![](/imgs/sealos1.png) +![](../../../public/imgs/sealos1.png) After clicking deploy, you'll be redirected to the app management page. Click the details button on the right side of the `fastgpt` main app (named fastgpt-xxxx), as shown below. -![](/imgs/sealos-deploy1.jpg) +![](../../../public/imgs/sealos-deploy1.jpg) After clicking details, you'll see the FastGPT deployment management page. Click the link in the external access address to open the FastGPT service. To bind a custom domain or modify deployment parameters, click **Change** in the top right and follow Sealos' instructions. -![](/imgs/sealos2.png) +![](../../../public/imgs/sealos2.png) ### 2. Log In @@ -79,7 +79,7 @@ Password: the `root_password` you set during one-click deployment You must configure at least one model set, or the system won't work properly. -[View model configuration tutorial](/docs/self-host/config/model/intro) +[View model configuration tutorial](../config/model/intro.en.mdx) ## Pricing @@ -91,7 +91,7 @@ Sealos uses pay-as-you-go billing based on allocated CPU, memory, and disk. For FastGPT Commercial Edition includes 2 apps (fastgpt, fastgpt-plus) and 2 databases. When using multiple API keys, install OneAPI (1 app and 1 database), totaling 3 apps and 3 databases. -![](/imgs/onSealos1.png) +![](../../../public/imgs/onSealos1.png) Click details on the right to view each app's information. @@ -101,7 +101,7 @@ In Sealos, open **App Launchpad** to see deployed FastGPT apps, and open **Datab In **App Launchpad**, select FastGPT, click **Change**, and you'll see environment variables and config files. -![](/imgs/fastgptonsealos1.png) +![](../../../public/imgs/fastgptonsealos1.png) On Sealos, FastGPT runs 1 service and 2 databases. When pausing or deleting, handle the databases together. (You can start them during the day and pause at night to save costs.) @@ -109,19 +109,19 @@ In **App Launchpad**, select FastGPT, click **Change**, and you'll see environme ### How to Update/Upgrade FastGPT -[Upgrade script documentation](/docs/self-host/upgrading/upgrade-intruction) — read the docs first to determine which version to upgrade to. Do not skip versions. +[Upgrade script documentation](../upgrading/upgrade-intruction.en.mdx) — read the docs first to determine which version to upgrade to. Do not skip versions. For example, if you're on version 4.5 and want to upgrade to 4.5.1: change the image version to v4.5.1, run the upgrade script, wait for completion, then continue upgrading. If the target version doesn't require initialization, skip it. Upgrade steps: -1. Check the [update documentation](/docs/self-host/upgrading/upgrade-intruction) to confirm the target version — avoid skipping versions. +1. Check the [update documentation](../upgrading/upgrade-intruction.en.mdx) to confirm the target version — avoid skipping versions. 2. Open Sealos app management 3. There are 2 apps: fastgpt, fastgpt-pro 4. Click the 3 dots on the right side of the app, then **Change**. Or click details, then **Change** in the top right. 5. Modify the image version number -![](/imgs/onsealos2.png) +![](../../../public/imgs/onsealos2.png) 6. Click **Change/Restart** to automatically pull the latest image and update 7. Run the initialization script for the corresponding version (if applicable) @@ -130,21 +130,21 @@ Upgrade steps: Open the corresponding app and click the external access address. -![](/imgs/onsealos3.png) +![](../../../public/imgs/onsealos3.png) ### Configure a Custom Domain Click **Change** on the app -> **Custom Domain** -> enter domain -> configure domain CNAME -> confirm -> confirm change. -![](/imgs/onsealos4.png) +![](../../../public/imgs/onsealos4.png) ### How to Modify Config Files Open Sealos app management -> find the app -> **Change** -> scroll down to advanced configuration where you'll find config files -> add new or click an existing config file to edit -> click confirm change in the top right. -![](/imgs/onsealos5.png) +![](../../../public/imgs/onsealos5.png) -[Config file reference](/docs/self-host/config/json) +[Config file reference](../config/json.en.mdx) ### Modify Site Name and Favicon @@ -159,7 +159,7 @@ HOME_URL=/dashboard/agent SYSTEM_FAVICON can be a URL. -![](/imgs/onsealos6.png) +![](../../../public/imgs/onsealos6.png) ### Mount a Logo @@ -167,9 +167,9 @@ Currently, the browser logo can't be fully replaced — only SVG is supported. F Add a mounted file with path: `/app/projects/app/public/icon/logo.svg`, with the SVG content as the value. -![](/imgs/onsealos7.png) +![](../../../public/imgs/onsealos7.png) -![](/imgs/onsealos8.png) +![](../../../public/imgs/onsealos8.png) ### Commercial Edition Config File @@ -184,4 +184,4 @@ Add a mounted file with path: `/app/projects/app/public/icon/logo.svg`, with the ### Using OneAPI -[See OneAPI usage guide](/docs/self-host/config/model/one-api/) +[See OneAPI usage guide](../config/model/intro.en.mdx) diff --git a/document/content/docs/self-host/deploy/sealos.mdx b/document/content/self-host/deploy/sealos.mdx similarity index 83% rename from document/content/docs/self-host/deploy/sealos.mdx rename to document/content/self-host/deploy/sealos.mdx index 739cb378d3..60eb46d666 100644 --- a/document/content/docs/self-host/deploy/sealos.mdx +++ b/document/content/self-host/deploy/sealos.mdx @@ -7,13 +7,13 @@ import { Alert } from '@/components/docs/Alert'; ## 部署架构图 -![](/imgs/sealos-fastgpt.webp) +![](../../../public/imgs/sealos-fastgpt.webp) ## 多模型支持 FastGPT 使用了 one-api 项目来管理模型池,其可以兼容 OpenAI 、Azure 、国内主流模型和本地模型等。 -可参考:[Sealos 快速部署 OneAPI](/docs/self-host/config/model/one-api) +可参考:[Sealos 快速部署 OneAPI](../config/model/intro.mdx) ## 一键部署 @@ -55,17 +55,17 @@ FastGPT 使用了 one-api 项目来管理模型池,其可以兼容 OpenAI 、A 根据提示,输入`root_password`,和 `openai`/`oneapi` 的地址和密钥。 -![](/imgs/sealos1.png) +![](../../../public/imgs/sealos1.png) 点击部署后,会跳转到应用管理页面。可以点击`fastgpt`主应用右侧的详情按键(名字为 fastgpt-xxxx), 如下图所示。 -![](/imgs/sealos-deploy1.jpg) +![](../../../public/imgs/sealos-deploy1.jpg) 点击详情后,会跳转到 fastgpt 的部署管理页面,点击外网访问地址中的链接,即可打开 fastgpt 服务。 如需绑定自定义域名、修改部署参数,可以点击右上角变更,根据 sealos 的指引完成。 -![](/imgs/sealos2.png) +![](../../../public/imgs/sealos2.png) ### 2. 登录 @@ -79,7 +79,7 @@ FastGPT 使用了 one-api 项目来管理模型池,其可以兼容 OpenAI 、A 务必先配置至少一组模型,否则系统无法正常使用。 -[点击查看模型配置教程](/docs/self-host/config/model/intro) +[点击查看模型配置教程](../config/model/intro.mdx) ## 收费 @@ -91,7 +91,7 @@ Sealos 采用按量计费的方式,也就是申请了多少 cpu、内存、磁 FastGPT 商业版共包含了2个应用(fastgpt, fastgpt-plus)和2个数据库,使用多 Api Key 时候需要安装 OneAPI(一个应用和一个数据库),总计3个应用和3个数据库。 -![](/imgs/onSealos1.png) +![](../../../public/imgs/onSealos1.png) 点击右侧的详情,可以查看对应应用的详细信息。 @@ -101,7 +101,7 @@ FastGPT 商业版共包含了2个应用(fastgpt, fastgpt-plus)和2个数据 在`应用管理`中,选中 FastGPT,点击变更,可以看到对应的环境变量和配置文件。 -![](/imgs/fastgptonsealos1.png) +![](../../../public/imgs/fastgptonsealos1.png) 在 Sealos 上,FastGPT 一共运行了 1 个服务和 2 @@ -110,19 +110,19 @@ FastGPT 商业版共包含了2个应用(fastgpt, fastgpt-plus)和2个数据 ### 如何更新/升级 FastGPT -[升级脚本文档](/docs/self-host/upgrading/upgrade-intruction)先看下文档,看下需要升级哪个版本。注意,不要跨版本升级!!!!! +[升级脚本文档](../upgrading/upgrade-intruction.mdx)先看下文档,看下需要升级哪个版本。注意,不要跨版本升级!!!!! 例如,目前是4.5 版本,要升级到4.5.1,就先把镜像版本改成v4.5.1,执行一下升级脚本,等待完成后再继续升级。如果目标版本不需要执行初始化,则可以跳过。 升级步骤: -1. 查看[更新文档](/docs/self-host/upgrading/upgrade-intruction),确认要升级的版本,避免跨版本升级。 +1. 查看[更新文档](../upgrading/upgrade-intruction.mdx),确认要升级的版本,避免跨版本升级。 2. 打开 sealos 的应用管理 3. 有2个应用 fastgpt , fastgpt-pro 4. 点击对应应用右边3个点,变更。或者点详情后右上角的变更。 5. 修改镜像的版本号 -![](/imgs/onsealos2.png) +![](../../../public/imgs/onsealos2.png) 6. 点击变更/重启,会自动拉取最新镜像进行更新 7. 执行对应版本的初始化脚本(如果有) @@ -131,21 +131,21 @@ FastGPT 商业版共包含了2个应用(fastgpt, fastgpt-plus)和2个数据 打开对应的应用,点击外网访问地址。 -![](/imgs/onsealos3.png) +![](../../../public/imgs/onsealos3.png) ### 配置自定义域名 点击对应应用的变更->点击自定义域名->填写域名-> 操作域名 Cname -> 确认 -> 确认变。 -![](/imgs/onsealos4.png) +![](../../../public/imgs/onsealos4.png) ### 如何修改配置文件 打开 Sealos 的应用管理 -> 找到对应的应用 -> 变更 -> 往下拉到高级配置,里面有个配置文件 -> 新增或点击对应的配置文件可以进行编辑 -> 点击右上角确认变。 -![](/imgs/onsealos5.png) +![](../../../public/imgs/onsealos5.png) -[配置文件参考](/docs/self-host/config/json) +[配置文件参考](../config/json.mdx) ### 修改站点名称以及 favicon @@ -160,16 +160,16 @@ HOME_URL=/dashboard/agent SYSTEM_FAVICON 可以是一个网络地址 -![](/imgs/onsealos6.png) +![](../../../public/imgs/onsealos6.png) ### 挂载logo 目前暂时无法 把浏览器上的logo替换。仅支持svg,待后续可视化做了后可以全部替换。 新增一个挂载文件,文件名为:/app/projects/app/public/icon/logo.svg ,值为 svg 对应的值。 -![](/imgs/onsealos7.png) +![](../../../public/imgs/onsealos7.png) -![](/imgs/onsealos8.png) +![](../../../public/imgs/onsealos8.png) ### 商业版镜像配置文件 @@ -184,4 +184,4 @@ SYSTEM_FAVICON 可以是一个网络地址 ### One API 使用 -[参考 OneAPI 使用步骤](/docs/self-host/config/model/one-api/) +[参考 OneAPI 使用步骤](../config/model/intro.mdx) diff --git a/document/content/docs/self-host/design/dataset.en.mdx b/document/content/self-host/design/dataset.en.mdx similarity index 100% rename from document/content/docs/self-host/design/dataset.en.mdx rename to document/content/self-host/design/dataset.en.mdx diff --git a/document/content/docs/self-host/design/dataset.mdx b/document/content/self-host/design/dataset.mdx similarity index 100% rename from document/content/docs/self-host/design/dataset.mdx rename to document/content/self-host/design/dataset.mdx diff --git a/document/content/docs/self-host/design/design_plugin.en.mdx b/document/content/self-host/design/design_plugin.en.mdx similarity index 97% rename from document/content/docs/self-host/design/design_plugin.en.mdx rename to document/content/self-host/design/design_plugin.en.mdx index 4ed8407cbf..11e5344f75 100644 --- a/document/content/docs/self-host/design/design_plugin.en.mdx +++ b/document/content/self-host/design/design_plugin.en.mdx @@ -50,7 +50,7 @@ Key goals of the split: - **lib**: Library files with utility functions - **test**: Tests -For system tool structure, see [How to Develop System Plugins](/docs/introduction/guide/plugins/dev_system_tool). +For system tool structure, see [How to Develop System Plugins](../../introduction/guide/plugins/dev_system_tool.en.mdx). ## Technical Details diff --git a/document/content/docs/self-host/design/design_plugin.mdx b/document/content/self-host/design/design_plugin.mdx similarity index 97% rename from document/content/docs/self-host/design/design_plugin.mdx rename to document/content/self-host/design/design_plugin.mdx index f0996dae4e..b4cdb9e8e4 100644 --- a/document/content/docs/self-host/design/design_plugin.mdx +++ b/document/content/self-host/design/design_plugin.mdx @@ -52,7 +52,7 @@ description: FastGPT 系统插件设计方案 - **lib**: 库文件,提供工具函数和类库 - **test**: 测试相关 -系统工具的结构可以参考 [如何开发系统插件](/docs/introduction/guide/plugins/dev_system_tool)。 +系统工具的结构可以参考 [如何开发系统插件](../../introduction/guide/plugins/dev_system_tool.mdx)。 ## 技术细节 diff --git a/document/content/docs/self-host/design/meta.en.json b/document/content/self-host/design/meta.en.json similarity index 100% rename from document/content/docs/self-host/design/meta.en.json rename to document/content/self-host/design/meta.en.json diff --git a/document/content/docs/self-host/design/meta.json b/document/content/self-host/design/meta.json similarity index 100% rename from document/content/docs/self-host/design/meta.json rename to document/content/self-host/design/meta.json diff --git a/document/content/docs/self-host/dev.en.mdx b/document/content/self-host/dev.en.mdx similarity index 98% rename from document/content/docs/self-host/dev.en.mdx rename to document/content/self-host/dev.en.mdx index a1da66e85b..2ce7f85888 100644 --- a/document/content/docs/self-host/dev.en.mdx +++ b/document/content/self-host/dev.en.mdx @@ -72,7 +72,7 @@ cp .env.template .env.local **2. config.json Configuration File** -Copy `data/config.json` to create `data/config.local.json`. For detailed parameters, see [Configuration Guide](/docs/self-host/config/model/intro). +Copy `data/config.json` to create `data/config.local.json`. For detailed parameters, see [Configuration Guide](./config/model/intro.en.mdx). ```bash cp data/config.json data/config.local.json diff --git a/document/content/docs/self-host/dev.mdx b/document/content/self-host/dev.mdx similarity index 99% rename from document/content/docs/self-host/dev.mdx rename to document/content/self-host/dev.mdx index c14f55eb9f..e2d8c93878 100644 --- a/document/content/docs/self-host/dev.mdx +++ b/document/content/self-host/dev.mdx @@ -73,7 +73,7 @@ cp .env.template .env.local **2. config.json 配置文件** -复制 `data/config.json` 文件,生成一个 `data/config.local.json` 配置文件,具体配置参数说明,可参考 [config 配置说明](/docs/self-host/config/model/intro) +复制 `data/config.json` 文件,生成一个 `data/config.local.json` 配置文件,具体配置参数说明,可参考 [config 配置说明](./config/model/intro.mdx) ```bash cp data/config.json data/config.local.json diff --git a/document/content/docs/self-host/index.en.mdx b/document/content/self-host/index.en.mdx similarity index 70% rename from document/content/docs/self-host/index.en.mdx rename to document/content/self-host/index.en.mdx index b1ae269611..4e2feb8260 100644 --- a/document/content/docs/self-host/index.en.mdx +++ b/document/content/self-host/index.en.mdx @@ -5,4 +5,4 @@ description: FastGPT Self-Host import { Redirect } from '@/components/docs/Redirect'; - + diff --git a/document/content/docs/self-host/index.mdx b/document/content/self-host/index.mdx similarity index 70% rename from document/content/docs/self-host/index.mdx rename to document/content/self-host/index.mdx index dcb86f3c28..6d67d0f5c5 100644 --- a/document/content/docs/self-host/index.mdx +++ b/document/content/self-host/index.mdx @@ -5,4 +5,4 @@ description: FastGPT 自部署 import { Redirect } from '@/components/docs/Redirect'; - \ No newline at end of file + diff --git a/document/content/docs/self-host/meta.en.json b/document/content/self-host/meta.en.json similarity index 50% rename from document/content/docs/self-host/meta.en.json rename to document/content/self-host/meta.en.json index c445b10453..bc53cf334c 100644 --- a/document/content/docs/self-host/meta.en.json +++ b/document/content/self-host/meta.en.json @@ -4,22 +4,13 @@ "root": true, "pages": [ "---Getting Started---", - "deploy/docker", - "deploy/sealos", + "...deploy", "dev", "---Configuration---", - "config/model", - "config/object-storage", - "config/json", - "config/signoz", + "...config", "---Troubleshooting---", - "troubleshooting/attention", - "troubleshooting/faq", - "troubleshooting/methods", - "troubleshooting/model-errors", - "troubleshooting/s3-issues", + "...troubleshooting", "---Version Upgrades---", - "upgrading/upgrade-intruction", "...upgrading", "---Other---", "migration", diff --git a/document/content/self-host/meta.json b/document/content/self-host/meta.json new file mode 100644 index 0000000000..2dfa4453a8 --- /dev/null +++ b/document/content/self-host/meta.json @@ -0,0 +1,20 @@ +{ + "title": "自部署", + "description": "FastGPT 自部署使用案例", + "root": true, + "pages": [ + "---开始---", + "...deploy", + "dev", + "---配置说明---", + "...config", + "---故障排查---", + "...troubleshooting", + "---版本升级---", + "...upgrading", + "---其他---", + "migration", + "custom-models", + "design" + ] +} diff --git a/document/content/docs/self-host/migration/docker_db.en.mdx b/document/content/self-host/migration/docker_db.en.mdx similarity index 100% rename from document/content/docs/self-host/migration/docker_db.en.mdx rename to document/content/self-host/migration/docker_db.en.mdx diff --git a/document/content/docs/self-host/migration/docker_db.mdx b/document/content/self-host/migration/docker_db.mdx similarity index 100% rename from document/content/docs/self-host/migration/docker_db.mdx rename to document/content/self-host/migration/docker_db.mdx diff --git a/document/content/docs/self-host/migration/docker_mongo.en.mdx b/document/content/self-host/migration/docker_mongo.en.mdx similarity index 100% rename from document/content/docs/self-host/migration/docker_mongo.en.mdx rename to document/content/self-host/migration/docker_mongo.en.mdx diff --git a/document/content/docs/self-host/migration/docker_mongo.mdx b/document/content/self-host/migration/docker_mongo.mdx similarity index 100% rename from document/content/docs/self-host/migration/docker_mongo.mdx rename to document/content/self-host/migration/docker_mongo.mdx diff --git a/document/content/docs/self-host/migration/meta.en.json b/document/content/self-host/migration/meta.en.json similarity index 100% rename from document/content/docs/self-host/migration/meta.en.json rename to document/content/self-host/migration/meta.en.json diff --git a/document/content/docs/self-host/migration/meta.json b/document/content/self-host/migration/meta.json similarity index 100% rename from document/content/docs/self-host/migration/meta.json rename to document/content/self-host/migration/meta.json diff --git a/document/content/docs/self-host/troubleshooting/attention.en.mdx b/document/content/self-host/troubleshooting/attention.en.mdx similarity index 100% rename from document/content/docs/self-host/troubleshooting/attention.en.mdx rename to document/content/self-host/troubleshooting/attention.en.mdx diff --git a/document/content/docs/self-host/troubleshooting/attention.mdx b/document/content/self-host/troubleshooting/attention.mdx similarity index 100% rename from document/content/docs/self-host/troubleshooting/attention.mdx rename to document/content/self-host/troubleshooting/attention.mdx diff --git a/document/content/docs/self-host/troubleshooting/faq.en.mdx b/document/content/self-host/troubleshooting/faq.en.mdx similarity index 97% rename from document/content/docs/self-host/troubleshooting/faq.en.mdx rename to document/content/self-host/troubleshooting/faq.en.mdx index cc076a8047..5216ef2629 100644 --- a/document/content/docs/self-host/troubleshooting/faq.en.mdx +++ b/document/content/self-host/troubleshooting/faq.en.mdx @@ -13,7 +13,7 @@ description: FastGPT Self-Hosting General Troubleshooting ### (2)If deployed via sealos, are there no limitations of local deployment? -![](/imgs/faq1.png) +![](../../../public/imgs/faq1.png) This is the length limit of the indexing model. It is the same regardless of the deployment method, but the configuration of different indexing models is different, and parameters can be modified in the background. --- @@ -24,13 +24,13 @@ Mount the verification file to the specified location: /app/projects/app/public/ Then restart. For example: -![](/imgs/faq2.png) +![](../../../public/imgs/faq2.png) --- ### (4)Database port 3306 is occupied, service startup failed -![](/imgs/faq3.png) +![](../../../public/imgs/faq3.png) Change the port mapping to 3307 or similar, for example 3307:3306. diff --git a/document/content/docs/self-host/troubleshooting/faq.mdx b/document/content/self-host/troubleshooting/faq.mdx similarity index 97% rename from document/content/docs/self-host/troubleshooting/faq.mdx rename to document/content/self-host/troubleshooting/faq.mdx index 2856bed383..724f90bf18 100644 --- a/document/content/docs/self-host/troubleshooting/faq.mdx +++ b/document/content/self-host/troubleshooting/faq.mdx @@ -13,7 +13,7 @@ description: FastGPT 私有部署常见问题排查方式 ### (2)通过sealos部署的话,是否没有本地部署的一些限制? -![](/imgs/faq1.png) +![](../../../public/imgs/faq1.png) 这是索引模型的长度限制,通过任何方式部署都一样的,但不同索引模型的配置不一样,可以在后台修改参数。 --- @@ -24,13 +24,13 @@ description: FastGPT 私有部署常见问题排查方式 然后重启。例如: -![](/imgs/faq2.png) +![](../../../public/imgs/faq2.png) --- ### (4)数据库3306端口被占用了,启动服务失败 -![](/imgs/faq3.png) +![](../../../public/imgs/faq3.png) 把端口映射改成 3307 之类的,例如 3307:3306。 diff --git a/document/content/self-host/troubleshooting/meta.en.json b/document/content/self-host/troubleshooting/meta.en.json new file mode 100644 index 0000000000..b9fa63c282 --- /dev/null +++ b/document/content/self-host/troubleshooting/meta.en.json @@ -0,0 +1,5 @@ +{ + "title": "Troubleshooting", + "description": "Common issues and troubleshooting methods for FastGPT self-hosting", + "pages": ["attention", "faq", "methods", "model-errors", "s3-issues"] +} diff --git a/document/content/self-host/troubleshooting/meta.json b/document/content/self-host/troubleshooting/meta.json new file mode 100644 index 0000000000..797fa0209e --- /dev/null +++ b/document/content/self-host/troubleshooting/meta.json @@ -0,0 +1,5 @@ +{ + "title": "故障排查", + "description": "FastGPT 自部署常见问题与排查方法", + "pages": ["attention", "faq", "methods", "model-errors", "s3-issues"] +} diff --git a/document/content/docs/self-host/troubleshooting/methods.en.mdx b/document/content/self-host/troubleshooting/methods.en.mdx similarity index 83% rename from document/content/docs/self-host/troubleshooting/methods.en.mdx rename to document/content/self-host/troubleshooting/methods.en.mdx index 4c13c1e54f..24be1bb594 100644 --- a/document/content/docs/self-host/troubleshooting/methods.en.mdx +++ b/document/content/self-host/troubleshooting/methods.en.mdx @@ -19,9 +19,3 @@ You can first look for [Issue](https://github.com/labring/FastGPT/issues), or ra When a frontend error occurs, the page will crash and prompt to check the console log. You can open the browser console and view the log in `console`. You can also click the hyperlink of the corresponding log, which will prompt to the specific error file. You can provide these detailed error information to facilitate troubleshooting. --- - -### (3) OneAPI Errors - -Those with `requestId` are OneAPI prompts errors, mostly due to model interface errors. You can refer to [OneAPI Common Errors](/docs/self-host/faq/#三常见的-oneapi-错误) - ---- diff --git a/document/content/docs/self-host/troubleshooting/methods.mdx b/document/content/self-host/troubleshooting/methods.mdx similarity index 80% rename from document/content/docs/self-host/troubleshooting/methods.mdx rename to document/content/self-host/troubleshooting/methods.mdx index 101103dd70..1f5d30fb6c 100644 --- a/document/content/docs/self-host/troubleshooting/methods.mdx +++ b/document/content/self-host/troubleshooting/methods.mdx @@ -19,9 +19,3 @@ description: FastGPT 私有部署常见问题排查方式 前端报错时,页面会出现崩溃,并提示检查控制台日志。可以打开浏览器控制台,并查看`console`中的 log 日志。还可以点击对应 log 的超链接,会提示到具体错误文件,可以把这些详细错误信息提供,方便排查。 --- - -### (3)OneAPI 错误 - -带有`requestId`的,都是 OneAPI 提示错误,大部分都是因为模型接口报错。可以参考 [OneAPI 常见错误](/docs/self-host/faq/#三常见的-oneapi-错误) - ---- \ No newline at end of file diff --git a/document/content/docs/self-host/troubleshooting/model-errors.en.mdx b/document/content/self-host/troubleshooting/model-errors.en.mdx similarity index 100% rename from document/content/docs/self-host/troubleshooting/model-errors.en.mdx rename to document/content/self-host/troubleshooting/model-errors.en.mdx diff --git a/document/content/docs/self-host/troubleshooting/model-errors.mdx b/document/content/self-host/troubleshooting/model-errors.mdx similarity index 100% rename from document/content/docs/self-host/troubleshooting/model-errors.mdx rename to document/content/self-host/troubleshooting/model-errors.mdx diff --git a/document/content/docs/self-host/troubleshooting/s3-issues.en.mdx b/document/content/self-host/troubleshooting/s3-issues.en.mdx similarity index 92% rename from document/content/docs/self-host/troubleshooting/s3-issues.en.mdx rename to document/content/self-host/troubleshooting/s3-issues.en.mdx index c2fd34436b..32aa2a6942 100644 --- a/document/content/docs/self-host/troubleshooting/s3-issues.en.mdx +++ b/document/content/self-host/troubleshooting/s3-issues.en.mdx @@ -9,7 +9,7 @@ description: FastGPT Self-Hosting Common S3 Issues Troubleshooting - error: Error: getaddrinfo ENOTFOUND Example -- ![](/imgs/faq4.png) +- ![](../../../public/imgs/faq4.png) ### Possible Errors - STORAGE_S3_FORCE_PATH_STYLE configuration error @@ -22,7 +22,7 @@ Example ## 2. Upload conversation file / knowledge base file error Example -- ![](/imgs/faq5.png) +- ![](../../../public/imgs/faq5.png) ### 2.1 SignatureDoesNotMatched - Signature inconsistency, mostly due to Nginx configuration error diff --git a/document/content/docs/self-host/troubleshooting/s3-issues.mdx b/document/content/self-host/troubleshooting/s3-issues.mdx similarity index 92% rename from document/content/docs/self-host/troubleshooting/s3-issues.mdx rename to document/content/self-host/troubleshooting/s3-issues.mdx index 7285255e24..3fc131c766 100644 --- a/document/content/docs/self-host/troubleshooting/s3-issues.mdx +++ b/document/content/self-host/troubleshooting/s3-issues.mdx @@ -9,7 +9,7 @@ description: FastGPT 私有部署存储桶问题排查方式 - error: Error: getaddrinfo ENOTFOUND 示例 -- ![](/imgs/faq4.png) +- ![](../../../public/imgs/faq4.png) ### 可能的错误 - STORAGE_S3_FORCE_PATH_STYLE 配置错误 @@ -22,7 +22,7 @@ description: FastGPT 私有部署存储桶问题排查方式 ## 2. 上传对话文件 / 知识库文件报错 示例 -- ![](/imgs/faq5.png) +- ![](../../../public/imgs/faq5.png) ### 2.1 SignatureDoesNotMatched - 签名不一致,大部分情况是因为 Nginx 配置错误 diff --git a/document/content/docs/self-host/upgrading/4-12/4120.en.mdx b/document/content/self-host/upgrading/4-12/4120.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/4120.en.mdx rename to document/content/self-host/upgrading/4-12/4120.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-12/4120.mdx b/document/content/self-host/upgrading/4-12/4120.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/4120.mdx rename to document/content/self-host/upgrading/4-12/4120.mdx diff --git a/document/content/docs/self-host/upgrading/4-12/4121.en.mdx b/document/content/self-host/upgrading/4-12/4121.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/4121.en.mdx rename to document/content/self-host/upgrading/4-12/4121.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-12/4121.mdx b/document/content/self-host/upgrading/4-12/4121.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/4121.mdx rename to document/content/self-host/upgrading/4-12/4121.mdx diff --git a/document/content/docs/self-host/upgrading/4-12/4122.en.mdx b/document/content/self-host/upgrading/4-12/4122.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/4122.en.mdx rename to document/content/self-host/upgrading/4-12/4122.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-12/4122.mdx b/document/content/self-host/upgrading/4-12/4122.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/4122.mdx rename to document/content/self-host/upgrading/4-12/4122.mdx diff --git a/document/content/docs/self-host/upgrading/4-12/4123.en.mdx b/document/content/self-host/upgrading/4-12/4123.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/4123.en.mdx rename to document/content/self-host/upgrading/4-12/4123.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-12/4123.mdx b/document/content/self-host/upgrading/4-12/4123.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/4123.mdx rename to document/content/self-host/upgrading/4-12/4123.mdx diff --git a/document/content/docs/self-host/upgrading/4-12/4124.en.mdx b/document/content/self-host/upgrading/4-12/4124.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/4124.en.mdx rename to document/content/self-host/upgrading/4-12/4124.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-12/4124.mdx b/document/content/self-host/upgrading/4-12/4124.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/4124.mdx rename to document/content/self-host/upgrading/4-12/4124.mdx diff --git a/document/content/docs/self-host/upgrading/4-12/meta.en.json b/document/content/self-host/upgrading/4-12/meta.en.json similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/meta.en.json rename to document/content/self-host/upgrading/4-12/meta.en.json diff --git a/document/content/docs/self-host/upgrading/4-12/meta.json b/document/content/self-host/upgrading/4-12/meta.json similarity index 100% rename from document/content/docs/self-host/upgrading/4-12/meta.json rename to document/content/self-host/upgrading/4-12/meta.json diff --git a/document/content/docs/self-host/upgrading/4-13/4130.en.mdx b/document/content/self-host/upgrading/4-13/4130.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-13/4130.en.mdx rename to document/content/self-host/upgrading/4-13/4130.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-13/4130.mdx b/document/content/self-host/upgrading/4-13/4130.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-13/4130.mdx rename to document/content/self-host/upgrading/4-13/4130.mdx diff --git a/document/content/docs/self-host/upgrading/4-13/4131.en.mdx b/document/content/self-host/upgrading/4-13/4131.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-13/4131.en.mdx rename to document/content/self-host/upgrading/4-13/4131.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-13/4131.mdx b/document/content/self-host/upgrading/4-13/4131.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-13/4131.mdx rename to document/content/self-host/upgrading/4-13/4131.mdx diff --git a/document/content/docs/self-host/upgrading/4-13/4132.en.mdx b/document/content/self-host/upgrading/4-13/4132.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-13/4132.en.mdx rename to document/content/self-host/upgrading/4-13/4132.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-13/4132.mdx b/document/content/self-host/upgrading/4-13/4132.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-13/4132.mdx rename to document/content/self-host/upgrading/4-13/4132.mdx diff --git a/document/content/docs/self-host/upgrading/4-13/meta.en.json b/document/content/self-host/upgrading/4-13/meta.en.json similarity index 100% rename from document/content/docs/self-host/upgrading/4-13/meta.en.json rename to document/content/self-host/upgrading/4-13/meta.en.json diff --git a/document/content/docs/self-host/upgrading/4-13/meta.json b/document/content/self-host/upgrading/4-13/meta.json similarity index 100% rename from document/content/docs/self-host/upgrading/4-13/meta.json rename to document/content/self-host/upgrading/4-13/meta.json diff --git a/document/content/docs/self-host/upgrading/4-14/4140.en.mdx b/document/content/self-host/upgrading/4-14/4140.en.mdx similarity index 98% rename from document/content/docs/self-host/upgrading/4-14/4140.en.mdx rename to document/content/self-host/upgrading/4-14/4140.en.mdx index f132dd8174..66b32d4003 100644 --- a/document/content/docs/self-host/upgrading/4-14/4140.en.mdx +++ b/document/content/self-host/upgrading/4-14/4140.en.mdx @@ -42,7 +42,7 @@ Starting from V4.14.0, the fastgpt-plugin image only provides the runtime enviro In addition to installation, you can also sort tools, set default installations, manage tags, and more. -![alt text](/imgs/image-121.png) +![alt text](../../../../public/imgs/image-121.png) ## New Features diff --git a/document/content/docs/self-host/upgrading/4-14/4140.mdx b/document/content/self-host/upgrading/4-14/4140.mdx similarity index 98% rename from document/content/docs/self-host/upgrading/4-14/4140.mdx rename to document/content/self-host/upgrading/4-14/4140.mdx index 7ff21216ca..031bff5b52 100644 --- a/document/content/docs/self-host/upgrading/4-14/4140.mdx +++ b/document/content/self-host/upgrading/4-14/4140.mdx @@ -42,7 +42,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv4140' \ 除了安装外,还可对工具进行排序、默认安装、标签管理等。 -![alt text](/imgs/image-121.png) +![alt text](../../../../public/imgs/image-121.png) ## 🚀 新增内容 diff --git a/document/content/docs/self-host/upgrading/4-14/4141.en.mdx b/document/content/self-host/upgrading/4-14/4141.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4141.en.mdx rename to document/content/self-host/upgrading/4-14/4141.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4141.mdx b/document/content/self-host/upgrading/4-14/4141.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4141.mdx rename to document/content/self-host/upgrading/4-14/4141.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41410.en.mdx b/document/content/self-host/upgrading/4-14/41410.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41410.en.mdx rename to document/content/self-host/upgrading/4-14/41410.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41410.mdx b/document/content/self-host/upgrading/4-14/41410.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41410.mdx rename to document/content/self-host/upgrading/4-14/41410.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41411.en.mdx b/document/content/self-host/upgrading/4-14/41411.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41411.en.mdx rename to document/content/self-host/upgrading/4-14/41411.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41411.mdx b/document/content/self-host/upgrading/4-14/41411.mdx similarity index 72% rename from document/content/docs/self-host/upgrading/4-14/41411.mdx rename to document/content/self-host/upgrading/4-14/41411.mdx index fc5d4ce24b..8855cfeef1 100644 --- a/document/content/docs/self-host/upgrading/4-14/41411.mdx +++ b/document/content/self-host/upgrading/4-14/41411.mdx @@ -3,6 +3,17 @@ title: 'V4.14.11' description: 'FastGPT V4.14.11 更新说明' --- +## 版本命名调整 + +从 4.14.11 开始,为了区分稳定版和快速迭代版,对版本命名进行了调整,未来将按以下方式进行版本命名: + +1. 维护 2 个稳定版本。例如当前迭代功能处于 4.16.x 版本,则会维护 4.14.x 和 4.15.x 两个文档版本。 +2. 稳定版本命名不带后缀,例如:4.14.11, 4.14.12, 4.15.0, 4.15.1。如果 4.14.11 有问题,会修复后发布 4.14.12,并同步修复到 4.15.x 的稳定版,以确保修复问题同时不引入新的功能。 +3. 快速迭代版本命名带后缀,例如:4.16.0-beta.1, 4.16.0-beta.2, 4.16.0-beta.3。 +4. 迭代版本约 2 个月发布一次稳定版,并且会提供一个聚合的升级脚本,用户只需要执行一次请求,即可完成所有迭代版本的升级。 + +总结来说,后续用户可以直接升级不带 beta 后缀的稳定版本,以确保稳定性,官方会单独发布修复版本并确保不会引入新功能。 + ## 升级指南 ### 1. 更新镜像 tag diff --git a/document/content/docs/self-host/upgrading/4-14/41412.en.mdx b/document/content/self-host/upgrading/4-14/41412.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41412.en.mdx rename to document/content/self-host/upgrading/4-14/41412.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41412.mdx b/document/content/self-host/upgrading/4-14/41412.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41412.mdx rename to document/content/self-host/upgrading/4-14/41412.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41413.en.mdx b/document/content/self-host/upgrading/4-14/41413.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41413.en.mdx rename to document/content/self-host/upgrading/4-14/41413.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41413.mdx b/document/content/self-host/upgrading/4-14/41413.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41413.mdx rename to document/content/self-host/upgrading/4-14/41413.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41414.en.mdx b/document/content/self-host/upgrading/4-14/41414.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41414.en.mdx rename to document/content/self-host/upgrading/4-14/41414.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41414.mdx b/document/content/self-host/upgrading/4-14/41414.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41414.mdx rename to document/content/self-host/upgrading/4-14/41414.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41415.en.mdx b/document/content/self-host/upgrading/4-14/41415.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41415.en.mdx rename to document/content/self-host/upgrading/4-14/41415.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41415.mdx b/document/content/self-host/upgrading/4-14/41415.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41415.mdx rename to document/content/self-host/upgrading/4-14/41415.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4142.en.mdx b/document/content/self-host/upgrading/4-14/4142.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4142.en.mdx rename to document/content/self-host/upgrading/4-14/4142.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4142.mdx b/document/content/self-host/upgrading/4-14/4142.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4142.mdx rename to document/content/self-host/upgrading/4-14/4142.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4143.en.mdx b/document/content/self-host/upgrading/4-14/4143.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4143.en.mdx rename to document/content/self-host/upgrading/4-14/4143.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4143.mdx b/document/content/self-host/upgrading/4-14/4143.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4143.mdx rename to document/content/self-host/upgrading/4-14/4143.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4144.en.mdx b/document/content/self-host/upgrading/4-14/4144.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4144.en.mdx rename to document/content/self-host/upgrading/4-14/4144.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4144.mdx b/document/content/self-host/upgrading/4-14/4144.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4144.mdx rename to document/content/self-host/upgrading/4-14/4144.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4145.en.mdx b/document/content/self-host/upgrading/4-14/4145.en.mdx similarity index 98% rename from document/content/docs/self-host/upgrading/4-14/4145.en.mdx rename to document/content/self-host/upgrading/4-14/4145.en.mdx index 58868bef11..0894e223bc 100644 --- a/document/content/docs/self-host/upgrading/4-14/4145.en.mdx +++ b/document/content/self-host/upgrading/4-14/4145.en.mdx @@ -7,7 +7,7 @@ description: 'FastGPT V4.14.5 Release Notes' ### 1. Update Storage Bucket Environment Variables -This version adds native support for OSS and COS in addition to MinIO, so the related environment variables need to be renamed. Below is the configuration for MinIO. For other providers, refer to [Object Storage Configuration](/docs/self-host/config/object-storage). +This version adds native support for OSS and COS in addition to MinIO, so the related environment variables need to be renamed. Below is the configuration for MinIO. For other providers, refer to [Object Storage Configuration](../../config/object-storage.en.mdx). **New Variables** diff --git a/document/content/docs/self-host/upgrading/4-14/4145.mdx b/document/content/self-host/upgrading/4-14/4145.mdx similarity index 98% rename from document/content/docs/self-host/upgrading/4-14/4145.mdx rename to document/content/self-host/upgrading/4-14/4145.mdx index c5aceaee82..411974ce0c 100644 --- a/document/content/docs/self-host/upgrading/4-14/4145.mdx +++ b/document/content/self-host/upgrading/4-14/4145.mdx @@ -7,7 +7,7 @@ description: 'FastGPT V4.14.5 更新说明' ### 1. 修改存储桶环境变量 -该版本除了支持 minio 以外,还增加支持了原生 OSS 和 COS, 所以需要修改相关环境变量修改成新的命名。下面是 Minio 的配置参数,其他厂商配置,可参考[对象存储配置问题](/docs/self-host/config/object-storage) +该版本除了支持 minio 以外,还增加支持了原生 OSS 和 COS, 所以需要修改相关环境变量修改成新的命名。下面是 Minio 的配置参数,其他厂商配置,可参考[对象存储配置问题](../../config/object-storage.mdx) **新增变量** diff --git a/document/content/docs/self-host/upgrading/4-14/41451.en.mdx b/document/content/self-host/upgrading/4-14/41451.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41451.en.mdx rename to document/content/self-host/upgrading/4-14/41451.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41451.mdx b/document/content/self-host/upgrading/4-14/41451.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/41451.mdx rename to document/content/self-host/upgrading/4-14/41451.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4146.en.mdx b/document/content/self-host/upgrading/4-14/4146.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4146.en.mdx rename to document/content/self-host/upgrading/4-14/4146.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4146.mdx b/document/content/self-host/upgrading/4-14/4146.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4146.mdx rename to document/content/self-host/upgrading/4-14/4146.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4147.en.mdx b/document/content/self-host/upgrading/4-14/4147.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4147.en.mdx rename to document/content/self-host/upgrading/4-14/4147.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4147.mdx b/document/content/self-host/upgrading/4-14/4147.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4147.mdx rename to document/content/self-host/upgrading/4-14/4147.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4148.en.mdx b/document/content/self-host/upgrading/4-14/4148.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4148.en.mdx rename to document/content/self-host/upgrading/4-14/4148.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4148.mdx b/document/content/self-host/upgrading/4-14/4148.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4148.mdx rename to document/content/self-host/upgrading/4-14/4148.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/41481.en.mdx b/document/content/self-host/upgrading/4-14/41481.en.mdx similarity index 94% rename from document/content/docs/self-host/upgrading/4-14/41481.en.mdx rename to document/content/self-host/upgrading/4-14/41481.en.mdx index e11fd59fcd..3f1edc9df0 100644 --- a/document/content/docs/self-host/upgrading/4-14/41481.en.mdx +++ b/document/content/self-host/upgrading/4-14/41481.en.mdx @@ -1,5 +1,5 @@ --- -title: 'V4.14.8.1 (In Progress)' +title: 'V4.14.8.1' description: 'FastGPT V4.14.8.1 Update Notes' --- diff --git a/document/content/docs/self-host/upgrading/4-14/41481.mdx b/document/content/self-host/upgrading/4-14/41481.mdx similarity index 93% rename from document/content/docs/self-host/upgrading/4-14/41481.mdx rename to document/content/self-host/upgrading/4-14/41481.mdx index a9b5da6bfa..09ff2893ed 100644 --- a/document/content/docs/self-host/upgrading/4-14/41481.mdx +++ b/document/content/self-host/upgrading/4-14/41481.mdx @@ -1,5 +1,5 @@ --- -title: 'V4.14.8.1(进行中)' +title: 'V4.14.8.1' description: 'FastGPT V4.14.8.1 更新说明' --- diff --git a/document/content/docs/self-host/upgrading/4-14/4149.en.mdx b/document/content/self-host/upgrading/4-14/4149.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4149.en.mdx rename to document/content/self-host/upgrading/4-14/4149.en.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/4149.mdx b/document/content/self-host/upgrading/4-14/4149.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-14/4149.mdx rename to document/content/self-host/upgrading/4-14/4149.mdx diff --git a/document/content/docs/self-host/upgrading/4-14/meta.en.json b/document/content/self-host/upgrading/4-14/meta.en.json similarity index 95% rename from document/content/docs/self-host/upgrading/4-14/meta.en.json rename to document/content/self-host/upgrading/4-14/meta.en.json index af395a0d37..a75b38e5f6 100644 --- a/document/content/docs/self-host/upgrading/4-14/meta.en.json +++ b/document/content/self-host/upgrading/4-14/meta.en.json @@ -9,6 +9,7 @@ "41411", "41410", "4149", + "41481", "4148", "4147", "4146", diff --git a/document/content/docs/self-host/upgrading/4-14/meta.json b/document/content/self-host/upgrading/4-14/meta.json similarity index 95% rename from document/content/docs/self-host/upgrading/4-14/meta.json rename to document/content/self-host/upgrading/4-14/meta.json index af395a0d37..a75b38e5f6 100644 --- a/document/content/docs/self-host/upgrading/4-14/meta.json +++ b/document/content/self-host/upgrading/4-14/meta.json @@ -9,6 +9,7 @@ "41411", "41410", "4149", + "41481", "4148", "4147", "4146", diff --git a/document/content/docs/self-host/upgrading/4-15/4150.mdx b/document/content/self-host/upgrading/4-15/4150.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/4-15/4150.mdx rename to document/content/self-host/upgrading/4-15/4150.mdx diff --git a/document/content/docs/self-host/upgrading/4-15/meta.en.json b/document/content/self-host/upgrading/4-15/meta.en.json similarity index 100% rename from document/content/docs/self-host/upgrading/4-15/meta.en.json rename to document/content/self-host/upgrading/4-15/meta.en.json diff --git a/document/content/docs/self-host/upgrading/4-15/meta.json b/document/content/self-host/upgrading/4-15/meta.json similarity index 100% rename from document/content/docs/self-host/upgrading/4-15/meta.json rename to document/content/self-host/upgrading/4-15/meta.json diff --git a/document/content/docs/self-host/upgrading/meta.en.json b/document/content/self-host/upgrading/meta.en.json similarity index 50% rename from document/content/docs/self-host/upgrading/meta.en.json rename to document/content/self-host/upgrading/meta.en.json index d26749060f..86a6ec3ed2 100644 --- a/document/content/docs/self-host/upgrading/meta.en.json +++ b/document/content/self-host/upgrading/meta.en.json @@ -1,5 +1,5 @@ { "title": "Version History", "description": "FastGPT version history", - "pages": ["4-15", "4-14", "4-13", "4-12", "outdated"] + "pages": ["upgrade-intruction", "4-15", "4-14", "4-13", "4-12", "outdated"] } diff --git a/document/content/self-host/upgrading/meta.json b/document/content/self-host/upgrading/meta.json new file mode 100644 index 0000000000..b658d355a2 --- /dev/null +++ b/document/content/self-host/upgrading/meta.json @@ -0,0 +1,5 @@ +{ + "title": "版本列表", + "description": "FastGPT 版本列表", + "pages": ["upgrade-intruction", "4-15", "4-14", "4-13", "4-12", "outdated"] +} diff --git a/document/content/docs/self-host/upgrading/outdated/40.en.mdx b/document/content/self-host/upgrading/outdated/40.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/40.en.mdx rename to document/content/self-host/upgrading/outdated/40.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/40.mdx b/document/content/self-host/upgrading/outdated/40.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/40.mdx rename to document/content/self-host/upgrading/outdated/40.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/41.en.mdx b/document/content/self-host/upgrading/outdated/41.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/41.en.mdx rename to document/content/self-host/upgrading/outdated/41.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/41.mdx b/document/content/self-host/upgrading/outdated/41.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/41.mdx rename to document/content/self-host/upgrading/outdated/41.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4100.en.mdx b/document/content/self-host/upgrading/outdated/4100.en.mdx similarity index 88% rename from document/content/docs/self-host/upgrading/outdated/4100.en.mdx rename to document/content/self-host/upgrading/outdated/4100.en.mdx index 9fef64827d..ef6f025814 100644 --- a/document/content/docs/self-host/upgrading/outdated/4100.en.mdx +++ b/document/content/self-host/upgrading/outdated/4100.en.mdx @@ -23,7 +23,7 @@ PLUGIN_TOKEN=the AUTH_TOKEN value you just set - In the Sealos desktop `Object Storage`, create a new bucket with `publicRead` permissions and obtain the relevant credentials: -![](/imgs/sealos-s3.png) +![](../../../../public/imgs/sealos-s3.png) - Deploy the `fastgpt-plugin` service using the image `registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-plugin:v0.1.0`. Expose internal port 3000 (no public access required) and set the following environment variables: @@ -53,5 +53,5 @@ PLUGIN_TOKEN=the AUTH_TOKEN value you just set ## New Features 1. Standalone system tool service with support for independent development and debugging of system tools. -2. Updated [System Tool Development Guide](/docs/introduction/guide/plugins/dev_system_tool/). -3. Updated [System Tool Design Documentation](/docs/introduction/guide/plugins/design_plugin/). +2. Updated [System Tool Development Guide](../../../introduction/guide/plugins/dev_system_tool.en.mdx). +3. Updated [System Tool Design Documentation](../../../introduction/guide/plugins/dev_system_tool.en.mdx). diff --git a/document/content/docs/self-host/upgrading/outdated/4100.mdx b/document/content/self-host/upgrading/outdated/4100.mdx similarity index 86% rename from document/content/docs/self-host/upgrading/outdated/4100.mdx rename to document/content/self-host/upgrading/outdated/4100.mdx index 323dfd1fb9..46b53951fb 100644 --- a/document/content/docs/self-host/upgrading/outdated/4100.mdx +++ b/document/content/self-host/upgrading/outdated/4100.mdx @@ -23,7 +23,7 @@ PLUGIN_TOKEN=刚修改的 AUTH_TOKEN 值 - 在 Sealos 桌面的`对象存储`中,新建一个存储桶,设置`publicRead`权限。并获取相关密钥: -![](/imgs/sealos-s3.png) +![](../../../../public/imgs/sealos-s3.png) - 部署`fastgpt-plugin`服务,镜像`registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-plugin:v0.1.0`,内网暴露端口3000,无需公网访问,设置环境变量: @@ -53,5 +53,5 @@ PLUGIN_TOKEN=刚修改的 AUTH_TOKEN 值 ## 🚀 新增内容 1. 独立系统工具服务,支持系统工具独立开发和调试。 -2. 更新系统工具开发指南[系统工具开发指南](/docs/introduction/guide/plugins/dev_system_tool/)。 -3. 更新[系统工具设计文档](/docs/introduction/guide/plugins/design_plugin/)。 +2. 更新系统工具开发指南[系统工具开发指南](../../../introduction/guide/plugins/dev_system_tool.mdx)。 +3. 更新[系统工具设计文档](../../../introduction/guide/plugins/dev_system_tool.mdx)。 diff --git a/document/content/docs/self-host/upgrading/outdated/4101.en.mdx b/document/content/self-host/upgrading/outdated/4101.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4101.en.mdx rename to document/content/self-host/upgrading/outdated/4101.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4101.mdx b/document/content/self-host/upgrading/outdated/4101.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4101.mdx rename to document/content/self-host/upgrading/outdated/4101.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4110.en.mdx b/document/content/self-host/upgrading/outdated/4110.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4110.en.mdx rename to document/content/self-host/upgrading/outdated/4110.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4110.mdx b/document/content/self-host/upgrading/outdated/4110.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4110.mdx rename to document/content/self-host/upgrading/outdated/4110.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4111.en.mdx b/document/content/self-host/upgrading/outdated/4111.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4111.en.mdx rename to document/content/self-host/upgrading/outdated/4111.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4111.mdx b/document/content/self-host/upgrading/outdated/4111.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4111.mdx rename to document/content/self-host/upgrading/outdated/4111.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/42.en.mdx b/document/content/self-host/upgrading/outdated/42.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/42.en.mdx rename to document/content/self-host/upgrading/outdated/42.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/42.mdx b/document/content/self-host/upgrading/outdated/42.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/42.mdx rename to document/content/self-host/upgrading/outdated/42.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/421.en.mdx b/document/content/self-host/upgrading/outdated/421.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/421.en.mdx rename to document/content/self-host/upgrading/outdated/421.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/421.mdx b/document/content/self-host/upgrading/outdated/421.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/421.mdx rename to document/content/self-host/upgrading/outdated/421.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/43.en.mdx b/document/content/self-host/upgrading/outdated/43.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/43.en.mdx rename to document/content/self-host/upgrading/outdated/43.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/43.mdx b/document/content/self-host/upgrading/outdated/43.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/43.mdx rename to document/content/self-host/upgrading/outdated/43.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/44.en.mdx b/document/content/self-host/upgrading/outdated/44.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/44.en.mdx rename to document/content/self-host/upgrading/outdated/44.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/44.mdx b/document/content/self-host/upgrading/outdated/44.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/44.mdx rename to document/content/self-host/upgrading/outdated/44.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/441.en.mdx b/document/content/self-host/upgrading/outdated/441.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/441.en.mdx rename to document/content/self-host/upgrading/outdated/441.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/441.mdx b/document/content/self-host/upgrading/outdated/441.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/441.mdx rename to document/content/self-host/upgrading/outdated/441.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/442.en.mdx b/document/content/self-host/upgrading/outdated/442.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/442.en.mdx rename to document/content/self-host/upgrading/outdated/442.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/442.mdx b/document/content/self-host/upgrading/outdated/442.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/442.mdx rename to document/content/self-host/upgrading/outdated/442.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/445.en.mdx b/document/content/self-host/upgrading/outdated/445.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/445.en.mdx rename to document/content/self-host/upgrading/outdated/445.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/445.mdx b/document/content/self-host/upgrading/outdated/445.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/445.mdx rename to document/content/self-host/upgrading/outdated/445.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/446.en.mdx b/document/content/self-host/upgrading/outdated/446.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/446.en.mdx rename to document/content/self-host/upgrading/outdated/446.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/446.mdx b/document/content/self-host/upgrading/outdated/446.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/446.mdx rename to document/content/self-host/upgrading/outdated/446.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/447.en.mdx b/document/content/self-host/upgrading/outdated/447.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/447.en.mdx rename to document/content/self-host/upgrading/outdated/447.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/447.mdx b/document/content/self-host/upgrading/outdated/447.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/447.mdx rename to document/content/self-host/upgrading/outdated/447.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/45.en.mdx b/document/content/self-host/upgrading/outdated/45.en.mdx similarity index 95% rename from document/content/docs/self-host/upgrading/outdated/45.en.mdx rename to document/content/self-host/upgrading/outdated/45.en.mdx index 749c51f28e..9a845b625a 100644 --- a/document/content/docs/self-host/upgrading/outdated/45.en.mdx +++ b/document/content/self-host/upgrading/outdated/45.en.mdx @@ -36,8 +36,8 @@ CREATE INDEX CONCURRENTLY vector_index ON modeldata USING hnsw (vector vector_ip | | | | -------------------- | -------------------- | -| ![](/imgs/v45-1.jpg) | ![](/imgs/v45-2.jpg) | -| ![](/imgs/v45-3.jpg) | ![](/imgs/v45-4.jpg) | +| ![](../../../../public/imgs/v45-1.jpg) | ![](../../../../public/imgs/v45-2.jpg) | +| ![](../../../../public/imgs/v45-3.jpg) | ![](../../../../public/imgs/v45-4.jpg) | ## PgVector Upgrade: Docker Compose Deployment @@ -84,4 +84,4 @@ CREATE INDEX CONCURRENTLY vector_index ON modeldata USING hnsw (vector vector_ip ## Configuration File Changes Required -For the latest configuration, refer to: [V4.5 Latest config.json](/docs/self-host/config/json) +For the latest configuration, refer to: [V4.5 Latest config.json](../../config/json.en.mdx) diff --git a/document/content/docs/self-host/upgrading/outdated/45.mdx b/document/content/self-host/upgrading/outdated/45.mdx similarity index 94% rename from document/content/docs/self-host/upgrading/outdated/45.mdx rename to document/content/self-host/upgrading/outdated/45.mdx index 0b5d57af54..bbbf8f1930 100644 --- a/document/content/docs/self-host/upgrading/outdated/45.mdx +++ b/document/content/self-host/upgrading/outdated/45.mdx @@ -36,8 +36,8 @@ CREATE INDEX CONCURRENTLY vector_index ON modeldata USING hnsw (vector vector_ip | | | | -------------------- | -------------------- | -| ![](/imgs/v45-1.jpg) | ![](/imgs/v45-2.jpg) | -| ![](/imgs/v45-3.jpg) | ![](/imgs/v45-4.jpg) | +| ![](../../../../public/imgs/v45-1.jpg) | ![](../../../../public/imgs/v45-2.jpg) | +| ![](../../../../public/imgs/v45-3.jpg) | ![](../../../../public/imgs/v45-4.jpg) | ## PgVector升级:Docker-compose.yml 部署方案 @@ -84,4 +84,4 @@ CREATE INDEX CONCURRENTLY vector_index ON modeldata USING hnsw (vector vector_ip ## 该版本需要修改 `config.json` 文件 -最新配置可参考: [V45版本最新 config.json](/docs/self-host/config/json) +最新配置可参考: [V45版本最新 config.json](../../config/json.mdx) diff --git a/document/content/docs/self-host/upgrading/outdated/451.en.mdx b/document/content/self-host/upgrading/outdated/451.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/451.en.mdx rename to document/content/self-host/upgrading/outdated/451.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/451.mdx b/document/content/self-host/upgrading/outdated/451.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/451.mdx rename to document/content/self-host/upgrading/outdated/451.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/452.en.mdx b/document/content/self-host/upgrading/outdated/452.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/452.en.mdx rename to document/content/self-host/upgrading/outdated/452.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/452.mdx b/document/content/self-host/upgrading/outdated/452.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/452.mdx rename to document/content/self-host/upgrading/outdated/452.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/46.en.mdx b/document/content/self-host/upgrading/outdated/46.en.mdx similarity index 94% rename from document/content/docs/self-host/upgrading/outdated/46.en.mdx rename to document/content/self-host/upgrading/outdated/46.en.mdx index 0a2b96b55d..fad811254e 100644 --- a/document/content/docs/self-host/upgrading/outdated/46.en.mdx +++ b/document/content/self-host/upgrading/outdated/46.en.mdx @@ -9,7 +9,7 @@ description: FastGPT V4.6 Update Update the image to the latest or V4.6 version. For the commercial edition, update to V0.2.1. -For the latest configuration, refer to: [V4.6 Latest config.json](/docs/self-host/config/json). The commercial edition configuration file has also been updated — refer to the latest Lark documentation. +For the latest configuration, refer to: [V4.6 Latest config.json](../../config/json.en.mdx). The commercial edition configuration file has also been updated — refer to the latest Lark documentation. ## 2. Run the Initialization APIs diff --git a/document/content/docs/self-host/upgrading/outdated/46.mdx b/document/content/self-host/upgrading/outdated/46.mdx similarity index 92% rename from document/content/docs/self-host/upgrading/outdated/46.mdx rename to document/content/self-host/upgrading/outdated/46.mdx index 62e8e2df75..def92c831a 100644 --- a/document/content/docs/self-host/upgrading/outdated/46.mdx +++ b/document/content/self-host/upgrading/outdated/46.mdx @@ -9,7 +9,7 @@ description: FastGPT V4.6 更新 更新镜像至 latest 或者 v4.6 版本。商业版镜像更新至 V0.2.1 -最新配置可参考:[V46 版本最新 config.json](/docs/self-host/config/json),商业镜像配置文件也更新,参考最新的飞书文档。 +最新配置可参考:[V46 版本最新 config.json](../../config/json.mdx),商业镜像配置文件也更新,参考最新的飞书文档。 ## 2。执行初始化 API diff --git a/document/content/docs/self-host/upgrading/outdated/461.en.mdx b/document/content/self-host/upgrading/outdated/461.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/461.en.mdx rename to document/content/self-host/upgrading/outdated/461.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/461.mdx b/document/content/self-host/upgrading/outdated/461.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/461.mdx rename to document/content/self-host/upgrading/outdated/461.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/462.en.mdx b/document/content/self-host/upgrading/outdated/462.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/462.en.mdx rename to document/content/self-host/upgrading/outdated/462.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/462.mdx b/document/content/self-host/upgrading/outdated/462.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/462.mdx rename to document/content/self-host/upgrading/outdated/462.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/463.en.mdx b/document/content/self-host/upgrading/outdated/463.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/463.en.mdx rename to document/content/self-host/upgrading/outdated/463.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/463.mdx b/document/content/self-host/upgrading/outdated/463.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/463.mdx rename to document/content/self-host/upgrading/outdated/463.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/464.en.mdx b/document/content/self-host/upgrading/outdated/464.en.mdx similarity index 90% rename from document/content/docs/self-host/upgrading/outdated/464.en.mdx rename to document/content/self-host/upgrading/outdated/464.en.mdx index f5136c495d..20e9608645 100644 --- a/document/content/docs/self-host/upgrading/outdated/464.en.mdx +++ b/document/content/self-host/upgrading/outdated/464.en.mdx @@ -23,12 +23,12 @@ What the initialization does: ## V4.6.4 New Features 1. Rewritten - Share link identity logic, now using localID to track user IDs. -2. New (Commercial edition) - Share link SSO support. With just 3 API endpoints via an authentication URL, you can fully integrate your existing user system. See [Share Link Authentication](/docs/openapi/share/) for details. +2. New (Commercial edition) - Share link SSO support. With just 3 API endpoints via an authentication URL, you can fully integrate your existing user system. See [Share Link Authentication](../../../openapi/share.en.mdx) for details. 3. New - More embedding options for share links, with additional DIY customization. 4. Improved - History module. The old history module has been deprecated — simply enter the value directly in the relevant field. 5. Adjusted - Knowledge base search module topK logic now uses MaxToken calculation, accommodating text chunks of varying lengths. 6. Adjusted - Authentication order to prioritize API keys, preventing cookies from overriding API key authentication. -7. Link fetching now supports multiple selectors. See [Web Site Sync Usage](/docs/introduction/guide/knowledge_base/websync/). +7. Link fetching now supports multiple selectors. See [Web Site Sync Usage](../../../introduction/guide/knowledge_base/websync.en.mdx). 8. Fixed - Image upload authentication issue in share links. 9. Fixed - Mongo connection pool not being released. 10. Fixed - Dataset description (Intro) not updating. diff --git a/document/content/docs/self-host/upgrading/outdated/464.mdx b/document/content/self-host/upgrading/outdated/464.mdx similarity index 91% rename from document/content/docs/self-host/upgrading/outdated/464.mdx rename to document/content/self-host/upgrading/outdated/464.mdx index b3cf5ef310..d5cae738df 100644 --- a/document/content/docs/self-host/upgrading/outdated/464.mdx +++ b/document/content/self-host/upgrading/outdated/464.mdx @@ -23,12 +23,12 @@ curl --location --request POST 'https://{{host}}/api/admin/initv464' \ ## V4.6.4 功能介绍 1. 重写 - 分享链接身份逻辑,采用 localID 记录用户的ID。 -2. 商业版新增 - 分享链接 SSO 方案,通过`身份鉴权`地址,仅需`3个接口`即可完全接入已有用户系统。具体参考[分享链接身份鉴权](/docs/openapi/share/) +2. 商业版新增 - 分享链接 SSO 方案,通过`身份鉴权`地址,仅需`3个接口`即可完全接入已有用户系统。具体参考[分享链接身份鉴权](../../../openapi/share.mdx) 3. 新增 - 分享链接更多嵌入方式提示,更多DIY方式。 4. 优化 - 历史记录模块。弃用旧的历史记录模块,直接在对应地方填写数值即可。 5. 调整 - 知识库搜索模块 topk 逻辑,采用 MaxToken 计算,兼容不同长度的文本块 6. 调整鉴权顺序,提高 apikey 的优先级,避免cookie抢占 apikey 的鉴权。 -7. 链接读取支持多选择器。参考[Web 站点同步用法](/docs/introduction/guide/knowledge_base/websync/) +7. 链接读取支持多选择器。参考[Web 站点同步用法](../../../introduction/guide/knowledge_base/websync.mdx) 8. 修复 - 分享链接图片上传鉴权问题 9. 修复 - Mongo 连接池未释放问题。 10. 修复 - Dataset Intro 无法更新 diff --git a/document/content/docs/self-host/upgrading/outdated/465.en.mdx b/document/content/self-host/upgrading/outdated/465.en.mdx similarity index 71% rename from document/content/docs/self-host/upgrading/outdated/465.en.mdx rename to document/content/self-host/upgrading/outdated/465.en.mdx index 183b6469a9..f592babf3e 100644 --- a/document/content/docs/self-host/upgrading/outdated/465.en.mdx +++ b/document/content/self-host/upgrading/outdated/465.en.mdx @@ -7,7 +7,7 @@ description: FastGPT V4.6.5 Since OpenAI has begun deprecating function calls in favor of tool choice, FastGPT has updated its configuration and invocation methods accordingly. You'll need to make some changes to your configuration file: -[View the latest configuration file](/docs/self-host/config/json/) +[View the latest configuration file](../../config/json.en.mdx) 1. The main change is renaming the `functionCall` field to `toolChoice` in your model configuration. Models with this set to `true` will use OpenAI's tools mode by default; models without it or with it set to `false` will use prompt-based generation. @@ -17,10 +17,10 @@ The question optimization model and content extraction model now share the same ## V4.6.5 New Features -1. New - [Question Optimization node](/docs/introduction/guide/dashboard/workflow/coreferenceresolution/) -2. New - [Text Editor node](/docs/introduction/guide/dashboard/workflow/text_editor/) -3. New - [Classifier node](/docs/introduction/guide/dashboard/workflow/tfswitch//) -4. New - [Custom Feedback node](/docs/introduction/guide/dashboard/workflow/custom_feedback/) +1. New - [Question Optimization node](../../../introduction/guide/dashboard/workflow/coreferenceResolution.en.mdx) +2. New - [Text Editor node](../../../introduction/guide/dashboard/workflow/text_editor.en.mdx) +3. New - [Classifier node](../../../introduction/guide/dashboard/workflow/tfswitch.en.mdx) +4. New - [Custom Feedback node](../../../introduction/guide/dashboard/workflow/custom_feedback.en.mdx) 5. New - The Content Extraction node now supports model selection and field enumerations. 6. Improved - DOCX parsing with table support (tables are converted to Markdown). 7. Improved - Advanced orchestration connection line interactions. diff --git a/document/content/docs/self-host/upgrading/outdated/465.mdx b/document/content/self-host/upgrading/outdated/465.mdx similarity index 66% rename from document/content/docs/self-host/upgrading/outdated/465.mdx rename to document/content/self-host/upgrading/outdated/465.mdx index 388c4b2811..e8c197f43a 100644 --- a/document/content/docs/self-host/upgrading/outdated/465.mdx +++ b/document/content/self-host/upgrading/outdated/465.mdx @@ -7,7 +7,7 @@ description: FastGPT V4.6.5 由于 openai 已开始弃用 function call,改为 toolChoice。FastGPT 同步的修改了对于的配置和调用方式,需要对配置文件做一些修改: -[点击查看最新的配置文件](/docs/self-host/config/json/) +[点击查看最新的配置文件](../../config/json.mdx) 1. 主要是修改模型的`functionCall`字段,改成`toolChoice`即可。设置为`true`的模型,会默认走 openai 的 tools 模式;未设置或设置为`false`的,会走提示词生成模式。 @@ -17,10 +17,10 @@ description: FastGPT V4.6.5 ## V4.6.5 功能介绍 -1. 新增 - [问题优化模块](/docs/introduction/guide/dashboard/workflow/coreferenceresolution/) -2. 新增 - [文本编辑模块](/docs/introduction/guide/dashboard/workflow/text_editor/) -3. 新增 - [判断器模块](/docs/introduction/guide/dashboard/workflow/tfswitch//) -4. 新增 - [自定义反馈模块](/docs/introduction/guide/dashboard/workflow/custom_feedback/) +1. 新增 - [问题优化模块](../../../introduction/guide/dashboard/workflow/coreferenceResolution.mdx) +2. 新增 - [文本编辑模块](../../../introduction/guide/dashboard/workflow/text_editor.mdx) +3. 新增 - [判断器模块](../../../introduction/guide/dashboard/workflow/tfswitch.mdx) +4. 新增 - [自定义反馈模块](../../../introduction/guide/dashboard/workflow/custom_feedback.mdx) 5. 新增 - 【内容提取】模块支持选择模型,以及字段枚举 6. 优化 - docx读取,兼容表格(表格转markdown) 7. 优化 - 高级编排连接线交互 diff --git a/document/content/docs/self-host/upgrading/outdated/466.en.mdx b/document/content/self-host/upgrading/outdated/466.en.mdx similarity index 90% rename from document/content/docs/self-host/upgrading/outdated/466.en.mdx rename to document/content/self-host/upgrading/outdated/466.en.mdx index 1e65f3efb2..0bf3fd9916 100644 --- a/document/content/docs/self-host/upgrading/outdated/466.en.mdx +++ b/document/content/self-host/upgrading/outdated/466.en.mdx @@ -5,7 +5,7 @@ description: FastGPT V4.6.6 ## Configuration Changes -To reduce code duplication, we've made some changes to the configuration file: [View the latest configuration file](/docs/self-host/config/json/) +To reduce code duplication, we've made some changes to the configuration file: [View the latest configuration file](../../config/json.en.mdx) ## Commercial Edition Changes @@ -21,7 +21,7 @@ To reduce code duplication, we've made some changes to the configuration file: [ 1. Check out the [FastGPT 2024 RoadMap](https://github.com/labring/FastGPT?tab=readme-ov-file#-%E5%9C%A8%E7%BA%BF%E4%BD%BF%E7%94%A8). 2. New - HTTP node now supports a JSON editor for request headers. -3. New - [ReRank Model Deployment](/docs/self-host/custom-models/bge-rerank/) +3. New - [ReRank Model Deployment](../../custom-models/bge-rerank.en.mdx) 4. New - Search modes: separated vector semantic search, full-text search, and reranking, with RRF (Reciprocal Rank Fusion) for merging results. 5. Improved - Question classifier prompts with ID-guided classification. Tested with Chinese commercial API models (Baidu, Alibaba, Zhipu, iFlytek) — all work correctly in Prompt mode. 6. UI improvements — the interface will be gradually updated with a new design going forward. diff --git a/document/content/docs/self-host/upgrading/outdated/466.mdx b/document/content/self-host/upgrading/outdated/466.mdx similarity index 90% rename from document/content/docs/self-host/upgrading/outdated/466.mdx rename to document/content/self-host/upgrading/outdated/466.mdx index f47c8364d9..6024c8f292 100644 --- a/document/content/docs/self-host/upgrading/outdated/466.mdx +++ b/document/content/self-host/upgrading/outdated/466.mdx @@ -5,7 +5,7 @@ description: FastGPT V4.6.6 ## 配置文件变更 -为了减少代码重复度,我们对配置文件做了一些修改:[点击查看最新的配置文件](/docs/self-host/config/json/) +为了减少代码重复度,我们对配置文件做了一些修改:[点击查看最新的配置文件](../../config/json.mdx) ## 商业版变更 @@ -21,7 +21,7 @@ description: FastGPT V4.6.6 1. 查看 [FastGPT 2024 RoadMap](https://github.com/labring/FastGPT?tab=readme-ov-file#-%E5%9C%A8%E7%BA%BF%E4%BD%BF%E7%94%A8) 2. 新增 - Http 模块请求头支持 Json 编辑器。 -3. 新增 - [ReRank模型部署](/docs/self-host/custom-models/bge-rerank/) +3. 新增 - [ReRank模型部署](../../custom-models/bge-rerank.mdx) 4. 新增 - 搜索方式:分离向量语义检索,全文检索和重排,通过 RRF 进行排序合并。 5. 优化 - 问题分类提示词,id引导。测试国产商用 api 模型(百度阿里智谱讯飞)使用 Prompt 模式均可分类。 6. UI 优化,未来将逐步替换新的UI设计。 diff --git a/document/content/docs/self-host/upgrading/outdated/467.en.mdx b/document/content/self-host/upgrading/outdated/467.en.mdx similarity index 96% rename from document/content/docs/self-host/upgrading/outdated/467.en.mdx rename to document/content/self-host/upgrading/outdated/467.en.mdx index 48782c7ca5..2242a13bb6 100644 --- a/document/content/docs/self-host/upgrading/outdated/467.en.mdx +++ b/document/content/self-host/upgrading/outdated/467.en.mdx @@ -24,7 +24,7 @@ What the initialization does: 1. Redesigned knowledge base UI with a new import workflow. 2. Optimized knowledge base and chat data indexing. -3. Knowledge base OpenAPI — you can now [manage knowledge bases via API](/docs/openapi/dataset). +3. Knowledge base OpenAPI — you can now [manage knowledge bases via API](../../../openapi/dataset.en.mdx). 4. New - Input field variable hints. After typing `{`, you'll see available variable suggestions. Based on community feedback on advanced orchestration, we plan to improve variable handling in the February release, adding support for node-scoped local variables and more global variables. 5. Improved - Switching teams now saves your selection, so you'll automatically log into that team on your next visit. 6. Fixed - chatId conflicts when using the API for conversations. diff --git a/document/content/docs/self-host/upgrading/outdated/467.mdx b/document/content/self-host/upgrading/outdated/467.mdx similarity index 92% rename from document/content/docs/self-host/upgrading/outdated/467.mdx rename to document/content/self-host/upgrading/outdated/467.mdx index 1377623aaf..5ebed583a9 100644 --- a/document/content/docs/self-host/upgrading/outdated/467.mdx +++ b/document/content/self-host/upgrading/outdated/467.mdx @@ -24,7 +24,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv467' \ 1. 修改了知识库UI及新的导入交互方式。 2. 优化知识库和对话的数据索引。 -3. 知识库 openAPI,支持通过 [API 操作知识库](/docs/openapi/dataset)。 +3. 知识库 openAPI,支持通过 [API 操作知识库](../../../openapi/dataset.mdx)。 4. 新增 - 输入框变量提示。输入 `{` 号后将会获得可用变量提示。根据社区针对高级编排的反馈,我们计划于 2 月份的版本中,优化变量内容,支持模块的局部变量以及更多全局变量写入。 5. 优化 - 切换团队后会保存记录,下次登录时优先登录该团队。 6. 修复 - API 对话时,chatId 冲突问题。 diff --git a/document/content/docs/self-host/upgrading/outdated/468.en.mdx b/document/content/self-host/upgrading/outdated/468.en.mdx similarity index 96% rename from document/content/docs/self-host/upgrading/outdated/468.en.mdx rename to document/content/self-host/upgrading/outdated/468.en.mdx index 1abf735f30..9b7b0d88f8 100644 --- a/document/content/docs/self-host/upgrading/outdated/468.en.mdx +++ b/document/content/self-host/upgrading/outdated/468.en.mdx @@ -67,7 +67,7 @@ docker-compose up -d ## Update Configuration File -Removed duplicate model configurations. All LLM models are now consolidated into a single property. [View the latest configuration file](/docs/self-host/config/json/) +Removed duplicate model configurations. All LLM models are now consolidated into a single property. [View the latest configuration file](../../config/json.en.mdx) ## Commercial Edition Initialization @@ -87,7 +87,7 @@ This will initialize the billing system. For internal use, you can increase the 1. New - Knowledge Base search merge module. 2. New - Redesigned HTTP module with more flexible parameter input. Supports automatic input/output data type conversion (e.g., JSON output is automatically converted to string type for use by other modules). Additional examples are available in the documentation. -3. Improved - Query completion. Query completion is now built into the Knowledge Base Search module, enabling both "reference resolution" and "query expansion" in a single pass. See [Knowledge Base Search Introduction](/docs/introduction/guide/dashboard/workflow/dataset_search/) for details. +3. Improved - Query completion. Query completion is now built into the Knowledge Base Search module, enabling both "reference resolution" and "query expansion" in a single pass. See [Knowledge Base Search Introduction](../../../introduction/guide/dashboard/workflow/dataset_search.en.mdx) for details. 4. Improved - LLM model configuration no longer distinguishes between chat, classification, and extraction models. Default parameters per model are now supported via `defaultConfig` to avoid parameter conflicts between different models. 5. Improved - Streaming response, inspired by `ChatNextWeb`'s streaming implementation for smoother output. This may also fix previously reported issues with garbled text and interruptions that resolved after refreshing. 6. Fixed - Voice input file upload failure. diff --git a/document/content/docs/self-host/upgrading/outdated/468.mdx b/document/content/self-host/upgrading/outdated/468.mdx similarity index 94% rename from document/content/docs/self-host/upgrading/outdated/468.mdx rename to document/content/self-host/upgrading/outdated/468.mdx index 34a5e7ef27..bd91546d46 100644 --- a/document/content/docs/self-host/upgrading/outdated/468.mdx +++ b/document/content/self-host/upgrading/outdated/468.mdx @@ -67,7 +67,7 @@ docker-compose up -d ## 修改配置文件 -去除了重复的模型配置,LLM模型都合并到一个属性中:[点击查看最新的配置文件](/docs/self-host/config/json/) +去除了重复的模型配置,LLM模型都合并到一个属性中:[点击查看最新的配置文件](../../config/json.mdx) ## 商业版初始化 @@ -87,7 +87,7 @@ curl --location --request POST 'https://{{host}}/api/init/v468' \ 1. 新增 - 知识库搜索合并模块。 2. 新增 - 新的 Http 模块,支持更加灵活的参数传入。同时支持了输入输出自动数据类型转化,例如:接口输出的 JSON 类型会自动转成字符串类型,直接给其他模块使用。此外,还补充了一些例子,可在文档中查看。 -3. 优化 - 内容补全。将内容补全内置到【知识库搜索】中,并实现了一次内容补全,即可完成“指代消除”和“问题扩展”。FastGPT知识库搜索详细流程可查看:[知识库搜索介绍](/docs/introduction/guide/dashboard/workflow/dataset_search/) +3. 优化 - 内容补全。将内容补全内置到【知识库搜索】中,并实现了一次内容补全,即可完成“指代消除”和“问题扩展”。FastGPT知识库搜索详细流程可查看:[知识库搜索介绍](../../../introduction/guide/dashboard/workflow/dataset_search.mdx) 4. 优化 - LLM 模型配置,不再区分对话、分类、提取模型。同时支持模型的默认参数,避免不同模型参数冲突,可通过`defaultConfig`传入默认的配置。 5. 优化 - 流响应,参考了`ChatNextWeb`的流,更加丝滑。此外,之前提到的乱码、中断,刷新后又正常了,可能会修复) 6. 修复 - 语音输入文件无法上传。 diff --git a/document/content/docs/self-host/upgrading/outdated/469.en.mdx b/document/content/self-host/upgrading/outdated/469.en.mdx similarity index 86% rename from document/content/docs/self-host/upgrading/outdated/469.en.mdx rename to document/content/self-host/upgrading/outdated/469.en.mdx index 340c709579..dfcf4e5cbe 100644 --- a/document/content/docs/self-host/upgrading/outdated/469.en.mdx +++ b/document/content/self-host/upgrading/outdated/469.en.mdx @@ -27,7 +27,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv469' \ ## External API Updates -1. Due to billing system changes, the [share link chat reporting endpoint](/docs/openapi/share/#5-编写对话结果上报接口可选) requires some adjustments. The `price` field has been replaced by `totalPoints`. The `inputToken` and `outputToken` fields are no longer provided — only a `token` field (total token count) is returned. +1. Due to billing system changes, the [share link chat reporting endpoint](../../../openapi/share.en.mdx#5-编写对话结果上报接口可选) requires some adjustments. The `price` field has been replaced by `totalPoints`. The `inputToken` and `outputToken` fields are no longer provided — only a `token` field (total token count) is returned. ## V4.6.9 Release Notes diff --git a/document/content/docs/self-host/upgrading/outdated/469.mdx b/document/content/self-host/upgrading/outdated/469.mdx similarity index 84% rename from document/content/docs/self-host/upgrading/outdated/469.mdx rename to document/content/self-host/upgrading/outdated/469.mdx index a6db6820f9..7c9ccb1bf5 100644 --- a/document/content/docs/self-host/upgrading/outdated/469.mdx +++ b/document/content/self-host/upgrading/outdated/469.mdx @@ -27,7 +27,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv469' \ ## 外部接口更新 -1. 由于计费系统变更,[分享链接对话上报接口](/docs/openapi/share/#5-编写对话结果上报接口可选)需要做一些调整,price字段被totalPoints字段取代。inputToken和outputToken不再提供,只提供`token`字段(总token数量)。 +1. 由于计费系统变更,[分享链接对话上报接口](../../../openapi/share.mdx#5-编写对话结果上报接口可选)需要做一些调整,price字段被totalPoints字段取代。inputToken和outputToken不再提供,只提供`token`字段(总token数量)。 ## V4.6.9 更新说明 diff --git a/document/content/docs/self-host/upgrading/outdated/47.en.mdx b/document/content/self-host/upgrading/outdated/47.en.mdx similarity index 98% rename from document/content/docs/self-host/upgrading/outdated/47.en.mdx rename to document/content/self-host/upgrading/outdated/47.en.mdx index 26f80d6537..bae6d91ffe 100644 --- a/document/content/docs/self-host/upgrading/outdated/47.en.mdx +++ b/document/content/self-host/upgrading/outdated/47.en.mdx @@ -5,7 +5,7 @@ description: FastGPT V4.7 Release Notes ## 1. Update Configuration File -Added Boolean values to control which models are available for different feature modules, and added model logos. [View the latest configuration file](/docs/self-host/config/json/) +Added Boolean values to control which models are available for different feature modules, and added model logos. [View the latest configuration file](../../config/json.en.mdx) ## 2. Initialization Script diff --git a/document/content/docs/self-host/upgrading/outdated/47.mdx b/document/content/self-host/upgrading/outdated/47.mdx similarity index 98% rename from document/content/docs/self-host/upgrading/outdated/47.mdx rename to document/content/self-host/upgrading/outdated/47.mdx index c649067dbe..bee321a278 100644 --- a/document/content/docs/self-host/upgrading/outdated/47.mdx +++ b/document/content/self-host/upgrading/outdated/47.mdx @@ -5,7 +5,7 @@ description: FastGPT V4.7更新说明 ## 1. 修改配置文件 -增加一些 Boolean 值,用于决定不同功能块可以使用哪些模型,同时增加了模型的 logo:[点击查看最新的配置文件](/docs/self-host/config/json/) +增加一些 Boolean 值,用于决定不同功能块可以使用哪些模型,同时增加了模型的 logo:[点击查看最新的配置文件](../../config/json.mdx) ## 2. 初始化脚本 diff --git a/document/content/docs/self-host/upgrading/outdated/471.en.mdx b/document/content/self-host/upgrading/outdated/471.en.mdx similarity index 97% rename from document/content/docs/self-host/upgrading/outdated/471.en.mdx rename to document/content/self-host/upgrading/outdated/471.en.mdx index 5b053b435d..ed4728c9cc 100644 --- a/document/content/docs/self-host/upgrading/outdated/471.en.mdx +++ b/document/content/self-host/upgrading/outdated/471.en.mdx @@ -17,7 +17,7 @@ This request runs stale data cleanup (removes invalid files, images, Knowledge B ## Update Configuration File -Added Laf environment configuration. [View the latest configuration file](/docs/self-host/config/json/) +Added Laf environment configuration. [View the latest configuration file](../../config/json.en.mdx) ## V4.7.1 Release Notes diff --git a/document/content/docs/self-host/upgrading/outdated/471.mdx b/document/content/self-host/upgrading/outdated/471.mdx similarity index 95% rename from document/content/docs/self-host/upgrading/outdated/471.mdx rename to document/content/self-host/upgrading/outdated/471.mdx index b8a6775336..0879c2af83 100644 --- a/document/content/docs/self-host/upgrading/outdated/471.mdx +++ b/document/content/self-host/upgrading/outdated/471.mdx @@ -17,7 +17,7 @@ curl --location --request POST 'https://{{host}}/api/admin/clearInvalidData' \ ## 修改配置文件 -增加了Laf环境配置:[点击查看最新的配置文件](/docs/self-host/config/json/) +增加了Laf环境配置:[点击查看最新的配置文件](../../config/json.mdx) ## V4.7.1 更新说明 diff --git a/document/content/docs/self-host/upgrading/outdated/48.en.mdx b/document/content/self-host/upgrading/outdated/48.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/48.en.mdx rename to document/content/self-host/upgrading/outdated/48.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/48.mdx b/document/content/self-host/upgrading/outdated/48.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/48.mdx rename to document/content/self-host/upgrading/outdated/48.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/481.en.mdx b/document/content/self-host/upgrading/outdated/481.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/481.en.mdx rename to document/content/self-host/upgrading/outdated/481.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/481.mdx b/document/content/self-host/upgrading/outdated/481.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/481.mdx rename to document/content/self-host/upgrading/outdated/481.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4810.en.mdx b/document/content/self-host/upgrading/outdated/4810.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4810.en.mdx rename to document/content/self-host/upgrading/outdated/4810.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4810.mdx b/document/content/self-host/upgrading/outdated/4810.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4810.mdx rename to document/content/self-host/upgrading/outdated/4810.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4811.en.mdx b/document/content/self-host/upgrading/outdated/4811.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4811.en.mdx rename to document/content/self-host/upgrading/outdated/4811.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4811.mdx b/document/content/self-host/upgrading/outdated/4811.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4811.mdx rename to document/content/self-host/upgrading/outdated/4811.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4812.en.mdx b/document/content/self-host/upgrading/outdated/4812.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4812.en.mdx rename to document/content/self-host/upgrading/outdated/4812.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4812.mdx b/document/content/self-host/upgrading/outdated/4812.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4812.mdx rename to document/content/self-host/upgrading/outdated/4812.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4813.en.mdx b/document/content/self-host/upgrading/outdated/4813.en.mdx similarity index 94% rename from document/content/docs/self-host/upgrading/outdated/4813.en.mdx rename to document/content/self-host/upgrading/outdated/4813.en.mdx index 27b773c6b5..95b6a3667d 100644 --- a/document/content/docs/self-host/upgrading/outdated/4813.en.mdx +++ b/document/content/self-host/upgrading/outdated/4813.en.mdx @@ -19,7 +19,7 @@ description: FastGPT V4.8.13 Release Notes ### 4. Update file upload workflow configuration -While the old file upload workflow configuration is still supported, backward compatibility will be removed within the next two versions. Please update your workflows to use the new file upload logic as soon as possible. In particular, file passing in nested apps will no longer be automatic — you must explicitly specify which files to pass. For details, see: [File Upload Changes](/docs/introduction/guide/course/fileinput/#4813%E7%89%88%E6%9C%AC%E8%B5%B7%E5%85%B3%E4%BA%8E%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E7%9A%84%E6%9B%B4%E6%96%B0) +While the old file upload workflow configuration is still supported, backward compatibility will be removed within the next two versions. Please update your workflows to use the new file upload logic as soon as possible. In particular, file passing in nested apps will no longer be automatic — you must explicitly specify which files to pass. For details, see: [File Upload Changes](../../../introduction/guide/course/fileInput.en.mdx#4813%E7%89%88%E6%9C%AC%E8%B5%B7%E5%85%B3%E4%BA%8E%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E7%9A%84%E6%9B%B4%E6%96%B0) ## Release Notes diff --git a/document/content/docs/self-host/upgrading/outdated/4813.mdx b/document/content/self-host/upgrading/outdated/4813.mdx similarity index 92% rename from document/content/docs/self-host/upgrading/outdated/4813.mdx rename to document/content/self-host/upgrading/outdated/4813.mdx index 376ddfd6a9..a759e3ea93 100644 --- a/document/content/docs/self-host/upgrading/outdated/4813.mdx +++ b/document/content/self-host/upgrading/outdated/4813.mdx @@ -19,7 +19,7 @@ description: FastGPT V4.8.13 更新说明 ### 4. 调整文件上传编排 -虽然依然兼容旧版的文件上传编排,但是未来两个版本内将会去除兼容代码,请尽快调整编排,以适应最新的文件上传逻辑。尤其是嵌套应用的文件传递,未来将不会自动传递,必须手动指定传递的文件。具体内容可参考: [文件上传变更](/docs/introduction/guide/course/fileinput/#4813%E7%89%88%E6%9C%AC%E8%B5%B7%E5%85%B3%E4%BA%8E%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E7%9A%84%E6%9B%B4%E6%96%B0) +虽然依然兼容旧版的文件上传编排,但是未来两个版本内将会去除兼容代码,请尽快调整编排,以适应最新的文件上传逻辑。尤其是嵌套应用的文件传递,未来将不会自动传递,必须手动指定传递的文件。具体内容可参考: [文件上传变更](../../../introduction/guide/course/fileInput.mdx#4813%E7%89%88%E6%9C%AC%E8%B5%B7%E5%85%B3%E4%BA%8E%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E7%9A%84%E6%9B%B4%E6%96%B0) ## 更新说明 diff --git a/document/content/docs/self-host/upgrading/outdated/4814.en.mdx b/document/content/self-host/upgrading/outdated/4814.en.mdx similarity index 95% rename from document/content/docs/self-host/upgrading/outdated/4814.en.mdx rename to document/content/self-host/upgrading/outdated/4814.en.mdx index 2b14e2c6f6..26d80a5849 100644 --- a/document/content/docs/self-host/upgrading/outdated/4814.en.mdx +++ b/document/content/self-host/upgrading/outdated/4814.en.mdx @@ -23,7 +23,7 @@ You can configure a workflow to automatically trigger once when a user loads a c | | | | --- | --- | -| ![alt text](/imgs/image-8.png) | ![alt text](/imgs/image-9.png) | +| ![alt text](../../../../public/imgs/image-8.png) | ![alt text](../../../../public/imgs/image-9.png) | ## Full Release Notes diff --git a/document/content/docs/self-host/upgrading/outdated/4814.mdx b/document/content/self-host/upgrading/outdated/4814.mdx similarity index 94% rename from document/content/docs/self-host/upgrading/outdated/4814.mdx rename to document/content/self-host/upgrading/outdated/4814.mdx index 3a5a4ee096..07f00d04b9 100644 --- a/document/content/docs/self-host/upgrading/outdated/4814.mdx +++ b/document/content/self-host/upgrading/outdated/4814.mdx @@ -23,7 +23,7 @@ milvus版本使用:v4.8.14-milvus-fix 镜像。 | | | | --- | --- | -| ![alt text](/imgs/image-8.png) | ![alt text](/imgs/image-9.png) | +| ![alt text](../../../../public/imgs/image-8.png) | ![alt text](../../../../public/imgs/image-9.png) | ## 完整更新内容 diff --git a/document/content/docs/self-host/upgrading/outdated/4815.en.mdx b/document/content/self-host/upgrading/outdated/4815.en.mdx similarity index 88% rename from document/content/docs/self-host/upgrading/outdated/4815.en.mdx rename to document/content/self-host/upgrading/outdated/4815.en.mdx index 878b088b93..eab9881b93 100644 --- a/document/content/docs/self-host/upgrading/outdated/4815.en.mdx +++ b/document/content/self-host/upgrading/outdated/4815.en.mdx @@ -9,13 +9,13 @@ description: FastGPT V4.8.15 Release Notes | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-20.png) | ![alt text](/imgs/image-21.png) | +| ![alt text](../../../../public/imgs/image-20.png) | ![alt text](../../../../public/imgs/image-21.png) | ### HTML Rendering | Source Mode | Preview Mode | Fullscreen Mode | | ------------------------------- | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-22.png) | ![alt text](/imgs/image-23.png) | ![alt text](/imgs/image-24.png) | +| ![alt text](../../../../public/imgs/image-22.png) | ![alt text](../../../../public/imgs/image-23.png) | ![alt text](../../../../public/imgs/image-24.png) | ## Upgrade Guide @@ -49,10 +49,10 @@ This recalculates free-tier user durations. A previous version upgrade did not r ## Full Release Notes -1. New - API Knowledge Base. See [API Knowledge Base Introduction](/docs/introduction/guide/knowledge_base/api_dataset/). The external file library will be deprecated. +1. New - API Knowledge Base. See [API Knowledge Base Introduction](../../../introduction/guide/knowledge_base/api_dataset.en.mdx). The external file library will be deprecated. 2. New - Toolbox page displaying all available system resources. The commercial edition admin panel now offers easier configuration of system plugins and custom categories. 3. New - HTML code in Markdown is now rendered separately. You can choose preview mode, which blocks all scripts and only displays content. -4. New - Custom system-level file parsing service. See [Integrating Marker PDF Document Parsing](/docs/self-host/custom-models/marker/). +4. New - Custom system-level file parsing service. See [Integrating Marker PDF Document Parsing](../../custom-models/marker.en.mdx). 5. New - Collections can be reconfigured directly without deleting and re-importing. 6. New - Commercial edition admin panel supports configuring sidebar navigation links. 7. Improved - Base64 image truncation detection. diff --git a/document/content/docs/self-host/upgrading/outdated/4815.mdx b/document/content/self-host/upgrading/outdated/4815.mdx similarity index 86% rename from document/content/docs/self-host/upgrading/outdated/4815.mdx rename to document/content/self-host/upgrading/outdated/4815.mdx index f6957217f6..135d87c7ef 100644 --- a/document/content/docs/self-host/upgrading/outdated/4815.mdx +++ b/document/content/self-host/upgrading/outdated/4815.mdx @@ -9,13 +9,13 @@ description: FastGPT V4.8.15 更新说明 | | | | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-20.png) | ![alt text](/imgs/image-21.png) | +| ![alt text](../../../../public/imgs/image-20.png) | ![alt text](../../../../public/imgs/image-21.png) | ### HTML 渲染 | 源码模式 | 预览模式 | 全屏模式 | | ------------------------------- | ------------------------------- | ------------------------------- | -| ![alt text](/imgs/image-22.png) | ![alt text](/imgs/image-23.png) | ![alt text](/imgs/image-24.png) | +| ![alt text](../../../../public/imgs/image-22.png) | ![alt text](../../../../public/imgs/image-23.png) | ![alt text](../../../../public/imgs/image-24.png) | ## 升级指南 @@ -49,10 +49,10 @@ curl --location --request POST 'https://{{host}}/api/admin/init/refreshFreeUser' ## 完整更新内容 -1. 新增 - API 知识库, 见 [API 知识库介绍](/docs/introduction/guide/knowledge_base/api_dataset/),外部文件库会被弃用。 +1. 新增 - API 知识库, 见 [API 知识库介绍](../../../introduction/guide/knowledge_base/api_dataset.mdx),外部文件库会被弃用。 2. 新增 - 工具箱页面,展示所有可用的系统资源。商业版后台可更便捷的配置系统插件和自定义分类。 3. 新增 - Markdown 中,HTML代码会被额外渲染,可以选择预览模式,会限制所有 script 脚本,仅做展示。 -4. 新增 - 自定义系统级文件解析服务, 见 [接入 Marker PDF 文档解析](/docs/self-host/custom-models/marker/) +4. 新增 - 自定义系统级文件解析服务, 见 [接入 Marker PDF 文档解析](../../custom-models/marker.mdx) 5. 新增 - 集合直接重新调整参数,无需删除再导入。 6. 新增 - 商业版后台支持配置侧边栏跳转链接。 7. 优化 - base64 图片截取判断。 diff --git a/document/content/docs/self-host/upgrading/outdated/4816.en.mdx b/document/content/self-host/upgrading/outdated/4816.en.mdx similarity index 82% rename from document/content/docs/self-host/upgrading/outdated/4816.en.mdx rename to document/content/self-host/upgrading/outdated/4816.en.mdx index 699734f5f3..348fa6c48d 100644 --- a/document/content/docs/self-host/upgrading/outdated/4816.en.mdx +++ b/document/content/self-host/upgrading/outdated/4816.en.mdx @@ -13,7 +13,7 @@ description: FastGPT V4.8.16 Release Notes ### 2. Update configuration file -Refer to the latest [configuration file documentation](/docs/self-host/config/json/) and update your `config.json` or admin model configuration. Add the `provider` field to LLMModel and VectorModel for model categorization. For example: +Refer to the latest [configuration file documentation](../../config/json.en.mdx) and update your `config.json` or admin model configuration. Add the `provider` field to LLMModel and VectorModel for model categorization. For example: ```json { @@ -44,12 +44,12 @@ Refer to the latest [configuration file documentation](/docs/self-host/config/js ## Full Release Notes -1. New - SearXNG search plugin. [View tutorial](/docs/introduction/guide/plugins/searxng_plugin_guide/) +1. New - SearXNG search plugin. [View tutorial](../../../introduction/guide/plugins/searxng_plugin_guide.en.mdx) 2. New - Commercial edition supports scheduled sync for API Knowledge Bases and link collections. 3. New - "Suggested questions" supports model selection and custom prompts. 4. New - DingTalk and WeCom bot webhook plugins. -5. New - Commercial edition supports DingTalk SSO login configuration. [View tutorial](/docs/introduction/guide/admin/sso#钉钉) -6. New - Commercial edition supports Lark and Yuque Knowledge Base import. [View tutorial](/docs/introduction/guide/knowledge_base/lark_dataset/) +5. New - Commercial edition supports DingTalk SSO login configuration. [View tutorial](../../../introduction/guide/admin/sso.en.mdx#钉钉) +6. New - Commercial edition supports Lark and Yuque Knowledge Base import. [View tutorial](../../../introduction/guide/knowledge_base/lark_dataset.en.mdx) 7. New - Sandbox adds `createHmac` encryption global method. 8. New - Right-click in workflow supports "Collapse all". 9. Improved - Model selector. diff --git a/document/content/docs/self-host/upgrading/outdated/4816.mdx b/document/content/self-host/upgrading/outdated/4816.mdx similarity index 83% rename from document/content/docs/self-host/upgrading/outdated/4816.mdx rename to document/content/self-host/upgrading/outdated/4816.mdx index 5eb1075c54..a729bcb562 100644 --- a/document/content/docs/self-host/upgrading/outdated/4816.mdx +++ b/document/content/self-host/upgrading/outdated/4816.mdx @@ -13,7 +13,7 @@ description: FastGPT V4.8.16 更新说明 ### 2. 更新配置文件 -参考最新的[配置文件](/docs/self-host/config/json/),更新 `config.json` 或 admin 中模型文件配置。给 LLMModel 和 VectorModel 增加 `provider` 字段,以便进行模型分类。例如: +参考最新的[配置文件](../../config/json.mdx),更新 `config.json` 或 admin 中模型文件配置。给 LLMModel 和 VectorModel 增加 `provider` 字段,以便进行模型分类。例如: ```json { @@ -44,12 +44,12 @@ description: FastGPT V4.8.16 更新说明 ## 完整更新内容 -1. 新增 - SearXNG 搜索插件[点击查看教程](/docs/introduction/guide/plugins/searxng_plugin_guide/) +1. 新增 - SearXNG 搜索插件[点击查看教程](../../../introduction/guide/plugins/searxng_plugin_guide.mdx) 2. 新增 - 商业版支持 API 知识库和链接集合定时同步。 3. 新增 - 猜你想问支持选择模型和自定义提示词。 4. 新增 - 钉钉和企微机器人 webhook 插件。 -5. 新增 - 商业版支持钉钉 SSO 登录配置。[点击查看教程](/docs/introduction/guide/admin/sso#钉钉) -6. 新增 - 商业版支持飞书和语雀知识库导入。[点击查看教程](/docs/introduction/guide/knowledge_base/lark_dataset/) +5. 新增 - 商业版支持钉钉 SSO 登录配置。[点击查看教程](../../../introduction/guide/admin/sso.mdx#钉钉) +6. 新增 - 商业版支持飞书和语雀知识库导入。[点击查看教程](../../../introduction/guide/knowledge_base/lark_dataset.mdx) 7. 新增 - sandbox 新增 createHmac 加密全局方法。 8. 新增 - 工作流右键支持全部折叠。 9. 优化 - 模型选择器。 diff --git a/document/content/docs/self-host/upgrading/outdated/4817.en.mdx b/document/content/self-host/upgrading/outdated/4817.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4817.en.mdx rename to document/content/self-host/upgrading/outdated/4817.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4817.mdx b/document/content/self-host/upgrading/outdated/4817.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4817.mdx rename to document/content/self-host/upgrading/outdated/4817.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4818.en.mdx b/document/content/self-host/upgrading/outdated/4818.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4818.en.mdx rename to document/content/self-host/upgrading/outdated/4818.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4818.mdx b/document/content/self-host/upgrading/outdated/4818.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4818.mdx rename to document/content/self-host/upgrading/outdated/4818.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4819.en.mdx b/document/content/self-host/upgrading/outdated/4819.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4819.en.mdx rename to document/content/self-host/upgrading/outdated/4819.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4819.mdx b/document/content/self-host/upgrading/outdated/4819.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4819.mdx rename to document/content/self-host/upgrading/outdated/4819.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/482.en.mdx b/document/content/self-host/upgrading/outdated/482.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/482.en.mdx rename to document/content/self-host/upgrading/outdated/482.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/482.mdx b/document/content/self-host/upgrading/outdated/482.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/482.mdx rename to document/content/self-host/upgrading/outdated/482.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4820.en.mdx b/document/content/self-host/upgrading/outdated/4820.en.mdx similarity index 98% rename from document/content/docs/self-host/upgrading/outdated/4820.en.mdx rename to document/content/self-host/upgrading/outdated/4820.en.mdx index 9ec6a46b84..ab76962cdd 100644 --- a/document/content/docs/self-host/upgrading/outdated/4820.en.mdx +++ b/document/content/self-host/upgrading/outdated/4820.en.mdx @@ -31,7 +31,7 @@ The script automatically loads models from the old configuration file into the n ## Full Release Notes -1. New - Visual model parameter configuration, replacing the old config file approach. Over 100 model presets included, with one-click testing for all model types. (Full in-page channel configuration is planned for the next version.) [View model configuration guide](/docs/self-host/config/model/intro/) +1. New - Visual model parameter configuration, replacing the old config file approach. Over 100 model presets included, with one-click testing for all model types. (Full in-page channel configuration is planned for the next version.) [View model configuration guide](../../config/model/intro.en.mdx) 2. New - DeepSeek Reasoner model supports outputting the thinking process. 3. New - Usage record export and dashboard. 4. New - Markdown syntax extension supporting audio and video (via `audio` and `video` code blocks). diff --git a/document/content/docs/self-host/upgrading/outdated/4820.mdx b/document/content/self-host/upgrading/outdated/4820.mdx similarity index 98% rename from document/content/docs/self-host/upgrading/outdated/4820.mdx rename to document/content/self-host/upgrading/outdated/4820.mdx index 0748ff383b..ec1bebc288 100644 --- a/document/content/docs/self-host/upgrading/outdated/4820.mdx +++ b/document/content/self-host/upgrading/outdated/4820.mdx @@ -31,7 +31,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv4820' \ ## 完整更新内容 -1. 新增 - 可视化模型参数配置,取代原配置文件配置模型。预设超过 100 个模型配置。同时支持所有类型模型的一键测试。(预计下个版本会完全支持在页面上配置渠道)。[点击查看模型配置方案](/docs/self-host/config/model/intro/) +1. 新增 - 可视化模型参数配置,取代原配置文件配置模型。预设超过 100 个模型配置。同时支持所有类型模型的一键测试。(预计下个版本会完全支持在页面上配置渠道)。[点击查看模型配置方案](../../config/model/intro.mdx) 2. 新增 - DeepSeek resoner 模型支持输出思考过程。 3. 新增 - 使用记录导出和仪表盘。 4. 新增 - markdown 语法扩展,支持音视频(代码块 audio 和 video)。 diff --git a/document/content/docs/self-host/upgrading/outdated/4821.en.mdx b/document/content/self-host/upgrading/outdated/4821.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4821.en.mdx rename to document/content/self-host/upgrading/outdated/4821.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4821.mdx b/document/content/self-host/upgrading/outdated/4821.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4821.mdx rename to document/content/self-host/upgrading/outdated/4821.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4822.en.mdx b/document/content/self-host/upgrading/outdated/4822.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4822.en.mdx rename to document/content/self-host/upgrading/outdated/4822.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4822.mdx b/document/content/self-host/upgrading/outdated/4822.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4822.mdx rename to document/content/self-host/upgrading/outdated/4822.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4823.en.mdx b/document/content/self-host/upgrading/outdated/4823.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4823.en.mdx rename to document/content/self-host/upgrading/outdated/4823.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4823.mdx b/document/content/self-host/upgrading/outdated/4823.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4823.mdx rename to document/content/self-host/upgrading/outdated/4823.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/483.en.mdx b/document/content/self-host/upgrading/outdated/483.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/483.en.mdx rename to document/content/self-host/upgrading/outdated/483.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/483.mdx b/document/content/self-host/upgrading/outdated/483.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/483.mdx rename to document/content/self-host/upgrading/outdated/483.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/484.en.mdx b/document/content/self-host/upgrading/outdated/484.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/484.en.mdx rename to document/content/self-host/upgrading/outdated/484.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/484.mdx b/document/content/self-host/upgrading/outdated/484.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/484.mdx rename to document/content/self-host/upgrading/outdated/484.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/485.en.mdx b/document/content/self-host/upgrading/outdated/485.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/485.en.mdx rename to document/content/self-host/upgrading/outdated/485.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/485.mdx b/document/content/self-host/upgrading/outdated/485.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/485.mdx rename to document/content/self-host/upgrading/outdated/485.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/486.en.mdx b/document/content/self-host/upgrading/outdated/486.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/486.en.mdx rename to document/content/self-host/upgrading/outdated/486.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/486.mdx b/document/content/self-host/upgrading/outdated/486.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/486.mdx rename to document/content/self-host/upgrading/outdated/486.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/487.en.mdx b/document/content/self-host/upgrading/outdated/487.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/487.en.mdx rename to document/content/self-host/upgrading/outdated/487.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/487.mdx b/document/content/self-host/upgrading/outdated/487.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/487.mdx rename to document/content/self-host/upgrading/outdated/487.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/488.en.mdx b/document/content/self-host/upgrading/outdated/488.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/488.en.mdx rename to document/content/self-host/upgrading/outdated/488.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/488.mdx b/document/content/self-host/upgrading/outdated/488.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/488.mdx rename to document/content/self-host/upgrading/outdated/488.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/489.en.mdx b/document/content/self-host/upgrading/outdated/489.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/489.en.mdx rename to document/content/self-host/upgrading/outdated/489.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/489.mdx b/document/content/self-host/upgrading/outdated/489.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/489.mdx rename to document/content/self-host/upgrading/outdated/489.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/490.en.mdx b/document/content/self-host/upgrading/outdated/490.en.mdx similarity index 98% rename from document/content/docs/self-host/upgrading/outdated/490.en.mdx rename to document/content/self-host/upgrading/outdated/490.en.mdx index a67eccf03d..da1cd5b1de 100644 --- a/document/content/docs/self-host/upgrading/outdated/490.en.mdx +++ b/document/content/self-host/upgrading/outdated/490.en.mdx @@ -160,10 +160,10 @@ curl --location --request POST 'https://{{host}}/api/admin/initv490' \ ## Compatibility & Deprecations -1. Deprecated — The previous custom file parsing solution for private deployments. Please update to the latest configuration. [See PDF Enhanced Parsing Configuration](/docs/self-host/config/json/#使用-doc2x-解析-pdf-文件) +1. Deprecated — The previous custom file parsing solution for private deployments. Please update to the latest configuration. [See PDF Enhanced Parsing Configuration](../../config/json.en.mdx#使用-doc2x-解析-pdf-文件) 2. Deprecated — The legacy local file upload API: `/api/core/dataset/collection/create/file` (previously available only in the Pro edition). This endpoint has been replaced by: `/api/core/dataset/collection/create/localFile` 3. Maintenance ending, deprecation upcoming — External file library APIs. Use the API File Library as a replacement. -4. API Update — For endpoints that include a `trainingType` field (file upload to knowledge base, link collection creation, API file library, push chunk data, etc.), `trainingType` will only support `chunk` and `QA` modes going forward. Enhanced indexing mode will use a separate field: `autoIndexes`. Legacy `trainingType=auto` code is still supported for now, but please migrate to the new API format as soon as possible. See: [Knowledge Base OpenAPI Documentation](/docs/openapi/dataset.md) +4. API Update — For endpoints that include a `trainingType` field (file upload to knowledge base, link collection creation, API file library, push chunk data, etc.), `trainingType` will only support `chunk` and `QA` modes going forward. Enhanced indexing mode will use a separate field: `autoIndexes`. Legacy `trainingType=auto` code is still supported for now, but please migrate to the new API format as soon as possible. See: [Knowledge Base OpenAPI Documentation](../../../openapi/dataset.en.mdx) ## New Features diff --git a/document/content/docs/self-host/upgrading/outdated/490.mdx b/document/content/self-host/upgrading/outdated/490.mdx similarity index 98% rename from document/content/docs/self-host/upgrading/outdated/490.mdx rename to document/content/self-host/upgrading/outdated/490.mdx index 0c24c31818..d3ffc1f6bb 100644 --- a/document/content/docs/self-host/upgrading/outdated/490.mdx +++ b/document/content/self-host/upgrading/outdated/490.mdx @@ -160,10 +160,10 @@ curl --location --request POST 'https://{{host}}/api/admin/initv490' \ ## 兼容 & 弃用 -1. 弃用 - 之前私有化部署的自定义文件解析方案,请同步更新到最新的配置方案。[点击查看 PDF 增强解析配置](/docs/self-host/config/json/#使用-doc2x-解析-pdf-文件) +1. 弃用 - 之前私有化部署的自定义文件解析方案,请同步更新到最新的配置方案。[点击查看 PDF 增强解析配置](../../config/json.mdx#使用-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/openapi/dataset.md) +4. API更新 - 上传文件至知识库、创建连接集合、API 文件库、推送分块数据等带有 `trainingType` 字段的接口,`trainingType`字段未来仅支持`chunk`和`QA`两种模式。增强索引模式将设置单独字段:`autoIndexes`,目前仍有适配旧版`trainingType=auto`代码,但请尽快变更成新接口类型。具体可见:[知识库 OpenAPI 文档](../../../openapi/dataset.mdx) ## 🚀 新增内容 diff --git a/document/content/docs/self-host/upgrading/outdated/491.en.mdx b/document/content/self-host/upgrading/outdated/491.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/491.en.mdx rename to document/content/self-host/upgrading/outdated/491.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/491.mdx b/document/content/self-host/upgrading/outdated/491.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/491.mdx rename to document/content/self-host/upgrading/outdated/491.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4910.en.mdx b/document/content/self-host/upgrading/outdated/4910.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4910.en.mdx rename to document/content/self-host/upgrading/outdated/4910.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4910.mdx b/document/content/self-host/upgrading/outdated/4910.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4910.mdx rename to document/content/self-host/upgrading/outdated/4910.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4911.en.mdx b/document/content/self-host/upgrading/outdated/4911.en.mdx similarity index 96% rename from document/content/docs/self-host/upgrading/outdated/4911.en.mdx rename to document/content/self-host/upgrading/outdated/4911.en.mdx index da888b57cd..cf6aac30dd 100644 --- a/document/content/docs/self-host/upgrading/outdated/4911.en.mdx +++ b/document/content/self-host/upgrading/outdated/4911.en.mdx @@ -36,7 +36,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv4911' \ 3. Sub-workflow version control in workflows now supports a "Keep Latest Version" option — no manual updates needed. 4. Additional audit operation logs. 5. Knowledge base now has an async document parsing queue — documents can be imported without waiting for parsing to complete. -6. Third-party knowledge base development documentation. [View here](/docs/introduction/guide/knowledge_base/third_dataset/) +6. Third-party knowledge base development documentation. [View here](../../../introduction/guide/knowledge_base/third_dataset.en.mdx) ## Improvements diff --git a/document/content/docs/self-host/upgrading/outdated/4911.mdx b/document/content/self-host/upgrading/outdated/4911.mdx similarity index 93% rename from document/content/docs/self-host/upgrading/outdated/4911.mdx rename to document/content/self-host/upgrading/outdated/4911.mdx index 6afda11a64..9d9331ea35 100644 --- a/document/content/docs/self-host/upgrading/outdated/4911.mdx +++ b/document/content/self-host/upgrading/outdated/4911.mdx @@ -36,7 +36,7 @@ curl --location --request POST 'https://{{host}}/api/admin/initv4911' \ 3. 工作流中,子流程版本控制,可选择“保持最新版本”,无需手动更新。 4. 增加更多审计操作日志。 5. 知识库增加文档解析异步队列,导入文档时,无需等待文档解析完毕才进行导入。 -6. 第三方知识库开发文档, [点击查看](/docs/introduction/guide/knowledge_base/third_dataset/) +6. 第三方知识库开发文档, [点击查看](../../../introduction/guide/knowledge_base/third_dataset.mdx) ## ⚙️ 优化 diff --git a/document/content/docs/self-host/upgrading/outdated/4912.en.mdx b/document/content/self-host/upgrading/outdated/4912.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4912.en.mdx rename to document/content/self-host/upgrading/outdated/4912.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4912.mdx b/document/content/self-host/upgrading/outdated/4912.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4912.mdx rename to document/content/self-host/upgrading/outdated/4912.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4913.en.mdx b/document/content/self-host/upgrading/outdated/4913.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4913.en.mdx rename to document/content/self-host/upgrading/outdated/4913.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4913.mdx b/document/content/self-host/upgrading/outdated/4913.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4913.mdx rename to document/content/self-host/upgrading/outdated/4913.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4914.en.mdx b/document/content/self-host/upgrading/outdated/4914.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4914.en.mdx rename to document/content/self-host/upgrading/outdated/4914.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/4914.mdx b/document/content/self-host/upgrading/outdated/4914.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/4914.mdx rename to document/content/self-host/upgrading/outdated/4914.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/492.en.mdx b/document/content/self-host/upgrading/outdated/492.en.mdx similarity index 94% rename from document/content/docs/self-host/upgrading/outdated/492.en.mdx rename to document/content/self-host/upgrading/outdated/492.en.mdx index df90680ef3..31db0991c6 100644 --- a/document/content/docs/self-host/upgrading/outdated/492.en.mdx +++ b/document/content/self-host/upgrading/outdated/492.en.mdx @@ -13,7 +13,7 @@ You can skip directly to v4.9.3 — v4.9.2 has a workflow data type conversion b Pro edition users using SSO or member sync with DingTalk or WeCom need to migrate their existing SSO configuration: -Refer to [SSO & External Member Sync](/docs/introduction/guide/admin/sso) for deploying and configuring the `sso-service`. +Refer to [SSO & External Member Sync](../../../introduction/guide/admin/sso.en.mdx) for deploying and configuring the `sso-service`. 1. Before upgrading images, copy and back up the existing configuration from the Pro admin panel (e.g., for WeCom, copy the AppId, Secret, etc.). 2. Follow the documentation above to deploy the SSO service and configure the relevant environment variables. @@ -33,7 +33,7 @@ Pro edition users can make this change in the admin panel under `System Configur ## Important Updates -- Knowledge base data import API changes: added optional parameters `chunkSettingMode`, `chunkSplitMode`, and `indexSize`. See the [Knowledge Base Data Import API](/docs/openapi/dataset) documentation for details. +- Knowledge base data import API changes: added optional parameters `chunkSettingMode`, `chunkSplitMode`, and `indexSize`. See the [Knowledge Base Data Import API](../../../openapi/dataset.en.mdx) documentation for details. ## New Features diff --git a/document/content/docs/self-host/upgrading/outdated/492.mdx b/document/content/self-host/upgrading/outdated/492.mdx similarity index 94% rename from document/content/docs/self-host/upgrading/outdated/492.mdx rename to document/content/self-host/upgrading/outdated/492.mdx index 45c48852d2..152951ebb3 100644 --- a/document/content/docs/self-host/upgrading/outdated/492.mdx +++ b/document/content/self-host/upgrading/outdated/492.mdx @@ -13,7 +13,7 @@ description: FastGPT V4.9.2 更新说明 使用了 SSO 或成员同步的商业版用户,并且是对接`钉钉`、`企微`的,需要迁移已有的 SSO 相关配置: -参考:[SSO & 外部成员同步](/docs/introduction/guide/admin/sso)中的配置进行`sso-service`的部署和配置。 +参考:[SSO & 外部成员同步](../../../introduction/guide/admin/sso.mdx)中的配置进行`sso-service`的部署和配置。 1. 先将原商业版后台中的相关配置项复制备份出来(以企微为例,将 AppId, Secret 等复制出来)再进行镜像升级。 2. 参考上述文档,部署 SSO 服务,配置相关的环境变量 @@ -33,7 +33,7 @@ description: FastGPT V4.9.2 更新说明 ## 重要更新 -- 知识库导入数据 API 变更,增加`chunkSettingMode`,`chunkSplitMode`,`indexSize`可选参数,具体可参考 [知识库导入数据 API](/docs/openapi/dataset) 文档。 +- 知识库导入数据 API 变更,增加`chunkSettingMode`,`chunkSplitMode`,`indexSize`可选参数,具体可参考 [知识库导入数据 API](../../../openapi/dataset.mdx) 文档。 ## 🚀 新增内容 diff --git a/document/content/docs/self-host/upgrading/outdated/493.en.mdx b/document/content/self-host/upgrading/outdated/493.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/493.en.mdx rename to document/content/self-host/upgrading/outdated/493.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/493.mdx b/document/content/self-host/upgrading/outdated/493.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/493.mdx rename to document/content/self-host/upgrading/outdated/493.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/494.en.mdx b/document/content/self-host/upgrading/outdated/494.en.mdx similarity index 93% rename from document/content/docs/self-host/upgrading/outdated/494.en.mdx rename to document/content/self-host/upgrading/outdated/494.en.mdx index fe4878ebbe..6e02291fc3 100644 --- a/document/content/docs/self-host/upgrading/outdated/494.en.mdx +++ b/document/content/self-host/upgrading/outdated/494.en.mdx @@ -14,7 +14,7 @@ description: FastGPT V4.9.4 Release Notes | | | | | --- | --- | --- | -| ![](/imgs/sealos-redis1.png) | ![](/imgs/sealos-redis2.png) | ![](/imgs/sealos-redis3.png) | +| ![](../../../../public/imgs/sealos-redis1.png) | ![](../../../../public/imgs/sealos-redis2.png) | ![](../../../../public/imgs/sealos-redis3.png) | ### 3. Update Image Tags diff --git a/document/content/docs/self-host/upgrading/outdated/494.mdx b/document/content/self-host/upgrading/outdated/494.mdx similarity index 92% rename from document/content/docs/self-host/upgrading/outdated/494.mdx rename to document/content/self-host/upgrading/outdated/494.mdx index 9f9860d28d..baa85be59e 100644 --- a/document/content/docs/self-host/upgrading/outdated/494.mdx +++ b/document/content/self-host/upgrading/outdated/494.mdx @@ -14,7 +14,7 @@ description: FastGPT V4.9.4 更新说明 | | | | | --- | --- | --- | -| ![](/imgs/sealos-redis1.png) | ![](/imgs/sealos-redis2.png) | ![](/imgs/sealos-redis3.png) | +| ![](../../../../public/imgs/sealos-redis1.png) | ![](../../../../public/imgs/sealos-redis2.png) | ![](../../../../public/imgs/sealos-redis3.png) | ### 3. 更新镜像 tag diff --git a/document/content/docs/self-host/upgrading/outdated/495.en.mdx b/document/content/self-host/upgrading/outdated/495.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/495.en.mdx rename to document/content/self-host/upgrading/outdated/495.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/495.mdx b/document/content/self-host/upgrading/outdated/495.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/495.mdx rename to document/content/self-host/upgrading/outdated/495.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/496.en.mdx b/document/content/self-host/upgrading/outdated/496.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/496.en.mdx rename to document/content/self-host/upgrading/outdated/496.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/496.mdx b/document/content/self-host/upgrading/outdated/496.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/496.mdx rename to document/content/self-host/upgrading/outdated/496.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/497.en.mdx b/document/content/self-host/upgrading/outdated/497.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/497.en.mdx rename to document/content/self-host/upgrading/outdated/497.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/497.mdx b/document/content/self-host/upgrading/outdated/497.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/497.mdx rename to document/content/self-host/upgrading/outdated/497.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/498.en.mdx b/document/content/self-host/upgrading/outdated/498.en.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/498.en.mdx rename to document/content/self-host/upgrading/outdated/498.en.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/498.mdx b/document/content/self-host/upgrading/outdated/498.mdx similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/498.mdx rename to document/content/self-host/upgrading/outdated/498.mdx diff --git a/document/content/docs/self-host/upgrading/outdated/499.en.mdx b/document/content/self-host/upgrading/outdated/499.en.mdx similarity index 90% rename from document/content/docs/self-host/upgrading/outdated/499.en.mdx rename to document/content/self-host/upgrading/outdated/499.en.mdx index 158d9cbd7f..90c156a4ad 100644 --- a/document/content/docs/self-host/upgrading/outdated/499.en.mdx +++ b/document/content/self-host/upgrading/outdated/499.en.mdx @@ -24,7 +24,7 @@ Pro edition users can contact the FastGPT team for a license replacement plan. A 1. Switched from JWT to SessionId-based login authentication, with configurable maximum concurrent client sessions. 2. New Pro edition license management model. 3. WeChat Official Account calls now display and log chat conversation errors for easier troubleshooting. -4. API knowledge base now supports BasePath selection. Requires an additional API endpoint — see [API Knowledge Base Introduction](/docs/introduction/guide/knowledge_base/api_dataset/#4-获取文件详细信息用于获取文件信息) for details. +4. API knowledge base now supports BasePath selection. Requires an additional API endpoint — see [API Knowledge Base Introduction](../../../introduction/guide/knowledge_base/api_dataset.en.mdx#4-获取文件详细信息用于获取文件信息) for details. ## Improvements diff --git a/document/content/docs/self-host/upgrading/outdated/499.mdx b/document/content/self-host/upgrading/outdated/499.mdx similarity index 88% rename from document/content/docs/self-host/upgrading/outdated/499.mdx rename to document/content/self-host/upgrading/outdated/499.mdx index b70ae9ace3..9d3403ee23 100644 --- a/document/content/docs/self-host/upgrading/outdated/499.mdx +++ b/document/content/self-host/upgrading/outdated/499.mdx @@ -24,7 +24,7 @@ description: FastGPT V4.9.9 更新说明 1. 切换 SessionId 来替代 JWT 实现登录鉴权,可控制最大登录客户端数量。 2. 新的商业版 License 管理模式。 3. 公众号调用,显示记录 chat 对话错误,方便排查。 -4. API 知识库支持 BasePath 选择,需增加 API 接口,具体可见[API 知识库介绍](/docs/introduction/guide/knowledge_base/api_dataset/#4-获取文件详细信息用于获取文件信息) +4. API 知识库支持 BasePath 选择,需增加 API 接口,具体可见[API 知识库介绍](../../../introduction/guide/knowledge_base/api_dataset.mdx#4-获取文件详细信息用于获取文件信息) ## ⚙️ 优化 diff --git a/document/content/docs/self-host/upgrading/outdated/meta.en.json b/document/content/self-host/upgrading/outdated/meta.en.json similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/meta.en.json rename to document/content/self-host/upgrading/outdated/meta.en.json diff --git a/document/content/docs/self-host/upgrading/outdated/meta.json b/document/content/self-host/upgrading/outdated/meta.json similarity index 100% rename from document/content/docs/self-host/upgrading/outdated/meta.json rename to document/content/self-host/upgrading/outdated/meta.json diff --git a/document/content/docs/self-host/upgrading/upgrade-intruction.en.mdx b/document/content/self-host/upgrading/upgrade-intruction.en.mdx similarity index 94% rename from document/content/docs/self-host/upgrading/upgrade-intruction.en.mdx rename to document/content/self-host/upgrading/upgrade-intruction.en.mdx index d2cf0b7816..9261dd27d5 100644 --- a/document/content/docs/self-host/upgrading/upgrade-intruction.en.mdx +++ b/document/content/self-host/upgrading/upgrade-intruction.en.mdx @@ -32,17 +32,17 @@ An image consists of the image name and a `Tag`. For example, registry.cn-hangzh 1. Open [Sealos Cloud](https://cloud.sealos.io?uid=fnWRt09fZP) and find App Management on the desktop. -![](/imgs/updateImageSealos1.jpg) +![](../../../public/imgs/updateImageSealos1.jpg) 2. Select the corresponding app - click the three dots on the right - Update. -![](/imgs/updateImageSealos2.png) +![](../../../public/imgs/updateImageSealos2.png) 3. Update the image - Confirm changes. If you need to modify the configuration file, scroll down to the `Configuration File` section to make changes. -![](/imgs/updateImageSealos3.png) +![](../../../public/imgs/updateImageSealos3.png) ## Updating Images with Docker Compose @@ -70,7 +70,7 @@ Following the initialization steps carefully will not cause any data loss. Howev On Sealos, you can find your domain name as shown below: -![](/imgs/updateImageSealos4.png) +![](../../../public/imgs/updateImageSealos4.png) ### How to get the rootkey diff --git a/document/content/docs/self-host/upgrading/upgrade-intruction.mdx b/document/content/self-host/upgrading/upgrade-intruction.mdx similarity index 95% rename from document/content/docs/self-host/upgrading/upgrade-intruction.mdx rename to document/content/self-host/upgrading/upgrade-intruction.mdx index 87b279888e..46f3ce8570 100644 --- a/document/content/docs/self-host/upgrading/upgrade-intruction.mdx +++ b/document/content/self-host/upgrading/upgrade-intruction.mdx @@ -45,17 +45,17 @@ FastGPT 升级通常包括两个步骤: 1. 打开 [Sealos Cloud](https://cloud.sealos.io?uid=fnWRt09fZP), 找到桌面上的应用管理 -![](/imgs/updateImageSealos1.jpg) +![](../../../public/imgs/updateImageSealos1.jpg) 2. 选择对应的应用 - 点击右边三个点 - 变更 -![](/imgs/updateImageSealos2.png) +![](../../../public/imgs/updateImageSealos2.png) 3. 修改镜像 - 确认变更 如果要修改配置文件,可以拉到下面的`配置文件`进行修改。 -![](/imgs/updateImageSealos3.png) +![](../../../public/imgs/updateImageSealos3.png) ## Docker-Compose 修改镜像 @@ -83,7 +83,7 @@ docker-compose up -d Sealos 中,你可以在下图中找到你的域名: -![](/imgs/updateImageSealos4.png) +![](../../../public/imgs/updateImageSealos4.png) ### 如何获取 rootkey diff --git a/document/content/toc.en.mdx b/document/content/toc.en.mdx new file mode 100644 index 0000000000..db4c221094 --- /dev/null +++ b/document/content/toc.en.mdx @@ -0,0 +1,214 @@ +--- +title: FastGPT Toc +description: FastGPT Toc +--- + +- [/en/faq/app](/en/faq/app) +- [/en/faq/chat](/en/faq/chat) +- [/en/faq/dataset](/en/faq/dataset) +- [/en/faq/external_channel_integration](/en/faq/external_channel_integration) +- [/en/faq/other](/en/faq/other) +- [/en/faq/points_consumption](/en/faq/points_consumption) +- [/en/introduction/cloud/faq](/en/introduction/cloud/faq) +- [/en/introduction/cloud/intro](/en/introduction/cloud/intro) +- [/en/introduction/cloud/privacy](/en/introduction/cloud/privacy) +- [/en/introduction/cloud/terms](/en/introduction/cloud/terms) +- [/en/introduction/commercial](/en/introduction/commercial) +- [/en/introduction/guide/DialogBoxes/htmlRendering](/en/introduction/guide/DialogBoxes/htmlRendering) +- [/en/introduction/guide/DialogBoxes/quoteList](/en/introduction/guide/DialogBoxes/quoteList) +- [/en/introduction/guide/admin/sso](/en/introduction/guide/admin/sso) +- [/en/introduction/guide/admin/teamMode](/en/introduction/guide/admin/teamMode) +- [/en/introduction/guide/course/ai_settings](/en/introduction/guide/course/ai_settings) +- [/en/introduction/guide/course/chat_input_guide](/en/introduction/guide/course/chat_input_guide) +- [/en/introduction/guide/course/fileInput](/en/introduction/guide/course/fileInput) +- [/en/introduction/guide/course/quick-start](/en/introduction/guide/course/quick-start) +- [/en/introduction/guide/dashboard/basic-mode](/en/introduction/guide/dashboard/basic-mode) +- [/en/introduction/guide/dashboard/evaluation](/en/introduction/guide/dashboard/evaluation) +- [/en/introduction/guide/dashboard/intro](/en/introduction/guide/dashboard/intro) +- [/en/introduction/guide/dashboard/mcp_server](/en/introduction/guide/dashboard/mcp_server) +- [/en/introduction/guide/dashboard/mcp_tools](/en/introduction/guide/dashboard/mcp_tools) +- [/en/introduction/guide/dashboard/workflow/ai_chat](/en/introduction/guide/dashboard/workflow/ai_chat) +- [/en/introduction/guide/dashboard/workflow/content_extract](/en/introduction/guide/dashboard/workflow/content_extract) +- [/en/introduction/guide/dashboard/workflow/coreferenceResolution](/en/introduction/guide/dashboard/workflow/coreferenceResolution) +- [/en/introduction/guide/dashboard/workflow/custom_feedback](/en/introduction/guide/dashboard/workflow/custom_feedback) +- [/en/introduction/guide/dashboard/workflow/dataset_search](/en/introduction/guide/dashboard/workflow/dataset_search) +- [/en/introduction/guide/dashboard/workflow/document_parsing](/en/introduction/guide/dashboard/workflow/document_parsing) +- [/en/introduction/guide/dashboard/workflow/form_input](/en/introduction/guide/dashboard/workflow/form_input) +- [/en/introduction/guide/dashboard/workflow/http](/en/introduction/guide/dashboard/workflow/http) +- [/en/introduction/guide/dashboard/workflow/knowledge_base_search_merge](/en/introduction/guide/dashboard/workflow/knowledge_base_search_merge) +- [/en/introduction/guide/dashboard/workflow/laf](/en/introduction/guide/dashboard/workflow/laf) +- [/en/introduction/guide/dashboard/workflow/loop](/en/introduction/guide/dashboard/workflow/loop) +- [/en/introduction/guide/dashboard/workflow/parallel_run](/en/introduction/guide/dashboard/workflow/parallel_run) +- [/en/introduction/guide/dashboard/workflow/question_classify](/en/introduction/guide/dashboard/workflow/question_classify) +- [/en/introduction/guide/dashboard/workflow/reply](/en/introduction/guide/dashboard/workflow/reply) +- [/en/introduction/guide/dashboard/workflow/sandbox-v2](/en/introduction/guide/dashboard/workflow/sandbox-v2) +- [/en/introduction/guide/dashboard/workflow/text_editor](/en/introduction/guide/dashboard/workflow/text_editor) +- [/en/introduction/guide/dashboard/workflow/tfswitch](/en/introduction/guide/dashboard/workflow/tfswitch) +- [/en/introduction/guide/dashboard/workflow/tool](/en/introduction/guide/dashboard/workflow/tool) +- [/en/introduction/guide/dashboard/workflow/user-selection](/en/introduction/guide/dashboard/workflow/user-selection) +- [/en/introduction/guide/dashboard/workflow/variable_update](/en/introduction/guide/dashboard/workflow/variable_update) +- [/en/introduction/guide/knowledge_base/api_dataset](/en/introduction/guide/knowledge_base/api_dataset) +- [/en/introduction/guide/knowledge_base/collection_tags](/en/introduction/guide/knowledge_base/collection_tags) +- [/en/introduction/guide/knowledge_base/dataset_engine](/en/introduction/guide/knowledge_base/dataset_engine) +- [/en/introduction/guide/knowledge_base/lark_dataset](/en/introduction/guide/knowledge_base/lark_dataset) +- [/en/introduction/guide/knowledge_base/rag](/en/introduction/guide/knowledge_base/rag) +- [/en/introduction/guide/knowledge_base/template](/en/introduction/guide/knowledge_base/template) +- [/en/introduction/guide/knowledge_base/third_dataset](/en/introduction/guide/knowledge_base/third_dataset) +- [/en/introduction/guide/knowledge_base/websync](/en/introduction/guide/knowledge_base/websync) +- [/en/introduction/guide/knowledge_base/yuque_dataset](/en/introduction/guide/knowledge_base/yuque_dataset) +- [/en/introduction/guide/plugins/bing_search_plugin](/en/introduction/guide/plugins/bing_search_plugin) +- [/en/introduction/guide/plugins/dev_system_tool](/en/introduction/guide/plugins/dev_system_tool) +- [/en/introduction/guide/plugins/doc2x_plugin_guide](/en/introduction/guide/plugins/doc2x_plugin_guide) +- [/en/introduction/guide/plugins/google_search_plugin_guide](/en/introduction/guide/plugins/google_search_plugin_guide) +- [/en/introduction/guide/plugins/searxng_plugin_guide](/en/introduction/guide/plugins/searxng_plugin_guide) +- [/en/introduction/guide/plugins/upload_system_tool](/en/introduction/guide/plugins/upload_system_tool) +- [/en/introduction/guide/team_permissions/customDomain](/en/introduction/guide/team_permissions/customDomain) +- [/en/introduction/guide/team_permissions/invitation_link](/en/introduction/guide/team_permissions/invitation_link) +- [/en/introduction/guide/team_permissions/team_roles_permissions](/en/introduction/guide/team_permissions/team_roles_permissions) +- [/en/introduction/index](/en/introduction/index) +- [/en/introduction/opensource/intro](/en/introduction/opensource/intro) +- [/en/introduction/opensource/license](/en/introduction/opensource/license) +- [/en/openapi/app](/en/openapi/app) +- [/en/openapi/chat](/en/openapi/chat) +- [/en/openapi/dataset](/en/openapi/dataset) +- [/en/openapi/index](/en/openapi/index) +- [/en/openapi/intro](/en/openapi/intro) +- [/en/openapi/share](/en/openapi/share) +- [/en/self-host/config/json](/en/self-host/config/json) +- [/en/self-host/config/model/intro](/en/self-host/config/model/intro) +- [/en/self-host/config/model/minimax](/en/self-host/config/model/minimax) +- [/en/self-host/config/model/siliconCloud](/en/self-host/config/model/siliconCloud) +- [/en/self-host/config/object-storage](/en/self-host/config/object-storage) +- [/en/self-host/config/signoz](/en/self-host/config/signoz) +- [/en/self-host/custom-models/bge-rerank](/en/self-host/custom-models/bge-rerank) +- [/en/self-host/custom-models/chatglm2](/en/self-host/custom-models/chatglm2) +- [/en/self-host/custom-models/chatglm2-m3e](/en/self-host/custom-models/chatglm2-m3e) +- [/en/self-host/custom-models/m3e](/en/self-host/custom-models/m3e) +- [/en/self-host/custom-models/marker](/en/self-host/custom-models/marker) +- [/en/self-host/custom-models/mineru](/en/self-host/custom-models/mineru) +- [/en/self-host/custom-models/ollama](/en/self-host/custom-models/ollama) +- [/en/self-host/custom-models/xinference](/en/self-host/custom-models/xinference) +- [/en/self-host/deploy/docker](/en/self-host/deploy/docker) +- [/en/self-host/deploy/sealos](/en/self-host/deploy/sealos) +- [/en/self-host/design/dataset](/en/self-host/design/dataset) +- [/en/self-host/design/design_plugin](/en/self-host/design/design_plugin) +- [/en/self-host/dev](/en/self-host/dev) +- [/en/self-host/index](/en/self-host/index) +- [/en/self-host/migration/docker_db](/en/self-host/migration/docker_db) +- [/en/self-host/migration/docker_mongo](/en/self-host/migration/docker_mongo) +- [/en/self-host/troubleshooting/attention](/en/self-host/troubleshooting/attention) +- [/en/self-host/troubleshooting/faq](/en/self-host/troubleshooting/faq) +- [/en/self-host/troubleshooting/methods](/en/self-host/troubleshooting/methods) +- [/en/self-host/troubleshooting/model-errors](/en/self-host/troubleshooting/model-errors) +- [/en/self-host/troubleshooting/s3-issues](/en/self-host/troubleshooting/s3-issues) +- [/en/self-host/upgrading/4-12/4120](/en/self-host/upgrading/4-12/4120) +- [/en/self-host/upgrading/4-12/4121](/en/self-host/upgrading/4-12/4121) +- [/en/self-host/upgrading/4-12/4122](/en/self-host/upgrading/4-12/4122) +- [/en/self-host/upgrading/4-12/4123](/en/self-host/upgrading/4-12/4123) +- [/en/self-host/upgrading/4-12/4124](/en/self-host/upgrading/4-12/4124) +- [/en/self-host/upgrading/4-13/4130](/en/self-host/upgrading/4-13/4130) +- [/en/self-host/upgrading/4-13/4131](/en/self-host/upgrading/4-13/4131) +- [/en/self-host/upgrading/4-13/4132](/en/self-host/upgrading/4-13/4132) +- [/en/self-host/upgrading/4-14/4140](/en/self-host/upgrading/4-14/4140) +- [/en/self-host/upgrading/4-14/4141](/en/self-host/upgrading/4-14/4141) +- [/en/self-host/upgrading/4-14/41410](/en/self-host/upgrading/4-14/41410) +- [/en/self-host/upgrading/4-14/41411](/en/self-host/upgrading/4-14/41411) +- [/en/self-host/upgrading/4-14/41412](/en/self-host/upgrading/4-14/41412) +- [/en/self-host/upgrading/4-14/41413](/en/self-host/upgrading/4-14/41413) +- [/en/self-host/upgrading/4-14/41414](/en/self-host/upgrading/4-14/41414) +- [/en/self-host/upgrading/4-14/41415](/en/self-host/upgrading/4-14/41415) +- [/en/self-host/upgrading/4-14/4142](/en/self-host/upgrading/4-14/4142) +- [/en/self-host/upgrading/4-14/4143](/en/self-host/upgrading/4-14/4143) +- [/en/self-host/upgrading/4-14/4144](/en/self-host/upgrading/4-14/4144) +- [/en/self-host/upgrading/4-14/4145](/en/self-host/upgrading/4-14/4145) +- [/en/self-host/upgrading/4-14/41451](/en/self-host/upgrading/4-14/41451) +- [/en/self-host/upgrading/4-14/4146](/en/self-host/upgrading/4-14/4146) +- [/en/self-host/upgrading/4-14/4147](/en/self-host/upgrading/4-14/4147) +- [/en/self-host/upgrading/4-14/4148](/en/self-host/upgrading/4-14/4148) +- [/en/self-host/upgrading/4-14/41481](/en/self-host/upgrading/4-14/41481) +- [/en/self-host/upgrading/4-14/4149](/en/self-host/upgrading/4-14/4149) +- [/en/self-host/upgrading/outdated/40](/en/self-host/upgrading/outdated/40) +- [/en/self-host/upgrading/outdated/41](/en/self-host/upgrading/outdated/41) +- [/en/self-host/upgrading/outdated/4100](/en/self-host/upgrading/outdated/4100) +- [/en/self-host/upgrading/outdated/4101](/en/self-host/upgrading/outdated/4101) +- [/en/self-host/upgrading/outdated/4110](/en/self-host/upgrading/outdated/4110) +- [/en/self-host/upgrading/outdated/4111](/en/self-host/upgrading/outdated/4111) +- [/en/self-host/upgrading/outdated/42](/en/self-host/upgrading/outdated/42) +- [/en/self-host/upgrading/outdated/421](/en/self-host/upgrading/outdated/421) +- [/en/self-host/upgrading/outdated/43](/en/self-host/upgrading/outdated/43) +- [/en/self-host/upgrading/outdated/44](/en/self-host/upgrading/outdated/44) +- [/en/self-host/upgrading/outdated/441](/en/self-host/upgrading/outdated/441) +- [/en/self-host/upgrading/outdated/442](/en/self-host/upgrading/outdated/442) +- [/en/self-host/upgrading/outdated/445](/en/self-host/upgrading/outdated/445) +- [/en/self-host/upgrading/outdated/446](/en/self-host/upgrading/outdated/446) +- [/en/self-host/upgrading/outdated/447](/en/self-host/upgrading/outdated/447) +- [/en/self-host/upgrading/outdated/45](/en/self-host/upgrading/outdated/45) +- [/en/self-host/upgrading/outdated/451](/en/self-host/upgrading/outdated/451) +- [/en/self-host/upgrading/outdated/452](/en/self-host/upgrading/outdated/452) +- [/en/self-host/upgrading/outdated/46](/en/self-host/upgrading/outdated/46) +- [/en/self-host/upgrading/outdated/461](/en/self-host/upgrading/outdated/461) +- [/en/self-host/upgrading/outdated/462](/en/self-host/upgrading/outdated/462) +- [/en/self-host/upgrading/outdated/463](/en/self-host/upgrading/outdated/463) +- [/en/self-host/upgrading/outdated/464](/en/self-host/upgrading/outdated/464) +- [/en/self-host/upgrading/outdated/465](/en/self-host/upgrading/outdated/465) +- [/en/self-host/upgrading/outdated/466](/en/self-host/upgrading/outdated/466) +- [/en/self-host/upgrading/outdated/467](/en/self-host/upgrading/outdated/467) +- [/en/self-host/upgrading/outdated/468](/en/self-host/upgrading/outdated/468) +- [/en/self-host/upgrading/outdated/469](/en/self-host/upgrading/outdated/469) +- [/en/self-host/upgrading/outdated/47](/en/self-host/upgrading/outdated/47) +- [/en/self-host/upgrading/outdated/471](/en/self-host/upgrading/outdated/471) +- [/en/self-host/upgrading/outdated/48](/en/self-host/upgrading/outdated/48) +- [/en/self-host/upgrading/outdated/481](/en/self-host/upgrading/outdated/481) +- [/en/self-host/upgrading/outdated/4810](/en/self-host/upgrading/outdated/4810) +- [/en/self-host/upgrading/outdated/4811](/en/self-host/upgrading/outdated/4811) +- [/en/self-host/upgrading/outdated/4812](/en/self-host/upgrading/outdated/4812) +- [/en/self-host/upgrading/outdated/4813](/en/self-host/upgrading/outdated/4813) +- [/en/self-host/upgrading/outdated/4814](/en/self-host/upgrading/outdated/4814) +- [/en/self-host/upgrading/outdated/4815](/en/self-host/upgrading/outdated/4815) +- [/en/self-host/upgrading/outdated/4816](/en/self-host/upgrading/outdated/4816) +- [/en/self-host/upgrading/outdated/4817](/en/self-host/upgrading/outdated/4817) +- [/en/self-host/upgrading/outdated/4818](/en/self-host/upgrading/outdated/4818) +- [/en/self-host/upgrading/outdated/4819](/en/self-host/upgrading/outdated/4819) +- [/en/self-host/upgrading/outdated/482](/en/self-host/upgrading/outdated/482) +- [/en/self-host/upgrading/outdated/4820](/en/self-host/upgrading/outdated/4820) +- [/en/self-host/upgrading/outdated/4821](/en/self-host/upgrading/outdated/4821) +- [/en/self-host/upgrading/outdated/4822](/en/self-host/upgrading/outdated/4822) +- [/en/self-host/upgrading/outdated/4823](/en/self-host/upgrading/outdated/4823) +- [/en/self-host/upgrading/outdated/483](/en/self-host/upgrading/outdated/483) +- [/en/self-host/upgrading/outdated/484](/en/self-host/upgrading/outdated/484) +- [/en/self-host/upgrading/outdated/485](/en/self-host/upgrading/outdated/485) +- [/en/self-host/upgrading/outdated/486](/en/self-host/upgrading/outdated/486) +- [/en/self-host/upgrading/outdated/487](/en/self-host/upgrading/outdated/487) +- [/en/self-host/upgrading/outdated/488](/en/self-host/upgrading/outdated/488) +- [/en/self-host/upgrading/outdated/489](/en/self-host/upgrading/outdated/489) +- [/en/self-host/upgrading/outdated/490](/en/self-host/upgrading/outdated/490) +- [/en/self-host/upgrading/outdated/491](/en/self-host/upgrading/outdated/491) +- [/en/self-host/upgrading/outdated/4910](/en/self-host/upgrading/outdated/4910) +- [/en/self-host/upgrading/outdated/4911](/en/self-host/upgrading/outdated/4911) +- [/en/self-host/upgrading/outdated/4912](/en/self-host/upgrading/outdated/4912) +- [/en/self-host/upgrading/outdated/4913](/en/self-host/upgrading/outdated/4913) +- [/en/self-host/upgrading/outdated/4914](/en/self-host/upgrading/outdated/4914) +- [/en/self-host/upgrading/outdated/492](/en/self-host/upgrading/outdated/492) +- [/en/self-host/upgrading/outdated/493](/en/self-host/upgrading/outdated/493) +- [/en/self-host/upgrading/outdated/494](/en/self-host/upgrading/outdated/494) +- [/en/self-host/upgrading/outdated/495](/en/self-host/upgrading/outdated/495) +- [/en/self-host/upgrading/outdated/496](/en/self-host/upgrading/outdated/496) +- [/en/self-host/upgrading/outdated/497](/en/self-host/upgrading/outdated/497) +- [/en/self-host/upgrading/outdated/498](/en/self-host/upgrading/outdated/498) +- [/en/self-host/upgrading/outdated/499](/en/self-host/upgrading/outdated/499) +- [/en/self-host/upgrading/upgrade-intruction](/en/self-host/upgrading/upgrade-intruction) +- [/en/use-cases/app-cases/dalle3](/en/use-cases/app-cases/dalle3) +- [/en/use-cases/app-cases/english_essay_correction_bot](/en/use-cases/app-cases/english_essay_correction_bot) +- [/en/use-cases/app-cases/feishu_webhook](/en/use-cases/app-cases/feishu_webhook) +- [/en/use-cases/app-cases/fixingEvidence](/en/use-cases/app-cases/fixingEvidence) +- [/en/use-cases/app-cases/google_search](/en/use-cases/app-cases/google_search) +- [/en/use-cases/app-cases/lab_appointment](/en/use-cases/app-cases/lab_appointment) +- [/en/use-cases/app-cases/multi_turn_translation_bot](/en/use-cases/app-cases/multi_turn_translation_bot) +- [/en/use-cases/app-cases/submit_application_template](/en/use-cases/app-cases/submit_application_template) +- [/en/use-cases/app-cases/translate-subtitle-using-gpt](/en/use-cases/app-cases/translate-subtitle-using-gpt) +- [/en/use-cases/external-integration/dingtalk](/en/use-cases/external-integration/dingtalk) +- [/en/use-cases/external-integration/feishu](/en/use-cases/external-integration/feishu) +- [/en/use-cases/external-integration/official_account](/en/use-cases/external-integration/official_account) +- [/en/use-cases/external-integration/openapi](/en/use-cases/external-integration/openapi) +- [/en/use-cases/external-integration/wechat](/en/use-cases/external-integration/wechat) +- [/en/use-cases/external-integration/wecom](/en/use-cases/external-integration/wecom) diff --git a/document/content/toc.mdx b/document/content/toc.mdx new file mode 100644 index 0000000000..095f256241 --- /dev/null +++ b/document/content/toc.mdx @@ -0,0 +1,215 @@ +--- +title: FastGPT 文档目录 +description: FastGPT 文档目录 +--- + +- [/faq/app](/faq/app) +- [/faq/chat](/faq/chat) +- [/faq/dataset](/faq/dataset) +- [/faq/external_channel_integration](/faq/external_channel_integration) +- [/faq/other](/faq/other) +- [/faq/points_consumption](/faq/points_consumption) +- [/introduction/cloud/faq](/introduction/cloud/faq) +- [/introduction/cloud/intro](/introduction/cloud/intro) +- [/introduction/cloud/privacy](/introduction/cloud/privacy) +- [/introduction/cloud/terms](/introduction/cloud/terms) +- [/introduction/commercial](/introduction/commercial) +- [/introduction/guide/DialogBoxes/htmlRendering](/introduction/guide/DialogBoxes/htmlRendering) +- [/introduction/guide/DialogBoxes/quoteList](/introduction/guide/DialogBoxes/quoteList) +- [/introduction/guide/admin/sso](/introduction/guide/admin/sso) +- [/introduction/guide/admin/teamMode](/introduction/guide/admin/teamMode) +- [/introduction/guide/course/ai_settings](/introduction/guide/course/ai_settings) +- [/introduction/guide/course/chat_input_guide](/introduction/guide/course/chat_input_guide) +- [/introduction/guide/course/fileInput](/introduction/guide/course/fileInput) +- [/introduction/guide/course/quick-start](/introduction/guide/course/quick-start) +- [/introduction/guide/dashboard/basic-mode](/introduction/guide/dashboard/basic-mode) +- [/introduction/guide/dashboard/evaluation](/introduction/guide/dashboard/evaluation) +- [/introduction/guide/dashboard/intro](/introduction/guide/dashboard/intro) +- [/introduction/guide/dashboard/mcp_server](/introduction/guide/dashboard/mcp_server) +- [/introduction/guide/dashboard/mcp_tools](/introduction/guide/dashboard/mcp_tools) +- [/introduction/guide/dashboard/workflow/ai_chat](/introduction/guide/dashboard/workflow/ai_chat) +- [/introduction/guide/dashboard/workflow/content_extract](/introduction/guide/dashboard/workflow/content_extract) +- [/introduction/guide/dashboard/workflow/coreferenceResolution](/introduction/guide/dashboard/workflow/coreferenceResolution) +- [/introduction/guide/dashboard/workflow/custom_feedback](/introduction/guide/dashboard/workflow/custom_feedback) +- [/introduction/guide/dashboard/workflow/dataset_search](/introduction/guide/dashboard/workflow/dataset_search) +- [/introduction/guide/dashboard/workflow/document_parsing](/introduction/guide/dashboard/workflow/document_parsing) +- [/introduction/guide/dashboard/workflow/form_input](/introduction/guide/dashboard/workflow/form_input) +- [/introduction/guide/dashboard/workflow/http](/introduction/guide/dashboard/workflow/http) +- [/introduction/guide/dashboard/workflow/knowledge_base_search_merge](/introduction/guide/dashboard/workflow/knowledge_base_search_merge) +- [/introduction/guide/dashboard/workflow/laf](/introduction/guide/dashboard/workflow/laf) +- [/introduction/guide/dashboard/workflow/loop](/introduction/guide/dashboard/workflow/loop) +- [/introduction/guide/dashboard/workflow/parallel_run](/introduction/guide/dashboard/workflow/parallel_run) +- [/introduction/guide/dashboard/workflow/question_classify](/introduction/guide/dashboard/workflow/question_classify) +- [/introduction/guide/dashboard/workflow/reply](/introduction/guide/dashboard/workflow/reply) +- [/introduction/guide/dashboard/workflow/sandbox-v2](/introduction/guide/dashboard/workflow/sandbox-v2) +- [/introduction/guide/dashboard/workflow/text_editor](/introduction/guide/dashboard/workflow/text_editor) +- [/introduction/guide/dashboard/workflow/tfswitch](/introduction/guide/dashboard/workflow/tfswitch) +- [/introduction/guide/dashboard/workflow/tool](/introduction/guide/dashboard/workflow/tool) +- [/introduction/guide/dashboard/workflow/user-selection](/introduction/guide/dashboard/workflow/user-selection) +- [/introduction/guide/dashboard/workflow/variable_update](/introduction/guide/dashboard/workflow/variable_update) +- [/introduction/guide/knowledge_base/api_dataset](/introduction/guide/knowledge_base/api_dataset) +- [/introduction/guide/knowledge_base/collection_tags](/introduction/guide/knowledge_base/collection_tags) +- [/introduction/guide/knowledge_base/dataset_engine](/introduction/guide/knowledge_base/dataset_engine) +- [/introduction/guide/knowledge_base/lark_dataset](/introduction/guide/knowledge_base/lark_dataset) +- [/introduction/guide/knowledge_base/rag](/introduction/guide/knowledge_base/rag) +- [/introduction/guide/knowledge_base/template](/introduction/guide/knowledge_base/template) +- [/introduction/guide/knowledge_base/third_dataset](/introduction/guide/knowledge_base/third_dataset) +- [/introduction/guide/knowledge_base/websync](/introduction/guide/knowledge_base/websync) +- [/introduction/guide/knowledge_base/yuque_dataset](/introduction/guide/knowledge_base/yuque_dataset) +- [/introduction/guide/plugins/bing_search_plugin](/introduction/guide/plugins/bing_search_plugin) +- [/introduction/guide/plugins/dev_system_tool](/introduction/guide/plugins/dev_system_tool) +- [/introduction/guide/plugins/doc2x_plugin_guide](/introduction/guide/plugins/doc2x_plugin_guide) +- [/introduction/guide/plugins/google_search_plugin_guide](/introduction/guide/plugins/google_search_plugin_guide) +- [/introduction/guide/plugins/searxng_plugin_guide](/introduction/guide/plugins/searxng_plugin_guide) +- [/introduction/guide/plugins/upload_system_tool](/introduction/guide/plugins/upload_system_tool) +- [/introduction/guide/team_permissions/customDomain](/introduction/guide/team_permissions/customDomain) +- [/introduction/guide/team_permissions/invitation_link](/introduction/guide/team_permissions/invitation_link) +- [/introduction/guide/team_permissions/team_roles_permissions](/introduction/guide/team_permissions/team_roles_permissions) +- [/introduction/index](/introduction/index) +- [/introduction/opensource/intro](/introduction/opensource/intro) +- [/introduction/opensource/license](/introduction/opensource/license) +- [/openapi/app](/openapi/app) +- [/openapi/chat](/openapi/chat) +- [/openapi/dataset](/openapi/dataset) +- [/openapi/index](/openapi/index) +- [/openapi/intro](/openapi/intro) +- [/openapi/share](/openapi/share) +- [/self-host/config/json](/self-host/config/json) +- [/self-host/config/model/intro](/self-host/config/model/intro) +- [/self-host/config/model/minimax](/self-host/config/model/minimax) +- [/self-host/config/model/siliconCloud](/self-host/config/model/siliconCloud) +- [/self-host/config/object-storage](/self-host/config/object-storage) +- [/self-host/config/signoz](/self-host/config/signoz) +- [/self-host/custom-models/bge-rerank](/self-host/custom-models/bge-rerank) +- [/self-host/custom-models/chatglm2](/self-host/custom-models/chatglm2) +- [/self-host/custom-models/chatglm2-m3e](/self-host/custom-models/chatglm2-m3e) +- [/self-host/custom-models/m3e](/self-host/custom-models/m3e) +- [/self-host/custom-models/marker](/self-host/custom-models/marker) +- [/self-host/custom-models/mineru](/self-host/custom-models/mineru) +- [/self-host/custom-models/ollama](/self-host/custom-models/ollama) +- [/self-host/custom-models/xinference](/self-host/custom-models/xinference) +- [/self-host/deploy/docker](/self-host/deploy/docker) +- [/self-host/deploy/sealos](/self-host/deploy/sealos) +- [/self-host/design/dataset](/self-host/design/dataset) +- [/self-host/design/design_plugin](/self-host/design/design_plugin) +- [/self-host/dev](/self-host/dev) +- [/self-host/index](/self-host/index) +- [/self-host/migration/docker_db](/self-host/migration/docker_db) +- [/self-host/migration/docker_mongo](/self-host/migration/docker_mongo) +- [/self-host/troubleshooting/attention](/self-host/troubleshooting/attention) +- [/self-host/troubleshooting/faq](/self-host/troubleshooting/faq) +- [/self-host/troubleshooting/methods](/self-host/troubleshooting/methods) +- [/self-host/troubleshooting/model-errors](/self-host/troubleshooting/model-errors) +- [/self-host/troubleshooting/s3-issues](/self-host/troubleshooting/s3-issues) +- [/self-host/upgrading/4-12/4120](/self-host/upgrading/4-12/4120) +- [/self-host/upgrading/4-12/4121](/self-host/upgrading/4-12/4121) +- [/self-host/upgrading/4-12/4122](/self-host/upgrading/4-12/4122) +- [/self-host/upgrading/4-12/4123](/self-host/upgrading/4-12/4123) +- [/self-host/upgrading/4-12/4124](/self-host/upgrading/4-12/4124) +- [/self-host/upgrading/4-13/4130](/self-host/upgrading/4-13/4130) +- [/self-host/upgrading/4-13/4131](/self-host/upgrading/4-13/4131) +- [/self-host/upgrading/4-13/4132](/self-host/upgrading/4-13/4132) +- [/self-host/upgrading/4-14/4140](/self-host/upgrading/4-14/4140) +- [/self-host/upgrading/4-14/4141](/self-host/upgrading/4-14/4141) +- [/self-host/upgrading/4-14/41410](/self-host/upgrading/4-14/41410) +- [/self-host/upgrading/4-14/41411](/self-host/upgrading/4-14/41411) +- [/self-host/upgrading/4-14/41412](/self-host/upgrading/4-14/41412) +- [/self-host/upgrading/4-14/41413](/self-host/upgrading/4-14/41413) +- [/self-host/upgrading/4-14/41414](/self-host/upgrading/4-14/41414) +- [/self-host/upgrading/4-14/41415](/self-host/upgrading/4-14/41415) +- [/self-host/upgrading/4-14/4142](/self-host/upgrading/4-14/4142) +- [/self-host/upgrading/4-14/4143](/self-host/upgrading/4-14/4143) +- [/self-host/upgrading/4-14/4144](/self-host/upgrading/4-14/4144) +- [/self-host/upgrading/4-14/4145](/self-host/upgrading/4-14/4145) +- [/self-host/upgrading/4-14/41451](/self-host/upgrading/4-14/41451) +- [/self-host/upgrading/4-14/4146](/self-host/upgrading/4-14/4146) +- [/self-host/upgrading/4-14/4147](/self-host/upgrading/4-14/4147) +- [/self-host/upgrading/4-14/4148](/self-host/upgrading/4-14/4148) +- [/self-host/upgrading/4-14/41481](/self-host/upgrading/4-14/41481) +- [/self-host/upgrading/4-14/4149](/self-host/upgrading/4-14/4149) +- [/self-host/upgrading/4-15/4150](/self-host/upgrading/4-15/4150) +- [/self-host/upgrading/outdated/40](/self-host/upgrading/outdated/40) +- [/self-host/upgrading/outdated/41](/self-host/upgrading/outdated/41) +- [/self-host/upgrading/outdated/4100](/self-host/upgrading/outdated/4100) +- [/self-host/upgrading/outdated/4101](/self-host/upgrading/outdated/4101) +- [/self-host/upgrading/outdated/4110](/self-host/upgrading/outdated/4110) +- [/self-host/upgrading/outdated/4111](/self-host/upgrading/outdated/4111) +- [/self-host/upgrading/outdated/42](/self-host/upgrading/outdated/42) +- [/self-host/upgrading/outdated/421](/self-host/upgrading/outdated/421) +- [/self-host/upgrading/outdated/43](/self-host/upgrading/outdated/43) +- [/self-host/upgrading/outdated/44](/self-host/upgrading/outdated/44) +- [/self-host/upgrading/outdated/441](/self-host/upgrading/outdated/441) +- [/self-host/upgrading/outdated/442](/self-host/upgrading/outdated/442) +- [/self-host/upgrading/outdated/445](/self-host/upgrading/outdated/445) +- [/self-host/upgrading/outdated/446](/self-host/upgrading/outdated/446) +- [/self-host/upgrading/outdated/447](/self-host/upgrading/outdated/447) +- [/self-host/upgrading/outdated/45](/self-host/upgrading/outdated/45) +- [/self-host/upgrading/outdated/451](/self-host/upgrading/outdated/451) +- [/self-host/upgrading/outdated/452](/self-host/upgrading/outdated/452) +- [/self-host/upgrading/outdated/46](/self-host/upgrading/outdated/46) +- [/self-host/upgrading/outdated/461](/self-host/upgrading/outdated/461) +- [/self-host/upgrading/outdated/462](/self-host/upgrading/outdated/462) +- [/self-host/upgrading/outdated/463](/self-host/upgrading/outdated/463) +- [/self-host/upgrading/outdated/464](/self-host/upgrading/outdated/464) +- [/self-host/upgrading/outdated/465](/self-host/upgrading/outdated/465) +- [/self-host/upgrading/outdated/466](/self-host/upgrading/outdated/466) +- [/self-host/upgrading/outdated/467](/self-host/upgrading/outdated/467) +- [/self-host/upgrading/outdated/468](/self-host/upgrading/outdated/468) +- [/self-host/upgrading/outdated/469](/self-host/upgrading/outdated/469) +- [/self-host/upgrading/outdated/47](/self-host/upgrading/outdated/47) +- [/self-host/upgrading/outdated/471](/self-host/upgrading/outdated/471) +- [/self-host/upgrading/outdated/48](/self-host/upgrading/outdated/48) +- [/self-host/upgrading/outdated/481](/self-host/upgrading/outdated/481) +- [/self-host/upgrading/outdated/4810](/self-host/upgrading/outdated/4810) +- [/self-host/upgrading/outdated/4811](/self-host/upgrading/outdated/4811) +- [/self-host/upgrading/outdated/4812](/self-host/upgrading/outdated/4812) +- [/self-host/upgrading/outdated/4813](/self-host/upgrading/outdated/4813) +- [/self-host/upgrading/outdated/4814](/self-host/upgrading/outdated/4814) +- [/self-host/upgrading/outdated/4815](/self-host/upgrading/outdated/4815) +- [/self-host/upgrading/outdated/4816](/self-host/upgrading/outdated/4816) +- [/self-host/upgrading/outdated/4817](/self-host/upgrading/outdated/4817) +- [/self-host/upgrading/outdated/4818](/self-host/upgrading/outdated/4818) +- [/self-host/upgrading/outdated/4819](/self-host/upgrading/outdated/4819) +- [/self-host/upgrading/outdated/482](/self-host/upgrading/outdated/482) +- [/self-host/upgrading/outdated/4820](/self-host/upgrading/outdated/4820) +- [/self-host/upgrading/outdated/4821](/self-host/upgrading/outdated/4821) +- [/self-host/upgrading/outdated/4822](/self-host/upgrading/outdated/4822) +- [/self-host/upgrading/outdated/4823](/self-host/upgrading/outdated/4823) +- [/self-host/upgrading/outdated/483](/self-host/upgrading/outdated/483) +- [/self-host/upgrading/outdated/484](/self-host/upgrading/outdated/484) +- [/self-host/upgrading/outdated/485](/self-host/upgrading/outdated/485) +- [/self-host/upgrading/outdated/486](/self-host/upgrading/outdated/486) +- [/self-host/upgrading/outdated/487](/self-host/upgrading/outdated/487) +- [/self-host/upgrading/outdated/488](/self-host/upgrading/outdated/488) +- [/self-host/upgrading/outdated/489](/self-host/upgrading/outdated/489) +- [/self-host/upgrading/outdated/490](/self-host/upgrading/outdated/490) +- [/self-host/upgrading/outdated/491](/self-host/upgrading/outdated/491) +- [/self-host/upgrading/outdated/4910](/self-host/upgrading/outdated/4910) +- [/self-host/upgrading/outdated/4911](/self-host/upgrading/outdated/4911) +- [/self-host/upgrading/outdated/4912](/self-host/upgrading/outdated/4912) +- [/self-host/upgrading/outdated/4913](/self-host/upgrading/outdated/4913) +- [/self-host/upgrading/outdated/4914](/self-host/upgrading/outdated/4914) +- [/self-host/upgrading/outdated/492](/self-host/upgrading/outdated/492) +- [/self-host/upgrading/outdated/493](/self-host/upgrading/outdated/493) +- [/self-host/upgrading/outdated/494](/self-host/upgrading/outdated/494) +- [/self-host/upgrading/outdated/495](/self-host/upgrading/outdated/495) +- [/self-host/upgrading/outdated/496](/self-host/upgrading/outdated/496) +- [/self-host/upgrading/outdated/497](/self-host/upgrading/outdated/497) +- [/self-host/upgrading/outdated/498](/self-host/upgrading/outdated/498) +- [/self-host/upgrading/outdated/499](/self-host/upgrading/outdated/499) +- [/self-host/upgrading/upgrade-intruction](/self-host/upgrading/upgrade-intruction) +- [/use-cases/app-cases/dalle3](/use-cases/app-cases/dalle3) +- [/use-cases/app-cases/english_essay_correction_bot](/use-cases/app-cases/english_essay_correction_bot) +- [/use-cases/app-cases/feishu_webhook](/use-cases/app-cases/feishu_webhook) +- [/use-cases/app-cases/fixingEvidence](/use-cases/app-cases/fixingEvidence) +- [/use-cases/app-cases/google_search](/use-cases/app-cases/google_search) +- [/use-cases/app-cases/lab_appointment](/use-cases/app-cases/lab_appointment) +- [/use-cases/app-cases/multi_turn_translation_bot](/use-cases/app-cases/multi_turn_translation_bot) +- [/use-cases/app-cases/submit_application_template](/use-cases/app-cases/submit_application_template) +- [/use-cases/app-cases/translate-subtitle-using-gpt](/use-cases/app-cases/translate-subtitle-using-gpt) +- [/use-cases/external-integration/dingtalk](/use-cases/external-integration/dingtalk) +- [/use-cases/external-integration/feishu](/use-cases/external-integration/feishu) +- [/use-cases/external-integration/official_account](/use-cases/external-integration/official_account) +- [/use-cases/external-integration/openapi](/use-cases/external-integration/openapi) +- [/use-cases/external-integration/wechat](/use-cases/external-integration/wechat) +- [/use-cases/external-integration/wecom](/use-cases/external-integration/wecom) diff --git a/document/content/docs/use-cases/app-cases/dalle3.en.mdx b/document/content/use-cases/app-cases/dalle3.en.mdx similarity index 99% rename from document/content/docs/use-cases/app-cases/dalle3.en.mdx rename to document/content/use-cases/app-cases/dalle3.en.mdx index 2982bbc95a..1b7045e43c 100644 --- a/document/content/docs/use-cases/app-cases/dalle3.en.mdx +++ b/document/content/use-cases/app-cases/dalle3.en.mdx @@ -5,7 +5,7 @@ description: Generate images using the HTTP Request module with DALL-E 3 | | | | --------------------- | --------------------- | -| ![](/imgs/demo-dalle1.webp) | ![](/imgs/demo-dalle2.webp) | +| ![](../../../public/imgs/demo-dalle1.webp) | ![](../../../public/imgs/demo-dalle2.webp) | ## OpenAI DALL-E 3 API diff --git a/document/content/docs/use-cases/app-cases/dalle3.mdx b/document/content/use-cases/app-cases/dalle3.mdx similarity index 99% rename from document/content/docs/use-cases/app-cases/dalle3.mdx rename to document/content/use-cases/app-cases/dalle3.mdx index ae2b74b87a..29a9047a07 100644 --- a/document/content/docs/use-cases/app-cases/dalle3.mdx +++ b/document/content/use-cases/app-cases/dalle3.mdx @@ -5,7 +5,7 @@ description: 使用 HTTP 模块绘制图片 | | | | --------------------- | --------------------- | -| ![](/imgs/demo-dalle1.webp) | ![](/imgs/demo-dalle2.webp) | +| ![](../../../public/imgs/demo-dalle1.webp) | ![](../../../public/imgs/demo-dalle2.webp) | ## OpenAI Dalle3 接口 diff --git a/document/content/docs/use-cases/app-cases/english_essay_correction_bot.en.mdx b/document/content/use-cases/app-cases/english_essay_correction_bot.en.mdx similarity index 91% rename from document/content/docs/use-cases/app-cases/english_essay_correction_bot.en.mdx rename to document/content/use-cases/app-cases/english_essay_correction_bot.en.mdx index 5494148d26..3d58fb9453 100644 --- a/document/content/docs/use-cases/app-cases/english_essay_correction_bot.en.mdx +++ b/document/content/use-cases/app-cases/english_essay_correction_bot.en.mdx @@ -11,7 +11,7 @@ This article demonstrates how to use **Workflows** by building an English essay ### 1. Create a Workflow -![](/imgs/spellcheck1.png) +![](../../../public/imgs/spellcheck1.png) You can start from the *Multi-turn Translation Bot* template. @@ -21,7 +21,7 @@ You can start from the *Multi-turn Translation Bot* template. We want the LLM to process text and return structured data that we handle ourselves. -![](/imgs/spellcheck2.png) +![](../../../public/imgs/spellcheck2.png) The **System Prompt** is the most critical parameter. Here is a reference prompt: @@ -51,13 +51,13 @@ You can disable AI reply in the model selection window. This hides the raw JSON output from the user. -![](/imgs/spellcheck3.png) +![](../../../public/imgs/spellcheck3.png) ### 3. Data Processing The LLM outputs JSON, which needs further processing. Use the Code Execution module for this. -![](/imgs/spellcheck4.png) +![](../../../public/imgs/spellcheck4.png) ```javascript function main({data}){ @@ -85,7 +85,7 @@ FastGPT's Specified Reply module renders Markdown as HTML in the response. Publish through the available publishing channels. -![](/imgs/spellcheck5.png) +![](../../../public/imgs/spellcheck5.png) You can access it via URL or embed it directly into your webpage. diff --git a/document/content/docs/use-cases/app-cases/english_essay_correction_bot.mdx b/document/content/use-cases/app-cases/english_essay_correction_bot.mdx similarity index 92% rename from document/content/docs/use-cases/app-cases/english_essay_correction_bot.mdx rename to document/content/use-cases/app-cases/english_essay_correction_bot.mdx index 19424273c9..b789509eb2 100644 --- a/document/content/docs/use-cases/app-cases/english_essay_correction_bot.mdx +++ b/document/content/use-cases/app-cases/english_essay_correction_bot.mdx @@ -11,7 +11,7 @@ FastGPT 提供了一种基于 LLM Model 搭建应用的简便方式。 ### 1. 创建工作流 -![](/imgs/spellcheck1.png) +![](../../../public/imgs/spellcheck1.png) 可以从 *多轮翻译机器人* 开始创建。 @@ -21,7 +21,7 @@ FastGPT 提供了一种基于 LLM Model 搭建应用的简便方式。 我们期望让大模型处理文字,返回一个结构化的数据,由我们自己处理。 -![](/imgs/spellcheck2.png) +![](../../../public/imgs/spellcheck2.png) **提示词** 是最重要的一个参数,这里提供的提示词仅供参考: @@ -52,13 +52,13 @@ FastGPT 提供了一种基于 LLM Model 搭建应用的简便方式。 这样就看不到输出的 json 格式的内容了。 -![](/imgs/spellcheck3.png) +![](../../../public/imgs/spellcheck3.png) ### 3. 数据处理 上面的大模型输出了一个 json,这里要进行数据处理。数据处理可以使用代码执行组件。 -![](/imgs/spellcheck4.png) +![](../../../public/imgs/spellcheck4.png) ```javascript function main({data}){ @@ -86,7 +86,7 @@ FastGPT 的指定回复组件可以将 Markdown 解析为 Html 返回。 可以使用发布渠道进行发布。 -![](/imgs/spellcheck5.png) +![](../../../public/imgs/spellcheck5.png) 可以选择通过 URL 访问,或者是直接嵌入你的网页中。 diff --git a/document/content/docs/use-cases/app-cases/feishu_webhook.en.mdx b/document/content/use-cases/app-cases/feishu_webhook.en.mdx similarity index 97% rename from document/content/docs/use-cases/app-cases/feishu_webhook.en.mdx rename to document/content/use-cases/app-cases/feishu_webhook.en.mdx index 64876530c4..b9a1972df8 100644 --- a/document/content/docs/use-cases/app-cases/feishu_webhook.en.mdx +++ b/document/content/use-cases/app-cases/feishu_webhook.en.mdx @@ -7,13 +7,13 @@ This article shows how to send a simple Lark webhook notification. The same appr | | | | --------------------- | --------------------- | -| ![](/imgs/feishuwebhook1.webp) | ![](/imgs/feishuwebhook2.webp) | +| ![](../../../public/imgs/feishuwebhook1.webp) | ![](../../../public/imgs/feishuwebhook2.webp) | ## 1. Set Up the Lark Bot | | | | | --------------------- | --------------------- |--------------------- | -| ![](/imgs/feishuwebhook3.png) | ![](/imgs/feishuwebhook4.webp) |![](/imgs/feishuwebhook5.png) | +| ![](../../../public/imgs/feishuwebhook3.png) | ![](../../../public/imgs/feishuwebhook4.webp) |![](../../../public/imgs/feishuwebhook5.png) | ## 2. Import Workflow Configuration diff --git a/document/content/docs/use-cases/app-cases/feishu_webhook.mdx b/document/content/use-cases/app-cases/feishu_webhook.mdx similarity index 97% rename from document/content/docs/use-cases/app-cases/feishu_webhook.mdx rename to document/content/use-cases/app-cases/feishu_webhook.mdx index 5b25a7b5cc..2a4955cb8a 100644 --- a/document/content/docs/use-cases/app-cases/feishu_webhook.mdx +++ b/document/content/use-cases/app-cases/feishu_webhook.mdx @@ -7,13 +7,13 @@ description: 利用工具调用模块,发送一个飞书webhook通知 | | | | --------------------- | --------------------- | -| ![](/imgs/feishuwebhook1.webp) | ![](/imgs/feishuwebhook2.webp) | +| ![](../../../public/imgs/feishuwebhook1.webp) | ![](../../../public/imgs/feishuwebhook2.webp) | ## 1. 准备飞书机器人 | | | | | --------------------- | --------------------- |--------------------- | -| ![](/imgs/feishuwebhook3.png) | ![](/imgs/feishuwebhook4.webp) |![](/imgs/feishuwebhook5.png) | +| ![](../../../public/imgs/feishuwebhook3.png) | ![](../../../public/imgs/feishuwebhook4.webp) |![](../../../public/imgs/feishuwebhook5.png) | ## 2. 导入编排代码 diff --git a/document/content/docs/use-cases/app-cases/fixingEvidence.en.mdx b/document/content/use-cases/app-cases/fixingEvidence.en.mdx similarity index 99% rename from document/content/docs/use-cases/app-cases/fixingEvidence.en.mdx rename to document/content/use-cases/app-cases/fixingEvidence.en.mdx index 63d8de6266..3c92f92310 100644 --- a/document/content/docs/use-cases/app-cases/fixingEvidence.en.mdx +++ b/document/content/use-cases/app-cases/fixingEvidence.en.mdx @@ -3,9 +3,9 @@ title: Add Fixed Opening and Closing Content description: Use Specified Reply modules to add fixed opening and closing messages to responses --- -![](/imgs/demo-fix-evidence1.jpg) +![](../../../public/imgs/demo-fix-evidence1.jpg) -![](/imgs/demo-fix-evidence2.jpg) +![](../../../public/imgs/demo-fix-evidence2.jpg) As shown above, you can use Specified Reply modules to add fixed opening and closing content to your responses. diff --git a/document/content/docs/use-cases/app-cases/fixingEvidence.mdx b/document/content/use-cases/app-cases/fixingEvidence.mdx similarity index 99% rename from document/content/docs/use-cases/app-cases/fixingEvidence.mdx rename to document/content/use-cases/app-cases/fixingEvidence.mdx index 2e931dc60e..f57db2d95c 100644 --- a/document/content/docs/use-cases/app-cases/fixingEvidence.mdx +++ b/document/content/use-cases/app-cases/fixingEvidence.mdx @@ -3,9 +3,9 @@ title: 固定开头和结尾内容 description: 利用指定回复,创建固定的开头和结尾 --- -![](/imgs/demo-fix-evidence1.jpg) +![](../../../public/imgs/demo-fix-evidence1.jpg) -![](/imgs/demo-fix-evidence2.jpg) +![](../../../public/imgs/demo-fix-evidence2.jpg) 如上图,可以通过指定回复编排一个固定的开头和结尾内容。 diff --git a/document/content/docs/use-cases/app-cases/google_search.en.mdx b/document/content/use-cases/app-cases/google_search.en.mdx similarity index 97% rename from document/content/docs/use-cases/app-cases/google_search.en.mdx rename to document/content/use-cases/app-cases/google_search.en.mdx index c5fb3bfcd6..197c5189e7 100644 --- a/document/content/docs/use-cases/app-cases/google_search.en.mdx +++ b/document/content/use-cases/app-cases/google_search.en.mdx @@ -5,8 +5,8 @@ description: Integrate FastGPT with Google Search | | | | --------------------- | --------------------- | -| Tool Call Mode ![](/imgs/google_search_3.webp) | Tool Call Mode ![](/imgs/google_search_4.webp) | -| Non-Tool Call Mode ![](/imgs/google_search_1.webp) | Non-Tool Call Mode ![](/imgs/google_search_2.webp) | +| Tool Call Mode ![](../../../public/imgs/google_search_3.webp) | Tool Call Mode ![](../../../public/imgs/google_search_4.webp) | +| Non-Tool Call Mode ![](../../../public/imgs/google_search_1.webp) | Non-Tool Call Mode ![](../../../public/imgs/google_search_2.webp) | As shown above, using the「HTTP Request」module, you can connect an external search engine as reference material for AI responses. This example uses the Google Search API. Note: This article mainly introduces the「HTTP Request」module. The actual search effectiveness depends on prompts and the search engine, especially the【search engine】—simple search engines cannot retrieve detailed content, which may require more debugging. diff --git a/document/content/docs/use-cases/app-cases/google_search.mdx b/document/content/use-cases/app-cases/google_search.mdx similarity index 99% rename from document/content/docs/use-cases/app-cases/google_search.mdx rename to document/content/use-cases/app-cases/google_search.mdx index 7f590a3b1b..a9fb1e67a1 100644 --- a/document/content/docs/use-cases/app-cases/google_search.mdx +++ b/document/content/use-cases/app-cases/google_search.mdx @@ -5,8 +5,8 @@ description: 将 FastGPT 接入谷歌搜索 | | | | --------------------- | --------------------- | -| 工具调用模式 ![](/imgs/google_search_3.webp) | 工具调用模式 ![](/imgs/google_search_4.webp) | -| 非工具调用模式 ![](/imgs/google_search_1.webp) | 非工具调用模式 ![](/imgs/google_search_2.webp) | +| 工具调用模式 ![](../../../public/imgs/google_search_3.webp) | 工具调用模式 ![](../../../public/imgs/google_search_4.webp) | +| 非工具调用模式 ![](../../../public/imgs/google_search_1.webp) | 非工具调用模式 ![](../../../public/imgs/google_search_2.webp) | 如上图,利用「HTTP请求」模块,你可以外接一个搜索引擎作为 AI 回复的参考资料。这里以调用 Google Search API 为例。注意:本文主要是为了介绍 「HTTP请求」模块,具体的搜索效果需要依赖提示词和搜索引擎,尤其是【搜索引擎】,简单的搜索引擎无法获取更详细的内容,这部分可能需要更多的调试。 diff --git a/document/content/docs/use-cases/app-cases/lab_appointment.en.mdx b/document/content/use-cases/app-cases/lab_appointment.en.mdx similarity index 98% rename from document/content/docs/use-cases/app-cases/lab_appointment.en.mdx rename to document/content/use-cases/app-cases/lab_appointment.en.mdx index 8142f37dd9..eef553426d 100644 --- a/document/content/docs/use-cases/app-cases/lab_appointment.en.mdx +++ b/document/content/use-cases/app-cases/lab_appointment.en.mdx @@ -7,8 +7,8 @@ import { Alert } from '@/components/docs/Alert'; | | | | --------------------- | --------------------- | -| ![](/imgs/demo-appointment1.webp) | ![](/imgs/demo-appointment2.webp) | -| ![](/imgs/demo-appointment3.webp) | ![](/imgs/demo-appointment4.webp) | +| ![](../../../public/imgs/demo-appointment1.webp) | ![](../../../public/imgs/demo-appointment2.webp) | +| ![](../../../public/imgs/demo-appointment3.webp) | ![](../../../public/imgs/demo-appointment4.webp) | @@ -22,7 +22,7 @@ Design a global variable for users to input their name, simulating user identity ## 2. Tool Calling -![](/imgs/demo-appointment5.png) +![](../../../public/imgs/demo-appointment5.png) In the background knowledge, guide the model to call tools for different operations. @@ -32,7 +32,7 @@ In the background knowledge, guide the model to call tools for different operati ## 3. HTTP Module -![](/imgs/demo-appointment6.jpg) +![](../../../public/imgs/demo-appointment6.jpg) The HTTP module requires 3 tool parameters: diff --git a/document/content/docs/use-cases/app-cases/lab_appointment.mdx b/document/content/use-cases/app-cases/lab_appointment.mdx similarity index 98% rename from document/content/docs/use-cases/app-cases/lab_appointment.mdx rename to document/content/use-cases/app-cases/lab_appointment.mdx index c9e09b0401..54997ce721 100644 --- a/document/content/docs/use-cases/app-cases/lab_appointment.mdx +++ b/document/content/use-cases/app-cases/lab_appointment.mdx @@ -7,8 +7,8 @@ import { Alert } from '@/components/docs/Alert'; | | | | --------------------- | --------------------- | -| ![](/imgs/demo-appointment1.webp) | ![](/imgs/demo-appointment2.webp) | -| ![](/imgs/demo-appointment3.webp) | ![](/imgs/demo-appointment4.webp) | +| ![](../../../public/imgs/demo-appointment1.webp) | ![](../../../public/imgs/demo-appointment2.webp) | +| ![](../../../public/imgs/demo-appointment3.webp) | ![](../../../public/imgs/demo-appointment4.webp) | @@ -22,7 +22,7 @@ import { Alert } from '@/components/docs/Alert'; ## 2. 工具调用 -![](/imgs/demo-appointment5.png) +![](../../../public/imgs/demo-appointment5.png) 背景知识中,引导模型调用工具去执行不通的操作。 @@ -32,7 +32,7 @@ import { Alert } from '@/components/docs/Alert'; ## 3. HTTP 模块 -![](/imgs/demo-appointment6.jpg) +![](../../../public/imgs/demo-appointment6.jpg) HTTP模块中,需要设置 3 个工具参数: diff --git a/document/content/docs/use-cases/app-cases/meta.en.json b/document/content/use-cases/app-cases/meta.en.json similarity index 100% rename from document/content/docs/use-cases/app-cases/meta.en.json rename to document/content/use-cases/app-cases/meta.en.json diff --git a/document/content/docs/use-cases/app-cases/meta.json b/document/content/use-cases/app-cases/meta.json similarity index 100% rename from document/content/docs/use-cases/app-cases/meta.json rename to document/content/use-cases/app-cases/meta.json diff --git a/document/content/docs/use-cases/app-cases/multi_turn_translation_bot.en.mdx b/document/content/use-cases/app-cases/multi_turn_translation_bot.en.mdx similarity index 92% rename from document/content/docs/use-cases/app-cases/multi_turn_translation_bot.en.mdx rename to document/content/use-cases/app-cases/multi_turn_translation_bot.en.mdx index b1cb3c69f2..597d059e50 100644 --- a/document/content/docs/use-cases/app-cases/multi_turn_translation_bot.en.mdx +++ b/document/content/use-cases/app-cases/multi_turn_translation_bot.en.mdx @@ -25,7 +25,7 @@ Let's start simple—translating a single text block that doesn't exceed LLM tok First, have the LLM perform an initial translation of the source text block (translation prompts are available in the source project). -![](/imgs/translate1.png) +![](../../../public/imgs/translate1.png) Use the `Text Concatenation` module to reference three parameters: source language, target language, and source text. Generate a prompt and pass it to the LLM for the first translation version. @@ -33,19 +33,19 @@ Use the `Text Concatenation` module to reference three parameters: source langua Then have the LLM provide modification suggestions for the initial translation—this is called reflection. -![](/imgs/translate2.png) +![](../../../public/imgs/translate2.png) The prompt now receives 5 parameters: source text, initial translation, source language, target language, and regional constraints. The LLM will provide numerous modification suggestions to prepare for translation improvement. ## Improved Translation -![](/imgs/translate3.png) +![](../../../public/imgs/translate3.png) After generating the initial translation and reflection, input both into a third LLM translation to get a high-quality translation result. The complete workflow is as follows: -![](/imgs/translate4.png) +![](../../../public/imgs/translate4.png) ## Results @@ -53,13 +53,13 @@ Considering future reuse of this reflective translation, I created a plugin. Bel Randomly selected a Harry Potter passage: -![](/imgs/translate5.png) +![](../../../public/imgs/translate5.png) -![](/imgs/translate61.png) +![](../../../public/imgs/translate61.png) The reflective translation shows significant improvement. The reflection output: -![](/imgs/translate7.png) +![](../../../public/imgs/translate7.png) # Long Text Reflective Translation @@ -69,7 +69,7 @@ The overall logic: First, check the token count of the input text. If it doesn't ## Calculate Tokens -![](/imgs/translate8.png) +![](../../../public/imgs/translate8.png) First, I used the Laf function module to calculate tokens for the input text. @@ -121,7 +121,7 @@ Back in Fastgpt, click "Sync Parameters", connect the source text, and you can c ## Calculate Single Text Block Size -![](/imgs/translate9.png) +![](../../../public/imgs/translate9.png) Since no third-party packages are involved—just data processing—use the Code Execution module directly: @@ -143,7 +143,7 @@ This code calculates a reasonable single text block size that doesn't exceed the ## Get Split Source Text Blocks -![](/imgs/translate10.png) +![](../../../public/imgs/translate10.png) Using the single text block size and source text, write a function calling langchain's textsplitters package to implement text chunking: @@ -198,15 +198,15 @@ The details are similar to before—just replace some prompts and do simple data ### Multiple Text Block Initial Translation -![](/imgs/translate11.png) +![](../../../public/imgs/translate11.png) ### Multiple Text Block Reflection -![](/imgs/translate12.png) +![](../../../public/imgs/translate12.png) ### Multiple Text Block Improved Translation -![](/imgs/translate13.png) +![](../../../public/imgs/translate13.png) ## Batch Execution @@ -214,27 +214,27 @@ A key part of long text reflective translation is looping through multiple text Fastgpt provides workflow loop functionality, so we can write a simple judgment function to determine whether to end or continue: -![](/imgs/translate14.png) +![](../../../public/imgs/translate14.png) By checking if the current text block is the last one, we determine whether to continue execution. This achieves long text reflective translation. Complete workflow: -![](/imgs/translate15.png) +![](../../../public/imgs/translate15.png) ## Results First, input global settings: -![](/imgs/translate16.png) +![](../../../public/imgs/translate16.png) Then input the text to translate. I chose a Harry Potter chapter in English. OpenAI's token count: -![](/imgs/translate17.png) +![](../../../public/imgs/translate17.png) Actual results: -![](/imgs/translate18.png) +![](../../../public/imgs/translate18.png) It meets reading requirements well. @@ -291,15 +291,15 @@ You are an experienced translation expert, proficient in {{source_lang}} and {{t This returns more accurate, higher-quality initial translations. Subsequent reflection and improved translation can also use more accurate prompts: -![](/imgs/translate19.png) +![](../../../public/imgs/translate19.png) Let's look at the results: -![](/imgs/translate20.png) +![](../../../public/imgs/translate20.png) Testing with the same passage as before shows significant improvement. For example, the red box section—the previous translation: -![](/imgs/translate21.png) +![](../../../public/imgs/translate21.png) Changed from the biased "让你的猫头鹰给我写信" (have your owl write to me) to the more accurate "给我写信,你的猫头鹰会知道怎么找到我" (write to me, your owl will know how to find me). diff --git a/document/content/docs/use-cases/app-cases/multi_turn_translation_bot.mdx b/document/content/use-cases/app-cases/multi_turn_translation_bot.mdx similarity index 92% rename from document/content/docs/use-cases/app-cases/multi_turn_translation_bot.mdx rename to document/content/use-cases/app-cases/multi_turn_translation_bot.mdx index 8921a07199..3a6e8fe294 100644 --- a/document/content/docs/use-cases/app-cases/multi_turn_translation_bot.mdx +++ b/document/content/use-cases/app-cases/multi_turn_translation_bot.mdx @@ -25,7 +25,7 @@ description: 如何使用 FastGPT 构建一个多轮翻译机器人,实现连 第一步先让 LLM 对源文本块进行初始翻译(翻译的提示词在源项目中都有) -![](/imgs/translate1.png) +![](../../../public/imgs/translate1.png) 通过`文本拼接`模块引用 源语言、目标语言、源文本这三个参数,生成提示词,传给 LLM,让它给出第一版的翻译 @@ -33,19 +33,19 @@ description: 如何使用 FastGPT 构建一个多轮翻译机器人,实现连 然后让 LLM 对第一步生成的初始翻译给出修改建议,称之为 反思 -![](/imgs/translate2.png) +![](../../../public/imgs/translate2.png) 这时的提示词接收 5 个参数,源文本、初始翻译、源语言、目标语言 以及限定词地区国家,这样 LLM 会对前面生成的翻译提出相当多的修改建议,为后续的提升翻译作准备 ## 提升翻译 -![](/imgs/translate3.png) +![](../../../public/imgs/translate3.png) 在前文生成了初始翻译以及相应的反思后,将这二者输入给第三次 LLM 翻译,这样我们就能获得一个比较高质量的翻译结果 完整的工作流如下 -![](/imgs/translate4.png) +![](../../../public/imgs/translate4.png) ## 运行效果 @@ -53,13 +53,13 @@ description: 如何使用 FastGPT 构建一个多轮翻译机器人,实现连 随机挑选了一段哈利波特的文段 -![](/imgs/translate5.png) +![](../../../public/imgs/translate5.png) -![](/imgs/translate61.png) +![](../../../public/imgs/translate61.png) 可以看到反思翻译后的效果还是好上不少的,其中反思的输出如下 -![](/imgs/translate7.png) +![](../../../public/imgs/translate7.png) # 长文反思翻译 @@ -69,7 +69,7 @@ description: 如何使用 FastGPT 构建一个多轮翻译机器人,实现连 ## 计算 tokens -![](/imgs/translate8.png) +![](../../../public/imgs/translate8.png) 首先,我使用了 Laf函数 模块来实现对输入文本的 tokens 的计算 @@ -121,7 +121,7 @@ export default async function (ctx: FunctionContext): Promise { ## 计算单文本块大小 -![](/imgs/translate9.png) +![](../../../public/imgs/translate9.png) 由于不涉及第三方包,只是一些数据处理,所以直接使用 代码运行 模块处理即可 @@ -143,7 +143,7 @@ function main({tokenCount, tokenLimit}){ ## 获得切分后源文本块 -![](/imgs/translate10.png) +![](../../../public/imgs/translate10.png) 通过单文本块大小和源文本,我们再编写一个函数调用 langchain 的 textsplitters 包来实现文本分片,具体代码如下 @@ -198,15 +198,15 @@ export default async function (ctx: FunctionContext): Promise{ ### 多文本块初始翻译 -![](/imgs/translate11.png) +![](../../../public/imgs/translate11.png) ### 多文本块反思 -![](/imgs/translate12.png) +![](../../../public/imgs/translate12.png) ### 多文本块提升翻译 -![](/imgs/translate13.png) +![](../../../public/imgs/translate13.png) ## 批量运行 @@ -214,27 +214,27 @@ export default async function (ctx: FunctionContext): Promise{ Fastgpt 提供了工作流线路可以返回去执行的功能,所以我们可以写一个很简单的判断函数,来判断结束或是接着执行 -![](/imgs/translate14.png) +![](../../../public/imgs/translate14.png) 也就是通过判断当前处理的这个文本块,是否是最后一个文本块,从而判断是否需要继续执行,就这样,我们实现了长文反思翻译的效果 完整工作流如下 -![](/imgs/translate15.png) +![](../../../public/imgs/translate15.png) ## 运行效果 首先输入全局设置 -![](/imgs/translate16.png) +![](../../../public/imgs/translate16.png) 然后输入需要翻译的文本,这里我选择了一章哈利波特的英文原文来做翻译,其文本长度通过 openai 对 tokens 数量的判断如下 -![](/imgs/translate17.png) +![](../../../public/imgs/translate17.png) 实际运行效果如下 -![](/imgs/translate18.png) +![](../../../public/imgs/translate18.png) 可以看到还是能满足阅读需求的 @@ -290,15 +290,15 @@ Fastgpt 提供了工作流线路可以返回去执行的功能,所以我们可 从而返回更准确更高质量的初始翻译,后续的反思和提升翻译也可以修改更准确的提示词,如下 -![](/imgs/translate19.png) +![](../../../public/imgs/translate19.png) 然后再让我们来看看运行效果 -![](/imgs/translate20.png) +![](../../../public/imgs/translate20.png) 给了和之前相同的一段文本进行测试,测试效果还是比较显著的,就比如红框部分,之前的翻译如下 -![](/imgs/translate21.png) +![](../../../public/imgs/translate21.png) 从“让你的猫头鹰给我写信”这样有失偏颇的翻译,变成“给我写信,你的猫头鹰会知道怎么找到我”这样较为准确的翻译 diff --git a/document/content/docs/use-cases/app-cases/submit_application_template.en.mdx b/document/content/use-cases/app-cases/submit_application_template.en.mdx similarity index 92% rename from document/content/docs/use-cases/app-cases/submit_application_template.en.mdx rename to document/content/use-cases/app-cases/submit_application_template.en.mdx index 96d984a1d0..5bc6992707 100644 --- a/document/content/docs/use-cases/app-cases/submit_application_template.en.mdx +++ b/document/content/use-cases/app-cases/submit_application_template.en.mdx @@ -18,8 +18,8 @@ We estimate the final total will be around 50 templates — half from the FastGP The following operations need to be performed in a dev environment. Refer to these two guides to run the FastGPT and FastGPT-plugin development environments locally: -- [FastGPT | Quick Start Local Development](/docs/self-host/dev/) -- [How to Develop System Plugins](/docs/introduction/guide/plugins/dev_system_tool/) +- [FastGPT | Quick Start Local Development](../../self-host/dev.en.mdx) +- [How to Develop System Plugins](../../introduction/guide/plugins/dev_system_tool.en.mdx) ### 2. Create an Application Template @@ -59,13 +59,13 @@ Hover your mouse over the application avatar and name in the top-left corner. A The exported configuration is automatically copied to the clipboard. Paste it directly into the template.json file, replacing the **workflow** value from step 2. -![](/imgs/template_submission3.png) +![](../../../public/imgs/template_submission3.png) ### 5. Verify the Template Loads Successfully Refresh the page, open the Template Market, check if it loads successfully, and click "Use" to test its functionality. -![](/imgs/template_submission4.png) +![](../../../public/imgs/template_submission4.png) ### 6. Deploy and Use diff --git a/document/content/docs/use-cases/app-cases/submit_application_template.mdx b/document/content/use-cases/app-cases/submit_application_template.mdx similarity index 92% rename from document/content/docs/use-cases/app-cases/submit_application_template.mdx rename to document/content/use-cases/app-cases/submit_application_template.mdx index defddb63c2..92c961b4ce 100644 --- a/document/content/docs/use-cases/app-cases/submit_application_template.mdx +++ b/document/content/use-cases/app-cases/submit_application_template.mdx @@ -18,8 +18,8 @@ description: 指南:如何向 FastGPT 提交应用模板 需要在 dev 环境下执行下面的操作。 可参照下面两篇文档在本地运行 FastGPT 开发环境和 FastGPT-plugin 开发环境 -- [FastGPT|快速开始本地开发](/docs/self-host/dev/) -- [如何开发系统插件](/docs/introduction/guide/plugins/dev_system_tool/) +- [FastGPT|快速开始本地开发](../../self-host/dev.mdx) +- [如何开发系统插件](../../introduction/guide/plugins/dev_system_tool.mdx) ### 2. 创建应用模版 @@ -59,13 +59,13 @@ description: 指南:如何向 FastGPT 提交应用模板 导出的配置,会自动复制到剪切板,可以直接到 template.json 文件中粘贴使用,替换步骤 2 中,**workflow** 的值。 -![](/imgs/template_submission3.png) +![](../../../public/imgs/template_submission3.png) ### 5. 验证模板是否加载成功 刷新页面,打开模板市场,看其是否成功加载,并点击「使用」测试其功能。 -![](/imgs/template_submission4.png) +![](../../../public/imgs/template_submission4.png) ### 6. 部署使用 diff --git a/document/content/docs/use-cases/app-cases/translate-subtitle-using-gpt.en.mdx b/document/content/use-cases/app-cases/translate-subtitle-using-gpt.en.mdx similarity index 99% rename from document/content/docs/use-cases/app-cases/translate-subtitle-using-gpt.en.mdx rename to document/content/use-cases/app-cases/translate-subtitle-using-gpt.en.mdx index 9a85c74282..c5f7fed3ed 100644 --- a/document/content/docs/use-cases/app-cases/translate-subtitle-using-gpt.en.mdx +++ b/document/content/use-cases/app-cases/translate-subtitle-using-gpt.en.mdx @@ -23,7 +23,7 @@ Implementation: 2. Classify subtitle information into three parts: time information, sequence numbers, and text information. 3. Keep only the text information for subsequent AI translation. -![](/imgs/extract-subtitle.png) +![](../../../public/imgs/extract-subtitle.png) This preprocessing step greatly improves the efficiency and accuracy of the entire translation process. @@ -36,7 +36,7 @@ In this example, we use the following strategy: 1. Split the text into groups of 40 sentences each. This number is a balance point determined through multiple tests—it ensures translation quality without exceeding the LLM's processing capacity. 2. Use `` tags to separate each sentence. This marking method facilitates subsequent reassembly while providing clear sentence boundaries for the AI model. -![](/imgs/cut-text.png) +![](../../../public/imgs/cut-text.png) This splitting method considers both the AI model's capability limits and ensures translation coherence. By maintaining appropriate context, we can achieve more accurate and natural translation results. @@ -47,7 +47,7 @@ In this step, we construct the final source text to input to the LLM. The key is 1. **Pass in all text as background context. This ensures the AI understands the context of the entire conversation**. 2. Use `` tags to clearly indicate the segment that currently needs translation. This method controls the AI's output scope without losing overall context. -![](/imgs/format-original-text.png) +![](../../../public/imgs/format-original-text.png) This formatting method enables the AI to focus on translating specific parts while understanding the global context, thereby improving translation accuracy and coherence. @@ -59,17 +59,17 @@ This process includes the following stages: 1. First round literal translation: Require the AI to strictly translate sentence by sentence according to `` tags, ensuring accuracy. - ![](/imgs/ai-translate-1.png) + ![](../../../public/imgs/ai-translate-1.png) 2. Second round free translation: Allow the AI to freely modify and optimize the first round results. 3. Third round reflection: The AI evaluates its own translation and proposes improvement suggestions from multiple angles. - ![](/imgs/ai-translate-2.png) + ![](../../../public/imgs/ai-translate-2.png) 4. Final round modification: Based on suggestions from the reflection stage, the AI makes final adjustments and optimizations to the translation. - ![](/imgs/ai-translate-3.png) + ![](../../../public/imgs/ai-translate-3.png) This multi-round translation and reflection method significantly improves translation quality. It not only captures the accurate meaning of the original text but also makes the translation more fluent and natural. @@ -83,7 +83,7 @@ After completing the translation, we need to recombine all information into a co 2. Match the translated text with the original text. 3. Use a code execution module to automatically complete the assembly process. -![](/imgs/combine-subtitle.png) +![](../../../public/imgs/combine-subtitle.png) This process not only improves efficiency but also minimizes the possibility of human error. @@ -95,7 +95,7 @@ To process the entire long subtitle file, we need a batch execution mechanism. T 2. If not, redirect the workflow to the format original text block node. 3. Extract the next segment of text that needs translation and restart the translation and stitching process. -![](/imgs/loop-execution.png) +![](../../../public/imgs/loop-execution.png) This loop mechanism ensures the entire long subtitle file can be fully processed, regardless of how long the subtitles are. @@ -103,7 +103,7 @@ This loop mechanism ensures the entire long subtitle file can be fully processed To verify the effectiveness of this method, we selected an English subtitle segment from "Game of Thrones" and translated it into Simplified Chinese. You can see that our method not only accurately translates the content but also preserves the subtitle format and timeline information. -![](/imgs/gpt-translate-example.png) +![](../../../public/imgs/gpt-translate-example.png) ## Attachments diff --git a/document/content/docs/use-cases/app-cases/translate-subtitle-using-gpt.mdx b/document/content/use-cases/app-cases/translate-subtitle-using-gpt.mdx similarity index 99% rename from document/content/docs/use-cases/app-cases/translate-subtitle-using-gpt.mdx rename to document/content/use-cases/app-cases/translate-subtitle-using-gpt.mdx index ecf247649b..8332ccd665 100644 --- a/document/content/docs/use-cases/app-cases/translate-subtitle-using-gpt.mdx +++ b/document/content/use-cases/app-cases/translate-subtitle-using-gpt.mdx @@ -23,7 +23,7 @@ description: 利用 AI 自我反思提升翻译质量,同时循环迭代执行 2. 将字幕信息分类为三部分:时间信息、序号信息和文本信息。 3. 只保留文本信息用于后续的 AI 翻译。 -![](/imgs/extract-subtitle.png) +![](../../../public/imgs/extract-subtitle.png) 这种预处理步骤大大提高了整个翻译过程的效率和准确性。 @@ -36,7 +36,7 @@ description: 利用 AI 自我反思提升翻译质量,同时循环迭代执行 1. 将文本按照每 40 句为一组进行切分。这个数字是经过多次测试后得出的平衡点,既能保证翻译质量,又不会超出 LLM 的处理能力。 2. 使用 `` 标签分割每句文本。这种标记方法便于后续的重新组装,同时也为 AI 模型提供了清晰的句子边界。 -![](/imgs/cut-text.png) +![](../../../public/imgs/cut-text.png) 这种切分方法既考虑了 AI 模型的能力限制,又保证了翻译的连贯性。通过保持适当的上下文,我们可以得到更加准确和自然的翻译结果。 @@ -47,7 +47,7 @@ description: 利用 AI 自我反思提升翻译质量,同时循环迭代执行 1. **传入所有文本作为背景上下文。这确保 AI 能理解整段对话的语境**。 2. 使用``标签明确指出当前需要翻译的片段。这种方法既能控制 AI 的输出范围,又不会丢失整体语境。 -![](/imgs/format-original-text.png) +![](../../../public/imgs/format-original-text.png) 这种格式化方法使得 AI 能在理解全局的基础上,专注于翻译特定部分,从而提高翻译的准确性和连贯性。 @@ -59,17 +59,17 @@ description: 利用 AI 自我反思提升翻译质量,同时循环迭代执行 1. 第一轮直译:要求 AI 严格按照 `` 标签逐句翻译,保证准确性。 - ![](/imgs/ai-translate-1.png) + ![](../../../public/imgs/ai-translate-1.png) 2. 第二轮意译:允许 AI 自主发挥,对第一轮的结果进行修改和优化。 3. 第三轮反思:AI 对自己的翻译进行评价,从多个角度提出改进建议。 - ![](/imgs/ai-translate-2.png) + ![](../../../public/imgs/ai-translate-2.png) 4. 最后一轮修改:根据反思阶段的建议,AI 对翻译进行最后的调整和优化。 - ![](/imgs/ai-translate-3.png) + ![](../../../public/imgs/ai-translate-3.png) 这种多轮翻译和反思的方法显著提高了翻译质量。它不仅能捕捉原文的准确含义,还能使翻译更加流畅自然。 @@ -83,7 +83,7 @@ description: 利用 AI 自我反思提升翻译质量,同时循环迭代执行 2. 将翻译好的文本与原文本对应。 3. 使用代码执行模块自动完成组装过程。 -![](/imgs/combine-subtitle.png) +![](../../../public/imgs/combine-subtitle.png) 这个过程不仅提高了效率,还最大限度地减少了人为错误的可能性。 @@ -95,7 +95,7 @@ description: 利用 AI 自我反思提升翻译质量,同时循环迭代执行 2. 如果不是,则将工作流重定向到格式化原文本块节点。 3. 取出下一段需要翻译的文本,重新开始翻译和拼接过程。 -![](/imgs/loop-execution.png) +![](../../../public/imgs/loop-execution.png) 这种循环机制确保了整个长字幕文件能被完整处理,无论字幕有多长。 @@ -103,7 +103,7 @@ description: 利用 AI 自我反思提升翻译质量,同时循环迭代执行 为了验证这个方法的有效性,我们选取了一段《权力的游戏》的英文字幕,将其翻译成简体中文。可以看出我们的方法不仅能准确翻译内容,还能保持字幕的格式和时间轴信息。 -![](/imgs/gpt-translate-example.png) +![](../../../public/imgs/gpt-translate-example.png) ## 附件 diff --git a/document/content/docs/use-cases/external-integration/dingtalk.en.mdx b/document/content/use-cases/external-integration/dingtalk.en.mdx similarity index 82% rename from document/content/docs/use-cases/external-integration/dingtalk.en.mdx rename to document/content/use-cases/external-integration/dingtalk.en.mdx index 1240057a50..43108ac7c3 100644 --- a/document/content/docs/use-cases/external-integration/dingtalk.en.mdx +++ b/document/content/use-cases/external-integration/dingtalk.en.mdx @@ -9,11 +9,11 @@ Starting from version 4.8.16, FastGPT commercial edition supports direct DingTal 1. Create an internal enterprise app in the [DingTalk Developer Console](https://open-dev.dingtalk.com/fe/app). -![Image 1](/imgs/dingtalk-bot-1.png) +![Image 1](../../../public/imgs/dingtalk-bot-1.png) 2. Obtain the **Client ID** and **Client Secret**. -![Image 2](/imgs/dingtalk-bot-2.png) +![Image 2](../../../public/imgs/dingtalk-bot-2.png) ## 2. Add a Publishing Channel in FastGPT @@ -21,7 +21,7 @@ In FastGPT, select the app you want to integrate. On the **Publishing Channels** Enter the **Client ID** and **Client Secret** obtained earlier into the configuration dialog. -![Image 3](/imgs/dingtalk-bot-3.png) +![Image 3](../../../public/imgs/dingtalk-bot-3.png) After creation, click the **Request URL** button and copy the callback address. @@ -29,13 +29,13 @@ After creation, click the **Request URL** button and copy the callback address. In the DingTalk Developer Console, click **Add App Capability** on the left sidebar, and add the **Bot** capability to the internal enterprise app you just created. -![Image 4](/imgs/dingtalk-bot-4.png) +![Image 4](../../../public/imgs/dingtalk-bot-4.png) ## 4. Configure Bot Callback Address Click the **Bot** capability on the left sidebar, then set the **Message Receiving Mode** at the bottom to **HTTP Mode**, and paste the FastGPT callback address you copied earlier as the message receiving address. -![Image 5](/imgs/dingtalk-bot-5.png) +![Image 5](../../../public/imgs/dingtalk-bot-5.png) After debugging, click **Publish**. @@ -43,15 +43,15 @@ After debugging, click **Publish**. After the bot is published, you still need to publish the app version on the **Version Management and Publishing** page. -![Image 6](/imgs/dingtalk-bot-6.png) +![Image 6](../../../public/imgs/dingtalk-bot-6.png) Click **Create New Version**, set the version number and description, then click save to publish. -![Image 7](/imgs/dingtalk-bot-7.png) +![Image 7](../../../public/imgs/dingtalk-bot-7.png) Once the app is published, you can use the bot within your DingTalk enterprise. You can chat with the bot privately, or add the bot to a group and `@mention the bot` to start a conversation. -![Image 8](/imgs/dingtalk-bot-8.png) +![Image 8](../../../public/imgs/dingtalk-bot-8.png) ## FAQ diff --git a/document/content/docs/use-cases/external-integration/dingtalk.mdx b/document/content/use-cases/external-integration/dingtalk.mdx similarity index 80% rename from document/content/docs/use-cases/external-integration/dingtalk.mdx rename to document/content/use-cases/external-integration/dingtalk.mdx index 9726565577..cb3e744626 100644 --- a/document/content/docs/use-cases/external-integration/dingtalk.mdx +++ b/document/content/use-cases/external-integration/dingtalk.mdx @@ -9,11 +9,11 @@ description: FastGPT 接入钉钉机器人教程 1. 在[钉钉开发者后台](https://open-dev.dingtalk.com/fe/app)创建企业内部应用。 -![图片1](/imgs/dingtalk-bot-1.png) +![图片1](../../../public/imgs/dingtalk-bot-1.png) 2. 获取**Client ID**和**Client Secret**。 -![图片2](/imgs/dingtalk-bot-2.png) +![图片2](../../../public/imgs/dingtalk-bot-2.png) ## 2. 为 FastGPT 添加发布渠道 @@ -21,7 +21,7 @@ description: FastGPT 接入钉钉机器人教程 将前面拿到的 **Client ID** 和 **Client Secret** 填入配置弹窗中。 -![图片3](/imgs/dingtalk-bot-3.png) +![图片3](../../../public/imgs/dingtalk-bot-3.png) 创建完成后,点击**请求地址**按钮,然后复制回调地址。 @@ -29,28 +29,28 @@ description: FastGPT 接入钉钉机器人教程 在钉钉开发者后台,点击左侧**添加应用能力**,为刚刚创建的企业内部应用添加 **机器人** 应用能力。 -![图片4](/imgs/dingtalk-bot-4.png) +![图片4](../../../public/imgs/dingtalk-bot-4.png) ## 4. 配置机器人回调地址 点击左侧**机器人** 应用能力,然后将底部**消息接受模式**设置为**HTTP模式**,消息接收地址填入前面复制的 FastGPT 的回调地址。 -![图片5](/imgs/dingtalk-bot-5.png) +![图片5](../../../public/imgs/dingtalk-bot-5.png) 调试完成后,点击**发布**。 ## 5. 发布应用 机器人发布后,还需要在**版本管理与发布**页面发布应用版本。 -![图片6](/imgs/dingtalk-bot-6.png) +![图片6](../../../public/imgs/dingtalk-bot-6.png) 点击**创建新版本**后,设置版本号和版本描述后点击保存发布即可。 -![图片7](/imgs/dingtalk-bot-7.png) +![图片7](../../../public/imgs/dingtalk-bot-7.png) 应用发布后,即可在钉钉企业中使用机器人功能,可对机器人私聊。或者在群组添加机器人后`@机器人`,触发对话。 -![图片8](/imgs/dingtalk-bot-8.png) +![图片8](../../../public/imgs/dingtalk-bot-8.png) ## FAQ diff --git a/document/content/docs/use-cases/external-integration/feishu.en.mdx b/document/content/use-cases/external-integration/feishu.en.mdx similarity index 86% rename from document/content/docs/use-cases/external-integration/feishu.en.mdx rename to document/content/use-cases/external-integration/feishu.en.mdx index 9b87d7d960..6b06b2899e 100644 --- a/document/content/docs/use-cases/external-integration/feishu.en.mdx +++ b/document/content/use-cases/external-integration/feishu.en.mdx @@ -11,7 +11,7 @@ Creating a free test enterprise makes debugging easier. 1. Create a custom enterprise app in the [Lark Open Platform](https://open.feishu.cn/app) developer console. -![Image](/imgs/feishu-bot-1.png) +![Image](../../../public/imgs/feishu-bot-1.png) Add a **Bot** capability to the app. @@ -19,21 +19,21 @@ Add a **Bot** capability to the app. In FastGPT, select the app you want to integrate. On the Publishing Channels page, create a new Lark bot publishing channel and fill in the basic information. -![Image](/imgs/feishu-bot-2.png) +![Image](../../../public/imgs/feishu-bot-2.png) ## 3. Get App ID and App Secret In the Lark Open Platform developer console, find the App ID and App Secret for the custom enterprise app you just created, and enter them in the FastGPT publishing channel dialog. -![Image](/imgs/feishu-bot-3.png) +![Image](../../../public/imgs/feishu-bot-3.png) Enter both parameters in the FastGPT configuration dialog. -![Image](/imgs/feishu-bot-4.png) +![Image](../../../public/imgs/feishu-bot-4.png) (Optional) In the Lark Open Platform developer console, go to Events & Callbacks -> Encryption Strategy to get the Encrypt Key, and enter it in the Lark bot integration dialog. -![Image](/imgs/feishu-bot-5.png) +![Image](../../../public/imgs/feishu-bot-5.png) The Encrypt Key encrypts communication between Lark servers and FastGPT. If using HTTPS, the Encrypt Key is not needed. If using HTTP, the Encrypt Key is recommended. @@ -47,7 +47,7 @@ In the Lark console, click `Events & Callbacks` on the left sidebar, click the e | | | | | --- | --- | --- | -| ![Image](/imgs/feishu-bot-10.jpg) | ![Image](/imgs/feishu-bot-11.jpg) | ![Image](/imgs/feishu-bot-6.png) | +| ![Image](../../../public/imgs/feishu-bot-10.jpg) | ![Image](../../../public/imgs/feishu-bot-11.jpg) | ![Image](../../../public/imgs/feishu-bot-6.png) | ## 5. Configure Bot Callback Events and Permissions @@ -61,7 +61,7 @@ After adding the event, add two permissions: click the corresponding permission, | | | | --- | --- | -| ![Image](/imgs/feishu-bot-7.png) | ![Image](/imgs/feishu-bot-8.png) | +| ![Image](../../../public/imgs/feishu-bot-7.png) | ![Image](../../../public/imgs/feishu-bot-8.png) | It is not recommended to enable the two "legacy versions" shown above -- use the new version permissions instead. - If "Read messages users send to the bot in private chats" is enabled, private messages sent to the bot will be forwarded to FastGPT @@ -72,17 +72,17 @@ It is not recommended to enable the two "legacy versions" shown above -- use the In the Lark console, click `Permission Management` on the left sidebar, enter `send message` in the search box, find the `Send messages as the app` permission, and enable it. -![](/imgs/feishu-bot-13.jpg) +![](../../../public/imgs/feishu-bot-13.jpg) ## 7. Publish the Bot Click `Version Management & Publishing` on the left side of the Lark console to publish the bot. -![](/imgs/feishu-bot-12.jpg) +![](../../../public/imgs/feishu-bot-12.jpg) You can then find your bot in the workspace. Next, add the bot to a group or chat with it privately. -![Image](/imgs/feishu-bot-9.png) +![Image](../../../public/imgs/feishu-bot-9.png) ## FAQ diff --git a/document/content/docs/use-cases/external-integration/feishu.mdx b/document/content/use-cases/external-integration/feishu.mdx similarity index 85% rename from document/content/docs/use-cases/external-integration/feishu.mdx rename to document/content/use-cases/external-integration/feishu.mdx index 2e3ceb7779..e39285b94d 100644 --- a/document/content/docs/use-cases/external-integration/feishu.mdx +++ b/document/content/use-cases/external-integration/feishu.mdx @@ -11,7 +11,7 @@ description: FastGPT 接入飞书机器人教程 1. 在[飞书开放平台](https://open.feishu.cn/app)的开发者后台申请企业自建应用。 -![图片](/imgs/feishu-bot-1.png) +![图片](../../../public/imgs/feishu-bot-1.png) 添加一个**机器人**应用。 @@ -19,21 +19,21 @@ description: FastGPT 接入飞书机器人教程 在fastgpt中选择想要接入的应用,在 发布渠道 页面,新建一个接入飞书机器人的发布渠道,填写好基础信息。 -![图片](/imgs/feishu-bot-2.png) +![图片](../../../public/imgs/feishu-bot-2.png) ## 3. 获取应用的 App ID, App Secret 两个凭证 在飞书开放平台开发者后台,刚刚创建的企业自建应用中,找到 App ID 和 App Secret,填入 FastGPT 新建发布渠道的对话框里面。 -![图片](/imgs/feishu-bot-3.png) +![图片](../../../public/imgs/feishu-bot-3.png) 填入两个参数到 FastGPT 配置弹窗中。 -![图片](/imgs/feishu-bot-4.png) +![图片](../../../public/imgs/feishu-bot-4.png) (可选)在飞书开放平台开发者后台,点击事件与回调 -> 加密策略 获取 Encrypt Key,并填入飞书机器人接入的对话框里面 -![图片](/imgs/feishu-bot-5.png) +![图片](../../../public/imgs/feishu-bot-5.png) Encrypt Key 用于加密飞书服务器与 FastGPT 之间通信。 建议如果使用 Https 协议,则不需要 Encrypt Key。如果使用 Http 协议通信,则建议使用 Encrypt Key @@ -46,7 +46,7 @@ Verification Token 默认生成的这个 Token 用于校验来源。但我们使 | | | | | --- | --- | --- | -| ![图片](/imgs/feishu-bot-10.jpg) | ![图片](/imgs/feishu-bot-11.jpg) | ![图片](/imgs/feishu-bot-6.png) | +| ![图片](../../../public/imgs/feishu-bot-10.jpg) | ![图片](../../../public/imgs/feishu-bot-11.jpg) | ![图片](../../../public/imgs/feishu-bot-6.png) | ## 5. 配置机器人回调事件和权限 @@ -60,7 +60,7 @@ Verification Token 默认生成的这个 Token 用于校验来源。但我们使 | | | | --- | --- | -| ![图片](/imgs/feishu-bot-7.png) | ![图片](/imgs/feishu-bot-8.png) | +| ![图片](../../../public/imgs/feishu-bot-7.png) | ![图片](../../../public/imgs/feishu-bot-8.png) | 不推荐启用上图中的两个“历史版本”,而是使用新版本的权限。 - 若开启 “读取用户发给机器人的单聊消息”, 则单聊发送给机器人的消息将被送到 FastGPT @@ -71,17 +71,17 @@ Verification Token 默认生成的这个 Token 用于校验来源。但我们使 在飞书控制台,点击左侧的 `权限管理` ,搜索框中输入`发消息`,找到`以应用的身份发消息`的权限,点击开通权限。 -![](/imgs/feishu-bot-13.jpg) +![](../../../public/imgs/feishu-bot-13.jpg) ## 7. 发布机器人 点击飞书控制台左侧的`版本管理与发布`,即可发布机器人。 -![](/imgs/feishu-bot-12.jpg) +![](../../../public/imgs/feishu-bot-12.jpg) 然后就可以在工作台里找到你的机器人啦。接下来就是把机器人拉进群组,或者单独与它对话。 -![图片](/imgs/feishu-bot-9.png) +![图片](../../../public/imgs/feishu-bot-9.png) ## FAQ diff --git a/document/content/docs/use-cases/external-integration/meta.en.json b/document/content/use-cases/external-integration/meta.en.json similarity index 100% rename from document/content/docs/use-cases/external-integration/meta.en.json rename to document/content/use-cases/external-integration/meta.en.json diff --git a/document/content/docs/use-cases/external-integration/meta.json b/document/content/use-cases/external-integration/meta.json similarity index 100% rename from document/content/docs/use-cases/external-integration/meta.json rename to document/content/use-cases/external-integration/meta.json diff --git a/document/content/docs/use-cases/external-integration/official_account.en.mdx b/document/content/use-cases/external-integration/official_account.en.mdx similarity index 86% rename from document/content/docs/use-cases/external-integration/official_account.en.mdx rename to document/content/use-cases/external-integration/official_account.en.mdx index e524cc3e99..869fcb9bcb 100644 --- a/document/content/docs/use-cases/external-integration/official_account.en.mdx +++ b/document/content/use-cases/external-integration/official_account.en.mdx @@ -11,7 +11,7 @@ Starting from version 4.8.10, FastGPT commercial edition supports direct WeChat In FastGPT, select the app you want to integrate. On the _Publishing Channels_ page, create a new WeChat Official Account publishing channel and fill in the basic information. -![Image](/imgs/offiaccount-1.png) +![Image](../../../public/imgs/offiaccount-1.png) ## 2. Get AppID, Secret, and Token @@ -23,15 +23,15 @@ Open the WeChat Official Account website: https://mp.weixin.qq.com Developers can apply for a WeChat Official Account test account from this link for testing. Test accounts work normally but cannot configure AES Key. -![Image](/imgs/offiaccount-2.png) +![Image](../../../public/imgs/offiaccount-2.png) ### 2. Enter the 3 parameters into the FastGPT configuration dialog. -![Image](/imgs/offiaccount-3.png) +![Image](../../../public/imgs/offiaccount-3.png) ## 3. Add FastGPT IP to IP Whitelist -![Image](/imgs/offiaccount-4.png) +![Image](../../../public/imgs/offiaccount-4.png) Self-hosted users can check their own IP address. @@ -95,9 +95,9 @@ China Mainland users (fastgpt.cn) can add the following IP whitelist: ## 4. Get AES Key and Select Encryption Mode -![Image](/imgs/offiaccount-5.png) +![Image](../../../public/imgs/offiaccount-5.png) -![Image](/imgs/offiaccount-6.png) +![Image](../../../public/imgs/offiaccount-6.png) 1. Randomly generate an AES Key and enter it into the FastGPT configuration dialog. @@ -107,15 +107,15 @@ China Mainland users (fastgpt.cn) can add the following IP whitelist: 1. Confirm creation in FastGPT and get the URL. -![Image](/imgs/offiaccount-7.png) +![Image](../../../public/imgs/offiaccount-7.png) 2. Enter it in the URL field on the WeChat Official Account Platform, then submit and save. -![Image](/imgs/offiaccount-8.png) +![Image](../../../public/imgs/offiaccount-8.png) ## 6. Enable Server Configuration (Skip if already auto-enabled) -![Image](/imgs/offiaccount-9.png) +![Image](../../../public/imgs/offiaccount-9.png) ## 7. Start Using diff --git a/document/content/docs/use-cases/external-integration/official_account.mdx b/document/content/use-cases/external-integration/official_account.mdx similarity index 84% rename from document/content/docs/use-cases/external-integration/official_account.mdx rename to document/content/use-cases/external-integration/official_account.mdx index 6eac7d4915..189246fec1 100644 --- a/document/content/docs/use-cases/external-integration/official_account.mdx +++ b/document/content/use-cases/external-integration/official_account.mdx @@ -11,7 +11,7 @@ description: FastGPT 接入微信公众号教程 在 FastGPT 中选择想要接入的应用,在 _发布渠道_ 页面,新建一个接入微信公众号的发布渠道,填写好基础信息。 -![图片](/imgs/offiaccount-1.png) +![图片](../../../public/imgs/offiaccount-1.png) ## 2. 获取 AppID 、 Secret和Token @@ -23,15 +23,15 @@ description: FastGPT 接入微信公众号教程 开发者可以从这个链接申请微信公众号的测试号进行测试,测试号可以正常使用,但不能配置 AES Key -![图片](/imgs/offiaccount-2.png) +![图片](../../../public/imgs/offiaccount-2.png) ### 2. 把3个参数填入 FastGPT 配置弹窗中。 -![图片](/imgs/offiaccount-3.png) +![图片](../../../public/imgs/offiaccount-3.png) ## 3. 在 IP 白名单中加入 FastGPT 的 IP -![图片](/imgs/offiaccount-4.png) +![图片](../../../public/imgs/offiaccount-4.png) 私有部署的用户可自行查阅自己的 IP 地址。 @@ -95,9 +95,9 @@ description: FastGPT 接入微信公众号教程 ## 4. 获取AES Key,选择加密方式 -![图片](/imgs/offiaccount-5.png) +![图片](../../../public/imgs/offiaccount-5.png) -![图片](/imgs/offiaccount-6.png) +![图片](../../../public/imgs/offiaccount-6.png) 1. 随机生成AESKey,填入 FastGPT 配置弹窗中。 @@ -107,15 +107,15 @@ description: FastGPT 接入微信公众号教程 1. 在FastGPT确认创建,获取URL。 -![图片](/imgs/offiaccount-7.png) +![图片](../../../public/imgs/offiaccount-7.png) 2. 填入微信公众平台的 URL 处,然后提交保存 -![图片](/imgs/offiaccount-8.png) +![图片](../../../public/imgs/offiaccount-8.png) ## 6. 启用服务器配置(如已自动启用,请忽略) -![图片](/imgs/offiaccount-9.png) +![图片](../../../public/imgs/offiaccount-9.png) ## 7. 开始使用 diff --git a/document/content/docs/use-cases/external-integration/openapi.en.mdx b/document/content/use-cases/external-integration/openapi.en.mdx similarity index 86% rename from document/content/docs/use-cases/external-integration/openapi.en.mdx rename to document/content/use-cases/external-integration/openapi.en.mdx index 2cb0e7a60d..3b50498ecc 100644 --- a/document/content/docs/use-cases/external-integration/openapi.en.mdx +++ b/document/content/use-cases/external-integration/openapi.en.mdx @@ -5,7 +5,7 @@ description: Access FastGPT app via API import { Alert } from '@/components/docs/Alert'; -In FastGPT, you can create multiple API keys for each app to access the app's API endpoints. Each key can only access one app. For complete endpoint documentation, [see the Chat API reference](/docs/openapi/intro). +In FastGPT, you can create multiple API keys for each app to access the app's API endpoints. Each key can only access one app. For complete endpoint documentation, [see the Chat API reference](../../openapi/intro.en.mdx). ## Get API Key @@ -15,7 +15,7 @@ Go to App -> "API Access", then click "API Key" to create a key. Keep your key safe. Once the dialog is closed, you cannot copy the key again -- you can only create a new key and copy it. -![](/imgs/fastgpt-api1.jpg) +![](../../../public/imgs/fastgpt-api1.jpg) Tip: For security, you can set a quota or expiration time to prevent key abuse. @@ -30,8 +30,8 @@ OPENAI_API_KEY = the key obtained in the previous step **[ChatGPT Next Web](https://github.com/Yidadaa/ChatGPT-Next-Web) Example:** -![](/imgs/chatgptnext.png) +![](../../../public/imgs/chatgptnext.png) **[ChatGPT Web](https://github.com/Chanzhaoyu/chatgpt-web) Example:** -![](/imgs/chatgptweb.png) +![](../../../public/imgs/chatgptweb.png) diff --git a/document/content/docs/use-cases/external-integration/openapi.mdx b/document/content/use-cases/external-integration/openapi.mdx similarity index 87% rename from document/content/docs/use-cases/external-integration/openapi.mdx rename to document/content/use-cases/external-integration/openapi.mdx index 76a0909a12..2d7b890ea8 100644 --- a/document/content/docs/use-cases/external-integration/openapi.mdx +++ b/document/content/use-cases/external-integration/openapi.mdx @@ -5,7 +5,7 @@ description: 通过 API 访问 FastGPT 应用 import { Alert } from '@/components/docs/Alert'; -在 FastGPT 中,你可以为每一个应用创建多个 API 密钥,用于访问应用的 API 接口。每个密钥仅能访问一个应用。完整的接口可以[查看应用对话接口](/docs/openapi/intro)。 +在 FastGPT 中,你可以为每一个应用创建多个 API 密钥,用于访问应用的 API 接口。每个密钥仅能访问一个应用。完整的接口可以[查看应用对话接口](../../openapi/intro.mdx)。 ## 获取 API 密钥 @@ -15,7 +15,7 @@ import { Alert } from '@/components/docs/Alert'; 密钥需要自己保管好,一旦关闭就无法再复制密钥,只能创建新密钥再复制。 -![](/imgs/fastgpt-api1.jpg) +![](../../../public/imgs/fastgpt-api1.jpg) Tips: 安全起见,你可以设置一个额度或者过期时间,防止 key 被滥用。 @@ -30,8 +30,8 @@ OPENAI_API_KEY = 上一步获取到的密钥 **[ChatGPT Next Web](https://github.com/Yidadaa/ChatGPT-Next-Web) 示例:** -![](/imgs/chatgptnext.png) +![](../../../public/imgs/chatgptnext.png) **[ChatGPT Web](https://github.com/Chanzhaoyu/chatgpt-web) 示例:** -![](/imgs/chatgptweb.png) +![](../../../public/imgs/chatgptweb.png) diff --git a/document/content/docs/use-cases/external-integration/wechat.en.mdx b/document/content/use-cases/external-integration/wechat.en.mdx similarity index 76% rename from document/content/docs/use-cases/external-integration/wechat.en.mdx rename to document/content/use-cases/external-integration/wechat.en.mdx index dd900e107f..d87b71e966 100644 --- a/document/content/docs/use-cases/external-integration/wechat.en.mdx +++ b/document/content/use-cases/external-integration/wechat.en.mdx @@ -7,7 +7,7 @@ description: How to integrate FastGPT with a WeChat personal account Open your FastGPT Agent, click the tab at the top to switch to **Publishing Channels**, select **WeChat Personal Account**, and click **Create**. -![alt text](../../../../public/imgs/image-3.png) +![alt text](../../../public/imgs/image-3.png) You can fill in the form fields as needed. @@ -15,19 +15,19 @@ You can fill in the form fields as needed. After creating the channel, a new entry will appear. For the first time, you need to scan a QR code to log in. Click **Scan QR Code to Log In** to display the login QR code. -![alt text](../../../../public/imgs/image-4.png) +![alt text](../../../public/imgs/image-4.png) -![alt text](../../../../public/imgs/image-17.png) +![alt text](../../../public/imgs/image-17.png) ## 3. Start Chatting Once connected via QR code, a **WeChat ClawBot** will appear in your contacts list. -![alt text](../../../../public/imgs/image-25.png) +![alt text](../../../public/imgs/image-25.png) Click to open the conversation and start chatting! -![alt text](../../../../public/imgs/image-26.png) +![alt text](../../../public/imgs/image-26.png) ## FAQ diff --git a/document/content/docs/use-cases/external-integration/wechat.mdx b/document/content/use-cases/external-integration/wechat.mdx similarity index 76% rename from document/content/docs/use-cases/external-integration/wechat.mdx rename to document/content/use-cases/external-integration/wechat.mdx index 8595150de2..1ee9ffe0c9 100644 --- a/document/content/docs/use-cases/external-integration/wechat.mdx +++ b/document/content/use-cases/external-integration/wechat.mdx @@ -7,7 +7,7 @@ description: FastGPT 接入微信个人号教程 进入 FastGPT 搭建好的 Agent,点击顶部的 tab 切换到发布渠道,并选择`微信个人号`,点击新建。 -![alt text](../../../../public/imgs/image-3.png) +![alt text](../../../public/imgs/image-3.png) 表单内容随便填写即可。 @@ -15,21 +15,21 @@ description: FastGPT 接入微信个人号教程 确认创建渠道后,会多出一条记录,首次需要扫码登录,点击扫码登录,即可跳出登录二维码。 -![alt text](../../../../public/imgs/image-4.png) +![alt text](../../../public/imgs/image-4.png) -![alt text](../../../../public/imgs/image-17.png) +![alt text](../../../public/imgs/image-17.png) ## 3. 愉快玩耍 扫码连接后,好友列表就会多出一个`微信 ClawBot`的机器人可使用。 -![alt text](../../../../public/imgs/image-25.png) +![alt text](../../../public/imgs/image-25.png) 点击进入后,即可开始聊天啦! -![alt text](../../../../public/imgs/image-26.png) +![alt text](../../../public/imgs/image-26.png) ## FAQ diff --git a/document/content/docs/use-cases/external-integration/wecom.en.mdx b/document/content/use-cases/external-integration/wecom.en.mdx similarity index 78% rename from document/content/docs/use-cases/external-integration/wecom.en.mdx rename to document/content/use-cases/external-integration/wecom.en.mdx index 3f93f04321..ff50295808 100644 --- a/document/content/docs/use-cases/external-integration/wecom.en.mdx +++ b/document/content/use-cases/external-integration/wecom.en.mdx @@ -10,7 +10,7 @@ description: FastGPT WeCom Bot Integration Tutorial WeCom requires intelligent bot message push addresses to use the enterprise's primary domain, so cloud service edition users must configure a custom domain before using WeCom bots. -- [Configure Custom Domain](/docs/introduction/guide/team_permissions/customDomain) +- [Configure Custom Domain](../../introduction/guide/team_permissions/customDomain.en.mdx) If you are a commercial edition user, continue using your enterprise domain. @@ -24,43 +24,43 @@ If you are a commercial edition user, continue using your enterprise domain. On the "Security & Management" - "Management Tools" page, click "Intelligent Bot" (Note: Only the enterprise creator or super admin has permission to see this entry) -![Image](/imgs/use-cases/external-integration/wecom/1.png) +![Image](../../../public/imgs/use-cases/external-integration/wecom/1.png) ### 2.3 Select "API Mode Creation" for the Intelligent Bot On the create bot page, scroll down and click "API Mode Creation" -![Image](/imgs/use-cases/external-integration/wecom/2.png) +![Image](../../../public/imgs/use-cases/external-integration/wecom/2.png) ### 2.4 Get Key Credentials Randomly generate or manually enter Token and Encoding-AESKey, and record them -![Image](/imgs/use-cases/external-integration/wecom/3.png) +![Image](../../../public/imgs/use-cases/external-integration/wecom/3.png) ### 2.5 Create WeCom Bot Publishing Channel In FastGPT, select the Agent you want to use. On the Publishing Channels page, select "WeCom Bot" and click "Create" -![Image](/imgs/use-cases/external-integration/wecom/4.png) +![Image](../../../public/imgs/use-cases/external-integration/wecom/4.png) ### 2.6 Configure Publishing Channel Information Configure the publishing channel information. You need to enter the Token and AESKey recorded in step 2.4 (Token and Encoding-AESKey) -![Image](/imgs/use-cases/external-integration/wecom/5.png) +![Image](../../../public/imgs/use-cases/external-integration/wecom/5.png) ### 2.7 Copy Callback URL After clicking "Confirm", select your configured custom domain, copy the callback URL, and paste it back into the WeCom intelligent bot configuration page. -![Image](/imgs/use-cases/external-integration/wecom/6.png) +![Image](../../../public/imgs/use-cases/external-integration/wecom/6.png) ## 3. Use the Intelligent Bot In the WeCom platform's "Contacts", you can find the created bot and start sending messages -![Image](/imgs/use-cases/external-integration/wecom/7.png) +![Image](../../../public/imgs/use-cases/external-integration/wecom/7.png) ## FAQ diff --git a/document/content/docs/use-cases/external-integration/wecom.mdx b/document/content/use-cases/external-integration/wecom.mdx similarity index 77% rename from document/content/docs/use-cases/external-integration/wecom.mdx rename to document/content/use-cases/external-integration/wecom.mdx index e795017a6a..74938fae05 100644 --- a/document/content/docs/use-cases/external-integration/wecom.mdx +++ b/document/content/use-cases/external-integration/wecom.mdx @@ -10,7 +10,7 @@ description: FastGPT 接入企微机器人教程 企微要求智能机器人消息推送地址必须使用企业主体域名,因此云服务版本用户必须先配置自定义域名才能使用企微机器人。 -- [配置自定义域名](/docs/introduction/guide/team_permissions/customDomain) +- [配置自定义域名](../../introduction/guide/team_permissions/customDomain.mdx) 若您是商业版用户,请继续使用您企业的域名。 @@ -24,43 +24,43 @@ description: FastGPT 接入企微机器人教程 在"安全与管理" - "管理工具"页面点击"智能机器人" ( 注意: 只有企业创建者或超级管理员才有权限看到这个入口 ) -![图片](/imgs/use-cases/external-integration/wecom/1.png) +![图片](../../../public/imgs/use-cases/external-integration/wecom/1.png) ### 2.3 选择 “API模式创建” 智能机器人 在创建机器人页面, 下拉, 点击 "API模式创建" -![图片](/imgs/use-cases/external-integration/wecom/2.png) +![图片](../../../public/imgs/use-cases/external-integration/wecom/2.png) ### 2.4 获取关键密钥 随机生成或者手动输入 Token 和 Encoding-AESKey,并且记录下来 -![图片](/imgs/use-cases/external-integration/wecom/3.png) +![图片](../../../public/imgs/use-cases/external-integration/wecom/3.png) ### 2.5 创建企微机器人发布渠道 在 FastGPT 中,选择要使用 Agent,在发布渠道页面,选择“企业微信机器人”,点击“创建” -![图片](/imgs/use-cases/external-integration/wecom/4.png) +![图片](../../../public/imgs/use-cases/external-integration/wecom/4.png) ### 2.6 配置发布渠道信息 配置该发布渠道的信息,需要填入 Token 和 AESKey,也就是第四步中记录下来的 Token 和 Encoding-AESKey -![图片](/imgs/use-cases/external-integration/wecom/5.png) +![图片](../../../public/imgs/use-cases/external-integration/wecom/5.png) ### 2.7 复制回调地址 点击“确认”后,选择您配置的自定义域名,复制回调地址,填回企微智能机器人配置页中。 -![图片](/imgs/use-cases/external-integration/wecom/6.png) +![图片](../../../public/imgs/use-cases/external-integration/wecom/6.png) ## 3. 使用智能机器人 在企业微信平台的"通讯录",即可找到创建的机器人,就可以发送消息了 -![图片](/imgs/use-cases/external-integration/wecom/7.png) +![图片](../../../public/imgs/use-cases/external-integration/wecom/7.png) ## FAQ diff --git a/document/content/docs/use-cases/index.en.mdx b/document/content/use-cases/index.en.mdx similarity index 64% rename from document/content/docs/use-cases/index.en.mdx rename to document/content/use-cases/index.en.mdx index 8dcbaa4de8..c2dc8894aa 100644 --- a/document/content/docs/use-cases/index.en.mdx +++ b/document/content/use-cases/index.en.mdx @@ -5,4 +5,4 @@ description: FastGPT Use Cases import { Redirect } from '@/components/docs/Redirect'; - + diff --git a/document/content/docs/use-cases/index.mdx b/document/content/use-cases/index.mdx similarity index 65% rename from document/content/docs/use-cases/index.mdx rename to document/content/use-cases/index.mdx index cea5a623ca..7b7cbeba27 100644 --- a/document/content/docs/use-cases/index.mdx +++ b/document/content/use-cases/index.mdx @@ -5,4 +5,4 @@ description: FastGPT 使用案例 import { Redirect } from '@/components/docs/Redirect'; - \ No newline at end of file + diff --git a/document/content/docs/use-cases/meta.en.json b/document/content/use-cases/meta.en.json similarity index 100% rename from document/content/docs/use-cases/meta.en.json rename to document/content/use-cases/meta.en.json diff --git a/document/content/docs/use-cases/meta.json b/document/content/use-cases/meta.json similarity index 100% rename from document/content/docs/use-cases/meta.json rename to document/content/use-cases/meta.json diff --git a/document/data/doc-last-modified.json b/document/data/doc-last-modified.json index 1a712915a3..9e26dfeeb6 100644 --- a/document/data/doc-last-modified.json +++ b/document/data/doc-last-modified.json @@ -1,429 +1 @@ -{ - "document/content/docs/faq/app.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/faq/app.mdx": "2025-08-02T19:38:37+08:00", - "document/content/docs/faq/chat.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/faq/chat.mdx": "2025-08-02T19:38:37+08:00", - "document/content/docs/faq/dataset.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/faq/dataset.mdx": "2026-03-17T14:44:54+08:00", - "document/content/docs/faq/external_channel_integration.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/faq/external_channel_integration.mdx": "2025-08-02T19:38:37+08:00", - "document/content/docs/faq/index.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/faq/index.mdx": "2025-08-02T19:38:37+08:00", - "document/content/docs/faq/other.en.mdx": "2026-03-17T14:44:54+08:00", - "document/content/docs/faq/other.mdx": "2026-03-17T14:44:54+08:00", - "document/content/docs/faq/points_consumption.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/faq/points_consumption.mdx": "2025-08-02T19:38:37+08:00", - "document/content/docs/introduction/cloud/faq.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/cloud/faq.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/cloud/intro.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/cloud/intro.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/cloud/privacy.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/cloud/privacy.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/cloud/terms.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/cloud/terms.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/commercial.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/commercial.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/guide/DialogBoxes/htmlRendering.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/DialogBoxes/htmlRendering.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/DialogBoxes/quoteList.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/DialogBoxes/quoteList.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/admin/sso.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/admin/sso.mdx": "2026-01-05T20:53:39+08:00", - "document/content/docs/introduction/guide/admin/teamMode.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/admin/teamMode.mdx": "2025-08-27T16:59:57+08:00", - "document/content/docs/introduction/guide/course/ai_settings.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/course/ai_settings.mdx": "2025-07-24T13:00:27+08:00", - "document/content/docs/introduction/guide/course/chat_input_guide.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/course/chat_input_guide.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/course/fileInput.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/course/fileInput.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/course/quick-start.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/course/quick-start.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/basic-mode.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/basic-mode.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/evaluation.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/evaluation.mdx": "2025-07-24T13:10:25+08:00", - "document/content/docs/introduction/guide/dashboard/gapier.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/gapier.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/intro.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/intro.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/mcp_server.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/mcp_server.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/mcp_tools.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/mcp_tools.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/ai_chat.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/ai_chat.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/content_extract.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/content_extract.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/coreferenceResolution.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/coreferenceResolution.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/custom_feedback.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/custom_feedback.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/dataset_search.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/dataset_search.mdx": "2025-07-24T13:00:27+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/document_parsing.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/document_parsing.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/form_input.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/form_input.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/http.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/http.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/laf.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/laf.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/loop.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/loop.mdx": "2025-09-17T22:29:56+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/parallel_run.en.mdx": "2026-04-17T23:28:43+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/parallel_run.mdx": "2026-04-17T23:28:43+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/question_classify.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/question_classify.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/reply.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/reply.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/sandbox-v2.en.mdx": "2026-03-16T17:09:25+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/sandbox-v2.mdx": "2026-03-16T17:09:25+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/sandbox.en.mdx": "2026-03-16T17:09:25+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/sandbox.mdx": "2026-03-16T17:09:25+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/text_editor.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/text_editor.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/tfswitch.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/tfswitch.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/tool.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/tool.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/user-selection.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/user-selection.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/variable_update.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/dashboard/workflow/variable_update.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/knowledge_base/RAG.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/knowledge_base/RAG.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/knowledge_base/api_dataset.en.mdx": "2026-03-09T17:39:53+08:00", - "document/content/docs/introduction/guide/knowledge_base/api_dataset.mdx": "2026-03-09T17:39:53+08:00", - "document/content/docs/introduction/guide/knowledge_base/collection_tags.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/knowledge_base/collection_tags.mdx": "2025-08-02T19:38:37+08:00", - "document/content/docs/introduction/guide/knowledge_base/dataset_engine.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/knowledge_base/dataset_engine.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/knowledge_base/lark_dataset.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/knowledge_base/lark_dataset.mdx": "2025-09-17T17:40:47+08:00", - "document/content/docs/introduction/guide/knowledge_base/template.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/knowledge_base/template.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/knowledge_base/third_dataset.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/knowledge_base/third_dataset.mdx": "2025-07-24T13:00:27+08:00", - "document/content/docs/introduction/guide/knowledge_base/websync.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/knowledge_base/websync.mdx": "2025-08-05T23:20:39+08:00", - "document/content/docs/introduction/guide/knowledge_base/yuque_dataset.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/knowledge_base/yuque_dataset.mdx": "2025-09-17T22:29:56+08:00", - "document/content/docs/introduction/guide/plugins/bing_search_plugin.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/plugins/bing_search_plugin.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/plugins/dev_system_tool.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/guide/plugins/dev_system_tool.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/guide/plugins/doc2x_plugin_guide.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/plugins/doc2x_plugin_guide.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/plugins/google_search_plugin_guide.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/plugins/google_search_plugin_guide.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/plugins/searxng_plugin_guide.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/plugins/searxng_plugin_guide.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/introduction/guide/plugins/upload_system_tool.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/guide/plugins/upload_system_tool.mdx": "2025-11-04T16:58:12+08:00", - "document/content/docs/introduction/guide/team_permissions/customDomain.en.mdx": "2026-02-26T22:14:30+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.en.mdx": "2026-02-26T22:14:30+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.en.mdx": "2026-02-26T22:14:30+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": "2026-02-26T22:14:30+08:00", - "document/content/docs/introduction/index.mdx": "2026-02-26T00:26:52+08:00", - "document/content/docs/introduction/opensource/intro.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/opensource/intro.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/opensource/license.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/introduction/opensource/license.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/openapi/app.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/openapi/app.mdx": "2026-02-12T18:45:30+08:00", - "document/content/docs/openapi/chat.en.mdx": "2026-03-16T17:09:25+08:00", - "document/content/docs/openapi/chat.mdx": "2026-03-16T17:09:25+08:00", - "document/content/docs/openapi/dataset.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/openapi/dataset.mdx": "2026-04-13T11:25:12+08:00", - "document/content/docs/openapi/index.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/openapi/index.mdx": "2026-02-12T18:45:30+08:00", - "document/content/docs/openapi/intro.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/openapi/intro.mdx": "2026-02-12T18:45:30+08:00", - "document/content/docs/openapi/share.en.mdx": "2026-04-10T22:55:44+08:00", - "document/content/docs/openapi/share.mdx": "2026-04-10T22:55:44+08:00", - "document/content/docs/self-host/config/json.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/config/json.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/config/model/intro.en.mdx": "2026-03-30T10:05:42+08:00", - "document/content/docs/self-host/config/model/intro.mdx": "2026-03-30T10:05:42+08:00", - "document/content/docs/self-host/config/model/minimax.en.mdx": "2026-03-19T09:32:57-05:00", - "document/content/docs/self-host/config/model/minimax.mdx": "2026-03-19T09:32:57-05:00", - "document/content/docs/self-host/config/model/siliconCloud.en.mdx": "2026-03-19T14:09:03+08:00", - "document/content/docs/self-host/config/model/siliconCloud.mdx": "2026-03-19T14:09:03+08:00", - "document/content/docs/self-host/config/object-storage.en.mdx": "2026-04-17T23:28:43+08:00", - "document/content/docs/self-host/config/object-storage.mdx": "2026-04-17T23:28:43+08:00", - "document/content/docs/self-host/config/signoz.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/config/signoz.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/bge-rerank.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/bge-rerank.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/chatglm2-m3e.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/chatglm2-m3e.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/chatglm2.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/chatglm2.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/m3e.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/m3e.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/marker.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/marker.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/mineru.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/mineru.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/ollama.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/ollama.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/custom-models/xinference.en.mdx": "2026-03-30T10:05:42+08:00", - "document/content/docs/self-host/custom-models/xinference.mdx": "2026-03-30T10:05:42+08:00", - "document/content/docs/self-host/deploy/docker.en.mdx": "2026-04-17T23:28:43+08:00", - "document/content/docs/self-host/deploy/docker.mdx": "2026-04-20T17:55:45+08:00", - "document/content/docs/self-host/deploy/sealos.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/deploy/sealos.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/design/dataset.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/design/dataset.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/design/design_plugin.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/design/design_plugin.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/dev.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/dev.mdx": "2026-03-19T14:09:03+08:00", - "document/content/docs/self-host/faq.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/index.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/index.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/migration/docker_db.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/migration/docker_db.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/migration/docker_mongo.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/migration/docker_mongo.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/troubleshooting/attention.en.mdx": "2026-03-19T11:32:14+08:00", - "document/content/docs/self-host/troubleshooting/attention.mdx": "2026-03-19T11:32:14+08:00", - "document/content/docs/self-host/troubleshooting/faq.en.mdx": "2026-03-17T14:44:54+08:00", - "document/content/docs/self-host/troubleshooting/faq.mdx": "2026-03-17T14:44:54+08:00", - "document/content/docs/self-host/troubleshooting/methods.en.mdx": "2026-03-17T14:44:54+08:00", - "document/content/docs/self-host/troubleshooting/methods.mdx": "2026-03-17T14:44:54+08:00", - "document/content/docs/self-host/troubleshooting/model-errors.en.mdx": "2026-03-19T11:32:14+08:00", - "document/content/docs/self-host/troubleshooting/model-errors.mdx": "2026-03-19T11:32:14+08:00", - "document/content/docs/self-host/troubleshooting/s3-issues.en.mdx": "2026-03-17T14:44:54+08:00", - "document/content/docs/self-host/troubleshooting/s3-issues.mdx": "2026-03-19T14:09:03+08:00", - "document/content/docs/self-host/upgrading/4-12/4120.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-12/4120.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-12/4121.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-12/4121.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-12/4122.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-12/4122.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-12/4123.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-12/4123.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-12/4124.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-12/4124.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-13/4130.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-13/4130.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-13/4131.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-13/4131.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-13/4132.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-13/4132.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4140.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4140.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4141.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4141.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/41410.en.mdx": "2026-03-31T23:15:29+08:00", - "document/content/docs/self-host/upgrading/4-14/41410.mdx": "2026-04-18T20:47:39+08:00", - "document/content/docs/self-host/upgrading/4-14/41411.en.mdx": "2026-04-21T23:04:26+08:00", - "document/content/docs/self-host/upgrading/4-14/41411.mdx": "2026-04-24T17:13:58+08:00", - "document/content/docs/self-host/upgrading/4-14/41412.en.mdx": "2026-04-21T23:04:26+08:00", - "document/content/docs/self-host/upgrading/4-14/41412.mdx": "2026-04-21T23:04:26+08:00", - "document/content/docs/self-host/upgrading/4-14/41413.en.mdx": "2026-04-21T23:04:26+08:00", - "document/content/docs/self-host/upgrading/4-14/41413.mdx": "2026-04-21T23:04:26+08:00", - "document/content/docs/self-host/upgrading/4-14/41414.mdx": "2026-04-24T18:34:55+08:00", - "document/content/docs/self-host/upgrading/4-14/4142.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4142.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4143.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4143.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4144.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4144.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4145.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4145.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/41451.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/41451.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4146.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4146.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4147.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4147.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/4-14/4148.en.mdx": "2026-03-06T19:32:23+08:00", - "document/content/docs/self-host/upgrading/4-14/4148.mdx": "2026-03-23T12:10:44+08:00", - "document/content/docs/self-host/upgrading/4-14/41481.en.mdx": "2026-03-09T12:02:02+08:00", - "document/content/docs/self-host/upgrading/4-14/41481.mdx": "2026-03-09T17:39:53+08:00", - "document/content/docs/self-host/upgrading/4-14/4149.en.mdx": "2026-03-23T12:17:04+08:00", - "document/content/docs/self-host/upgrading/4-14/4149.mdx": "2026-04-07T21:01:52+08:00", - "document/content/docs/self-host/upgrading/4-15/4150.mdx": "2026-04-24T22:01:29+08:00", - "document/content/docs/self-host/upgrading/outdated/40.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/40.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/41.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/41.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4100.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4100.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4101.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4101.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4110.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4110.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4111.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4111.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/42.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/42.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/421.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/421.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/43.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/43.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/44.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/44.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/441.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/441.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/442.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/442.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/445.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/445.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/446.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/446.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/447.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/447.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/45.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/45.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/451.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/451.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/452.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/452.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/46.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/46.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/461.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/461.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/462.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/462.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/463.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/463.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/464.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/464.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/465.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/465.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/466.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/466.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/467.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/467.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/468.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/468.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/469.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/469.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/47.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/47.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/471.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/471.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/48.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/48.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/481.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/481.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4810.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4810.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4811.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4811.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4812.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4812.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4813.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4813.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4814.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4814.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4815.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4815.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4816.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4816.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4817.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4817.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4818.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4818.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4819.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4819.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/482.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/482.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4820.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4820.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4821.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4821.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4822.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4822.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4823.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4823.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/483.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/483.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/484.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/484.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/485.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/485.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/486.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/486.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/487.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/487.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/488.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/488.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/489.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/489.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/490.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/490.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/491.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/491.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4910.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4910.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4911.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4911.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4912.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4912.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4913.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4913.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4914.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/4914.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/492.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/492.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/493.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/493.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/494.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/494.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/495.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/495.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/496.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/496.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/497.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/497.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/498.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/498.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/499.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/outdated/499.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/upgrade-intruction.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/self-host/upgrading/upgrade-intruction.mdx": "2026-04-20T13:51:34+08:00", - "document/content/docs/toc.en.mdx": "2026-04-21T23:04:26+08:00", - "document/content/docs/toc.mdx": "2026-04-22T16:29:40+08:00", - "document/content/docs/use-cases/app-cases/dalle3.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/use-cases/app-cases/dalle3.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/use-cases/app-cases/english_essay_correction_bot.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/use-cases/app-cases/english_essay_correction_bot.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/use-cases/app-cases/feishu_webhook.en.mdx": "2026-03-30T10:05:42+08:00", - "document/content/docs/use-cases/app-cases/feishu_webhook.mdx": "2026-03-30T10:05:42+08:00", - "document/content/docs/use-cases/app-cases/fixingEvidence.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/use-cases/app-cases/fixingEvidence.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/use-cases/app-cases/google_search.en.mdx": "2026-03-30T10:05:42+08:00", - "document/content/docs/use-cases/app-cases/google_search.mdx": "2026-03-30T10:05:42+08:00", - "document/content/docs/use-cases/app-cases/lab_appointment.en.mdx": "2026-03-30T10:05:42+08:00", - "document/content/docs/use-cases/app-cases/lab_appointment.mdx": "2026-03-30T10:05:42+08:00", - "document/content/docs/use-cases/app-cases/multi_turn_translation_bot.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/use-cases/app-cases/multi_turn_translation_bot.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/use-cases/app-cases/submit_application_template.en.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/use-cases/app-cases/submit_application_template.mdx": "2026-03-03T17:39:47+08:00", - "document/content/docs/use-cases/app-cases/translate-subtitle-using-gpt.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/use-cases/app-cases/translate-subtitle-using-gpt.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/use-cases/external-integration/dingtalk.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/use-cases/external-integration/dingtalk.mdx": "2025-07-23T21:35:03+08:00", - "document/content/docs/use-cases/external-integration/feishu.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/use-cases/external-integration/feishu.mdx": "2025-07-24T14:23:04+08:00", - "document/content/docs/use-cases/external-integration/official_account.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/use-cases/external-integration/official_account.mdx": "2026-02-26T00:26:52+08:00", - "document/content/docs/use-cases/external-integration/openapi.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/use-cases/external-integration/openapi.mdx": "2026-02-12T18:45:30+08:00", - "document/content/docs/use-cases/external-integration/wechat.en.mdx": "2026-03-23T11:57:05+08:00", - "document/content/docs/use-cases/external-integration/wechat.mdx": "2026-03-23T11:57:05+08:00", - "document/content/docs/use-cases/external-integration/wecom.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/use-cases/external-integration/wecom.mdx": "2025-12-10T20:07:05+08:00", - "document/content/docs/use-cases/index.en.mdx": "2026-02-26T22:14:30+08:00", - "document/content/docs/use-cases/index.mdx": "2025-07-24T14:23:04+08:00" -} \ No newline at end of file +{} \ No newline at end of file diff --git a/document/document/data/doc-last-modified.json b/document/document/data/doc-last-modified.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/document/document/data/doc-last-modified.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/document/lib/i18n.ts b/document/lib/i18n.ts index 050a7132f5..7cd0cc90e0 100644 --- a/document/lib/i18n.ts +++ b/document/lib/i18n.ts @@ -32,7 +32,7 @@ export function t(key: string, locale?: string) { /** * Get localized URL path based on i18n configuration - * @param path - The base path (e.g., '/docs/introduction') + * @param path - The base path (e.g., '/introduction') * @param lang - The language code * @returns Localized path with language prefix if needed */ diff --git a/document/lib/source.ts b/document/lib/source.ts index dacecc99d0..a44b0669c6 100644 --- a/document/lib/source.ts +++ b/document/lib/source.ts @@ -8,7 +8,7 @@ import { createElement } from 'react'; export const source = loader({ i18n, // it assigns a URL to your pages - baseUrl: '/docs', + baseUrl: '/', source: docs.toFumadocsSource(), icon(iconName) { return iconName && icons[iconName as keyof typeof icons] diff --git a/document/middleware.ts b/document/middleware.ts index 0e91a04bd0..09d51feb57 100644 --- a/document/middleware.ts +++ b/document/middleware.ts @@ -2,40 +2,51 @@ import { createI18nMiddleware } from 'fumadocs-core/i18n'; import { i18n } from '@/lib/i18n'; import { type NextRequest, NextResponse } from 'next/server'; -// Old path redirects mapping +// Old path redirects mapping. Keys/values are POST-strip (no /docs prefix). +// Old links like /docs/foo are first stripped to /foo, then matched here. const exactMap: Record = { - '/docs': '/docs/introduction', - '/docs/intro': '/docs/introduction', - '/docs/guide/dashboard/workflow/coreferenceresolution': - '/docs/introduction/guide/dashboard/workflow/coreferenceResolution', - '/docs/guide/admin/sso_dingtalk': - '/docs/introduction/guide/admin/sso#/docs/introduction/guide/admin/sso#钉钉', - '/docs/guide/knowledge_base/rag': '/docs/introduction/guide/knowledge_base/RAG', - '/docs/commercial/intro': '/docs/introduction/commercial', - '/docs/upgrading/intro': '/docs/self-host/upgrading/upgrade-intruction', - '/docs/upgrading': '/docs/self-host/upgrading/upgrade-intruction', - '/docs/introduction/shopping_cart/intro/': '/docs/introduction/commercial', - '/docs/introduction/cloud': '/docs/introduction/cloud/intro', - '/docs/protocol/terms': '/docs/introduction/cloud/terms', - '/docs/protocol/privacy': '/docs/introduction/cloud/privacy', - '/docs/introduction/development/docker': '/docs/self-host/deploy/docker', - '/docs/introduction/development/sealos': '/docs/self-host/deploy/sealos', - '/docs/introduction/development/intro': '/docs/self-host/dev', - '/docs/introduction/development/object-storage': '/docs/self-host/config/object-storage' + '': '/introduction', + '/intro': '/introduction', + '/guide/dashboard/workflow/coreferenceresolution': + '/introduction/guide/dashboard/workflow/coreferenceResolution', + '/guide/admin/sso_dingtalk': + '/introduction/guide/admin/sso#/introduction/guide/admin/sso#钉钉', + '/guide/knowledge_base/rag': '/introduction/guide/knowledge_base/RAG', + '/commercial/intro': '/introduction/commercial', + '/upgrading/intro': '/self-host/upgrading/upgrade-intruction', + '/upgrading': '/self-host/upgrading/upgrade-intruction', + '/introduction/shopping_cart/intro/': '/introduction/commercial', + '/introduction/cloud': '/introduction/cloud/intro', + '/protocol/terms': '/introduction/cloud/terms', + '/protocol/privacy': '/introduction/cloud/privacy', + '/introduction/development/docker': '/self-host/deploy/docker', + '/introduction/development/sealos': '/self-host/deploy/sealos', + '/introduction/development/intro': '/self-host/dev', + '/introduction/development/object-storage': '/self-host/config/object-storage' }; const prefixMap: Record = { - '/docs/FAQ': '/docs/faq', - '/docs/guide': '/docs/introduction/guide', - '/docs/shopping_cart': '/docs/introduction/shopping_cart', - '/docs/upgrading': '/docs/self-host/upgrading', - '/docs/development': '/docs/self-host', - '/docs/introduction/development/openapi': '/docs/openapi', - '/docs/introduction/development': '/docs/self-host' + '/FAQ': '/faq', + '/guide': '/introduction/guide', + '/shopping_cart': '/introduction/shopping_cart', + '/upgrading': '/self-host/upgrading', + '/development': '/self-host', + '/introduction/development/openapi': '/openapi', + '/introduction/development': '/self-host' }; const i18nMiddleware = createI18nMiddleware(i18n); +function applyRedirectMaps(path: string): string | null { + if (path in exactMap) return exactMap[path]; + for (const [oldPrefix, newPrefix] of Object.entries(prefixMap)) { + if (path.startsWith(oldPrefix)) { + return newPrefix + path.slice(oldPrefix.length); + } + } + return null; +} + export default function middleware(request: NextRequest) { const { pathname } = request.nextUrl; @@ -51,55 +62,63 @@ export default function middleware(request: NextRequest) { } } - // Check exact match redirects - if (exactMap[pathWithoutLang]) { - const newUrl = new URL(`/${lang}${exactMap[pathWithoutLang]}`, request.url); - return NextResponse.redirect(newUrl, 301); + // Legacy /docs/* URLs: strip the /docs prefix and run redirect-match. + // Always 301 to the canonical (no-/docs) path, even if no map entry matches. + if (pathWithoutLang === '/docs' || pathWithoutLang.startsWith('/docs/')) { + const stripped = pathWithoutLang.slice('/docs'.length); // '' for /docs, /foo for /docs/foo + const mapped = applyRedirectMaps(stripped); + const finalPath = mapped ?? stripped; + return NextResponse.redirect( + new URL(`/${lang}${finalPath || '/'}`, request.url), + 301 + ); } - // Check prefix match redirects - for (const [oldPrefix, newPrefix] of Object.entries(prefixMap)) { - if (pathWithoutLang.startsWith(oldPrefix)) { - const rest = pathWithoutLang.slice(oldPrefix.length); - const newUrl = new URL(`/${lang}${newPrefix}${rest}`, request.url); - return NextResponse.redirect(newUrl, 301); - } + // Non-/docs paths still consult the same maps so that direct hits on old + // canonical paths (e.g. /upgrading) get redirected to their new home. + const mapped = applyRedirectMaps(pathWithoutLang); + if (mapped !== null && mapped !== pathWithoutLang) { + return NextResponse.redirect(new URL(`/${lang}${mapped || '/'}`, request.url), 301); } + // Build enhanced request headers so server components (e.g. (docs)/layout) + // can read the current pathname via `headers().get('x-pathname')`. + const requestHeaders = new Headers(request.headers); + requestHeaders.set('x-pathname', pathname); + // Check if URL has a language prefix const hasLangPrefix = i18n.languages.some( (l) => pathname.startsWith(`/${l}/`) || pathname === `/${l}` ); if (hasLangPrefix) { - // Save user's language preference to cookie when visiting a localized URL + // Pass through with x-pathname; sync FD_LOCALE cookie if mismatched. + const response = NextResponse.next({ request: { headers: requestHeaders } }); const currentCookie = request.cookies.get('FD_LOCALE')?.value; if (currentCookie !== lang) { - // @ts-expect-error - Fumadocs middleware signature mismatch - const response = i18nMiddleware(request) ?? NextResponse.next(); - // @ts-ignore response.cookies.set('FD_LOCALE', lang, { path: '/', maxAge: 60 * 60 * 24 * 365 }); - return response; - } - } else { - // No language prefix — check cookie for user's language preference - const cookieLocale = request.cookies.get('FD_LOCALE')?.value; - if (cookieLocale && i18n.languages.includes(cookieLocale)) { - const newUrl = new URL(`/${cookieLocale}${pathname}`, request.url); - newUrl.search = request.nextUrl.search; - return NextResponse.redirect(newUrl); } + return response; } - // Continue with i18n middleware (falls back to Accept-Language detection) + // No language prefix — check cookie for user's language preference + const cookieLocale = request.cookies.get('FD_LOCALE')?.value; + if (cookieLocale && i18n.languages.includes(cookieLocale)) { + const newUrl = new URL(`/${cookieLocale}${pathname}`, request.url); + newUrl.search = request.nextUrl.search; + return NextResponse.redirect(newUrl); + } + + // Fall back to fumadocs i18n (Accept-Language detection / redirect) // @ts-expect-error - Fumadocs middleware signature mismatch return i18nMiddleware(request); } export const config = { matcher: [ - '/((?!api|_next/static|_next/image|favicon.ico|robots\\.txt|sitemap.*\\.xml|.*\\.svg|.*\\.png|deploy/.*).*)'] + '/((?!api|_next/static|_next/image|favicon.ico|robots\\.txt|sitemap.*\\.xml|.*\\.svg|.*\\.png|deploy/.*).*)' + ] }; diff --git a/document/package.json b/document/package.json index dbb87d026d..e04a402bb2 100644 --- a/document/package.json +++ b/document/package.json @@ -6,7 +6,12 @@ "build": "next build", "dev": "next dev --turbo", "start": "next start", - "postinstall": "fumadocs-mdx" + "postinstall": "fumadocs-mdx", + "format-doc": "zhlint --dir ./ *.mdx --fix", + "initDocTime": "node ./script/initDocTime.js", + "initDocToc": "node ./script/generateToc.js", + "checkDocRefs": "node ./script/checkDocRefs.js", + "removeInvalidImg": "node ./script/removeInvalidImg.js" }, "dependencies": { "@orama/orama": "^3.1.11", diff --git a/document/public/deploy/docker/cn/docker-compose.milvus.yml b/document/public/deploy/docker/cn/docker-compose.milvus.yml index 3a054a22e8..89f1761856 100644 --- a/document/public/deploy/docker/cn/docker-compose.milvus.yml +++ b/document/public/deploy/docker/cn/docker-compose.milvus.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,7 +43,6 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config MILVUS_ADDRESS: http://fastgpt-vector:19530 MILVUS_TOKEN: none - services: # Vector DB @@ -118,7 +117,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -192,7 +203,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -287,7 +298,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -332,12 +343,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -547,4 +559,3 @@ configs: [ingress] mode = "direct" - diff --git a/document/public/deploy/docker/cn/docker-compose.oceanbase.yml b/document/public/deploy/docker/cn/docker-compose.oceanbase.yml index b81be84798..ec6f9e4177 100644 --- a/document/public/deploy/docker/cn/docker-compose.oceanbase.yml +++ b/document/public/deploy/docker/cn/docker-compose.oceanbase.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,11 +43,10 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config OCEANBASE_URL: mysql://root%40tenantname:tenantpassword@fastgpt-vector:2881/mysql - services: # Vector DB fastgpt-vector: - image: oceanbase/oceanbase-ce:4.3.5-lts + image: oceanbase/oceanbase-ce:4.3.5-lts container_name: fastgpt-ob restart: always # ports: # 生产环境建议不要暴露 @@ -75,8 +74,8 @@ services: # obclient -h127.0.0.1 -P2881 -uroot@tenantname -ptenantpassword -e "SELECT 1;" test: [ - "CMD-SHELL", - 'obclient -h$${OB_SERVER_IP} -P2881 -uroot@$${OB_TENANT_NAME} -p$${OB_TENANT_PASSWORD} -e "SELECT 1;"', + 'CMD-SHELL', + 'obclient -h$${OB_SERVER_IP} -P2881 -uroot@$${OB_TENANT_NAME} -p$${OB_TENANT_PASSWORD} -e "SELECT 1;"' ] interval: 30s timeout: 10s @@ -96,7 +95,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -170,7 +181,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -265,7 +276,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -310,12 +321,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -529,4 +541,3 @@ configs: name: init_sql content: | ALTER SYSTEM SET ob_vector_memory_limit_percentage = 30; - diff --git a/document/public/deploy/docker/cn/docker-compose.opengauss.yml b/document/public/deploy/docker/cn/docker-compose.opengauss.yml index 9aa25262d9..ab79fdaa1f 100644 --- a/document/public/deploy/docker/cn/docker-compose.opengauss.yml +++ b/document/public/deploy/docker/cn/docker-compose.opengauss.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -54,9 +54,9 @@ services: - data environment: # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果 - - GS_USERNAME=gaussdb # 默认会创建 gaussdb 用户 - - GS_PASSWORD=FastGPT@123 # 密码必须包含大写、小写、数字和特殊字符,且长度不少于8位 - - GS_DB=fastgpt # 默认会创建 postgres 数据库,这里以 fastgpt 为例 + - GS_USERNAME=gaussdb # 默认会创建 gaussdb 用户 + - GS_PASSWORD=FastGPT@123 # 密码必须包含大写、小写、数字和特殊字符,且长度不少于8位 + - GS_DB=fastgpt # 默认会创建 postgres 数据库,这里以 fastgpt 为例 volumes: - ./opengauss/data:/var/lib/opengauss healthcheck: @@ -78,7 +78,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -152,7 +164,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -247,7 +259,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -292,12 +304,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -507,4 +520,3 @@ configs: [ingress] mode = "direct" - diff --git a/document/public/deploy/docker/cn/docker-compose.pg.yml b/document/public/deploy/docker/cn/docker-compose.pg.yml index bb9b2e53ae..8d3275f004 100644 --- a/document/public/deploy/docker/cn/docker-compose.pg.yml +++ b/document/public/deploy/docker/cn/docker-compose.pg.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -77,7 +77,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -151,7 +163,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -246,7 +258,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -291,12 +303,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -506,4 +519,3 @@ configs: [ingress] mode = "direct" - diff --git a/document/public/deploy/docker/cn/docker-compose.seekdb.yml b/document/public/deploy/docker/cn/docker-compose.seekdb.yml index 9e98e1b820..e67cc9d357 100644 --- a/document/public/deploy/docker/cn/docker-compose.seekdb.yml +++ b/document/public/deploy/docker/cn/docker-compose.seekdb.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,11 +43,10 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config SEEKDB_URL: mysql://root:seekdbpassword@fastgpt-vector:2881/mysql - services: # Vector DB fastgpt-vector: - image: oceanbase/seekdb:1.0.1.0-100000392025122619 + image: oceanbase/seekdb:1.0.1.0-100000392025122619 container_name: fastgpt-seekdb restart: always # ports: # 生产环境建议不要暴露 @@ -83,7 +82,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -157,7 +168,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -252,7 +263,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -297,12 +308,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -512,4 +524,3 @@ configs: [ingress] mode = "direct" - diff --git a/document/public/deploy/docker/cn/docker-compose.zilliz.yml b/document/public/deploy/docker/cn/docker-compose.zilliz.yml index 01998a8bd4..31d96c01a9 100644 --- a/document/public/deploy/docker/cn/docker-compose.zilliz.yml +++ b/document/public/deploy/docker/cn/docker-compose.zilliz.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -60,7 +60,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -134,7 +146,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -229,7 +241,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -274,12 +286,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -489,4 +502,3 @@ configs: [ingress] mode = "direct" - diff --git a/document/public/deploy/docker/global/docker-compose.milvus.yml b/document/public/deploy/docker/global/docker-compose.milvus.yml index 0ff85ceae1..6c1739be94 100644 --- a/document/public/deploy/docker/global/docker-compose.milvus.yml +++ b/document/public/deploy/docker/global/docker-compose.milvus.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,7 +43,6 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config MILVUS_ADDRESS: http://fastgpt-vector:19530 MILVUS_TOKEN: none - services: # Vector DB @@ -118,7 +117,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -192,7 +203,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -287,7 +298,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -332,12 +343,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -547,4 +559,3 @@ configs: [ingress] mode = "direct" - diff --git a/document/public/deploy/docker/global/docker-compose.oceanbase.yml b/document/public/deploy/docker/global/docker-compose.oceanbase.yml index 6fb00e25fe..876d91a6f9 100644 --- a/document/public/deploy/docker/global/docker-compose.oceanbase.yml +++ b/document/public/deploy/docker/global/docker-compose.oceanbase.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,11 +43,10 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config OCEANBASE_URL: mysql://root%40tenantname:tenantpassword@fastgpt-vector:2881/mysql - services: # Vector DB fastgpt-vector: - image: oceanbase/oceanbase-ce:4.3.5-lts + image: oceanbase/oceanbase-ce:4.3.5-lts container_name: fastgpt-ob restart: always # ports: # 生产环境建议不要暴露 @@ -75,8 +74,8 @@ services: # obclient -h127.0.0.1 -P2881 -uroot@tenantname -ptenantpassword -e "SELECT 1;" test: [ - "CMD-SHELL", - 'obclient -h$${OB_SERVER_IP} -P2881 -uroot@$${OB_TENANT_NAME} -p$${OB_TENANT_PASSWORD} -e "SELECT 1;"', + 'CMD-SHELL', + 'obclient -h$${OB_SERVER_IP} -P2881 -uroot@$${OB_TENANT_NAME} -p$${OB_TENANT_PASSWORD} -e "SELECT 1;"' ] interval: 30s timeout: 10s @@ -96,7 +95,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -170,7 +181,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -265,7 +276,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -310,12 +321,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -529,4 +541,3 @@ configs: name: init_sql content: | ALTER SYSTEM SET ob_vector_memory_limit_percentage = 30; - diff --git a/document/public/deploy/docker/global/docker-compose.opengauss.yml b/document/public/deploy/docker/global/docker-compose.opengauss.yml index b5d05d412f..f13fae7869 100644 --- a/document/public/deploy/docker/global/docker-compose.opengauss.yml +++ b/document/public/deploy/docker/global/docker-compose.opengauss.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -54,9 +54,9 @@ services: - data environment: # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果 - - GS_USERNAME=gaussdb # 默认会创建 gaussdb 用户 - - GS_PASSWORD=FastGPT@123 # 密码必须包含大写、小写、数字和特殊字符,且长度不少于8位 - - GS_DB=fastgpt # 默认会创建 postgres 数据库,这里以 fastgpt 为例 + - GS_USERNAME=gaussdb # 默认会创建 gaussdb 用户 + - GS_PASSWORD=FastGPT@123 # 密码必须包含大写、小写、数字和特殊字符,且长度不少于8位 + - GS_DB=fastgpt # 默认会创建 postgres 数据库,这里以 fastgpt 为例 volumes: - ./opengauss/data:/var/lib/opengauss healthcheck: @@ -78,7 +78,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -152,7 +164,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -247,7 +259,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -292,12 +304,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -507,4 +520,3 @@ configs: [ingress] mode = "direct" - diff --git a/document/public/deploy/docker/global/docker-compose.pg.yml b/document/public/deploy/docker/global/docker-compose.pg.yml index 8d9b494336..9c4c31d3ec 100644 --- a/document/public/deploy/docker/global/docker-compose.pg.yml +++ b/document/public/deploy/docker/global/docker-compose.pg.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -77,7 +77,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -151,7 +163,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -246,7 +258,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -291,12 +303,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -506,4 +519,3 @@ configs: [ingress] mode = "direct" - diff --git a/document/public/deploy/docker/global/docker-compose.seekdb.yml b/document/public/deploy/docker/global/docker-compose.seekdb.yml index 53e907df6a..c9ca67d451 100644 --- a/document/public/deploy/docker/global/docker-compose.seekdb.yml +++ b/document/public/deploy/docker/global/docker-compose.seekdb.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -43,11 +43,10 @@ x-log-config: &x-log-config x-vec-config: &x-vec-config SEEKDB_URL: mysql://root:seekdbpassword@fastgpt-vector:2881/mysql - services: # Vector DB fastgpt-vector: - image: oceanbase/seekdb:1.0.1.0-100000392025122619 + image: oceanbase/seekdb:1.0.1.0-100000392025122619 container_name: fastgpt-seekdb restart: always # ports: # 生产环境建议不要暴露 @@ -83,7 +82,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -157,7 +168,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -252,7 +263,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -297,12 +308,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -512,4 +524,3 @@ configs: [ingress] mode = "direct" - diff --git a/document/public/deploy/docker/global/docker-compose.zilliz.yml b/document/public/deploy/docker/global/docker-compose.zilliz.yml index 5c6fc68e0e..cbd946622d 100644 --- a/document/public/deploy/docker/global/docker-compose.zilliz.yml +++ b/document/public/deploy/docker/global/docker-compose.zilliz.yml @@ -20,7 +20,7 @@ x-share-db-config: &x-share-db-config MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt?authSource=admin DB_MAX_LINK: 100 REDIS_URL: redis://default:mypassword@fastgpt-redis:6379 - # @see https://doc.fastgpt.cn/docs/self-host/config/object-storage + # @see https://doc.fastgpt.cn/self-host/config/object-storage STORAGE_VENDOR: minio # minio | aws-s3 | cos | oss STORAGE_REGION: us-east-1 STORAGE_ACCESS_KEY_ID: minioadmin @@ -60,7 +60,19 @@ services: volumes: - fastgpt-mongo:/data/db healthcheck: - test: ['CMD', 'mongo', '-u', 'myusername', '-p', 'mypassword', '--authenticationDatabase', 'admin', '--eval', "db.adminCommand('ping')"] + test: + [ + 'CMD', + 'mongo', + '-u', + 'myusername', + '-p', + 'mypassword', + '--authenticationDatabase', + 'admin', + '--eval', + "db.adminCommand('ping')" + ] interval: 10s timeout: 5s retries: 5 @@ -134,7 +146,7 @@ services: fastgpt-app: container_name: fastgpt-app - image: ghcr.io/labring/fastgpt:v4.14.15 + image: ghcr.io/labring/fastgpt:v4.14.15 ports: - 3000:3000 networks: @@ -229,7 +241,7 @@ services: LLM_REQUEST_TRACKING_RETENTION_HOURS: 6 # ==================== 功能开关与特殊配置 ==================== # 自定义跨域;不配置时默认允许所有跨域(逗号分割) - ALLOWED_ORIGINS: + ALLOWED_ORIGINS: # HTML 转 Markdown 最大字符数(超过后不执行转换) MAX_HTML_TRANSFORM_CHARS: 1000000 volumes: @@ -274,12 +286,13 @@ services: # Python allowed modules whitelist (comma-separated) SANDBOX_PYTHON_ALLOWED_MODULES: math,cmath,decimal,fractions,random,statistics,collections,array,heapq,bisect,queue,copy,itertools,functools,operator,string,re,difflib,textwrap,unicodedata,codecs,datetime,time,calendar,_strptime,json,csv,base64,binascii,struct,hashlib,hmac,secrets,uuid,typing,abc,enum,dataclasses,contextlib,pprint,weakref,numpy,pandas,matplotlib healthcheck: - test: [ - 'CMD', - 'bun', - '-e', - "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" - ] + test: + [ + 'CMD', + 'bun', + '-e', + "fetch('http://localhost:3000/health').then((res) => { if (!res.ok) throw new Error(String(res.status)); })" + ] interval: 30s timeout: 20s retries: 3 @@ -489,4 +502,3 @@ configs: [ingress] mode = "direct" - diff --git a/document/public/deploy/install.sh b/document/public/deploy/install.sh index 2a92e0dd16..7b44dc2c61 100644 --- a/document/public/deploy/install.sh +++ b/document/public/deploy/install.sh @@ -381,4 +381,4 @@ echo " 4. 访问服务: http://localhost:3000" echo " 5. 登录服务: 默认账号为 'root', 密码为: '1234'" echo " 6. 配置模型: 在 '账号-模型提供商' 页面,进行模型配置" echo "" -echo "详细文档: https://doc.fastgpt.cn/docs/self-host/deploy/docker" +echo "详细文档: https://doc.fastgpt.cn/self-host/deploy/docker" diff --git a/document/public/imgs/gapierTool1.png b/document/public/imgs/gapierTool1.png deleted file mode 100644 index d9986a6d6a..0000000000 Binary files a/document/public/imgs/gapierTool1.png and /dev/null differ diff --git a/document/public/imgs/gapierTool10.webp b/document/public/imgs/gapierTool10.webp deleted file mode 100644 index b5824349a3..0000000000 Binary files a/document/public/imgs/gapierTool10.webp and /dev/null differ diff --git a/document/public/imgs/gapierTool11.png b/document/public/imgs/gapierTool11.png deleted file mode 100644 index 00b5cb40f6..0000000000 Binary files a/document/public/imgs/gapierTool11.png and /dev/null differ diff --git a/document/public/imgs/gapierTool12.webp b/document/public/imgs/gapierTool12.webp deleted file mode 100644 index 40fd845e64..0000000000 Binary files a/document/public/imgs/gapierTool12.webp and /dev/null differ diff --git a/document/public/imgs/gapierTool13.webp b/document/public/imgs/gapierTool13.webp deleted file mode 100644 index cd3ae8edd9..0000000000 Binary files a/document/public/imgs/gapierTool13.webp and /dev/null differ diff --git a/document/public/imgs/gapierTool14.webp b/document/public/imgs/gapierTool14.webp deleted file mode 100644 index a921642fca..0000000000 Binary files a/document/public/imgs/gapierTool14.webp and /dev/null differ diff --git a/document/public/imgs/gapierTool15.webp b/document/public/imgs/gapierTool15.webp deleted file mode 100644 index 48506a30d2..0000000000 Binary files a/document/public/imgs/gapierTool15.webp and /dev/null differ diff --git a/document/public/imgs/gapierTool16.webp b/document/public/imgs/gapierTool16.webp deleted file mode 100644 index 4430b54367..0000000000 Binary files a/document/public/imgs/gapierTool16.webp and /dev/null differ diff --git a/document/public/imgs/gapierTool17.webp b/document/public/imgs/gapierTool17.webp deleted file mode 100644 index be53447ed6..0000000000 Binary files a/document/public/imgs/gapierTool17.webp and /dev/null differ diff --git a/document/public/imgs/gapierTool2.png b/document/public/imgs/gapierTool2.png deleted file mode 100644 index 4aed354c71..0000000000 Binary files a/document/public/imgs/gapierTool2.png and /dev/null differ diff --git a/document/public/imgs/gapierTool3.png b/document/public/imgs/gapierTool3.png deleted file mode 100644 index 6855570045..0000000000 Binary files a/document/public/imgs/gapierTool3.png and /dev/null differ diff --git a/document/public/imgs/gapierTool4.png b/document/public/imgs/gapierTool4.png deleted file mode 100644 index a6f00cfbec..0000000000 Binary files a/document/public/imgs/gapierTool4.png and /dev/null differ diff --git a/document/public/imgs/gapierTool5.png b/document/public/imgs/gapierTool5.png deleted file mode 100644 index 635371b1ab..0000000000 Binary files a/document/public/imgs/gapierTool5.png and /dev/null differ diff --git a/document/public/imgs/gapierTool6.png b/document/public/imgs/gapierTool6.png deleted file mode 100644 index bcccfc3662..0000000000 Binary files a/document/public/imgs/gapierTool6.png and /dev/null differ diff --git a/document/public/imgs/gapierTool7.png b/document/public/imgs/gapierTool7.png deleted file mode 100644 index 7c37201862..0000000000 Binary files a/document/public/imgs/gapierTool7.png and /dev/null differ diff --git a/document/public/imgs/gapierTool8.png b/document/public/imgs/gapierTool8.png deleted file mode 100644 index c97f208c44..0000000000 Binary files a/document/public/imgs/gapierTool8.png and /dev/null differ diff --git a/document/public/imgs/gapierTool9.webp b/document/public/imgs/gapierTool9.webp deleted file mode 100644 index 87313c0ebf..0000000000 Binary files a/document/public/imgs/gapierTool9.webp and /dev/null differ diff --git a/document/public/imgs/gapierToolResult1.webp b/document/public/imgs/gapierToolResult1.webp deleted file mode 100644 index bee1c33dad..0000000000 Binary files a/document/public/imgs/gapierToolResult1.webp and /dev/null differ diff --git a/document/public/imgs/image-1.png b/document/public/imgs/image-1.png deleted file mode 100644 index 6a479fe2c5..0000000000 Binary files a/document/public/imgs/image-1.png and /dev/null differ diff --git a/document/public/imgs/image-2.png b/document/public/imgs/image-2.png deleted file mode 100644 index 4e8901e327..0000000000 Binary files a/document/public/imgs/image-2.png and /dev/null differ diff --git a/document/public/imgs/image.png b/document/public/imgs/image.png deleted file mode 100644 index f226c3830a..0000000000 Binary files a/document/public/imgs/image.png and /dev/null differ diff --git a/document/script/checkDocRefs.js b/document/script/checkDocRefs.js new file mode 100644 index 0000000000..76ce632705 --- /dev/null +++ b/document/script/checkDocRefs.js @@ -0,0 +1,311 @@ +/* + 校验 content/ 下所有 mdx/md 中图片与站内链接引用是否存在。 + 存在不可解析的引用时,进程退出码 1。 + + 参数: + 可选传入若干 mdx/md 文件路径(用于 lint-staged);不传则扫描全部 content/。 + + 支持的引用形式: + Markdown: + ![alt](url) + [text](url) + JSX/HTML 属性: + src|href|to = "url" | 'url' | {"url"} + + URL 解析规则: + /imgs/foo.png → public/imgs/foo.png + /any/asset.svg → public/any/asset.svg + /en/faq/app | /zh/faq/app → content/faq/app(.en.mdx | .mdx | /index.*) + /faq/app → content/faq/app(.mdx | ...) + ../foo/bar.png → 相对当前 mdx 解析为文件 + ../foo/bar.mdx → 相对当前 mdx 解析为路由 + ../foo/bar → 相对当前 mdx 解析为路由 + page#section / page?x=1 → 仅校验 page + + 跳过:http(s)://, mailto:, tel:, data:, ftp:, ws(s)://, # 纯锚点。 +*/ + +const fs = require('fs'); +const path = require('path'); + +const DOCUMENT_ROOT = path.resolve(__dirname, '..'); +const CONTENT_DIR = path.join(DOCUMENT_ROOT, 'content'); +const PUBLIC_DIR = path.join(DOCUMENT_ROOT, 'public'); + +const MDX_EXTS = ['.mdx', '.md']; +const FILE_LIKE_EXTS = new Set([ + '.png', '.jpg', '.jpeg', '.gif', '.webp', '.svg', '.ico', '.bmp', + '.pdf', '.zip', '.json', '.yaml', '.yml', '.txt' +]); + +function getAllMdxFiles(dir) { + const out = []; + (function walk(p) { + for (const entry of fs.readdirSync(p, { withFileTypes: true })) { + const full = path.join(p, entry.name); + if (entry.isDirectory()) walk(full); + else if (MDX_EXTS.includes(path.extname(entry.name).toLowerCase())) out.push(full); + } + })(dir); + return out; +} + +function fileExists(p) { + try { + return fs.statSync(p).isFile(); + } catch { + return false; + } +} + +function routeExists(basePath) { + const candidates = [ + basePath + '.mdx', + basePath + '.en.mdx', + basePath + '.md', + path.join(basePath, 'index.mdx'), + path.join(basePath, 'index.en.mdx'), + path.join(basePath, 'index.md') + ]; + return candidates.some(fileExists); +} + +function isExternal(url) { + return /^(https?:|mailto:|tel:|data:|ftp:|ws:|wss:)/i.test(url) || url.startsWith('#'); +} + +function stripFragment(url) { + return url.split('#')[0].split('?')[0]; +} + +function normalizeRoutePath(p) { + return p.replace(/\/+$/, '').replace(/\.(en\.)?(mdx|md)$/i, ''); +} + +function extractRefs(content) { + // 去除 ``` 代码块和 ` 行内代码,避免误报 + const stripped = content + .replace(/```[\s\S]*?```/g, '') + .replace(/`[^`\n]*`/g, ''); + + const refs = []; + const push = (url, type, index) => { + if (typeof url === 'string' && url.length > 0) refs.push({ url, type, index }); + }; + + const imgRe = /!\[[^\]]*\]\(\s*]+)>?(?:\s+"[^"]*")?\s*\)/g; + const linkRe = /(^|[^!])\[(?:[^\]]*?)\]\(\s*]+)>?(?:\s+"[^"]*")?\s*\)/g; + const attrRe = /\b(?:src|href|to)\s*=\s*(?:"([^"]+)"|'([^']+)'|\{\s*["']([^"']+)["']\s*\})/g; + + let m; + while ((m = imgRe.exec(stripped))) push(m[1], 'image', m.index); + while ((m = linkRe.exec(stripped))) push(m[2], 'link', m.index); + while ((m = attrRe.exec(stripped))) push(m[1] || m[2] || m[3], 'attr', m.index); + + return refs; +} + +function lineOf(content, index) { + return content.slice(0, index).split('\n').length; +} + +function isValidRef(url, mdxPath) { + if (isExternal(url)) return { ok: true }; + const target = stripFragment(url); + if (!target) return { ok: true }; + + // 绝对路径 + if (target.startsWith('/')) { + if (target.startsWith('/imgs/')) { + const p = path.join(PUBLIC_DIR, target); + return fileExists(p) ? { ok: true } : { ok: false, expected: p }; + } + const ext = path.extname(target).toLowerCase(); + if (ext && !MDX_EXTS.includes(ext)) { + const p = path.join(PUBLIC_DIR, target); + return fileExists(p) ? { ok: true } : { ok: false, expected: p }; + } + const langMatch = target.match(/^\/(en|zh)\/(.+)$/); + const subRaw = langMatch ? langMatch[2] : target.slice(1); + const sub = normalizeRoutePath(subRaw); + const base = path.join(CONTENT_DIR, sub); + return routeExists(base) + ? { ok: true } + : { ok: false, expected: `${base}(.mdx | .en.mdx | /index.mdx)` }; + } + // 相对路径 + const ext = path.extname(target).toLowerCase(); + if (ext && !MDX_EXTS.includes(ext)) { + const resolved = path.resolve(path.dirname(mdxPath), target); + if (FILE_LIKE_EXTS.has(ext)) { + return fileExists(resolved) ? { ok: true } : { ok: false, expected: resolved }; + } + return fileExists(resolved) ? { ok: true } : { ok: false, expected: resolved }; + } + const normalized = normalizeRoutePath(target); + const resolved = path.resolve(path.dirname(mdxPath), normalized); + return routeExists(resolved) + ? { ok: true } + : { ok: false, expected: `${resolved}(.mdx | .en.mdx | /index.mdx)` }; +} + +function isMetaFile(name) { + return /^meta(\.en)?\.json$/.test(name); +} + +function isIndexFile(name) { + return /^index(\.en)?\.mdx?$/i.test(name); +} + +function slugFromFile(name) { + return name.replace(/\.(en\.)?mdx?$/i, ''); +} + +function dirHasMeta(dir) { + return fileExists(path.join(dir, 'meta.json')) || fileExists(path.join(dir, 'meta.en.json')); +} + +// 收集 dir 下所有「应被父级 meta 引用」的 slug。 +// - 子目录若有自己的 meta,则父级只需引用目录名,不下钻 +// - 子目录若无 meta,则父级须以 `subdir/file` 形式列出每个文件 +function collectExpectedSlugs(dir, prefix = '') { + const out = new Set(); + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + if (entry.name.startsWith('.')) continue; + if (isMetaFile(entry.name)) continue; + + const full = path.join(dir, entry.name); + if (entry.isFile()) { + if (!/\.mdx?$/i.test(entry.name)) continue; + if (isIndexFile(entry.name)) continue; + const slug = slugFromFile(entry.name); + out.add(prefix ? `${prefix}/${slug}` : slug); + } else if (entry.isDirectory()) { + const childPrefix = prefix ? `${prefix}/${entry.name}` : entry.name; + if (dirHasMeta(full)) { + out.add(childPrefix); + } else { + for (const s of collectExpectedSlugs(full, childPrefix)) out.add(s); + } + } + } + return out; +} + +function checkMetaCoverage() { + const errors = []; + + (function walk(dir) { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + + for (const entry of entries) { + if (!entry.isFile() || !isMetaFile(entry.name)) continue; + const metaPath = path.join(dir, entry.name); + let meta; + try { + meta = JSON.parse(fs.readFileSync(metaPath, 'utf-8')); + } catch (e) { + errors.push({ file: metaPath, missing: [], parseError: e.message }); + continue; + } + const pages = Array.isArray(meta.pages) ? meta.pages : []; + + const declared = new Set(); + const wildcards = new Set(); + for (const p of pages) { + if (typeof p !== 'string') continue; + if (/^---.*---$/.test(p)) continue; + if (p.startsWith('...')) { + wildcards.add(p.slice(3)); + continue; + } + declared.add(p); + } + + const expected = collectExpectedSlugs(dir); + const missing = []; + for (const slug of expected) { + const topLevel = slug.split('/')[0]; + if (wildcards.has(topLevel)) continue; + if (declared.has(slug)) continue; + missing.push(slug); + } + if (missing.length > 0) errors.push({ file: metaPath, missing }); + } + + for (const entry of entries) { + if (entry.isDirectory() && !entry.name.startsWith('.')) { + walk(path.join(dir, entry.name)); + } + } + })(CONTENT_DIR); + + return errors; +} + +function main() { + const args = process.argv.slice(2).filter(Boolean); + const targetFiles = args.length + ? args + .map((p) => path.resolve(p)) + .filter((p) => MDX_EXTS.includes(path.extname(p).toLowerCase()) && fileExists(p)) + : getAllMdxFiles(CONTENT_DIR); + + const refErrors = []; + for (const mdx of targetFiles) { + const content = fs.readFileSync(mdx, 'utf-8'); + const refs = extractRefs(content); + for (const { url, type, index } of refs) { + const result = isValidRef(url, mdx); + if (!result.ok) { + refErrors.push({ + file: mdx, + line: lineOf(content, index), + url, + type, + expected: result.expected + }); + } + } + } + + // meta 覆盖校验始终全量执行(与 args 无关) + const metaErrors = checkMetaCoverage(); + + const total = refErrors.length + metaErrors.length; + if (total === 0) { + console.log(`✅ 已校验 ${targetFiles.length} 个 mdx 文件 + 全部 meta.json,未发现问题`); + process.exit(0); + } + + if (refErrors.length > 0) { + console.error(`❌ 发现 ${refErrors.length} 处无效引用:\n`); + for (const e of refErrors) { + const src = path.relative(DOCUMENT_ROOT, e.file); + console.error(` ${src}:${e.line}`); + console.error(` [${e.type}] ${e.url}`); + console.error(` ↳ 不存在: ${e.expected}`); + console.error(''); + } + } + + if (metaErrors.length > 0) { + console.error(`❌ 发现 ${metaErrors.length} 个 meta 文件存在问题:\n`); + for (const e of metaErrors) { + const src = path.relative(DOCUMENT_ROOT, e.file); + if (e.parseError) { + console.error(` ${src}`); + console.error(` ↳ JSON 解析失败: ${e.parseError}`); + } else { + console.error(` ${src}`); + console.error(` ↳ pages 中遗漏 ${e.missing.length} 项:`); + for (const m of e.missing) console.error(` - ${m}`); + } + console.error(''); + } + } + + process.exit(1); +} + +main(); diff --git a/document/lib/generateToc.js b/document/script/generateToc.js similarity index 76% rename from document/lib/generateToc.js rename to document/script/generateToc.js index 6fb85eea71..7e1b10ddec 100644 --- a/document/lib/generateToc.js +++ b/document/script/generateToc.js @@ -15,9 +15,9 @@ const blacklist = [ ]; function filePathToUrl(filePath, lang) { - const baseDir = path.join(__dirname, '../content/docs'); + const baseDir = path.join(__dirname, '../content'); let relativePath = filePath.replace(baseDir, ''); - const basePath = lang === 'zh-CN' ? '/docs' : '/en/docs'; + const basePath = lang === 'zh-CN' ? '' : '/en'; if (lang !== 'zh-CN' && relativePath.endsWith('.en.mdx')) { relativePath = relativePath.replace(/\.en\.mdx$/, ''); @@ -29,9 +29,7 @@ function filePathToUrl(filePath, lang) { } function isBlacklisted(url) { - return blacklist.some( - (item) => url.endsWith(`/docs/${item}`) || url.endsWith(`/en/docs/${item}`) - ); + return blacklist.some((item) => url.endsWith(`/${item}`)); } function isEnFile(file) { @@ -44,11 +42,18 @@ function isZhFile(file) { async function generateToc() { // 匹配所有 mdx 文件 - const allFiles = await fg(path.join(__dirname, '../content/docs/**/*.mdx')) + const baseDir = path.join(__dirname, '../content'); + const allFiles = await fg(path.join(baseDir, '**/*.mdx')); + + // 仅 latest:排除顶层版本快照目录(如 4.14、4.15 等以 \d+\.\d+ 开头的目录) + const latestFiles = allFiles.filter((file) => { + const top = path.relative(baseDir, file).split(path.sep)[0]; + return !/^\d+\.\d+/.test(top); + }); // 筛选中英文文件 - const zhFiles = allFiles.filter(isZhFile); - const enFiles = allFiles.filter(isEnFile); + const zhFiles = latestFiles.filter(isZhFile); + const enFiles = latestFiles.filter(isEnFile); // 生成中文 URL const zhUrls = zhFiles @@ -72,7 +77,6 @@ ${urls.map((url) => `- [${url}](${url})`).join('\n')} `; // 写文件路径 - const baseDir = path.join(__dirname, '../content/docs'); const zhOutputPath = path.join(baseDir, 'toc.mdx'); const enOutputPath = path.join(baseDir, 'toc.en.mdx'); diff --git a/document/script/initDocTime.js b/document/script/initDocTime.js index a7405a29f8..1449098fa7 100644 --- a/document/script/initDocTime.js +++ b/document/script/initDocTime.js @@ -2,6 +2,11 @@ const { execSync } = require('child_process'); const fs = require('fs'); const path = require('path'); +// 始终基于脚本位置定位 document 根目录,避免对 CWD 的依赖。 +const DOCUMENT_ROOT = path.resolve(__dirname, '..'); +const DEFAULT_CONTENT_DIR = path.join(DOCUMENT_ROOT, 'content'); +const DEFAULT_OUTPUT_PATH = path.join(DOCUMENT_ROOT, 'data', 'doc-last-modified.json'); + /** * 获取文件的 git 最后修改时间 * @param {string} filePath - 文件路径 @@ -14,7 +19,7 @@ function getFileLastModifiedTime(filePath) { const command = `git log -1 --format="%aI" -- "${filePath}"`; const result = execSync(command, { encoding: 'utf8', - cwd: process.cwd(), + cwd: DOCUMENT_ROOT, stdio: ['pipe', 'pipe', 'pipe'] }); @@ -64,14 +69,14 @@ function getAllDocFiles(dirPath, extensions = ['.md', '.mdx']) { * @param {string} contentDir - 文档内容目录 * @returns {Object} - 文件路径到修改时间的映射 */ -function getAllDocLastModifiedTimes(contentDir = './document/content/docs') { +function getAllDocLastModifiedTimes(contentDir = DEFAULT_CONTENT_DIR) { const docFiles = getAllDocFiles(contentDir); const result = {}; console.log(`正在处理 ${docFiles.length} 个文档文件...`); for (const filePath of docFiles) { - const relativePath = path.relative(process.cwd(), filePath); + const relativePath = path.relative(DOCUMENT_ROOT, filePath); const lastModified = getFileLastModifiedTime(relativePath); if (lastModified) { @@ -91,7 +96,7 @@ function getAllDocLastModifiedTimes(contentDir = './document/content/docs') { * @param {Object} data - 要保存的数据 * @param {string} outputPath - 输出文件路径 */ -function saveToJsonFile(data, outputPath = './document/data/doc-last-modified.json') { +function saveToJsonFile(data, outputPath = DEFAULT_OUTPUT_PATH) { try { // 确保目录存在 const dir = path.dirname(outputPath); @@ -112,7 +117,7 @@ function saveToJsonFile(data, outputPath = './document/data/doc-last-modified.js * @returns {Object} - 文件信息对象 */ function getFileInfo(filePath) { - const relativePath = path.relative(process.cwd(), filePath); + const relativePath = path.relative(DOCUMENT_ROOT, filePath); const lastModified = getFileLastModifiedTime(relativePath); const stat = fs.statSync(filePath); @@ -131,11 +136,12 @@ function getFileInfo(filePath) { function main() { console.log('开始获取文档的最新修改时间...'); - let contentDir = process.argv[2]; - - // 如果没有传参数,或者传入的是文件而非目录,就使用默认目录 - if (!contentDir || !fs.existsSync(contentDir) || !fs.statSync(contentDir).isDirectory()) { - contentDir = './document/content/docs'; + // lint-staged 会传入暂存的 mdx 文件列表(不是目录),这里统一忽略, + // 始终对 content/ 全量扫描以保证 doc-last-modified.json 的完整性。 + const argDir = process.argv[2]; + let contentDir = DEFAULT_CONTENT_DIR; + if (argDir && fs.existsSync(argDir) && fs.statSync(argDir).isDirectory()) { + contentDir = argDir; } if (!fs.existsSync(contentDir)) { @@ -146,7 +152,7 @@ function main() { const result = getAllDocLastModifiedTimes(contentDir); // 保存简单的文件路径到修改时间的映射 - saveToJsonFile(result, './document/data/doc-last-modified.json'); + saveToJsonFile(result, DEFAULT_OUTPUT_PATH); // 显示统计信息 console.log('\n统计信息:'); diff --git a/document/source.config.ts b/document/source.config.ts index 4e7a48565b..fb08282436 100644 --- a/document/source.config.ts +++ b/document/source.config.ts @@ -4,6 +4,7 @@ import { z } from 'zod'; // You can customise Zod schemas for frontmatter and `meta.json` here // see https://fumadocs.vercel.app/docs/mdx/collections#define-docs export const docs = defineDocs({ + dir: 'content', docs: { schema: frontmatterSchema.extend({ title: z.string().optional().default('Untitled') diff --git a/package.json b/package.json index 8e38063c81..254de2029b 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,6 @@ "private": true, "scripts": { "prepare": "husky install", - "format-code": "prettier --config \"./.prettierrc.js\" --write \"./**/src/**/*.{ts,tsx,scss}\"", - "format-doc": "zhlint --dir ./document/ *.mdx --fix", - "initDocTime": "node ./document/script/initDocTime.js", - "initDocToc": "node ./document/lib/generateToc.js", "gen:theme-typings": "chakra-cli tokens packages/web/styles/theme.ts --out node_modules/.pnpm/node_modules/@chakra-ui/styled-system/dist/theming.types.d.ts", "gen:deploy": "node deploy/init.mjs", "postinstall": "pnpm gen:theme-typings", @@ -39,15 +35,17 @@ }, "lint-staged": { "./**/**/*.{ts,tsx,scss}": [ - "pnpm format-code" + "prettier --config ./.prettierrc.js --write --ignore-unknown" ], "./**/**/*.{ts,tsx}": [ - "pnpm lint" + "eslint --fix --ignore-path .eslintignore" ], "./document/**/**/*.mdx": [ - "pnpm format-doc", - "pnpm initDocTime", - "pnpm initDocToc", + "pnpm -C ./document run format-doc", + "pnpm -C ./document run initDocTime", + "pnpm -C ./document run initDocToc", + "pnpm -C ./document run checkDocRefs", + "pnpm -C ./document run removeInvalidImg", "git add ." ] }, @@ -55,4 +53,4 @@ "node": ">=20", "pnpm": "9.x" } -} \ No newline at end of file +} diff --git a/packages/global/core/dataset/constants.ts b/packages/global/core/dataset/constants.ts index 75d36e896b..16abb2e9d6 100644 --- a/packages/global/core/dataset/constants.ts +++ b/packages/global/core/dataset/constants.ts @@ -28,21 +28,21 @@ export const ApiDatasetTypeMap: Record< avatar: 'core/dataset/externalDatasetColor', label: i18nT('dataset:api_file'), collectionLabel: i18nT('common:File'), - courseUrl: '/docs/introduction/guide/knowledge_base/api_dataset/' + courseUrl: '/introduction/guide/knowledge_base/api_dataset/' }, [DatasetTypeEnum.feishu]: { icon: 'core/dataset/feishuDatasetOutline', avatar: 'core/dataset/feishuDatasetColor', label: i18nT('dataset:feishu_dataset'), collectionLabel: i18nT('common:File'), - courseUrl: '/docs/introduction/guide/knowledge_base/lark_dataset/' + courseUrl: '/introduction/guide/knowledge_base/lark_dataset/' }, [DatasetTypeEnum.yuque]: { icon: 'core/dataset/yuqueDatasetOutline', avatar: 'core/dataset/yuqueDatasetColor', label: i18nT('dataset:yuque_dataset'), collectionLabel: i18nT('common:File'), - courseUrl: '/docs/introduction/guide/knowledge_base/yuque_dataset/' + courseUrl: '/introduction/guide/knowledge_base/yuque_dataset/' } }; export const DatasetTypeMap: Record< @@ -73,7 +73,7 @@ export const DatasetTypeMap: Record< avatar: 'core/dataset/websiteDatasetColor', label: i18nT('dataset:website_dataset'), collectionLabel: i18nT('common:Website'), - courseUrl: '/docs/introduction/guide/knowledge_base/websync/' + courseUrl: '/introduction/guide/knowledge_base/websync/' }, [DatasetTypeEnum.externalFile]: { icon: 'core/dataset/externalDatasetOutline', diff --git a/packages/global/core/workflow/template/system/abandoned/loop/index.ts b/packages/global/core/workflow/template/system/abandoned/loop/index.ts index 76ca7fadbf..51b5a01c6d 100644 --- a/packages/global/core/workflow/template/system/abandoned/loop/index.ts +++ b/packages/global/core/workflow/template/system/abandoned/loop/index.ts @@ -32,7 +32,7 @@ export const LoopNode: FlowNodeTemplateType = { name: i18nT('workflow:loop'), intro: i18nT('workflow:intro_loop'), showStatus: true, - courseUrl: '/docs/introduction/guide/dashboard/workflow/loop/', + courseUrl: '/introduction/guide/dashboard/workflow/loop/', inputs: [ { key: NodeInputKeyEnum.nestedInputArray, diff --git a/packages/global/core/workflow/template/system/aiChat/index.ts b/packages/global/core/workflow/template/system/aiChat/index.ts index 8b24d75560..54086308d6 100644 --- a/packages/global/core/workflow/template/system/aiChat/index.ts +++ b/packages/global/core/workflow/template/system/aiChat/index.ts @@ -55,7 +55,7 @@ export const AiChatModule: FlowNodeTemplateType = { intro: i18nT('workflow:template.ai_chat_intro'), showStatus: true, isTool: true, - courseUrl: '/docs/introduction/guide/dashboard/workflow/ai_chat/', + courseUrl: '/introduction/guide/dashboard/workflow/ai_chat/', version: '4.9.7', catchError: false, inputs: [ diff --git a/packages/global/core/workflow/template/system/assignedAnswer.ts b/packages/global/core/workflow/template/system/assignedAnswer.ts index 14eb6683d6..60f37ea534 100644 --- a/packages/global/core/workflow/template/system/assignedAnswer.ts +++ b/packages/global/core/workflow/template/system/assignedAnswer.ts @@ -18,7 +18,7 @@ export const AssignedAnswerModule: FlowNodeTemplateType = { colorSchema: 'blue', name: i18nT('workflow:assigned_reply'), intro: i18nT('workflow:intro_assigned_reply'), - courseUrl: '/docs/introduction/guide/dashboard/workflow/reply/', + courseUrl: '/introduction/guide/dashboard/workflow/reply/', isTool: true, inputs: [ { diff --git a/packages/global/core/workflow/template/system/classifyQuestion/index.ts b/packages/global/core/workflow/template/system/classifyQuestion/index.ts index 98d92cf5c6..c240503e12 100644 --- a/packages/global/core/workflow/template/system/classifyQuestion/index.ts +++ b/packages/global/core/workflow/template/system/classifyQuestion/index.ts @@ -31,7 +31,7 @@ export const ClassifyQuestionModule: FlowNodeTemplateType = { intro: i18nT('workflow:intro_question_classification'), showStatus: true, version: '4.9.2', - courseUrl: '/docs/introduction/guide/dashboard/workflow/question_classify/', + courseUrl: '/introduction/guide/dashboard/workflow/question_classify/', inputs: [ Input_Template_SelectAIModel, { diff --git a/packages/global/core/workflow/template/system/contextExtract/index.ts b/packages/global/core/workflow/template/system/contextExtract/index.ts index e1bcc864fb..76ed0017d0 100644 --- a/packages/global/core/workflow/template/system/contextExtract/index.ts +++ b/packages/global/core/workflow/template/system/contextExtract/index.ts @@ -28,7 +28,7 @@ export const ContextExtractModule: FlowNodeTemplateType = { showStatus: true, isTool: true, catchError: false, - courseUrl: '/docs/introduction/guide/dashboard/workflow/content_extract/', + courseUrl: '/introduction/guide/dashboard/workflow/content_extract/', version: '4.9.2', inputs: [ Input_Template_SelectAIModel, diff --git a/packages/global/core/workflow/template/system/customFeedback.ts b/packages/global/core/workflow/template/system/customFeedback.ts index b4ade064aa..08b41e6cec 100644 --- a/packages/global/core/workflow/template/system/customFeedback.ts +++ b/packages/global/core/workflow/template/system/customFeedback.ts @@ -18,7 +18,7 @@ export const CustomFeedbackNode: FlowNodeTemplateType = { colorSchema: 'yellowGreen', name: i18nT('workflow:custom_feedback'), intro: i18nT('workflow:intro_custom_feedback'), - courseUrl: '/docs/introduction/guide/dashboard/workflow/custom_feedback/', + courseUrl: '/introduction/guide/dashboard/workflow/custom_feedback/', inputs: [ { key: NodeInputKeyEnum.textareaInput, diff --git a/packages/global/core/workflow/template/system/datasetConcat.ts b/packages/global/core/workflow/template/system/datasetConcat.ts index 621e9fa949..8ca4e6f8bb 100644 --- a/packages/global/core/workflow/template/system/datasetConcat.ts +++ b/packages/global/core/workflow/template/system/datasetConcat.ts @@ -43,7 +43,7 @@ export const DatasetConcatModule: FlowNodeTemplateType = { intro: i18nT('workflow:intro_knowledge_base_search_merge'), showStatus: false, - courseUrl: '/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge/', + courseUrl: '/introduction/guide/dashboard/workflow/knowledge_base_search_merge/', inputs: [ { key: NodeInputKeyEnum.datasetMaxTokens, diff --git a/packages/global/core/workflow/template/system/datasetSearch.ts b/packages/global/core/workflow/template/system/datasetSearch.ts index 745f3958ae..c2e3a6d840 100644 --- a/packages/global/core/workflow/template/system/datasetSearch.ts +++ b/packages/global/core/workflow/template/system/datasetSearch.ts @@ -33,7 +33,7 @@ export const DatasetSearchModule: FlowNodeTemplateType = { showStatus: true, isTool: true, catchError: false, - courseUrl: '/docs/introduction/guide/dashboard/workflow/dataset_search/', + courseUrl: '/introduction/guide/dashboard/workflow/dataset_search/', version: '4.9.2', inputs: [ { diff --git a/packages/global/core/workflow/template/system/http468.ts b/packages/global/core/workflow/template/system/http468.ts index af8a7beb38..ca9c495042 100644 --- a/packages/global/core/workflow/template/system/http468.ts +++ b/packages/global/core/workflow/template/system/http468.ts @@ -29,7 +29,7 @@ export const HttpNode468: FlowNodeTemplateType = { showStatus: true, isTool: true, catchError: false, - courseUrl: '/docs/introduction/guide/dashboard/workflow/http/', + courseUrl: '/introduction/guide/dashboard/workflow/http/', inputs: [ { ...Input_Template_DynamicInput, diff --git a/packages/global/core/workflow/template/system/ifElse/index.ts b/packages/global/core/workflow/template/system/ifElse/index.ts index 6c055ed76f..688ab21d6e 100644 --- a/packages/global/core/workflow/template/system/ifElse/index.ts +++ b/packages/global/core/workflow/template/system/ifElse/index.ts @@ -24,7 +24,7 @@ export const IfElseNode: FlowNodeTemplateType = { name: i18nT('workflow:condition_checker'), intro: i18nT('workflow:execute_different_branches_based_on_conditions'), showStatus: true, - courseUrl: '/docs/introduction/guide/dashboard/workflow/tfswitch/', + courseUrl: '/introduction/guide/dashboard/workflow/tfswitch/', inputs: [ { key: NodeInputKeyEnum.ifElseList, diff --git a/packages/global/core/workflow/template/system/interactive/userSelect.ts b/packages/global/core/workflow/template/system/interactive/userSelect.ts index ab7efeeb84..379e1f97b8 100644 --- a/packages/global/core/workflow/template/system/interactive/userSelect.ts +++ b/packages/global/core/workflow/template/system/interactive/userSelect.ts @@ -25,7 +25,7 @@ export const UserSelectNode: FlowNodeTemplateType = { name: i18nT('app:workflow.user_select'), intro: i18nT(`app:workflow.user_select_tip`), isTool: true, - courseUrl: '/docs/introduction/guide/dashboard/workflow/user-selection/', + courseUrl: '/introduction/guide/dashboard/workflow/user-selection/', inputs: [ { key: NodeInputKeyEnum.description, diff --git a/packages/global/core/workflow/template/system/laf.ts b/packages/global/core/workflow/template/system/laf.ts index 4cd3a577d4..a0801be41e 100644 --- a/packages/global/core/workflow/template/system/laf.ts +++ b/packages/global/core/workflow/template/system/laf.ts @@ -33,7 +33,7 @@ export const LafModule: FlowNodeTemplateType = { showStatus: true, isTool: true, catchError: false, - courseUrl: '/docs/introduction/guide/dashboard/workflow/laf/', + courseUrl: '/introduction/guide/dashboard/workflow/laf/', inputs: [ { ...Input_Template_DynamicInput, diff --git a/packages/global/core/workflow/template/system/parallelRun/parallelRun.ts b/packages/global/core/workflow/template/system/parallelRun/parallelRun.ts index 1bce33d89e..f6c0d7221d 100644 --- a/packages/global/core/workflow/template/system/parallelRun/parallelRun.ts +++ b/packages/global/core/workflow/template/system/parallelRun/parallelRun.ts @@ -30,7 +30,7 @@ export const ParallelRunNode: FlowNodeTemplateType = { name: i18nT('workflow:parallel_run'), intro: i18nT('workflow:intro_parallel_run'), showStatus: true, - courseUrl: '/docs/introduction/guide/dashboard/workflow/parallel_run/', + courseUrl: '/introduction/guide/dashboard/workflow/parallel_run/', inputs: [ { key: NodeInputKeyEnum.nestedInputArray, diff --git a/packages/global/core/workflow/template/system/readFiles/index.tsx b/packages/global/core/workflow/template/system/readFiles/index.tsx index c7f22be8cd..52d7db2562 100644 --- a/packages/global/core/workflow/template/system/readFiles/index.tsx +++ b/packages/global/core/workflow/template/system/readFiles/index.tsx @@ -27,7 +27,7 @@ export const ReadFilesNode: FlowNodeTemplateType = { showStatus: true, version: '4.9.2', isTool: false, - courseUrl: '/docs/introduction/guide/course/fileinput/', + courseUrl: '/introduction/guide/course/fileinput/', inputs: [ { key: NodeInputKeyEnum.fileUrlList, diff --git a/packages/global/core/workflow/template/system/sandbox/index.ts b/packages/global/core/workflow/template/system/sandbox/index.ts index 424c5f9864..287a4f8c9a 100644 --- a/packages/global/core/workflow/template/system/sandbox/index.ts +++ b/packages/global/core/workflow/template/system/sandbox/index.ts @@ -28,7 +28,7 @@ export const CodeNode: FlowNodeTemplateType = { intro: i18nT('workflow:code_sandbox_intro'), showStatus: true, catchError: false, - courseUrl: '/docs/introduction/guide/dashboard/workflow/sandbox-v2', + courseUrl: '/introduction/guide/dashboard/workflow/sandbox-v2', inputs: [ { ...Input_Template_DynamicInput, diff --git a/packages/global/core/workflow/template/system/textEditor.ts b/packages/global/core/workflow/template/system/textEditor.ts index 8c9a95a73c..45dc7336f1 100644 --- a/packages/global/core/workflow/template/system/textEditor.ts +++ b/packages/global/core/workflow/template/system/textEditor.ts @@ -23,7 +23,7 @@ export const TextEditorNode: FlowNodeTemplateType = { colorSchema: 'orange', name: i18nT('workflow:text_concatenation'), intro: i18nT('workflow:intro_text_concatenation'), - courseUrl: '/docs/introduction/guide/dashboard/workflow/text_editor/', + courseUrl: '/introduction/guide/dashboard/workflow/text_editor/', inputs: [ { key: NodeInputKeyEnum.textareaInput, diff --git a/packages/global/core/workflow/template/system/toolCall.ts b/packages/global/core/workflow/template/system/toolCall.ts index 5729d033fc..478f9b78ad 100644 --- a/packages/global/core/workflow/template/system/toolCall.ts +++ b/packages/global/core/workflow/template/system/toolCall.ts @@ -34,7 +34,7 @@ export const ToolCallNode: FlowNodeTemplateType = { intro: i18nT('workflow:template.agent_intro'), showStatus: true, catchError: false, - courseUrl: '/docs/introduction/guide/dashboard/workflow/tool/', + courseUrl: '/introduction/guide/dashboard/workflow/tool/', version: '4.9.2', inputs: [ Input_Template_SettingAiModel, diff --git a/packages/global/core/workflow/template/system/variableUpdate/index.tsx b/packages/global/core/workflow/template/system/variableUpdate/index.tsx index 161bfa40b8..5faffd09c4 100644 --- a/packages/global/core/workflow/template/system/variableUpdate/index.tsx +++ b/packages/global/core/workflow/template/system/variableUpdate/index.tsx @@ -20,7 +20,7 @@ export const VariableUpdateNode: FlowNodeTemplateType = { intro: i18nT('workflow:update_specified_node_output_or_global_variable'), showStatus: false, isTool: true, - courseUrl: '/docs/introduction/guide/dashboard/workflow/variable_update/', + courseUrl: '/introduction/guide/dashboard/workflow/variable_update/', inputs: [ { key: NodeInputKeyEnum.updateList, diff --git a/packages/web/i18n/en/common.json b/packages/web/i18n/en/common.json index fe9bcd6951..9c82653f76 100644 --- a/packages/web/i18n/en/common.json +++ b/packages/web/i18n/en/common.json @@ -219,7 +219,7 @@ "comfirm_import": "Confirm import", "comfirm_leave_page": "Confirm to Leave This Page?", "comfirn_create": "Confirm Creation", - "commercial_function_tip": "Please Upgrade to the Commercial Version to Use This Feature: https://doc.fastgpt.cn/docs/introduction/commercial/", + "commercial_function_tip": "Please Upgrade to the Commercial Version to Use This Feature: https://doc.fastgpt.cn/introduction/commercial/", "community_support": "community support", "compliance.chat": "The content is generated by third-party AI and cannot be guaranteed to be true and accurate. It is for reference only.", "compliance.dataset": "Please ensure that your content strictly complies with relevant laws and regulations and avoid containing any illegal or infringing content. \nPlease be careful when uploading materials that may contain sensitive information.", diff --git a/packages/web/i18n/zh-CN/common.json b/packages/web/i18n/zh-CN/common.json index fd49273b80..cc628a40e3 100644 --- a/packages/web/i18n/zh-CN/common.json +++ b/packages/web/i18n/zh-CN/common.json @@ -219,7 +219,7 @@ "comfirm_import": "确认导入", "comfirm_leave_page": "确认离开该页面?", "comfirn_create": "确认创建", - "commercial_function_tip": "请升级商业版后使用该功能:https://doc.fastgpt.cn/docs/introduction/commercial/", + "commercial_function_tip": "请升级商业版后使用该功能:https://doc.fastgpt.cn/introduction/commercial/", "community_support": "社区支持", "compliance.chat": "内容由第三方 AI 生成,无法确保真实准确,仅供参考", "compliance.dataset": "请确保您的内容严格遵守相关法律法规,避免包含任何违法或侵权的内容。请谨慎上传可能涉及敏感信息的资料。", diff --git a/packages/web/i18n/zh-Hant/common.json b/packages/web/i18n/zh-Hant/common.json index 0dcf6f6a91..07509de572 100644 --- a/packages/web/i18n/zh-Hant/common.json +++ b/packages/web/i18n/zh-Hant/common.json @@ -217,7 +217,7 @@ "comfirm_import": "確認匯入", "comfirm_leave_page": "確認離開此頁面?", "comfirn_create": "確認建立", - "commercial_function_tip": "請升級為商業版後使用此功能:https://doc.fastgpt.cn/docs/introduction/commercial/", + "commercial_function_tip": "請升級為商業版後使用此功能:https://doc.fastgpt.cn/introduction/commercial/", "community_support": "社區支持", "compliance.chat": "內容由第三方 AI 產生,無法保證其真實性與準確性,僅供參考。", "compliance.dataset": "請確保您的內容嚴格遵守相關法律法規,避免包含任何違法或侵權的內容。\n在上傳可能涉及敏感資訊的資料時請務必謹慎。", diff --git a/projects/app/src/components/ProTip/ProModal.tsx b/projects/app/src/components/ProTip/ProModal.tsx index 6ef7c07259..bc56b3a4f8 100644 --- a/projects/app/src/components/ProTip/ProModal.tsx +++ b/projects/app/src/components/ProTip/ProModal.tsx @@ -81,7 +81,7 @@ const ProModal = (props: { isOpen?: boolean; onClose?: () => void }) => {