From 517b0af0226b527a4ad85b1e745c111d7d54ba10 Mon Sep 17 00:00:00 2001
From: dreamer6680 <1468683855@qq.com>
Date: Mon, 4 Aug 2025 13:42:36 +0800
Subject: [PATCH] feat: move robots.txt to toc.mdx (#5372)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* feat: move robots.txt to toc.mdx
* fix: add en toc
---
document/app/[lang]/robots.txt/route.ts | 85 ------
document/app/api/robots/route.ts | 24 --
document/content/docs/toc.en.mdx | 9 +
document/content/docs/toc.mdx | 178 ++++++++++++
document/data/doc-last-modified.json | 364 ++++++++++++------------
document/lib/generateToc.js | 88 ++++++
package.json | 2 +
7 files changed, 459 insertions(+), 291 deletions(-)
delete mode 100644 document/app/[lang]/robots.txt/route.ts
delete mode 100644 document/app/api/robots/route.ts
create mode 100644 document/content/docs/toc.en.mdx
create mode 100644 document/content/docs/toc.mdx
create mode 100644 document/lib/generateToc.js
diff --git a/document/app/[lang]/robots.txt/route.ts b/document/app/[lang]/robots.txt/route.ts
deleted file mode 100644
index ee05b476a..000000000
--- a/document/app/[lang]/robots.txt/route.ts
+++ /dev/null
@@ -1,85 +0,0 @@
-import * as fs from 'node:fs/promises';
-import * as path from 'node:path';
-import fg from 'fast-glob';
-import matter from 'gray-matter';
-import { i18n } from '@/lib/i18n';
-
-export const revalidate = false;
-
-// 黑名单路径(不带语言前缀)
-const blacklist = ['use-cases/index', 'protocol/index', 'api/index'];
-
-// 将文件路径转换为 URL 路径(包括文件名)
-function filePathToUrl(filePath: string, defaultLanguage: string): string {
- let relativePath = filePath.replace('./content/docs/', '');
-
- const basePath = defaultLanguage === 'zh-CN' ? '/docs' : '/en/docs';
-
- if (defaultLanguage !== 'zh-CN' && relativePath.endsWith('.en.mdx')) {
- relativePath = relativePath.replace(/\.en\.mdx$/, '');
- } else if (relativePath.endsWith('.mdx')) {
- relativePath = relativePath.replace(/\.mdx$/, '');
- }
-
- return `${basePath}/${relativePath}`.replace(/\/\/+/g, '/');
-}
-
-// 判断是否为黑名单路径
-function isBlacklisted(url: string): boolean {
- return blacklist.some(
- (item) => url.endsWith(`/docs/${item}`) || url.endsWith(`/en/docs/${item}`)
- );
-}
-
-export async function GET(request: Request) {
- const defaultLanguage = i18n.defaultLanguage;
-
- const requestUrl = new URL(request.url);
- const isEnRobotsRoute = requestUrl.pathname === '/en/robots';
-
- let globPattern;
- if (isEnRobotsRoute) {
- globPattern = ['./content/docs/**/*.en.mdx'];
- } else if (defaultLanguage === 'zh-CN') {
- globPattern = ['./content/docs/**/*.mdx'];
- } else {
- globPattern = ['./content/docs/**/*.en.mdx'];
- }
-
- const files = await fg(globPattern, { caseSensitiveMatch: true });
-
- // 转换文件路径为 URL,并过滤黑名单
- const urls = files
- .map((file) => filePathToUrl(file, defaultLanguage))
- .filter((url) => !isBlacklisted(url));
-
- urls.sort((a, b) => a.localeCompare(b));
-
- const html = `
-
-
- FastGPT 文档目录
-
-
-
- Documentation Links
-
- ${urls.map((url) => `- ${url}
`).join('')}
-
-
-
- `;
-
- return new Response(html, {
- headers: {
- 'Content-Type': 'text/html'
- }
- });
-}
diff --git a/document/app/api/robots/route.ts b/document/app/api/robots/route.ts
deleted file mode 100644
index 810971b4e..000000000
--- a/document/app/api/robots/route.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// app/api/robots/route.ts
-import { i18n } from '@/lib/i18n';
-import { NextResponse } from 'next/server';
-
-export async function GET() {
- const host =
- i18n.defaultLanguage === 'zh-cn' ? 'https://localhost:3000' : 'https://localhost:3000/en';
-
- const robotsTxt = `User-agent: *
-Allow: /
-Allow: /en/
-Disallow: /zh-cn/
-
-
-Host: ${host}
-
-Sitemap: ${host}/sitemap.xml`;
-
- return new NextResponse(robotsTxt, {
- headers: {
- 'Content-Type': 'text/plain'
- }
- });
-}
diff --git a/document/content/docs/toc.en.mdx b/document/content/docs/toc.en.mdx
new file mode 100644
index 000000000..dcfa960db
--- /dev/null
+++ b/document/content/docs/toc.en.mdx
@@ -0,0 +1,9 @@
+---
+title: FastGPT Toc
+description: FastGPT Toc
+---
+
+- [/en/docs/introduction/index](/en/docs/introduction/index)
+- [/en/docs/protocol/open-source](/en/docs/protocol/open-source)
+- [/en/docs/protocol/privacy](/en/docs/protocol/privacy)
+- [/en/docs/protocol/terms](/en/docs/protocol/terms)
diff --git a/document/content/docs/toc.mdx b/document/content/docs/toc.mdx
new file mode 100644
index 000000000..1bb8187c6
--- /dev/null
+++ b/document/content/docs/toc.mdx
@@ -0,0 +1,178 @@
+---
+title: FastGPT 文档目录
+description: FastGPT 文档目录
+---
+
+- [/docs/faq/app](/docs/faq/app)
+- [/docs/faq/chat](/docs/faq/chat)
+- [/docs/faq/dataset](/docs/faq/dataset)
+- [/docs/faq/error](/docs/faq/error)
+- [/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](/docs/introduction/cloud)
+- [/docs/introduction/commercial](/docs/introduction/commercial)
+- [/docs/introduction/development/community](/docs/introduction/development/community)
+- [/docs/introduction/development/configuration](/docs/introduction/development/configuration)
+- [/docs/introduction/development/custom-models/bge-rerank](/docs/introduction/development/custom-models/bge-rerank)
+- [/docs/introduction/development/custom-models/chatglm2](/docs/introduction/development/custom-models/chatglm2)
+- [/docs/introduction/development/custom-models/chatglm2-m3e](/docs/introduction/development/custom-models/chatglm2-m3e)
+- [/docs/introduction/development/custom-models/m3e](/docs/introduction/development/custom-models/m3e)
+- [/docs/introduction/development/custom-models/marker](/docs/introduction/development/custom-models/marker)
+- [/docs/introduction/development/custom-models/ollama](/docs/introduction/development/custom-models/ollama)
+- [/docs/introduction/development/custom-models/xinference](/docs/introduction/development/custom-models/xinference)
+- [/docs/introduction/development/design/dataset](/docs/introduction/development/design/dataset)
+- [/docs/introduction/development/design/design_plugin](/docs/introduction/development/design/design_plugin)
+- [/docs/introduction/development/docker](/docs/introduction/development/docker)
+- [/docs/introduction/development/faq](/docs/introduction/development/faq)
+- [/docs/introduction/development/intro](/docs/introduction/development/intro)
+- [/docs/introduction/development/migration/docker_db](/docs/introduction/development/migration/docker_db)
+- [/docs/introduction/development/migration/docker_mongo](/docs/introduction/development/migration/docker_mongo)
+- [/docs/introduction/development/modelConfig/ai-proxy](/docs/introduction/development/modelConfig/ai-proxy)
+- [/docs/introduction/development/modelConfig/intro](/docs/introduction/development/modelConfig/intro)
+- [/docs/introduction/development/modelConfig/one-api](/docs/introduction/development/modelConfig/one-api)
+- [/docs/introduction/development/modelConfig/ppio](/docs/introduction/development/modelConfig/ppio)
+- [/docs/introduction/development/modelConfig/siliconCloud](/docs/introduction/development/modelConfig/siliconCloud)
+- [/docs/introduction/development/openapi/chat](/docs/introduction/development/openapi/chat)
+- [/docs/introduction/development/openapi/dataset](/docs/introduction/development/openapi/dataset)
+- [/docs/introduction/development/openapi/intro](/docs/introduction/development/openapi/intro)
+- [/docs/introduction/development/openapi/share](/docs/introduction/development/openapi/share)
+- [/docs/introduction/development/proxy/cloudflare](/docs/introduction/development/proxy/cloudflare)
+- [/docs/introduction/development/proxy/http_proxy](/docs/introduction/development/proxy/http_proxy)
+- [/docs/introduction/development/proxy/nginx](/docs/introduction/development/proxy/nginx)
+- [/docs/introduction/development/sealos](/docs/introduction/development/sealos)
+- [/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/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/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/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/protocol/open-source](/docs/protocol/open-source)
+- [/docs/protocol/privacy](/docs/protocol/privacy)
+- [/docs/protocol/terms](/docs/protocol/terms)
+- [/docs/upgrading/4-10/4100](/docs/upgrading/4-10/4100)
+- [/docs/upgrading/4-10/4101](/docs/upgrading/4-10/4101)
+- [/docs/upgrading/4-11/4110](/docs/upgrading/4-11/4110)
+- [/docs/upgrading/4-11/4111](/docs/upgrading/4-11/4111)
+- [/docs/upgrading/4-8/40](/docs/upgrading/4-8/40)
+- [/docs/upgrading/4-8/41](/docs/upgrading/4-8/41)
+- [/docs/upgrading/4-8/42](/docs/upgrading/4-8/42)
+- [/docs/upgrading/4-8/421](/docs/upgrading/4-8/421)
+- [/docs/upgrading/4-8/43](/docs/upgrading/4-8/43)
+- [/docs/upgrading/4-8/44](/docs/upgrading/4-8/44)
+- [/docs/upgrading/4-8/441](/docs/upgrading/4-8/441)
+- [/docs/upgrading/4-8/442](/docs/upgrading/4-8/442)
+- [/docs/upgrading/4-8/445](/docs/upgrading/4-8/445)
+- [/docs/upgrading/4-8/446](/docs/upgrading/4-8/446)
+- [/docs/upgrading/4-8/447](/docs/upgrading/4-8/447)
+- [/docs/upgrading/4-8/45](/docs/upgrading/4-8/45)
+- [/docs/upgrading/4-8/451](/docs/upgrading/4-8/451)
+- [/docs/upgrading/4-8/452](/docs/upgrading/4-8/452)
+- [/docs/upgrading/4-8/46](/docs/upgrading/4-8/46)
+- [/docs/upgrading/4-8/461](/docs/upgrading/4-8/461)
+- [/docs/upgrading/4-8/462](/docs/upgrading/4-8/462)
+- [/docs/upgrading/4-8/463](/docs/upgrading/4-8/463)
+- [/docs/upgrading/4-8/464](/docs/upgrading/4-8/464)
+- [/docs/upgrading/4-8/465](/docs/upgrading/4-8/465)
+- [/docs/upgrading/4-8/466](/docs/upgrading/4-8/466)
+- [/docs/upgrading/4-8/467](/docs/upgrading/4-8/467)
+- [/docs/upgrading/4-8/468](/docs/upgrading/4-8/468)
+- [/docs/upgrading/4-8/469](/docs/upgrading/4-8/469)
+- [/docs/upgrading/4-8/47](/docs/upgrading/4-8/47)
+- [/docs/upgrading/4-8/471](/docs/upgrading/4-8/471)
+- [/docs/upgrading/4-8/48](/docs/upgrading/4-8/48)
+- [/docs/upgrading/4-8/481](/docs/upgrading/4-8/481)
+- [/docs/upgrading/4-8/4810](/docs/upgrading/4-8/4810)
+- [/docs/upgrading/4-8/4811](/docs/upgrading/4-8/4811)
+- [/docs/upgrading/4-8/4812](/docs/upgrading/4-8/4812)
+- [/docs/upgrading/4-8/4813](/docs/upgrading/4-8/4813)
+- [/docs/upgrading/4-8/4814](/docs/upgrading/4-8/4814)
+- [/docs/upgrading/4-8/4815](/docs/upgrading/4-8/4815)
+- [/docs/upgrading/4-8/4816](/docs/upgrading/4-8/4816)
+- [/docs/upgrading/4-8/4817](/docs/upgrading/4-8/4817)
+- [/docs/upgrading/4-8/4818](/docs/upgrading/4-8/4818)
+- [/docs/upgrading/4-8/4819](/docs/upgrading/4-8/4819)
+- [/docs/upgrading/4-8/482](/docs/upgrading/4-8/482)
+- [/docs/upgrading/4-8/4820](/docs/upgrading/4-8/4820)
+- [/docs/upgrading/4-8/4821](/docs/upgrading/4-8/4821)
+- [/docs/upgrading/4-8/4822](/docs/upgrading/4-8/4822)
+- [/docs/upgrading/4-8/4823](/docs/upgrading/4-8/4823)
+- [/docs/upgrading/4-8/483](/docs/upgrading/4-8/483)
+- [/docs/upgrading/4-8/484](/docs/upgrading/4-8/484)
+- [/docs/upgrading/4-8/485](/docs/upgrading/4-8/485)
+- [/docs/upgrading/4-8/486](/docs/upgrading/4-8/486)
+- [/docs/upgrading/4-8/487](/docs/upgrading/4-8/487)
+- [/docs/upgrading/4-8/488](/docs/upgrading/4-8/488)
+- [/docs/upgrading/4-8/489](/docs/upgrading/4-8/489)
+- [/docs/upgrading/4-9/490](/docs/upgrading/4-9/490)
+- [/docs/upgrading/4-9/491](/docs/upgrading/4-9/491)
+- [/docs/upgrading/4-9/4910](/docs/upgrading/4-9/4910)
+- [/docs/upgrading/4-9/4911](/docs/upgrading/4-9/4911)
+- [/docs/upgrading/4-9/4912](/docs/upgrading/4-9/4912)
+- [/docs/upgrading/4-9/4913](/docs/upgrading/4-9/4913)
+- [/docs/upgrading/4-9/4914](/docs/upgrading/4-9/4914)
+- [/docs/upgrading/4-9/492](/docs/upgrading/4-9/492)
+- [/docs/upgrading/4-9/493](/docs/upgrading/4-9/493)
+- [/docs/upgrading/4-9/494](/docs/upgrading/4-9/494)
+- [/docs/upgrading/4-9/495](/docs/upgrading/4-9/495)
+- [/docs/upgrading/4-9/496](/docs/upgrading/4-9/496)
+- [/docs/upgrading/4-9/497](/docs/upgrading/4-9/497)
+- [/docs/upgrading/4-9/498](/docs/upgrading/4-9/498)
+- [/docs/upgrading/4-9/499](/docs/upgrading/4-9/499)
+- [/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)
diff --git a/document/data/doc-last-modified.json b/document/data/doc-last-modified.json
index 3b4eb2c60..ac34dd462 100644
--- a/document/data/doc-last-modified.json
+++ b/document/data/doc-last-modified.json
@@ -1,184 +1,184 @@
{
- "document/content/docs/faq/app.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/faq/chat.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/faq/dataset.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/faq/error.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/faq/external_channel_integration.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/faq/index.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/faq/other.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/faq/points_consumption.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/introduction/cloud.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/introduction/commercial.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/introduction/development/community.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/introduction/development/configuration.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/custom-models/bge-rerank.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/custom-models/chatglm2-m3e.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/custom-models/chatglm2.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/custom-models/m3e.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/custom-models/marker.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/custom-models/ollama.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/custom-models/xinference.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/design/dataset.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/design/design_plugin.mdx": "2025-07-24T13:00:27+08:00",
- "document/content/docs/introduction/development/docker.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/introduction/development/faq.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/intro.mdx": "2025-07-24T10:39:41+08:00",
- "document/content/docs/introduction/development/migration/docker_db.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/migration/docker_mongo.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/modelConfig/ai-proxy.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/modelConfig/intro.mdx": "2025-08-01T16:08:20+08:00",
- "document/content/docs/introduction/development/modelConfig/one-api.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/modelConfig/ppio.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/modelConfig/siliconCloud.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/openapi/chat.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/openapi/dataset.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/openapi/intro.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/openapi/share.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/proxy/cloudflare.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/proxy/http_proxy.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/proxy/nginx.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/development/sealos.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/introduction/guide/DialogBoxes/htmlRendering.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/DialogBoxes/quoteList.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/admin/sso.mdx": "2025-07-24T13:00:27+08:00",
- "document/content/docs/introduction/guide/admin/teamMode.mdx": "2025-07-24T13:00:27+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-24T13:10:25+08:00",
- "document/content/docs/introduction/guide/dashboard/gapier.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-24T13:00:27+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-24T13:00:27+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/dashboard/workflow/sandbox.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/knowledge_base/api_dataset.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/knowledge_base/collection_tags.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/introduction/guide/knowledge_base/dataset_engine.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/knowledge_base/lark_dataset.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/knowledge_base/template.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/knowledge_base/third_dataset.mdx": "2025-07-24T13:00:27+08:00",
- "document/content/docs/introduction/guide/knowledge_base/websync.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/knowledge_base/yuque_dataset.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/plugins/bing_search_plugin.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/plugins/dev_system_tool.mdx": "2025-07-30T22:30:03+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.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/plugins/searxng_plugin_guide.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/team_permissions/invitation_link.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/guide/team_permissions/team_roles_permissions.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/index.en.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/introduction/index.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/protocol/index.mdx": "2025-07-30T15:38:30+08:00",
- "document/content/docs/protocol/open-source.en.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/protocol/open-source.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/protocol/privacy.en.mdx": "2025-08-03T14:03:08+08:00",
- "document/content/docs/protocol/privacy.mdx": "2025-08-03T14:03:08+08:00",
- "document/content/docs/protocol/terms.en.mdx": "2025-08-03T14:03:08+08:00",
- "document/content/docs/protocol/terms.mdx": "2025-08-03T14:03:08+08:00",
- "document/content/docs/upgrading/4-10/4100.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-10/4101.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-11/4110.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-11/4111.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-11/4112.mdx": "2025-08-03T14:03:08+08:00",
- "document/content/docs/upgrading/4-8/40.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/41.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/42.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/421.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/43.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/44.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/441.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/442.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/445.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/446.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/447.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/45.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/451.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/452.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/46.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/461.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/462.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/463.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/464.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/465.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/466.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/467.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/468.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/469.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/47.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/471.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/48.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/481.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4810.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4811.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4812.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4813.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4814.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4815.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4816.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4817.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4818.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4819.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/482.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4820.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4821.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4822.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/4823.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/483.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/484.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/485.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/486.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/487.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/488.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-8/489.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/490.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/491.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/4910.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/4911.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/4912.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/4913.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/4914.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/492.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/493.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/494.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/495.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/496.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/497.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/498.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/4-9/499.mdx": "2025-08-02T19:38:37+08:00",
- "document/content/docs/upgrading/index.mdx": "2025-08-02T19:38:37+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.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/use-cases/app-cases/feishu_webhook.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/use-cases/app-cases/lab_appointment.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/use-cases/external-integration/openapi.mdx": "2025-07-23T21:35:03+08:00",
- "document/content/docs/use-cases/index.mdx": "2025-07-24T14:23:04+08:00"
+ "document\\content\\docs\\faq\\app.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\faq\\chat.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\faq\\dataset.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\faq\\error.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\faq\\external_channel_integration.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\faq\\index.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\faq\\other.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\faq\\points_consumption.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\introduction\\cloud.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\introduction\\commercial.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\introduction\\development\\community.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\introduction\\development\\configuration.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\custom-models\\bge-rerank.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\custom-models\\chatglm2-m3e.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\custom-models\\chatglm2.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\custom-models\\m3e.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\custom-models\\marker.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\custom-models\\ollama.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\custom-models\\xinference.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\design\\dataset.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\design\\design_plugin.mdx": "2025-07-24T13:00:27+08:00",
+ "document\\content\\docs\\introduction\\development\\docker.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\introduction\\development\\faq.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\intro.mdx": "2025-07-24T10:39:41+08:00",
+ "document\\content\\docs\\introduction\\development\\migration\\docker_db.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\migration\\docker_mongo.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\modelConfig\\ai-proxy.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\modelConfig\\intro.mdx": "2025-08-01T16:08:20+08:00",
+ "document\\content\\docs\\introduction\\development\\modelConfig\\one-api.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\modelConfig\\ppio.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\modelConfig\\siliconCloud.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\openapi\\chat.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\openapi\\dataset.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\openapi\\intro.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\openapi\\share.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\proxy\\cloudflare.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\proxy\\http_proxy.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\proxy\\nginx.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\development\\sealos.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\introduction\\guide\\admin\\sso.mdx": "2025-07-24T13:00:27+08:00",
+ "document\\content\\docs\\introduction\\guide\\admin\\teamMode.mdx": "2025-07-24T13:00:27+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-24T13:10:25+08:00",
+ "document\\content\\docs\\introduction\\guide\\dashboard\\gapier.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-24T13:00:27+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-24T13:00:27+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\dashboard\\workflow\\sandbox.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\dashboard\\workflow\\variable_update.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\DialogBoxes\\htmlRendering.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\DialogBoxes\\quoteList.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\knowledge_base\\api_dataset.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\knowledge_base\\collection_tags.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\introduction\\guide\\knowledge_base\\dataset_engine.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\knowledge_base\\lark_dataset.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\knowledge_base\\RAG.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\knowledge_base\\template.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\knowledge_base\\third_dataset.mdx": "2025-07-24T13:00:27+08:00",
+ "document\\content\\docs\\introduction\\guide\\knowledge_base\\websync.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\knowledge_base\\yuque_dataset.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\plugins\\bing_search_plugin.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\plugins\\dev_system_tool.mdx": "2025-07-30T22:30:03+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.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\plugins\\searxng_plugin_guide.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\team_permissions\\invitation_link.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\guide\\team_permissions\\team_roles_permissions.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\index.en.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\introduction\\index.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\protocol\\index.mdx": "2025-07-30T15:38:30+08:00",
+ "document\\content\\docs\\protocol\\open-source.en.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\protocol\\open-source.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\protocol\\privacy.en.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\protocol\\privacy.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\protocol\\terms.en.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\protocol\\terms.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\toc.mdx": "2025-08-03T22:49:29+08:00",
+ "document\\content\\docs\\upgrading\\4-10\\4100.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-10\\4101.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-11\\4110.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-11\\4111.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\40.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\41.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\42.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\421.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\43.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\44.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\441.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\442.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\445.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\446.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\447.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\45.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\451.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\452.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\46.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\461.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\462.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\463.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\464.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\465.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\466.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\467.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\468.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\469.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\47.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\471.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\48.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\481.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4810.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4811.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4812.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4813.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4814.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4815.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4816.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4817.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4818.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4819.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\482.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4820.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4821.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4822.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\4823.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\483.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\484.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\485.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\486.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\487.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\488.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-8\\489.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\490.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\491.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\4910.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\4911.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\4912.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\4913.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\4914.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\492.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\493.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\494.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\495.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\496.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\497.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\498.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\4-9\\499.mdx": "2025-08-02T19:38:37+08:00",
+ "document\\content\\docs\\upgrading\\index.mdx": "2025-08-02T19:38:37+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.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\use-cases\\app-cases\\feishu_webhook.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\use-cases\\app-cases\\lab_appointment.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+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.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\use-cases\\external-integration\\openapi.mdx": "2025-07-23T21:35:03+08:00",
+ "document\\content\\docs\\use-cases\\index.mdx": "2025-07-24T14:23:04+08:00"
}
\ No newline at end of file
diff --git a/document/lib/generateToc.js b/document/lib/generateToc.js
new file mode 100644
index 000000000..c0aac0adf
--- /dev/null
+++ b/document/lib/generateToc.js
@@ -0,0 +1,88 @@
+import * as fs from 'node:fs/promises';
+import path from 'node:path';
+import fg from 'fast-glob';
+
+// 假设 i18n.defaultLanguage = 'zh-CN',这里不用 i18n 直接写两份逻辑即可
+
+// 黑名单路径(不带语言前缀)
+const blacklist = [
+ 'use-cases/index',
+ 'protocol/index',
+ 'api/index',
+ 'faq/index',
+ 'upgrading/index',
+ 'toc'
+];
+
+function filePathToUrl(filePath, lang) {
+ const baseDir = path.resolve('../content/docs');
+ let relativePath = path.relative(baseDir, path.resolve(filePath)).replace(/\\/g, '/');
+ const basePath = lang === 'zh-CN' ? '/docs' : '/en/docs';
+
+ if (lang !== 'zh-CN' && relativePath.endsWith('.en.mdx')) {
+ relativePath = relativePath.replace(/\.en\.mdx$/, '');
+ } else if (lang === 'zh-CN' && relativePath.endsWith('.mdx')) {
+ relativePath = relativePath.replace(/\.mdx$/, '');
+ }
+
+ return `${basePath}/${relativePath}`.replace(/\/\/+/g, '/');
+}
+
+function isBlacklisted(url) {
+ return blacklist.some(
+ (item) => url.endsWith(`/docs/${item}`) || url.endsWith(`/en/docs/${item}`)
+ );
+}
+
+function isEnFile(file) {
+ return file.endsWith('.en.mdx');
+}
+
+function isZhFile(file) {
+ return file.endsWith('.mdx') && !file.endsWith('.en.mdx');
+}
+
+async function generateToc() {
+ // 匹配所有 mdx 文件
+ const allFiles = await fg('../content/docs/**/*.mdx');
+
+ // 筛选中英文文件
+ const zhFiles = allFiles.filter(isZhFile);
+ const enFiles = allFiles.filter(isEnFile);
+
+ // 生成中文 URL
+ const zhUrls = zhFiles
+ .map((file) => filePathToUrl(file, 'zh-CN'))
+ .filter((url) => !isBlacklisted(url))
+ .sort();
+
+ // 生成英文 URL
+ const enUrls = enFiles
+ .map((file) => filePathToUrl(file, 'en'))
+ .filter((url) => !isBlacklisted(url))
+ .sort();
+
+ const makeMdxContent = (urls, title, isChinese = true) =>
+ `---
+title: ${title}
+description: ${isChinese ? 'FastGPT 文档目录' : 'FastGPT Toc'}
+---
+
+${urls.map((url) => `- [${url}](${url})`).join('\n')}
+`;
+
+ // 写文件路径
+ const baseDir = path.resolve('../content/docs');
+ const zhOutputPath = path.join(baseDir, 'toc.mdx');
+ const enOutputPath = path.join(baseDir, 'toc.en.mdx');
+
+ // 写入文件
+ await fs.mkdir(baseDir, { recursive: true });
+ await fs.writeFile(zhOutputPath, makeMdxContent(zhUrls, 'FastGPT 文档目录', true), 'utf8');
+ await fs.writeFile(enOutputPath, makeMdxContent(enUrls, 'FastGPT Toc', false), 'utf8');
+
+ console.log(`✅ 写入中文目录 ${zhOutputPath}`);
+ console.log(`✅ 写入英文目录 ${enOutputPath}`);
+}
+
+generateToc().catch(console.error);
diff --git a/package.json b/package.json
index 76adef153..0bfb5ac0f 100644
--- a/package.json
+++ b/package.json
@@ -7,6 +7,7 @@
"format-code": "prettier --config \"./.prettierrc.js\" --write \"./**/src/**/*.{ts,tsx,scss}\"",
"format-doc": "zhlint --dir ./document/ *.mdx --fix",
"initDocTime": "node ./document/github.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",
"postinstall": "pnpm gen:theme-typings",
"initIcon": "node ./scripts/icon/init.js",
@@ -45,6 +46,7 @@
"./document/**/**/*.mdx": [
"pnpm format-doc",
"pnpm initDocTime",
+ "pnpm initDocToc",
"git add ."
]
},