fix: resole crawl cannot get docs (#5344)

This commit is contained in:
dreamer6680
2025-07-30 15:38:30 +08:00
committed by GitHub
parent 061547a983
commit 6c37776de1
29 changed files with 358 additions and 421 deletions

View File

@@ -1,71 +1,64 @@
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;
// 将文件路径转换为URL路径
// 黑名单路径(不带语言前缀)
const blacklist = ['use-cases/index', 'protocol/index', 'api/index'];
// 将文件路径转换为 URL 路径(包括文件名)
function filePathToUrl(filePath: string, defaultLanguage: string): string {
// 移除 ./content/docs/ 前缀
let urlPath = filePath.replace('./content/docs/', '');
// 确定基础路径
let relativePath = filePath.replace('./content/docs/', '');
const basePath = defaultLanguage === 'zh-CN' ? '/docs' : '/en/docs';
// 如果是英文文件,移除 .en 后缀
if (defaultLanguage !== 'zh-CN' && urlPath.endsWith('.en.mdx')) {
urlPath = urlPath.replace('.en.mdx', '');
} else if (urlPath.endsWith('.mdx')) {
urlPath = urlPath.replace('.mdx', '');
if (defaultLanguage !== 'zh-CN' && relativePath.endsWith('.en.mdx')) {
relativePath = relativePath.replace(/\.en\.mdx$/, '');
} else if (relativePath.endsWith('.mdx')) {
relativePath = relativePath.replace(/\.mdx$/, '');
}
// 处理 index 文件
if (urlPath.endsWith('/index')) {
urlPath = urlPath.replace('/index', '');
}
// 拼接完整路径
return `${basePath}/${urlPath}`.replace(/\/\/+/g, '/');
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;
// 检查请求路径是否为 /en/robots
const requestUrl = new URL(request.url);
const isEnRobotsRoute = requestUrl.pathname === '/en/robots';
let globPattern;
if (isEnRobotsRoute) {
// 如果是 /en/robots 路由,只选择 .en.mdx 文件
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);
const files = await fg(globPattern, { caseSensitiveMatch: true });
const urls = await Promise.all(
files.map(async (file: string) => {
const urlPath = filePathToUrl(file, defaultLanguage);
return `${urlPath}`;
})
);
// 转换文件路径为 URL并过滤黑名单
const urls = files
.map((file) => filePathToUrl(file, defaultLanguage))
.filter((url) => !isBlacklisted(url));
// 按URL排序
urls.sort((a, b) => a.localeCompare(b));
// 生成HTML链接列表
const html = `
<html>
<head>
<title>FastGPT Documentation Links</title>
<title>FastGPT 文档目录</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
h1 { color: #333; }
@@ -78,7 +71,7 @@ export async function GET(request: Request) {
<body>
<h1>Documentation Links</h1>
<ul>
${urls.map(url => `<li><a href="${url}">${url}</a></li>`).join('')}
${urls.map((url) => `<li><a href="${url}">${url}</a></li>`).join('')}
</ul>
</body>
</html>
@@ -86,7 +79,7 @@ export async function GET(request: Request) {
return new Response(html, {
headers: {
'Content-Type': 'text/html',
},
'Content-Type': 'text/html'
}
});
}
}

View File

@@ -0,0 +1,86 @@
import type { NextRequest } from 'next/server';
import { NextResponse } from 'next/server';
import fs from 'fs/promises';
import path from 'path';
const docsRoot = path.resolve(process.cwd(), 'content/docs');
function isInvalidPage(str: string): boolean {
if (!str || typeof str !== 'string') return true;
if (/\[.*?\]\(.*?\)/.test(str) || /^https?:\/\//.test(str) || /[()]/.test(str)) return true;
if (/^\s*---[\s\S]*---\s*$/.test(str)) return true;
return false;
}
function getPageName(str: string): string {
return str.startsWith('...') ? str.slice(3) : str;
}
async function findFirstValidPage(dirRelPath: string): Promise<string | null> {
const absDir = path.join(docsRoot, dirRelPath);
const metaPath = path.join(absDir, 'meta.json');
try {
const metaRaw = await fs.readFile(metaPath, 'utf-8');
const meta = JSON.parse(metaRaw);
if (!Array.isArray(meta.pages)) return null;
for (const page of meta.pages) {
if (isInvalidPage(page)) continue;
const pageName = getPageName(page);
const pagePath = path.join(dirRelPath, pageName);
const candidateDir = path.join(docsRoot, pagePath);
const candidateFile = candidateDir + '.mdx';
try {
await fs.access(candidateFile);
return pagePath;
} catch {
try {
const stat = await fs.stat(candidateDir);
if (stat.isDirectory()) {
const recursiveResult = await findFirstValidPage(pagePath);
if (recursiveResult) return recursiveResult;
}
} catch {
// ignore
}
}
}
} catch {
// ignore
}
return null;
}
export async function GET(req: NextRequest) {
const url = new URL(req.url);
const rawPath = url.searchParams.get('path');
if (!rawPath || !rawPath.startsWith('/docs')) {
return NextResponse.json({ error: 'Invalid path' }, { status: 400 });
}
// 去除 /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);
} catch {
// 不存在,尝试递归寻找第一个有效页面
const found = await findFirstValidPage(relPath);
if (found) {
// 返回带 /docs 前缀的完整路径
return NextResponse.json('/docs/' + found.replace(/\\/g, '/'));
} else {
return NextResponse.json({ error: 'No valid mdx page found' }, { status: 404 });
}
}
}

View File

@@ -1,7 +1,6 @@
'use client';
import { redirect } from 'next/navigation';
import { usePathname } from 'next/navigation';
import { useEffect } from 'react';
import { usePathname, useRouter } from 'next/navigation';
const exactMap: Record<string, string> = {
'/docs/intro': '/docs/introduction',
@@ -21,25 +20,50 @@ const prefixMap: Record<string, string> = {
'/docs/agreement': '/docs/protocol'
};
const fallbackRedirect = '/docs/introduction';
export default function NotFound() {
const pathname = usePathname();
const router = useRouter();
useEffect(() => {
if (exactMap[pathname]) {
redirect(exactMap[pathname]);
return;
}
for (const [oldPrefix, newPrefix] of Object.entries(prefixMap)) {
if (pathname.startsWith(oldPrefix)) {
const rest = pathname.slice(oldPrefix.length);
redirect(newPrefix + rest);
const tryRedirect = async () => {
if (exactMap[pathname]) {
router.replace(exactMap[pathname]);
return;
}
}
redirect('/docs/introduction');
}, [pathname]);
for (const [oldPrefix, newPrefix] of Object.entries(prefixMap)) {
if (pathname.startsWith(oldPrefix)) {
const rest = pathname.slice(oldPrefix.length);
router.replace(newPrefix + rest);
return;
}
}
return <></>;
try {
const basePath = pathname.replace(/\/$/, '');
const res = await fetch(`/api/meta?path=${basePath}`);
console.log('res', res);
if (!res.ok) throw new Error('meta API not found');
const validPage = await res.json();
if (validPage) {
console.log('validPage', validPage);
router.replace(validPage);
return;
}
} catch (e) {
console.warn('meta.json fallback failed:', e);
}
router.replace(fallbackRedirect);
};
tryRedirect();
}, [pathname, router]);
return null;
}

View File

@@ -1,6 +1,6 @@
---
title: API手册
description: FastGPT API手册
title: API 文档
description: API 文档
---
import { Redirect } from '@/components/docs/Redirect';

View File

@@ -1,8 +0,0 @@
---
title: FastGPT 文档
description: FastGPT 官方文档
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction" />

View File

@@ -1,8 +0,0 @@
---
title: FAQ
description: FastGPT FAQ
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/FAQ/docker" />

View File

@@ -1,8 +0,0 @@
---
title: 自定义模型
description: FastGPT 自定义模型
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/development/custom-models/marker" />

View File

@@ -1,8 +0,0 @@
---
title: 设计文档
description: FastGPT 设计文档
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/development/design/dataset" />

View File

@@ -1,8 +0,0 @@
---
title: 开发文档
description: FastGPT 开发文档
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/development/intro" />

View File

@@ -1,8 +0,0 @@
---
title: 迁移
description: FastGPT 迁移
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/development/migration/docker_db" />

View File

@@ -1,8 +0,0 @@
---
title: 模型配置
description: FastGPT 模型配置
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/development/modelConfig/ai-proxy" />

View File

@@ -1,8 +0,0 @@
---
title: OpenAPI
description: FastGPT OpenAPI
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/development/openapi/intro" />

View File

@@ -1,8 +0,0 @@
---
title: 代理
description: FastGPT 代理
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/development/proxy/nginx" />

View File

@@ -1,8 +0,0 @@
---
title: 版本更新
description: FastGPT 版本更新
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/development/upgrading/intro" />

View File

@@ -1,8 +0,0 @@
---
title: 对话框
description: FastGPT 对话框
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/guide/DialogBoxes/htmlRendering" />

View File

@@ -1,8 +0,0 @@
---
title: 商业版管理
description: FastGPT 商业版管理
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/guide/admin/sso" />

View File

@@ -1,8 +0,0 @@
---
title: 基础教程
description: FastGPT 基础教程
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/guide/course/quick-start" />

View File

@@ -1,8 +0,0 @@
---
title: 工作台
description: FastGPT 工作台
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/guide/dashboard/basic-mode" />

View File

@@ -1,8 +0,0 @@
---
title: 工作流
description: FastGPT 工作流
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/guide/dashboard/workflow/ai_chat" />

View File

@@ -1,8 +0,0 @@
---
title: 使用指南
description: FastGPT 使用指南
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/guide/course/quick-start" />

View File

@@ -1,8 +0,0 @@
---
title: 知识库
description: FastGPT 知识库
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/guide/knowledge_base/RAG" />

View File

@@ -1,5 +1,13 @@
{
"title": "功能介绍",
"description": "FastGPT 功能介绍",
"pages": ["course","dashboard","plugins","knowledge_base","team_permissions","DialogBoxes","admin"]
}
"pages": [
"course",
"dashboard",
"plugins",
"knowledge_base",
"team_permissions",
"DialogBoxes",
"admin"
]
}

View File

@@ -1,8 +0,0 @@
---
title: 系统插件
description: FastGPT 系统插件
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/guide/plugins/dev_system_tool" />

View File

@@ -1,8 +0,0 @@
---
title: 团队与权限
description: FastGPT 团队与权限
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/guide/team_permissions/team_roles_permissions" />

View File

@@ -1,8 +0,0 @@
---
title: 收费说明
description: FastGPT 收费说明
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/introduction/shopping_cart/saas" />

View File

@@ -1,9 +1,8 @@
---
title: FastGPT 协议
title: 协议
description: FastGPT 协议
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/protocol/open-source" />

View File

@@ -1,8 +0,0 @@
---
title: 应用搭建案例
description: FastGPT 应用搭建案例
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/use-cases/app-cases/submit_application_template" />

View File

@@ -1,8 +0,0 @@
---
title: 外部调用 FastGPT
description: FastGPT 外部调用
---
import { Redirect } from '@/components/docs/Redirect';
<Redirect to="/docs/use-cases/external-integration/openapi" />

View File

@@ -1,187 +1,190 @@
{
"content/docs/api/api1.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/api/api2.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/api/index.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/index.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/FAQ/app.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/FAQ/chat.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/FAQ/dataset.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/FAQ/docker.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/FAQ/error.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/FAQ/external_channel_integration.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/FAQ/other.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/FAQ/points_consumption.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/FAQ/privateDeploy.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/community.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/configuration.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/custom-models/bge-rerank.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/custom-models/chatglm2-m3e.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/custom-models/chatglm2.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/custom-models/m3e.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/custom-models/marker.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/custom-models/ollama.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/custom-models/xinference.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/design/dataset.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/design/design_plugin.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/docker.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/development/faq.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/development/intro.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/migration/docker_db.mdx": "2025-07-16T18:34:52+08:00",
"content/docs/introduction/development/migration/docker_mongo.mdx": "2025-07-16T18:34:52+08:00",
"content/docs/introduction/development/modelConfig/ai-proxy.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/modelConfig/intro.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/development/modelConfig/one-api.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/modelConfig/ppio.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/development/modelConfig/siliconCloud.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/openapi/chat.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/development/openapi/dataset.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/development/openapi/intro.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/openapi/share.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/development/proxy/cloudflare.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/proxy/http_proxy.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/proxy/nginx.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/sealos.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/40.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/41.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4100.mdx": "2025-07-16T18:34:52+08:00",
"content/docs/introduction/development/upgrading/4101.mdx": "2025-07-16T18:34:52+08:00",
"content/docs/introduction/development/upgrading/42.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/421.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/43.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/44.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/441.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/442.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/445.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/446.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/447.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/45.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/451.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/452.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/46.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/461.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/462.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/463.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/464.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/465.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/466.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/467.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/468.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/469.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/47.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/471.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/48.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/481.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4810.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4811.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4812.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4813.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4814.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4815.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4816.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4817.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4818.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4819.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/482.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4820.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4821.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4822.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4823.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/483.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/484.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/485.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/486.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/487.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/488.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/489.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/490.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/491.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4910.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4911.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4912.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4913.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/4914.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/492.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/493.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/494.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/495.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/496.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/497.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/498.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/499.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/development/upgrading/intro.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/DialogBoxes/htmlRendering.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/DialogBoxes/quoteList.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/admin/sso.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/guide/admin/teamMode.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/course/ai_settings.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/course/chat_input_guide.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/course/collection_tags.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/course/fileInput.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/course/quick-start.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/basic-mode.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/gapier.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/intro.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/mcp_server.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/mcp_tools.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/ai_chat.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/content_extract.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/coreferenceResolution.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/custom_feedback.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/dataset_search.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/document_parsing.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/form_input.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/http.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/guide/dashboard/workflow/knowledge_base_search_merge.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/laf.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/loop.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/question_classify.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/reply.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/sandbox.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/text_editor.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/tfswitch.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/tool.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/user-selection.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/dashboard/workflow/variable_update.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/knowledge_base/RAG.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/knowledge_base/api_dataset.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/guide/knowledge_base/dataset_engine.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/knowledge_base/externalFile.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/knowledge_base/lark_dataset.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/knowledge_base/template.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/knowledge_base/third_dataset.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/knowledge_base/websync.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/knowledge_base/yuque_dataset.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/plugins/bing_search_plugin.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/plugins/dev_system_tool.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/plugins/doc2x_plugin_guide.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/plugins/google_search_plugin_guide.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/plugins/how_to_submit_system_plugin.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/plugins/searxng_plugin_guide.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/team_permissions/invitation_link.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/guide/team_permissions/team_roles_permissions.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/index.en.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/index.mdx": "2025-07-17T19:11:49+08:00",
"content/docs/introduction/shopping_cart/intro.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/introduction/shopping_cart/saas.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/protocol/index.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/protocol/open-source.en.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/protocol/open-source.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/protocol/privacy.en.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/protocol/privacy.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/protocol/terms.en.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/protocol/terms.mdx": "2025-07-15T15:23:52+08:00",
"content/docs/use-cases/app-cases/dalle3.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/app-cases/english_essay_correction_bot.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/app-cases/feishu_webhook.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/app-cases/fixingEvidence.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/app-cases/google_search.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/app-cases/lab_appointment.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/app-cases/multi_turn_translation_bot.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/app-cases/submit_application_template.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/app-cases/translate-subtitle-using-gpt.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/external-integration/dingtalk.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/external-integration/feishu.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/external-integration/official_account.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/external-integration/openapi.mdx": "2025-05-15T10:53:31+08:00",
"content/docs/use-cases/index.mdx": "2025-07-16T18:34:52+08:00"
"document/content/docs/api/api1.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/api/api2.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/api/index.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/api/test/api3.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/FAQ/app.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/FAQ/chat.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/FAQ/dataset.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/FAQ/docker.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/FAQ/error.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/FAQ/external_channel_integration.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/FAQ/other.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/FAQ/points_consumption.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/FAQ/privateDeploy.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/community.mdx": "2025-07-23T21:35:03+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-07-23T21:35:03+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-07-23T21:35:03+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-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/40.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/41.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4100.mdx": "2025-07-27T12:42:13+08:00",
"document/content/docs/introduction/development/upgrading/4101.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4110.mdx": "2025-07-23T23:27:37+08:00",
"document/content/docs/introduction/development/upgrading/4111.mdx": "2025-07-23T23:27:37+08:00",
"document/content/docs/introduction/development/upgrading/42.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/421.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/43.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/44.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/441.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/442.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/445.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/446.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/447.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/45.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/451.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/452.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/46.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/461.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/462.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/463.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/464.mdx": "2025-07-24T13:00:27+08:00",
"document/content/docs/introduction/development/upgrading/465.mdx": "2025-07-24T13:00:27+08:00",
"document/content/docs/introduction/development/upgrading/466.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/467.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/468.mdx": "2025-07-24T13:00:27+08:00",
"document/content/docs/introduction/development/upgrading/469.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/47.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/471.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/48.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/481.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4810.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4811.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4812.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4813.mdx": "2025-07-24T13:00:27+08:00",
"document/content/docs/introduction/development/upgrading/4814.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4815.mdx": "2025-07-24T13:00:27+08:00",
"document/content/docs/introduction/development/upgrading/4816.mdx": "2025-07-24T17:35:14+08:00",
"document/content/docs/introduction/development/upgrading/4817.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4818.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4819.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/482.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4820.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4821.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4822.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4823.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/483.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/484.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/485.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/486.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/487.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/488.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/489.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/490.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/491.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4910.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4911.mdx": "2025-07-24T13:00:27+08:00",
"document/content/docs/introduction/development/upgrading/4912.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4913.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/4914.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/492.mdx": "2025-07-24T13:00:27+08:00",
"document/content/docs/introduction/development/upgrading/493.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/494.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/495.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/496.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/497.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/498.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/development/upgrading/499.mdx": "2025-07-24T13:00:27+08:00",
"document/content/docs/introduction/development/upgrading/intro.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/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/collection_tags.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/dataset_engine.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/guide/knowledge_base/externalFile.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-23T21:35: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/how_to_submit_system_plugin.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/introduction/shopping_cart/intro.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/introduction/shopping_cart/saas.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/protocol/index.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/protocol/open-source.en.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/protocol/open-source.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/protocol/privacy.en.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/protocol/privacy.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/protocol/terms.en.mdx": "2025-07-23T21:35:03+08:00",
"document/content/docs/protocol/terms.mdx": "2025-07-23T21:35:03+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"
}