From db3d3dee85a26bf065db920792d08da1ad383ada Mon Sep 17 00:00:00 2001 From: zhaoying Date: Mon, 15 Dec 2025 15:10:42 +0800 Subject: [PATCH 01/92] update web --- web/README.md | 91 ++++++++++++++++++++++++++++++++++++++++++++++ web/vite.config.ts | 2 +- 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 web/README.md diff --git a/web/README.md b/web/README.md new file mode 100644 index 00000000..7ce73358 --- /dev/null +++ b/web/README.md @@ -0,0 +1,91 @@ +# Memory Bear 前端项目 + +基于 React + TypeScript + Vite + Ant Design 构建的知识库管理系统前端应用。 + +## 技术栈 + +- **框架**: React 18 + TypeScript +- **构建工具**: Vite +- **UI 组件库**: Ant Design 5 +- **样式**: Tailwind CSS 4 +- **路由**: React Router 6 +- **状态管理**: Zustand +- **国际化**: i18next +- **图表**: ECharts +- **其他**: React Markdown + +## 环境要求 + +- Node.js >= 20.19+, 22.12+ +- npm 或 yarn + +## 安装 + +```bash +# 克隆项目 +git clone + +# 进入项目目录 +cd memory-bear-font-end + +# 安装依赖 +npm install +``` + +## 运行 + +### 开发环境 + +```bash +npm run dev +``` + +启动后访问: `http://localhost:5173` + +### 生产构建 + +```bash +npm run build +``` + +构建产物输出到 `dist` 目录。 + +### 预览构建结果 + +```bash +npm run preview +``` + +## 代码检查 + +```bash +npm run lint +``` + +## 项目结构 + +``` +src/ +├── api/ # API 接口 +├── assets/ # 静态资源 +├── components/ # 公共组件 +├── hooks/ # 自定义 Hooks +├── i18n/ # 国际化配置 +├── routes/ # 路由配置 +├── store/ # 状态管理 +├── styles/ # 全局样式 +├── utils/ # 工具函数 +├── views/ # 页面视图 +├── App.tsx # 应用入口组件 +└── main.tsx # 应用入口文件 +``` + +## 配置说明 + +- 开发服务器默认监听 `0.0.0.0:5173` +- API 代理配置在 `vite.config.ts` 中 +- 路径别名 `@` 指向 `src` 目录 + +## License + +Private diff --git a/web/vite.config.ts b/web/vite.config.ts index 08054ec9..7181389f 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -11,7 +11,7 @@ export default defineConfig({ proxy: { // 主要API代理,支持 /api 和 /api/* 格式 '/api': { - target: 'http://127.0.0.1:8000', // 后端服务地址 + target: 'http://0.0.0.0:5173', // 后端服务地址 changeOrigin: true, // 匹配所有以/api开头的请求,包括/api/token From 9cf22bfae2a9ef451fc0cf5cc1c62d5f5b128afe Mon Sep 17 00:00:00 2001 From: zhaoying Date: Mon, 15 Dec 2025 15:12:49 +0800 Subject: [PATCH 02/92] update web --- web/i18n-comparison-report.md | 205 ++++++++++++++++++ web/public/auto-imports.d.ts | 10 - web/src/App.tsx | 2 + .../service.ts => api/knowledgeBase.ts} | 8 +- web/src/api/user.ts | 3 +- web/src/components/DocumentPreview/index.tsx | 3 +- web/src/components/Empty/index.tsx | 8 +- web/src/components/Header/index.tsx | 28 ++- web/src/components/Layout/AuthLayout.tsx | 8 +- web/src/components/Layout/AuthSpaceLayout.tsx | 10 +- web/src/components/Upload/UploadFiles.tsx | 3 +- web/src/components/Upload/UploadImages.tsx | 3 +- web/src/store/menu.ts | 1 + web/src/store/user.ts | 10 +- web/src/utils/auth.ts | 2 + web/src/utils/request.ts | 43 +++- web/src/utils/stream.ts | 3 +- web/src/views/ApplicationConfig/Agent.tsx | 2 +- web/src/views/ApplicationConfig/Cluster.tsx | 22 +- .../ApplicationConfig/components/Chat.tsx | 16 +- .../components/KnowledgeListModal.tsx | 2 +- .../ForgettingEngine/components/LineChart.tsx | 73 ++++--- web/src/views/ForgettingEngine/types.ts | 2 + web/src/views/Home/components/LineCard.tsx | 11 - web/src/views/Home/components/PieCard.tsx | 36 ++- .../[knowledgeBaseId]/CreateDataset.tsx | 6 +- .../[knowledgeBaseId]/DocumentDetails.tsx | 4 +- .../[knowledgeBaseId]/Private.tsx | 50 ++++- .../KnowledgeBase/[knowledgeBaseId]/Share.tsx | 54 ++++- .../components/CreateDatasetModal.tsx | 2 +- .../components/CreateFolderModal.tsx | 4 +- .../components/CreateImageDataset.tsx | 4 +- .../KnowledgeBase/components/CreateModal.tsx | 8 +- .../KnowledgeBase/components/FolderTree.tsx | 5 +- .../KnowledgeBase/components/RecallTest.tsx | 4 +- .../components/RecallTestDrawer.tsx | 2 +- .../components/RecallTestResult.tsx | 2 +- .../KnowledgeBase/components/ShareModal.tsx | 6 +- .../components/ShareSpaceModal.tsx | 6 +- web/src/views/KnowledgeBase/datasets.tsx | 2 +- web/src/views/KnowledgeBase/index.tsx | 122 ++++++++++- web/src/views/KnowledgeBase/types.ts | 2 +- web/src/views/MemoryConversation/index.tsx | 5 +- web/src/views/NoPermission/index.tsx | 2 +- web/src/views/NotFound/index.tsx | 2 +- .../SpaceManagement/components/SpaceModal.tsx | 37 +++- .../UserMemoryDetail/components/PieCard.tsx | 35 ++- .../components/RelationshipNetwork.tsx | 32 ++- 48 files changed, 726 insertions(+), 184 deletions(-) create mode 100644 web/i18n-comparison-report.md rename web/src/{views/KnowledgeBase/service.ts => api/knowledgeBase.ts} (98%) diff --git a/web/i18n-comparison-report.md b/web/i18n-comparison-report.md new file mode 100644 index 00000000..07e59b22 --- /dev/null +++ b/web/i18n-comparison-report.md @@ -0,0 +1,205 @@ +# i18n 中英文对比报告 + +## 📊 统计概览 + +- **中文键总数**: 1136 +- **英文键总数**: 1052 +- **中文缺失**: 27 个键 +- **英文缺失**: 111 个键 + +--- + +## ❌ 英文缺失的翻译(111个) + +### 1. Application 模块 (3个) +- `application.cluster` - 集群 +- `application.clusterDesc` - 创建Agent集群 +- `application.fullAmount` - 全量 + +### 2. Role 角色管理模块 (15个) +- `role.roleManagement` - 角色管理 +- `role.roleId` - 角色ID +- `role.roleName` - 角色名称 +- `role.roleCode` - 角色编码 +- `role.description` - 角色描述 +- `role.status` - 状态 +- `role.enabled` - 已启用 +- `role.disabled` - 已停用 +- `role.createTime` - 创建时间 +- `role.createRole` - 新建角色 +- `role.editRole` - 编辑角色 +- `role.roleTemplate` - 角色模板 +- `role.emptyTemplate` - 空模板 +- `role.adminTemplate` - 管理员模板 +- `role.userTemplate` - 用户模板 +- `role.confirmDelete` - 确定要删除这个角色吗? +- `role.createSuccess` - 角色创建成功 +- `role.updateSuccess` - 角色更新成功 +- `role.deleteSuccess` - 角色删除成功 +- `role.createFailed` - 角色创建失败 +- `role.updateFailed` - 角色更新失败 +- `role.deleteFailed` - 角色删除失败 + +### 3. Tenant 租户管理模块 (20个) +- `tenant.tenantId` - 租户ID +- `tenant.tenantName` - 租户名称 +- `tenant.contactPerson` - 联系人 +- `tenant.contactInfo` - 联系方式 +- `tenant.status` - 状态 +- `tenant.enabled` - 启用 +- `tenant.disabled` - 禁用 +- `tenant.expiryDate` - 到期时间 +- `tenant.createTenant` - 新增租户 +- `tenant.editTenant` - 编辑租户 +- `tenant.searchPlaceholder` - 搜索租户ID、名称、联系人或联系方式 +- `tenant.confirmDelete` - 确定要删除该租户吗? +- `tenant.confirmBatchDelete` - 确定要批量删除选中的租户吗? +- `tenant.fetchFailed` - 获取租户数据失败 +- `tenant.batchEnableSuccess` - 批量启用成功 +- `tenant.batchEnableFailed` - 批量启用失败 +- `tenant.batchDisableSuccess` - 批量停用成功 +- `tenant.batchDisableFailed` - 批量停用失败 +- `tenant.exportSuccess` - 导出成功 +- `tenant.batchDeleteSuccess` - 批量删除成功 +- `tenant.batchDeleteFailed` - 批量删除失败 +- `tenant.saveFailed` - 保存失败 +- `tenant.batchImport` - 批量导入 + +### 4. User 用户管理模块 (13个) +- `user.tenantName` - 所属租户 +- `user.password` - 密码 +- `user.expiryDate` - 有效期 +- `user.expiryDateDue` - 有效期至 +- `user.batchImport` - 批量导入 +- `user.batchImportUser` - 批量导入用户 +- `user.downloadTemplate` - 下载导入模板 +- `user.templateDownloadSuccess` - 模板下载成功 +- `user.startImport` - 开始导入 +- `user.batchImportSuccess` - 批量导入成功 +- `user.importFailed` - 导入失败,请检查文件格式 +- `user.noFileSelected` - 请选择要导入的文件 +- `user.onlyXlsxOrCsv` - 只能上传 .xlsx 或 .csv 格式的文件 +- `user.reselect` - 重新选择 +- `user.noFileSelectedTip` - 未选择任何文件 +- `user.downloadTemplateTip` - 请下载模板,填写用户信息后上传。 + +### 5. Product 产品管理模块 (13个) +- `product.applicationManagement` - 应用管理 +- `product.createApplication` - 创建应用 +- `product.applicationName` - 应用名称 +- `product.applicationIcon` - 应用图标 +- `product.applicationNameRequired` - 请输入应用名称 +- `product.associationStatus` - 关联状态 +- `product.associated` - 已关联 +- `product.notAssociated` - 未关联 +- `product.unassociate` - 解除关联 +- `product.unassociateSuccess` - 解除关联成功 +- `product.unassociateFailed` - 解除关联失败 +- `product.viewKey` - 查看KEY +- `product.viewStats` - 查看统计 +- `product.disableSuccess` - 停用成功 +- `product.enableSuccess` - 启用成功 +- `product.operationFailed` - 操作失败 + +### 6. 其他模块 (47个) +- `count` - 计数: {{count}} +- `increment` - 增加 +- `decrement` - 减少 +- `reset` - 重置 +- `switchLanguage` - 切换语言 +- `home.title` - 首页 +- `home.welcome` - 欢迎使用我们的带单页路由的 React 应用! +- `home.counterCard` - 计数器演示 +- `home.aboutCard` - 关于我们 +- `home.workflowCard` - 工作流编辑器 +- `home.websocketDemoCard` - WebSocket 演示 +- `home.sseDemoCard` - SSE演示 +- `workflow.title` - 工作流编辑器 +- `workflow.description` - 拖拽节点创建连接,构建您的工作流程。点击节点可进行配置。 +- `workflow.addNode` - 添加节点 +- `workflow.deleteNode` - 删除选中 +- `workflow.saveWorkflow` - 保存工作流 +- `workflow.startNode` - 触发节点 +- `workflow.conditionNode` - 条件判断 +- `workflow.actionNode` - 执行动作 +- `workflow.endNode` - 结束节点 +- `workflow.newNode` - 新节点 +- `workflow.node` - 节点 +- `workflow.nodesCreated` - 已创建节点 +- `workflow.loadingNodes` - 正在加载节点 {{progress}}% +- `workflow.loadingFailed` - 加载节点失败 +- `workflow.create5kNodes` - 创建5000节点 +- `workflow.create10kNodes` - 创建10000节点 +- `notFound.title` - 页面未找到 +- `notFound.description` - 请求的页面不存在。 +- `notFound.backToHome` - 返回首页 + +--- + +## ✅ 中文缺失的翻译(27个) + +### 1. Common 通用模块 (1个) +- `common.operateSuccess` - Operation successful + +### 2. KnowledgeBase 知识库模块 (3个) +- `knowledgeBase.models` - Model +- `knowledgeBase.owner` - Owner +- `knowledgeBase.operation` - Operation + +### 3. Application 应用模块 (15个) +- `application.multi_agent` - Cluster +- `application.multi_agentDesc` - Create an Agent Cluster +- `application.current` - Current +- `application.versionName` - Version Name +- `application.versionNameTip` - Version number format: v[major version number].[next version number].[revision number] (e.g. v1.3.0) +- `application.agentName` - Agent Name +- `application.roleType` - Role Type +- `application.coordinator` - Coordinator +- `application.analyzer` - Analyzer +- `application.executor` - Executor +- `application.reviewer` - Reviewer +- `application.updateSubAgent` - Update Sub Agent +- `application.subAgentMaxLength` - Sub Agent maximum {{maxLength}} +- `application.capabilities` - Capabilities + +### 4. Space 空间模块 (5个) +- `space.storageType` - Storage Type +- `space.rag` - RAG storage +- `space.ragDesc` - Based on vector retrieval, suitable for document Q&A and semantic search +- `space.neo4j` - Graph storage +- `space.neo4jDesc` - Based on knowledge graph, suitable for relational reasoning and path query + +### 5. MemoryExtractionEngine 记忆提取引擎模块 (4个) +- `memoryExtractionEngine.coreEntitiesAfterDedup` - Core entities after deduplication +- `memoryExtractionEngine.extractRelationalTriples` - Extracted relational triples (partial) +- `memoryExtractionEngine.extractRelationalTriplesDesc` - There are a total of {{count}} segments with clear semantic boundaries +- `memoryExtractionEngine.theEffectOfEntityDisambiguationLLMDriven` - The effect of entity disambiguation (LLM driven) + +--- + +## 🎯 建议 + +### 优先级 1 - 核心功能模块(需要立即补充) +1. **Role 角色管理** - 完整模块缺失(15个键) +2. **Tenant 租户管理** - 完整模块缺失(20个键) +3. **Product 产品管理** - 完整模块缺失(13个键) +4. **User 用户管理扩展** - 批量导入功能缺失(13个键) + +### 优先级 2 - 功能增强(建议补充) +1. **Application 应用模块** - 多代理相关功能(15个键) +2. **Space 空间模块** - 存储类型配置(5个键) +3. **MemoryExtractionEngine** - 实体去重相关(4个键) + +### 优先级 3 - 演示/测试功能(可选) +1. **Home/Workflow/NotFound** - 演示页面(30个键) +2. **通用计数器功能** - 测试功能(5个键) + +--- + +## 📝 下一步行动 + +1. **补充英文翻译**: 优先补充 Role、Tenant、Product、User 模块的英文翻译 +2. **补充中文翻译**: 补充 Application、Space、MemoryExtractionEngine 模块的中文翻译 +3. **清理无用翻译**: 如果 Home/Workflow 等演示功能不再使用,可以考虑从中文文件中移除 +4. **建立翻译规范**: 建议建立翻译键的命名规范和审查流程,避免未来出现遗漏 + diff --git a/web/public/auto-imports.d.ts b/web/public/auto-imports.d.ts index 61cb2733..62f88140 100644 --- a/web/public/auto-imports.d.ts +++ b/web/public/auto-imports.d.ts @@ -6,31 +6,22 @@ // biome-ignore lint: disable export {} declare global { - const Activity: typeof import('react').Activity - const Fragment: typeof import('react').Fragment const Link: typeof import('react-router-dom').Link const NavLink: typeof import('react-router-dom').NavLink const Navigate: typeof import('react-router-dom').Navigate const Outlet: typeof import('react-router-dom').Outlet const Route: typeof import('react-router-dom').Route const Routes: typeof import('react-router-dom').Routes - const Suspense: typeof import('react').Suspense - const cache: typeof import('react').cache - const cacheSignal: typeof import('react').cacheSignal - const createContext: typeof import('react').createContext const createRef: typeof import('react').createRef const forwardRef: typeof import('react').forwardRef const lazy: typeof import('react').lazy const memo: typeof import('react').memo const startTransition: typeof import('react').startTransition - const use: typeof import('react').use - const useActionState: typeof import('react').useActionState const useCallback: typeof import('react').useCallback const useContext: typeof import('react').useContext const useDebugValue: typeof import('react').useDebugValue const useDeferredValue: typeof import('react').useDeferredValue const useEffect: typeof import('react').useEffect - const useEffectEvent: typeof import('react').useEffectEvent const useHref: typeof import('react-router-dom').useHref const useId: typeof import('react').useId const useImperativeHandle: typeof import('react').useImperativeHandle @@ -42,7 +33,6 @@ declare global { const useMemo: typeof import('react').useMemo const useNavigate: typeof import('react-router-dom').useNavigate const useNavigationType: typeof import('react-router-dom').useNavigationType - const useOptimistic: typeof import('react').useOptimistic const useOutlet: typeof import('react-router-dom').useOutlet const useOutletContext: typeof import('react-router-dom').useOutletContext const useParams: typeof import('react-router-dom').useParams diff --git a/web/src/App.tsx b/web/src/App.tsx index 8ed03f96..c255f522 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -28,6 +28,8 @@ import 'dayjs/locale/zh-cn' import 'dayjs/plugin/timezone' import 'dayjs/plugin/utc' + + function App() { const { t } = useTranslation(); const { locale, language, timeZone } = useI18n() diff --git a/web/src/views/KnowledgeBase/service.ts b/web/src/api/knowledgeBase.ts similarity index 98% rename from web/src/views/KnowledgeBase/service.ts rename to web/src/api/knowledgeBase.ts index 23857d41..9791ee8d 100644 --- a/web/src/views/KnowledgeBase/service.ts +++ b/web/src/api/knowledgeBase.ts @@ -1,4 +1,4 @@ -import { request } from "@/utils/request"; +import { request, cookieUtils } from "@/utils/request"; import type { AxiosProgressEvent } from "axios"; import type { ShareRequestParams, @@ -15,7 +15,7 @@ import type { KnowledgeBaseDocumentData, KnowledgeBaseListResponse, KnowledgeBaseShareListResponse, -} from "./types"; +} from "@/views/KnowledgeBase/types"; const apiPrefix = ''; @@ -151,7 +151,7 @@ export const uploadFile = async (data: FormData, options?: UploadFileOptions) => // 下载文件 export const downloadFile = async (fileId: string, fileName?: string) => { - const token = localStorage.getItem('token'); + const token = cookieUtils.get('authToken'); const url = `${apiPrefix}/files/${fileId}`; try { @@ -277,4 +277,4 @@ export const createDocumentChunk = async (kb_id:string, document_id:string, data export const getRetrievalModeType = async () => { const response = await request.get(`${apiPrefix}/chunks/retrieve_type`); return response as any; -}; \ No newline at end of file +}; diff --git a/web/src/api/user.ts b/web/src/api/user.ts index 912ea537..3ff03386 100644 --- a/web/src/api/user.ts +++ b/web/src/api/user.ts @@ -1,5 +1,6 @@ import { request } from '@/utils/request' import type { CreateModalData } from '@/views/UserManagement/types' +import { cookieUtils } from '@/utils/request' // 用户信息 export const getUsers = () => { @@ -15,7 +16,7 @@ export const login = (data: { email: string; password: string; invite?: string; // 刷新token export const refreshTokenUrl = '/refresh' export const refreshToken = () => { - return request.post(refreshTokenUrl, { refresh_token: localStorage.getItem('refresh_token') }) + return request.post(refreshTokenUrl, { refresh_token: cookieUtils.get('refreshToken') }) } // 重置密码 export const changePassword = (data: { user_id: string; new_password: string }) => { diff --git a/web/src/components/DocumentPreview/index.tsx b/web/src/components/DocumentPreview/index.tsx index b60a7ed9..404d6e50 100644 --- a/web/src/components/DocumentPreview/index.tsx +++ b/web/src/components/DocumentPreview/index.tsx @@ -2,6 +2,7 @@ import { useState, useEffect, type FC } from 'react'; import { Spin, Alert, Button } from 'antd'; import { ReloadOutlined } from '@ant-design/icons'; import RbMarkdown from '../Markdown'; +import { cookieUtils } from '@/utils/request' type PreviewMode = 'office' | 'google'; @@ -156,7 +157,7 @@ const DocumentPreview: FC = ({ const response = await fetch(requestUrl, { credentials: 'include', // 包含认证信息 headers: { - 'Authorization': `Bearer ${localStorage.getItem('token') || ''}`, + 'Authorization': `Bearer ${cookieUtils.get('authToken') || ''}`, }, }); diff --git a/web/src/components/Empty/index.tsx b/web/src/components/Empty/index.tsx index 3aa2bb50..53f52941 100644 --- a/web/src/components/Empty/index.tsx +++ b/web/src/components/Empty/index.tsx @@ -6,6 +6,7 @@ interface EmptyProps { url?: string; size?: number | number[]; title?: string; + isNeedSubTitle?: boolean; subTitle?: string; className?: string; } @@ -13,6 +14,7 @@ const Empty: FC = ({ url, size = 200, title, + isNeedSubTitle = true, subTitle, className = '', }) => { @@ -20,12 +22,12 @@ const Empty: FC = ({ const width = Array.isArray(size) ? size[0] : size ? size : url ? 200 : 88; const height = Array.isArray(size) ? size[1] : size ? size : url ? 200 : 88; - subTitle = subTitle || t('empty.tableEmpty'); + const curSubTitle = isNeedSubTitle ? (subTitle || t('empty.tableEmpty')) : null; return (
404 - {title &&
{title}
} - {subTitle &&
{subTitle}
} + {title &&
{title}
} + {curSubTitle &&
{subTitle}
}
); } diff --git a/web/src/components/Header/index.tsx b/web/src/components/Header/index.tsx index 5ae59eb0..6ce5484e 100644 --- a/web/src/components/Header/index.tsx +++ b/web/src/components/Header/index.tsx @@ -66,10 +66,30 @@ const AppHeader: FC<{source?: 'space' | 'manage';}> = ({source = 'manage'}) => { }, ]; const formatBreadcrumbNames = () => { - return breadcrumbs.map((menu, index) => ({ - title: menu.i18nKey ? t(menu.i18nKey) : menu.label, - path: index === breadcrumbs.length - 1 ? undefined : menu.path - })) + return breadcrumbs.map((menu, index) => { + const item: any = { + title: menu.i18nKey ? t(menu.i18nKey) : menu.label, + }; + + // 如果是最后一项,不设置 path + if (index === breadcrumbs.length - 1) { + return item; + } + + // 如果有自定义 onClick,使用 onClick 并设置 href 为 '#' 以显示手型光标 + if ((menu as any).onClick) { + item.onClick = (e: React.MouseEvent) => { + e.preventDefault(); + (menu as any).onClick(e); + }; + item.href = '#'; + } else if (menu.path && menu.path !== '#') { + // 只有当 path 不是 '#' 时才设置 path + item.path = menu.path; + } + + return item; + }); } return (
diff --git a/web/src/components/Layout/AuthLayout.tsx b/web/src/components/Layout/AuthLayout.tsx index c53be942..a969298d 100644 --- a/web/src/components/Layout/AuthLayout.tsx +++ b/web/src/components/Layout/AuthLayout.tsx @@ -6,6 +6,7 @@ import { useNavigationBreadcrumbs } from '@/hooks/useNavigationBreadcrumbs'; import AppHeader from '@/components/Header'; import Sider from '@/components/SiderMenu' import { useUser } from '@/store/user'; +import { cookieUtils } from '@/utils/request'; const { Content } = Layout; @@ -18,7 +19,12 @@ const AuthLayout: FC = () => { // 自动更新面包屑导航 useNavigationBreadcrumbs('manage'); useEffect(() => { - getUserInfo() + const authToken = cookieUtils.get('authToken') + if (!authToken && !window.location.hash.includes('#/login')) { + window.location.href = `/#/login`; + } else { + getUserInfo() + } }, []); return ( diff --git a/web/src/components/Layout/AuthSpaceLayout.tsx b/web/src/components/Layout/AuthSpaceLayout.tsx index acc2cdb0..17ee0bac 100644 --- a/web/src/components/Layout/AuthSpaceLayout.tsx +++ b/web/src/components/Layout/AuthSpaceLayout.tsx @@ -6,6 +6,7 @@ import { useNavigationBreadcrumbs } from '@/hooks/useNavigationBreadcrumbs'; import AppHeader from '@/components/Header'; import Sider from '@/components/SiderMenu'; import { useUser } from '@/store/user'; +import { cookieUtils } from '@/utils/request'; const { Content } = Layout; @@ -18,8 +19,13 @@ const AuthSpaceLayout: FC = () => { // 自动更新面包屑导航 useNavigationBreadcrumbs('space'); useEffect(() => { - getUserInfo() - getStorageType() + const authToken = cookieUtils.get('authToken') + if (!authToken && !window.location.hash.includes('#/login')) { + window.location.href = `/#/login`; + } else { + getUserInfo() + getStorageType() + } }, []); return ( diff --git a/web/src/components/Upload/UploadFiles.tsx b/web/src/components/Upload/UploadFiles.tsx index b577d18f..aedd0e17 100644 --- a/web/src/components/Upload/UploadFiles.tsx +++ b/web/src/components/Upload/UploadFiles.tsx @@ -6,6 +6,7 @@ import type { UploadProps, UploadFile } from 'antd'; import type { UploadProps as RcUploadProps } from 'antd/es/upload/interface'; import CloudUploadOutlined from '@/assets/images/CloudUploadOutlined.png' import { useTranslation } from 'react-i18next'; +import { cookieUtils } from '@/utils/request' const { confirm } = Modal; const { Dragger } = Upload; @@ -219,7 +220,7 @@ const UploadFiles = forwardRef(({ fileList, beforeUpload, headers: { - authorization: localStorage.getItem('token') || '', + authorization: cookieUtils.get('authToken') || '', }, onRemove: handleRemove, onChange: handleChange, diff --git a/web/src/components/Upload/UploadImages.tsx b/web/src/components/Upload/UploadImages.tsx index 1e77ad3f..2006ea09 100644 --- a/web/src/components/Upload/UploadImages.tsx +++ b/web/src/components/Upload/UploadImages.tsx @@ -5,6 +5,7 @@ import type { GetProp, UploadFile, UploadProps } from 'antd'; import type { UploadProps as RcUploadProps } from 'antd/es/upload/interface'; import { useTranslation } from 'react-i18next'; import PlusIcon from '@/assets/images/plus.svg' +import { cookieUtils } from '@/utils/request' const { confirm } = Modal; @@ -166,7 +167,7 @@ const UploadImages = forwardRef(({ fileList, beforeUpload, headers: { - authorization: localStorage.getItem('token') || '', + authorization: cookieUtils.get('authToken') || '', }, onPreview: handlePreview, onRemove: handleRemove, diff --git a/web/src/store/menu.ts b/web/src/store/menu.ts index 0d35a932..7e725921 100644 --- a/web/src/store/menu.ts +++ b/web/src/store/menu.ts @@ -23,6 +23,7 @@ export interface MenuItem { disposable?: boolean; appSystem?: string | null; subs: MenuItem[] | null; + onClick?: (e?: React.MouseEvent) => void | boolean; } interface MenuState { collapsed: boolean; diff --git a/web/src/store/user.ts b/web/src/store/user.ts index 86615812..4d8fab35 100644 --- a/web/src/store/user.ts +++ b/web/src/store/user.ts @@ -3,6 +3,7 @@ import { clearAuthData } from '@/utils/auth'; import type { User } from '@/views/UserManagement/types' import { getUsers, refreshToken, logout } from '@/api/user' import { getWorkspaceStorageType } from '@/api/workspaces'; +import { cookieUtils } from '@/utils/request' export interface LoginInfo { access_token: string; @@ -21,17 +22,18 @@ export interface UserState { logout: () => void; getStorageType: () => void; } + export const useUser = create((set, get) => ({ user: localStorage.getItem('user') ? JSON.parse(localStorage.getItem('user') || '{}') as User : {} as User, loginInfo: {} as LoginInfo, storageType: null, updateLoginInfo: (values: LoginInfo) => { - localStorage.setItem('token', values.access_token); - localStorage.setItem('refresh_token', values.refresh_token); + cookieUtils.set('authToken', values.access_token); + cookieUtils.set('refreshToken', values.refresh_token); set({ loginInfo: values }); }, getUserInfo: async (flag?: boolean) => { - if (!localStorage.getItem('token')) { + if (!cookieUtils.get('authToken')) { return } const localUser = JSON.parse(localStorage.getItem('user') || '{}') as User; @@ -70,7 +72,7 @@ export const useUser = create((set, get) => ({ refreshToken() .then((res) => { const response = res as { refresh_token: string } - localStorage.setItem('token', response.refresh_token); + cookieUtils.set('authToken', response.refresh_token); }) .catch((err) => { console.error('Failed to refresh token:', err) diff --git a/web/src/utils/auth.ts b/web/src/utils/auth.ts index 07aec086..b7c72527 100644 --- a/web/src/utils/auth.ts +++ b/web/src/utils/auth.ts @@ -1,5 +1,7 @@ +import { cookieUtils } from './request' export const clearAuthData = () => { console.log("Clearing auth data and redirecting to login"); sessionStorage.clear(); localStorage.clear() + cookieUtils.clear(); } \ No newline at end of file diff --git a/web/src/utils/request.ts b/web/src/utils/request.ts index 663be056..647b30f6 100644 --- a/web/src/utils/request.ts +++ b/web/src/utils/request.ts @@ -27,6 +27,7 @@ interface data { const service = axios.create({ baseURL: '/api', // 与vite.config.ts中的代理配置对应 // timeout: 10000, // 请求超时时间 + withCredentials: false, headers: { 'Content-Type': 'application/json' }, @@ -46,11 +47,12 @@ let requests: RequestQueueItem[] = []; service.interceptors.request.use( (config) => { if (!config.headers.Authorization) { - const token = localStorage.getItem('token'); + const token = cookieUtils.get('authToken'); if (token) { config.headers.Authorization = `Bearer ${token}`; } } + config.headers.Cookie = undefined return config; }, (error) => { @@ -63,7 +65,7 @@ service.interceptors.request.use( // 刷新token的函数 const tokenRefresh = async (): Promise => { try { - const refresh_token = localStorage.getItem('refresh_token'); + const refresh_token = cookieUtils.get('refreshToken'); if (window.location.hash.includes('#/invite-register')) { throw new Error(i18n.t('common.refreshTokenNotExist')); } @@ -73,7 +75,7 @@ const tokenRefresh = async (): Promise => { // 使用原生axios调用refresh接口,避免触发拦截器导致的循环调用 const response: any = await refreshToken(); const newToken = response.access_token; - localStorage.setItem('token', newToken); + cookieUtils.set('authToken', newToken); return newToken; } catch (error) { // 如果refresh接口也返回401,则退出登录 @@ -274,6 +276,7 @@ export const request = { headers: { 'Content-Type': 'multipart/form-data', }, + withCredentials: false, ...config }); }, @@ -295,4 +298,38 @@ export const request = { }; + +// 获取父级域名 +const getParentDomain = () => { + const hostname = window.location.hostname + const parts = hostname.split('.') + return parts.length > 2 ? `.${parts.slice(-2).join('.')}` : hostname +} + +// Cookie操作工具 +export const cookieUtils = { + set: (name: string, value: string, domain = getParentDomain()) => { + document.cookie = `${name}=${value}; domain=${domain}; path=/; secure; samesite=strict` + }, + get: (name: string) => { + const value = `; ${document.cookie}` + const parts = value.split(`; ${name}=`) + return parts.length === 2 ? parts.pop()?.split(';').shift() : null + }, + remove: (name: string, domain = getParentDomain()) => { + document.cookie = `${name}=; domain=${domain}; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT` + }, + clear: (domain = getParentDomain()) => { + document.cookie.split(';').forEach(cookie => { + const eqPos = cookie.indexOf('='); + const name = eqPos > -1 ? cookie.substr(0, eqPos).trim() : cookie.trim(); + if (name) { + document.cookie = `${name}=; domain=${domain}; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`; + document.cookie = `${name}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`; + } + }); + }, +} + + export default service; \ No newline at end of file diff --git a/web/src/utils/stream.ts b/web/src/utils/stream.ts index e5a65c7b..2c827c2f 100644 --- a/web/src/utils/stream.ts +++ b/web/src/utils/stream.ts @@ -1,10 +1,11 @@ import { message } from 'antd'; import i18n from '@/i18n' +import { cookieUtils } from './request' const API_PREFIX = '/api' export const handleSSE = async (url: string, data: any, onMessage?: (data: string) => void, config = {}) => { try { - const token = localStorage.getItem('token'); + const token = cookieUtils.get('authToken'); const response = await fetch(`${API_PREFIX}${url}`, { method: 'POST', headers: { diff --git a/web/src/views/ApplicationConfig/Agent.tsx b/web/src/views/ApplicationConfig/Agent.tsx index 4a5c9daa..dc600f1f 100644 --- a/web/src/views/ApplicationConfig/Agent.tsx +++ b/web/src/views/ApplicationConfig/Agent.tsx @@ -24,7 +24,7 @@ import { saveAgentConfig } from '@/api/application' import Knowledge from './components/Knowledge' import VariableList from './components/VariableList' import { getApplicationConfig } from '@/api/application' -import { getKnowledgeBaseList } from '@/views/KnowledgeBase/service' +import { getKnowledgeBaseList } from '@/api/knowledgeBase' import { memoryConfigListUrl } from '@/api/memory' import CustomSelect from '@/components/CustomSelect' diff --git a/web/src/views/ApplicationConfig/Cluster.tsx b/web/src/views/ApplicationConfig/Cluster.tsx index 29212269..66e8f5a9 100644 --- a/web/src/views/ApplicationConfig/Cluster.tsx +++ b/web/src/views/ApplicationConfig/Cluster.tsx @@ -44,12 +44,22 @@ const Cluster: FC<{application: SubAgentItem}> = ({application}) => { priority: 1, })) } - console.log('params', params) - form.validateFields().then(() => { - saveMultiAgentConfig(id as string, params).then(() => { - if (flag) { - message.success(t('common.saveSuccess')) - } + + return new Promise((resolve, reject) => { + form.validateFields().then(() => { + saveMultiAgentConfig(id as string, params) + .then(() => { + if (flag) { + message.success(t('common.saveSuccess')) + } + resolve(true) + }) + .catch(error => { + reject(error) + }) + }) + .catch(error => { + reject(error) }) }) } diff --git a/web/src/views/ApplicationConfig/components/Chat.tsx b/web/src/views/ApplicationConfig/components/Chat.tsx index ad9cd60b..9a70b5f2 100644 --- a/web/src/views/ApplicationConfig/components/Chat.tsx +++ b/web/src/views/ApplicationConfig/components/Chat.tsx @@ -2,9 +2,9 @@ import { type FC, useRef, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import clsx from 'clsx' import { Input, Form } from 'antd' -import ChatIcon from '@/assets/images/application/chat.svg' +import ChatIcon from '@/assets/images/application/chat.png' import ChatSendIcon from '@/assets/images/application/chatSend.svg' -import DebuggingEmpty from '@/assets/images/application/debuggingEmpty.svg' +import DebuggingEmpty from '@/assets/images/application/debuggingEmpty.png' import type { ChatItem, ChatData, Config } from '../types' import { runCompare, draftRun } from '@/api/application' import Empty from '@/components/Empty' @@ -114,6 +114,7 @@ const Chat: FC = ({ chatList, data, updateChatList, handleSave, sourc if (index === targetIndex) { return { ...item, + conversation_id: parsed.conversation_id, list: item.list?.map((msg, msgIndex) => { if (msgIndex === item.list!.length - 1 && msg.role === 'answer') { return { ...msg, content: msg.content + parsed.content }; @@ -126,10 +127,6 @@ const Chat: FC = ({ chatList, data, updateChatList, handleSave, sourc })) } } - - if (parsed.conversation_id) { - setConversationId(parsed.conversation_id); - } } else if (line.startsWith('data:') && (isCluster && currentEvent === 'message')) { const jsonData = line.substring(5).trim(); const parsed = JSON.parse(jsonData); @@ -175,10 +172,6 @@ const Chat: FC = ({ chatList, data, updateChatList, handleSave, sourc })) } } - - if (parsed.conversation_id) { - setConversationId(parsed.conversation_id); - } } else if (line.startsWith('data:') && (isCluster && currentEvent === 'model_end')) { const jsonData = line.substring(5).trim(); const parsed = JSON.parse(jsonData); @@ -247,6 +240,7 @@ const Chat: FC = ({ chatList, data, updateChatList, handleSave, sourc {chatList.length === 0 ? = ({ chatList, data, updateChatList, handleSave, sourc } {!chat.list || chat.list.length === 0 - ? + ? : (
scrollContainerRefs.current[index] = el} className={clsx(`rb:relative rb:overflow-y-auto rb:overflow-x-hidden`, { 'rb:h-[calc(100vh-186px)]': isCluster, diff --git a/web/src/views/ApplicationConfig/components/KnowledgeListModal.tsx b/web/src/views/ApplicationConfig/components/KnowledgeListModal.tsx index 2145c8f4..0c7b47b2 100644 --- a/web/src/views/ApplicationConfig/components/KnowledgeListModal.tsx +++ b/web/src/views/ApplicationConfig/components/KnowledgeListModal.tsx @@ -5,7 +5,7 @@ import clsx from 'clsx' import type { KnowledgeModalRef, KnowledgeBase } from '../types' import type { KnowledgeBaseListItem } from '@/views/KnowledgeBase/types' import RbModal from '@/components/RbModal' -import { getKnowledgeBaseList } from '@/views/KnowledgeBase/service' +import { getKnowledgeBaseList } from '@/api/knowledgeBase' import SearchInput from '@/components/SearchInput' import Empty from '@/components/Empty' import { formatDateTime } from '@/utils/format'; diff --git a/web/src/views/ForgettingEngine/components/LineChart.tsx b/web/src/views/ForgettingEngine/components/LineChart.tsx index e699813d..c6a0dfc0 100644 --- a/web/src/views/ForgettingEngine/components/LineChart.tsx +++ b/web/src/views/ForgettingEngine/components/LineChart.tsx @@ -1,4 +1,4 @@ -import { type FC, useRef, useEffect, useState } from 'react' +import { type FC, useRef, useEffect, useState, useMemo, useCallback } from 'react' import { useTranslation } from 'react-i18next' import ReactEcharts from 'echarts-for-react'; import type { ConfigForm } from '../types' @@ -30,6 +30,7 @@ const LineChart: FC = ({ config }) => { const { t } = useTranslation() const chartRef = useRef(null); const debounceRef = useRef() + const resizeScheduledRef = useRef(false) const xAxisData = [1, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60] const [initialData, setInitialData] = useState([]) const [currentData, setCurrentData] = useState({ @@ -38,7 +39,7 @@ const LineChart: FC = ({ config }) => { data: [], config: {} }) - const seriesData = [ + const seriesData = useMemo(() => [ { ...SeriesConfig, name: `${t('forgettingEngine.quicklyForget')}(λ_time=0.3)`, @@ -51,56 +52,77 @@ const LineChart: FC = ({ config }) => { data: [], config: {lambda_mem: 1, lambda_time: 0.3, offset: 0.2} } - ] + ], [t]) useEffect(() => { getInitData() }, []) + + useEffect(() => { + const handleResize = () => { + if (chartRef.current && !resizeScheduledRef.current) { + resizeScheduledRef.current = true + requestAnimationFrame(() => { + chartRef.current?.getEchartsInstance().resize(); + resizeScheduledRef.current = false + }); + } + } + + const resizeObserver = new ResizeObserver(handleResize) + const chartElement = chartRef.current?.getEchartsInstance().getDom().parentElement + if (chartElement) { + resizeObserver.observe(chartElement) + } + + return () => { + resizeObserver.disconnect() + } + }, [initialData]) useEffect(() => { if (config) { clearTimeout(debounceRef.current) debounceRef.current = setTimeout(() => { getCaculateData(config) - }, 500) + }, 300) } return () => { - console.log('clearTimeout') clearTimeout(debounceRef.current) } }, [config]) // 快速遗忘:lambda_mem=0.3,lambda_time=1,offset=0.05; // 慢速遗忘:lambda_mem=1,lambda_time=0.3,offset=0.2 - const getInitData = () => { + const getInitData = useCallback(() => { const list = seriesData.map(item => ({ ...item, data: formatData(item.config) })) setInitialData(list) - } + }, [seriesData]) - const calculateSeriesData = (days: number, data: ConfigForm) => { - const { offset, lambda_time, lambda_mem } = data; - const S = 1 + const calculateSeriesData = useCallback((days: number, data: ConfigForm) => { + const offset = Number(data.offset) + const lambda_time = Number(data.lambda_time) + const lambda_mem = Number(data.lambda_mem) // R = offset + (1 - offset) × e^(-λtime × t / (λmem × S)) - return (Number(offset) + (1 - Number(offset)) * Math.exp(-Number(lambda_time) * days / (Number(lambda_mem) * S))).toFixed(4) - } - const formatData = (data: ConfigForm) => { + return +(offset + (1 - offset) * Math.exp(-lambda_time * days / lambda_mem)).toFixed(4) + }, []) + const formatData = useCallback((data: ConfigForm) => { return xAxisData.map(days => Number(calculateSeriesData(days, data))) - } + }, [calculateSeriesData]) - const getCaculateData = (data: ConfigForm) => { + const getCaculateData = useCallback((data: ConfigForm) => { if (!data) { return } - console.log('getCaculateData', data) - setCurrentData({ - ...currentData, + setCurrentData(prev => ({ + ...prev, config: data, name: `${t('forgettingEngine.currentConfig')}(λ_time=${data.lambda_time})`, data: xAxisData.map(days => Number(calculateSeriesData(days, data))) - }) - } + })) + }, [t, calculateSeriesData]) return ( <> @@ -175,17 +197,6 @@ const LineChart: FC = ({ config }) => { opts={{ renderer: 'canvas' }} notMerge={true} lazyUpdate={true} - onEvents={{ - // 图表渲染完成后再次调整大小,确保宽度正确 - // 使用 setTimeout 避免在主渲染过程中调用 resize - rendered: () => { - if (chartRef.current) { - setTimeout(() => { - chartRef.current?.getEchartsInstance().resize(); - }, 0); - } - } - }} /> )} diff --git a/web/src/views/ForgettingEngine/types.ts b/web/src/views/ForgettingEngine/types.ts index 0a0bfb45..6313f88d 100644 --- a/web/src/views/ForgettingEngine/types.ts +++ b/web/src/views/ForgettingEngine/types.ts @@ -39,10 +39,12 @@ export interface CurveRecord { } export interface ConfigForm { + config_id?: string; statement_granularity?: string; include_dialogue_context?: boolean; max_context?: string; lambda_time: string | number; lambda_mem: string | number; offset: string | number; + [key: string]: any; } \ No newline at end of file diff --git a/web/src/views/Home/components/LineCard.tsx b/web/src/views/Home/components/LineCard.tsx index f6885d19..e343dd26 100644 --- a/web/src/views/Home/components/LineCard.tsx +++ b/web/src/views/Home/components/LineCard.tsx @@ -156,17 +156,6 @@ const LineCard: FC = ({ chartData, limit, onChange, type, classNa opts={{ renderer: 'canvas' }} notMerge={true} lazyUpdate={true} - onEvents={{ - // 图表渲染完成后再次调整大小,确保宽度正确 - // 使用 setTimeout 避免在主渲染过程中调用 resize - rendered: () => { - if (chartRef.current) { - setTimeout(() => { - chartRef.current?.getEchartsInstance().resize(); - }, 0); - } - } - }} /> ) : } diff --git a/web/src/views/Home/components/PieCard.tsx b/web/src/views/Home/components/PieCard.tsx index 76f78177..5a437268 100644 --- a/web/src/views/Home/components/PieCard.tsx +++ b/web/src/views/Home/components/PieCard.tsx @@ -1,4 +1,4 @@ -import { type FC, useRef } from 'react' +import { type FC, useRef, useEffect } from 'react' import { useTranslation } from 'react-i18next' import ReactEcharts from 'echarts-for-react'; import Card from './Card' @@ -14,6 +14,29 @@ const Colors = ['#155EEF', '#31E8FF', '#AD88FF', '#FFB048', '#4DA8FF', '#03BDFF' const PieCard: FC = ({ chartData, loading }) => { const { t } = useTranslation() const chartRef = useRef(null); + const resizeScheduledRef = useRef(false) + + useEffect(() => { + const handleResize = () => { + if (chartRef.current && !resizeScheduledRef.current) { + resizeScheduledRef.current = true + requestAnimationFrame(() => { + chartRef.current?.getEchartsInstance().resize(); + resizeScheduledRef.current = false + }); + } + } + + const resizeObserver = new ResizeObserver(handleResize) + const chartElement = chartRef.current?.getEchartsInstance().getDom().parentElement + if (chartElement) { + resizeObserver.observe(chartElement) + } + + return () => { + resizeObserver.disconnect() + } + }, [chartData]) return ( = ({ chartData, loading }) => { style={{ height: '265px', width: '100%', minWidth: '400px' }} notMerge={true} lazyUpdate={true} - onEvents={{ - // 图表渲染完成后再次调整大小,确保宽度正确 - // 使用 setTimeout 避免在主渲染过程中调用 resize - rendered: () => { - if (chartRef.current) { - setTimeout(() => { - chartRef.current?.getEchartsInstance().resize(); - }, 0); - } - } - }} /> } diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx index 44bd1d2f..92059e7e 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx @@ -4,11 +4,11 @@ import { useTranslation } from 'react-i18next'; import { useLocation, useNavigate, useParams } from 'react-router-dom'; import Table, { type TableRef } from '@/components/Table' import type { AnyObject } from 'antd/es/_util/type'; -import type { UploadFileResponse,KnowledgeBaseDocumentData } from '../types'; +import type { UploadFileResponse,KnowledgeBaseDocumentData } from '@/views/KnowledgeBase/types'; import type { ColumnsType } from 'antd/es/table'; import UploadFiles from '@/components/Upload/UploadFiles'; import type { UploadRequestOption } from 'rc-upload/lib/interface'; -import { uploadFile, getDocumentList, previewDocumentChunk, parseDocument, updateDocument, deleteDocument } from '../service'; +import { uploadFile, getDocumentList, previewDocumentChunk, parseDocument, updateDocument, deleteDocument } from '@/api/knowledgeBase'; import exitIcon from '@/assets/images/knowledgeBase/exit.png'; import { NoData } from '../components/noData'; import noDataIcon from '@/assets/images/knowledgeBase/noData.png'; @@ -227,7 +227,7 @@ const CreateDataset = () => { return ( - {value === 1 ? 'Completed' : 'Processing'} + {value === 1 ? t('knowledgeBase.completed') : value === 0 ? t('knowledgeBase.pending') : t('knowledgeBase.processing')} ); } diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx index 207bf673..1994c456 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx @@ -10,8 +10,8 @@ import { useEffect, useState, useRef, type FC } from 'react'; import { useNavigate, useParams, useLocation } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { Button, Spin, message, Switch } from 'antd'; -import { getDocumentDetail, getDocumentChunkList, downloadFile, updateDocument, updateDocumentChunk, createDocumentChunk } from '../service'; -import type { KnowledgeBaseDocumentData, RecallTestData } from '../types'; +import { getDocumentDetail, getDocumentChunkList, downloadFile, updateDocument, updateDocumentChunk, createDocumentChunk } from '@/api/knowledgeBase'; +import type { KnowledgeBaseDocumentData, RecallTestData } from '@/views/KnowledgeBase/types'; import { formatDateTime } from '@/utils/format'; import InfoPanel, { type InfoItem } from '../components/InfoPanel'; import RecallTestResult from '../components/RecallTestResult'; diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx index 571f8ed0..7c43b79f 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx @@ -12,7 +12,7 @@ import { MoreOutlined } from '@ant-design/icons'; import folderIcon from '@/assets/images/knowledgeBase/folder.png'; import textIcon from '@/assets/images/knowledgeBase/text.png'; import editIcon from '@/assets/images/knowledgeBase/edit.png'; -import { getKnowledgeBaseDetail, deleteDocument, downloadFile, updateKnowledgeBase } from '../service'; +import { getKnowledgeBaseDetail, deleteDocument, downloadFile, updateKnowledgeBase } from '@/api/knowledgeBase'; import type { CreateModalRef, KnowledgeBaseListItem, @@ -22,7 +22,7 @@ import type { ShareModalRef, CreateDatasetModalRef,FolderFormData, KnowledgeBaseDocumentData -} from '../types'; +} from '@/views/KnowledgeBase/types'; import RecallTestDrawer from '../components/RecallTestDrawer'; import CreateFolderModal from '../components/CreateFolderModal'; import CreateModal from '../components/CreateModal'; @@ -64,6 +64,7 @@ const Private: FC = () => { const [folderTreeRefreshKey, setFolderTreeRefreshKey] = useState(0); const { allBreadcrumbs, setCustomBreadcrumbs } = useMenu(); const [folderPath, setFolderPath] = useState>([]); + const [selectedKeys, setSelectedKeys] = useState([]); useEffect(() => { if (knowledgeBaseId) { let url = `/documents/${knowledgeBaseId}/${parentId}/documents`; @@ -143,8 +144,23 @@ const Private: FC = () => { disposable: false, appSystem: null, subs: [], + onClick: (e?: React.MouseEvent) => { + // 阻止默认行为和事件冒泡 + e?.preventDefault(); + e?.stopPropagation(); + // 点击知识库名称,回到根目录 + setParentId(knowledgeBaseId); + setFolder({ + kb_id: knowledgeBaseId ?? '', + parent_id: knowledgeBaseId ?? '' + }); + setTableApi(`/documents/${knowledgeBaseId}/${knowledgeBaseId}/documents`); + setFolderPath([]); + setSelectedKeys([knowledgeBaseId ?? '']); + return false; + }, }, - ...folderPath.map((folder) => ({ + ...folderPath.map((folder, index) => ({ id: 0, parent: 0, code: null, @@ -166,6 +182,22 @@ const Private: FC = () => { disposable: false, appSystem: null, subs: [], + onClick: (e?: React.MouseEvent) => { + // 阻止默认行为和事件冒泡 + e?.preventDefault(); + e?.stopPropagation(); + // 点击文件夹,回到该文件夹层级 + setParentId(folder.id); + setFolder({ + kb_id: knowledgeBaseId ?? '', + parent_id: folder.id + }); + setTableApi(`/documents/${knowledgeBaseId}/${folder.id}/documents`); + // 更新文件夹路径,只保留到当前点击的文件夹 + setFolderPath(folderPath.slice(0, index + 1)); + setSelectedKeys([folder.id]); + return false; + }, })), ]; @@ -173,17 +205,18 @@ const Private: FC = () => { }; // 处理树节点选择 - const onSelect = (selectedKeys: React.Key[]) => { - if (!selectedKeys.length) return; + const onSelect = (keys: React.Key[]) => { + if (!keys.length) return; if (!folder) return; const f = { ...folder, - parent_id: String(selectedKeys[0]), + parent_id: String(keys[0]), } - let url = `/documents/${knowledgeBaseId}/${String(selectedKeys[0])}/documents`; + let url = `/documents/${knowledgeBaseId}/${String(keys[0])}/documents`; setTableApi(url); - setParentId(String(selectedKeys[0])) + setParentId(String(keys[0])) setFolder(f) + setSelectedKeys(keys) }; // 处理文件夹路径变化 @@ -511,6 +544,7 @@ const Private: FC = () => { refreshKey={folderTreeRefreshKey} onRootLoad={handleRootTreeLoad} onFolderPathChange={handleFolderPathChange} + selectedKeys={selectedKeys} />
)} diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/Share.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/Share.tsx index 307a370f..8398bb50 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/Share.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/Share.tsx @@ -1,7 +1,7 @@ import { useEffect, useState, useRef, type FC } from 'react'; import { useParams } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; -import type { KnowledgeBaseListItem, RecallTestDrawerRef } from '../types'; +import type { KnowledgeBaseListItem, RecallTestDrawerRef } from '@/views/KnowledgeBase/types'; import RecallTest from '../components/RecallTest'; import InfoPanel, { type InfoItem } from '../components/InfoPanel'; import shareUserIcon from '@/assets/images/knowledgeBase/share-user.png'; @@ -13,8 +13,9 @@ import kbSizeIcon from '@/assets/images/knowledgeBase/kb-size.png'; import kbModelIcon from '@/assets/images/knowledgeBase/kb-model.png'; import kbHistoryIcon from '@/assets/images/knowledgeBase/kb-history.png'; -import { getKnowledgeBaseDetail } from '../service'; +import { getKnowledgeBaseDetail } from '@/api/knowledgeBase'; import { formatDateTime } from '@/utils/format'; +import { useMenu } from '@/store/menu'; const Share: FC = () => { const { t } = useTranslation(); @@ -24,6 +25,7 @@ const Share: FC = () => { const [knowledgeBase, setKnowledgeBase] = useState(null); const recallTestRef = useRef(null); const [infoItems, setInfoItems] = useState([]); + const { allBreadcrumbs, setCustomBreadcrumbs } = useMenu(); useEffect(() => { console.log('Share.tsx - useParams result:', params); console.log('Share.tsx - knowledgeBaseId:', knowledgeBaseId); @@ -40,6 +42,13 @@ const Share: FC = () => { console.warn('Share.tsx - knowledgeBaseId is undefined or empty'); } }, [knowledgeBaseId]); + + // 更新面包屑 + useEffect(() => { + if (knowledgeBase) { + updateBreadcrumbs(); + } + }, [knowledgeBase]); const formatInfoItems = (data: KnowledgeBaseListItem): InfoItem[] => { const items: InfoItem[] = [ { @@ -103,6 +112,47 @@ const Share: FC = () => { }); }; + // 更新面包屑,包含知识库名称 + const updateBreadcrumbs = () => { + if (!knowledgeBase) return; + + const baseBreadcrumbs = allBreadcrumbs['space'] || []; + // 只保留知识库菜单项之前的面包屑 + const knowledgeBaseMenuIndex = baseBreadcrumbs.findIndex(item => item.path === '/knowledge-base'); + const filteredBaseBreadcrumbs = knowledgeBaseMenuIndex >= 0 + ? baseBreadcrumbs.slice(0, knowledgeBaseMenuIndex + 1) + : baseBreadcrumbs; + + const customBreadcrumbs = [ + ...filteredBaseBreadcrumbs, + { + id: 0, + parent: 0, + code: null, + label: knowledgeBase.name, + i18nKey: null, + path: null, + enable: true, + display: true, + level: 0, + sort: 0, + icon: null, + iconActive: null, + menuDesc: null, + deleted: null, + updateTime: 0, + new_: null, + keepAlive: false, + master: null, + disposable: false, + appSystem: null, + subs: [], + }, + ]; + + setCustomBreadcrumbs(customBreadcrumbs, 'space'); + }; + // const handleBack = () => { // navigate('/knowledge-base'); // }; diff --git a/web/src/views/KnowledgeBase/components/CreateDatasetModal.tsx b/web/src/views/KnowledgeBase/components/CreateDatasetModal.tsx index 9b2b080d..b362d6ae 100644 --- a/web/src/views/KnowledgeBase/components/CreateDatasetModal.tsx +++ b/web/src/views/KnowledgeBase/components/CreateDatasetModal.tsx @@ -11,7 +11,7 @@ import type { RadioChangeEvent } from 'antd'; import { Flex, Radio } from 'antd'; import { useTranslation } from 'react-i18next'; import { useNavigate } from 'react-router-dom'; -import type { CreateDatasetModalRef, CreateDatasetModalRefProps} from '../types'; +import type { CreateDatasetModalRef, CreateDatasetModalRefProps} from '@/views/KnowledgeBase/types'; import RbModal from '@/components/RbModal' const style: React.CSSProperties = { display: 'flex', diff --git a/web/src/views/KnowledgeBase/components/CreateFolderModal.tsx b/web/src/views/KnowledgeBase/components/CreateFolderModal.tsx index 81520e94..906c1f77 100644 --- a/web/src/views/KnowledgeBase/components/CreateFolderModal.tsx +++ b/web/src/views/KnowledgeBase/components/CreateFolderModal.tsx @@ -1,9 +1,9 @@ import { forwardRef, useImperativeHandle, useState } from 'react'; import { Form, Input } from 'antd'; import { useTranslation } from 'react-i18next'; -import type { FolderFormData, KnowledgeBaseFormData, CreateFolderModalRef, CreateFolderModalRefProps } from '../types'; +import type { FolderFormData, KnowledgeBaseFormData, CreateFolderModalRef, CreateFolderModalRefProps } from '@/views/KnowledgeBase/types'; import RbModal from '@/components/RbModal' -import { createFolder, updateKnowledgeBase } from '../service'; +import { createFolder, updateKnowledgeBase } from '@/api/knowledgeBase'; const CreateFolderModal = forwardRef(({ refreshTable }, ref) => { diff --git a/web/src/views/KnowledgeBase/components/CreateImageDataset.tsx b/web/src/views/KnowledgeBase/components/CreateImageDataset.tsx index a12ee394..4f40da7f 100644 --- a/web/src/views/KnowledgeBase/components/CreateImageDataset.tsx +++ b/web/src/views/KnowledgeBase/components/CreateImageDataset.tsx @@ -2,11 +2,11 @@ import { forwardRef, useImperativeHandle, useState, useRef } from 'react'; import { Form, Input } from 'antd'; import { useTranslation } from 'react-i18next'; import type { UploadFile } from 'antd'; -import type { CreateImageModalRef, CreateImageMoealRefProps,UploadFileResponse } from '../types'; +import type { CreateImageModalRef, CreateImageMoealRefProps,UploadFileResponse } from '@/views/KnowledgeBase/types'; import type { UploadRequestOption } from 'rc-upload/lib/interface'; import RbModal from '@/components/RbModal'; import UploadFiles from '@/components/Upload/UploadFiles'; -import { uploadFile } from '../service'; +import { uploadFile } from '@/api/knowledgeBase'; interface ImageDatasetFormData { name: string; diff --git a/web/src/views/KnowledgeBase/components/CreateModal.tsx b/web/src/views/KnowledgeBase/components/CreateModal.tsx index 3e882696..0ce25430 100644 --- a/web/src/views/KnowledgeBase/components/CreateModal.tsx +++ b/web/src/views/KnowledgeBase/components/CreateModal.tsx @@ -1,8 +1,8 @@ import { forwardRef, useEffect, useImperativeHandle, useMemo, useState } from 'react'; import { Form, Input, Select, Modal } from 'antd'; import { useTranslation } from 'react-i18next'; -import type { KnowledgeBaseListItem, KnowledgeBaseFormData, CreateModalRef, CreateModalRefProps } from '../types'; -import { getModelTypeList, getModelList, createKnowledgeBase, updateKnowledgeBase } from '../service' +import type { KnowledgeBaseListItem, KnowledgeBaseFormData, CreateModalRef, CreateModalRefProps } from '@/views/KnowledgeBase/types'; +import { getModelTypeList, getModelList, createKnowledgeBase, updateKnowledgeBase } from '@/api/knowledgeBase' import RbModal from '@/components/RbModal' const { TextArea } = Input; const { confirm } = Modal @@ -15,7 +15,7 @@ const CreateModal = forwardRef(({ const [modelTypeList, setModelTypeList] = useState([]); const [modelOptionsByType, setModelOptionsByType] = useState>({}); const [datasets, setDatasets] = useState(null); - const [currentType, setCurrentType] = useState('General'); // 保存当前 type + const [currentType, setCurrentType] = useState<'General' | 'Web' | 'Third-party' | 'Folder'>('General'); const [form] = Form.useForm(); const [loading, setLoading] = useState(false) @@ -102,7 +102,7 @@ const CreateModal = forwardRef(({ const handleOpen = (record?: KnowledgeBaseListItem | null, type?: string) => { setDatasets(record || null); const nextType = type || currentType; - setCurrentType(nextType); + setCurrentType(nextType as any); setBaseFields(record || null, nextType); getTypeList(record || null); setVisible(true); diff --git a/web/src/views/KnowledgeBase/components/FolderTree.tsx b/web/src/views/KnowledgeBase/components/FolderTree.tsx index dad92411..4a5a288c 100644 --- a/web/src/views/KnowledgeBase/components/FolderTree.tsx +++ b/web/src/views/KnowledgeBase/components/FolderTree.tsx @@ -8,7 +8,7 @@ import textIcon from '@/assets/images/knowledgeBase/text.png'; import imageIcon from '@/assets/images/knowledgeBase/image.png'; import datasetsIcon from '@/assets/images/knowledgeBase/datasets.png'; import switcherIcon from '@/assets/images/knowledgeBase/switcher.png'; -import { getFolderList } from '../service'; +import { getFolderList } from '@/api/knowledgeBase'; const { DirectoryTree } = Tree; @@ -59,6 +59,7 @@ interface FolderTreeProps { refreshKey?: number; onRootLoad?: (nodes: TreeNodeData[] | null) => void; onFolderPathChange?: (path: Array<{ id: string; name: string }>) => void; + selectedKeys?: React.Key[]; } const renderIcon = (icon?: string) => { @@ -273,6 +274,7 @@ const FolderTree: FC = ({ refreshKey = 0, onRootLoad, onFolderPathChange, + selectedKeys, }) => { const [treeData, setTreeData] = useState([]); @@ -396,6 +398,7 @@ const FolderTree: FC = ({ onExpand={onExpand} loadData={onLoadData} treeData={treeNodes} + selectedKeys={selectedKeys} /> ); }; diff --git a/web/src/views/KnowledgeBase/components/RecallTest.tsx b/web/src/views/KnowledgeBase/components/RecallTest.tsx index ddfe7386..81332a11 100644 --- a/web/src/views/KnowledgeBase/components/RecallTest.tsx +++ b/web/src/views/KnowledgeBase/components/RecallTest.tsx @@ -2,10 +2,10 @@ import { forwardRef, useImperativeHandle, useState, useEffect } from 'react'; import { Form, Input, Select, Button, InputNumber } from 'antd'; import { useTranslation } from 'react-i18next'; -import type { RecallTestDrawerRef, RecallTestData, RecallTestParams } from '../types'; +import type { RecallTestDrawerRef, RecallTestData, RecallTestParams } from '@/views/KnowledgeBase/types'; // import refreshIcon from '@/assets/images/knowledgeBase/refresh-blue.png'; import RecallTestResult from './RecallTestResult'; -import { reChunks, getRetrievalModeType } from '../service'; +import { reChunks, getRetrievalModeType } from '@/api/knowledgeBase'; import { hybrid } from 'react-syntax-highlighter/dist/esm/styles/hljs'; const { TextArea } = Input; diff --git a/web/src/views/KnowledgeBase/components/RecallTestDrawer.tsx b/web/src/views/KnowledgeBase/components/RecallTestDrawer.tsx index 2ce28251..3ad82b9b 100644 --- a/web/src/views/KnowledgeBase/components/RecallTestDrawer.tsx +++ b/web/src/views/KnowledgeBase/components/RecallTestDrawer.tsx @@ -2,7 +2,7 @@ import { forwardRef, useImperativeHandle, useState, useRef, useLayoutEffect, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import RbDrawer from '@/components/RbDrawer'; -import type { RecallTestDrawerRef } from '../types'; +import type { RecallTestDrawerRef } from '@/views/KnowledgeBase/types'; import RecallTest from './RecallTest'; const RecallTestDrawer = forwardRef(({},ref) => { diff --git a/web/src/views/KnowledgeBase/components/RecallTestResult.tsx b/web/src/views/KnowledgeBase/components/RecallTestResult.tsx index 9cb0a910..1475d790 100644 --- a/web/src/views/KnowledgeBase/components/RecallTestResult.tsx +++ b/web/src/views/KnowledgeBase/components/RecallTestResult.tsx @@ -9,7 +9,7 @@ import { FileOutlined, FieldTimeOutlined, EditOutlined } from '@ant-design/icons'; import { Skeleton } from 'antd'; import { useTranslation } from 'react-i18next'; -import type { RecallTestData } from '../types'; +import type { RecallTestData } from '@/views/KnowledgeBase/types'; import { NoData } from './noData'; import { formatDateTime } from '@/utils/format'; import InfiniteScroll from 'react-infinite-scroll-component'; diff --git a/web/src/views/KnowledgeBase/components/ShareModal.tsx b/web/src/views/KnowledgeBase/components/ShareModal.tsx index 4a769f5d..f37d669b 100644 --- a/web/src/views/KnowledgeBase/components/ShareModal.tsx +++ b/web/src/views/KnowledgeBase/components/ShareModal.tsx @@ -10,14 +10,14 @@ import { forwardRef, useImperativeHandle, useState, useRef } from 'react'; import { Switch } from 'antd'; import { useTranslation } from 'react-i18next'; import { message } from 'antd'; -import type { ShareModalRef, ShareModalRefProps, KnowledgeBase} from '../types'; +import type { ShareModalRef, ShareModalRefProps, KnowledgeBase} from '@/views/KnowledgeBase/types'; import RbModal from '@/components/RbModal' // import betchControlIcon from '@/assets/images/knowledgeBase/betch-control.png'; import kbIcon from '@/assets/images/knowledgeBase/knowledge-management.png'; // import robotIcon from '@/assets/images/knowledgeBase/robot.png'; -import { updateKnowledgeBase, getWorkspaceAuthorizationList } from '../service'; +import { updateKnowledgeBase, getWorkspaceAuthorizationList } from '@/api/knowledgeBase'; import { NoData } from './noData'; -import type { ListQuery, ShareSpaceModalRef } from '../types'; +import type { ListQuery, ShareSpaceModalRef } from '@/views/KnowledgeBase/types'; import { formatDateTime } from '@/utils/format'; import ShareSpaceModal from './ShareSpaceModal' const ShareModal = forwardRef(({ handleShare: onShare }, ref) => { diff --git a/web/src/views/KnowledgeBase/components/ShareSpaceModal.tsx b/web/src/views/KnowledgeBase/components/ShareSpaceModal.tsx index 899f6ec4..60cfd81d 100644 --- a/web/src/views/KnowledgeBase/components/ShareSpaceModal.tsx +++ b/web/src/views/KnowledgeBase/components/ShareSpaceModal.tsx @@ -10,14 +10,14 @@ import { forwardRef, useImperativeHandle, useState } from 'react'; import { Switch } from 'antd'; import { useTranslation } from 'react-i18next'; import { message } from 'antd'; -import type { ShareModalRef, ShareModalRefProps, KnowledgeBase} from '../types'; +import type { ShareModalRef, ShareModalRefProps, KnowledgeBase} from '@/views/KnowledgeBase/types'; import RbModal from '@/components/RbModal' // import betchControlIcon from '@/assets/images/knowledgeBase/betch-control.png'; import kbIcon from '@/assets/images/knowledgeBase/knowledge-management.png'; // import robotIcon from '@/assets/images/knowledgeBase/robot.png'; -import { getSpaceList, shareKnowledgeBase } from '../service'; +import { getSpaceList, shareKnowledgeBase } from '@/api/knowledgeBase'; import { NoData } from './noData'; -import type { SpaceItem } from '../types'; +import type { SpaceItem } from '@/views/KnowledgeBase/types'; import { formatDateTime } from '@/utils/format'; const ShareModal = forwardRef(({ handleShare: onShare }, ref) => { const { t } = useTranslation(); diff --git a/web/src/views/KnowledgeBase/datasets.tsx b/web/src/views/KnowledgeBase/datasets.tsx index b03e2da5..e5e6d79e 100644 --- a/web/src/views/KnowledgeBase/datasets.tsx +++ b/web/src/views/KnowledgeBase/datasets.tsx @@ -5,7 +5,7 @@ import { Button } from 'antd'; import { ArrowLeftOutlined } from '@ant-design/icons'; import { request } from '@/utils/request'; -import type { KnowledgeBase } from './types'; +import type { KnowledgeBase } from '@/views/KnowledgeBase/types'; const Datasets: FC = () => { const { t } = useTranslation(); diff --git a/web/src/views/KnowledgeBase/index.tsx b/web/src/views/KnowledgeBase/index.tsx index d17bcad9..f8f10c0e 100644 --- a/web/src/views/KnowledgeBase/index.tsx +++ b/web/src/views/KnowledgeBase/index.tsx @@ -10,14 +10,16 @@ import folderIcon from '@/assets/images/knowledgeBase/folder.png'; import generalIcon from '@/assets/images/knowledgeBase/datasets.png'; import webIcon from '@/assets/images/knowledgeBase/general.png'; import tpIcon from '@/assets/images/knowledgeBase/text.png'; -import type { KnowledgeBaseListItem, CreateModalRef, KnowledgeBaseListResponse, ListQuery } from './types' +import type { KnowledgeBaseListItem, CreateModalRef, KnowledgeBaseListResponse, ListQuery } from '@/views/KnowledgeBase/types' import CreateModal from './components/CreateModal' import RbCard from '@/components/RbCard' import SearchInput from '@/components/SearchInput' import Empty from '@/components/Empty' -import { getKnowledgeBaseList, getModelList, getModelTypeList, deleteKnowledgeBase, getKnowledgeBaseTypeList } from './service' +import { getKnowledgeBaseList, getModelList, getModelTypeList, deleteKnowledgeBase, getKnowledgeBaseTypeList } from '@/api/knowledgeBase' const { confirm } = Modal; import InfiniteScroll from 'react-infinite-scroll-component'; +import { useMenu } from '@/store/menu'; + type ModelMenuInfo = { menu: NonNullable; summary: string[]; @@ -41,6 +43,10 @@ const KnowledgeBaseManagement: FC = () => { const modalRef = useRef(null) const [messageApi, contextHolder] = message.useMessage(); + // 使用 menu store 管理面包屑 + const { allBreadcrumbs, setCustomBreadcrumbs } = useMenu(); + const [folderPath, setFolderPath] = useState>([]); + // 生成下拉菜单项(根据当前 item) const getOptMenuItems = (item: KnowledgeBaseListItem): MenuProps['items'] => { @@ -105,7 +111,17 @@ const KnowledgeBaseManagement: FC = () => { // 处理创建 const handleCreate = (type?: string) => { - modalRef?.current?.handleOpen(null, type) + // 如果在文件夹内,使用 folderPath 的最后一项作为 parent_id + // 这样更可靠,因为 folderPath 是直接管理的状态 + const currentParentId = folderPath.length > 0 + ? folderPath[folderPath.length - 1].id + : query.parent_id; // 降级使用 query.parent_id + + const record = currentParentId ? { + parent_id: currentParentId as string, + } as KnowledgeBaseListItem : null; + + modalRef?.current?.handleOpen(record, type) } // 动态生成 createItems @@ -118,7 +134,7 @@ const KnowledgeBaseManagement: FC = () => { handleCreate(type); }, })); - }, [knowledgeBaseTypes, t]); + }, [knowledgeBaseTypes, t, folderPath, query]); const typeToFieldKey = (type: string) => { const normalized = (type || '').toLowerCase(); switch (normalized) { @@ -176,7 +192,7 @@ const KnowledgeBaseManagement: FC = () => { const fetchKnowledgeBaseTypes = async () => { try { let types = await getKnowledgeBaseTypeList(); - types = types.filter(type => (type === 'General' )); //|| type === 'Folder' + types = types.filter(type => (type === 'General' || type === 'Folder' )); // //暂时未实现 ,过滤掉未实现 setKnowledgeBaseTypes(types); } catch (error) { @@ -337,6 +353,25 @@ const KnowledgeBaseManagement: FC = () => { }; // 处理跳转详情 const handleToDetail = (knowledgeBase: KnowledgeBaseListItem) => { + // 如果是 Folder 类型,刷新当前页面,显示该文件夹下的知识库列表 + if (knowledgeBase.type === 'Folder' || knowledgeBase.type === 'folder') { + // 添加到文件夹路径 + const newFolderPath = [ + ...folderPath, + { + id: knowledgeBase.id, + name: knowledgeBase.name, + }, + ]; + setFolderPath(newFolderPath); + + setQuery((prev) => ({ + ...prev, + parent_id: knowledgeBase.id, + })); + return; + } + // 根据权限类型跳转到不同的详情页 if (knowledgeBase.permission_id === 'Private' || knowledgeBase.permission_id === 'private') { navigate(`/knowledge-base/${knowledgeBase.id}/private`) @@ -344,6 +379,83 @@ const KnowledgeBaseManagement: FC = () => { navigate(`/knowledge-base/${knowledgeBase.id}/share`) } } + // 更新面包屑的函数 + const updateBreadcrumbs = () => { + const baseBreadcrumbs = allBreadcrumbs['space'] || []; + // 只保留知识库菜单项之前的面包屑 + const knowledgeBaseMenuIndex = baseBreadcrumbs.findIndex(item => item.path === '/knowledge-base'); + const filteredBaseBreadcrumbs = knowledgeBaseMenuIndex >= 0 + ? baseBreadcrumbs.slice(0, knowledgeBaseMenuIndex + 1) + : baseBreadcrumbs; + + // 给"知识库管理"添加点击事件,返回根目录 + const breadcrumbsWithClick = filteredBaseBreadcrumbs.map((item) => { + if (item.path === '/knowledge-base') { + return { + ...item, + onClick: (e?: React.MouseEvent) => { + e?.preventDefault(); + e?.stopPropagation(); + // 返回根目录 + setFolderPath([]); + setQuery((prev) => ({ + ...prev, + parent_id: undefined, + })); + return false; + }, + }; + } + return item; + }); + + const customBreadcrumbs = [ + ...breadcrumbsWithClick, + ...folderPath.map((folder, index) => ({ + id: 0, + parent: 0, + code: null, + label: folder.name, + i18nKey: null, + path: null, + enable: true, + display: true, + level: 0, + sort: 0, + icon: null, + iconActive: null, + menuDesc: null, + deleted: null, + updateTime: 0, + new_: null, + keepAlive: false, + master: null, + disposable: false, + appSystem: null, + subs: [], + onClick: (e?: React.MouseEvent) => { + e?.preventDefault(); + e?.stopPropagation(); + // 点击文件夹,回到该文件夹层级 + const newFolderPath = folderPath.slice(0, index + 1); + setFolderPath(newFolderPath); + setQuery((prev) => ({ + ...prev, + parent_id: folder.id, + })); + return false; + }, + })), + ]; + + setCustomBreadcrumbs(customBreadcrumbs, 'space'); + }; + + // 更新面包屑 + useEffect(() => { + updateBreadcrumbs(); + }, [folderPath]); + useEffect(() => { fetchModelTypes(); fetchKnowledgeBaseTypes(); diff --git a/web/src/views/KnowledgeBase/types.ts b/web/src/views/KnowledgeBase/types.ts index 1d235e22..04c66ac0 100644 --- a/web/src/views/KnowledgeBase/types.ts +++ b/web/src/views/KnowledgeBase/types.ts @@ -359,4 +359,4 @@ export interface ShareSpaceModalRef{ export interface ShareSpaceModalRefProps { handleShare?: () => void; -} \ No newline at end of file +} diff --git a/web/src/views/MemoryConversation/index.tsx b/web/src/views/MemoryConversation/index.tsx index 43c81cc6..c92044cc 100644 --- a/web/src/views/MemoryConversation/index.tsx +++ b/web/src/views/MemoryConversation/index.tsx @@ -4,7 +4,7 @@ import { Col, Row, App, Skeleton, Space, Select } from 'antd' import clsx from 'clsx' import ConversationEmptyIcon from '@/assets/images/conversation/conversationEmpty.svg' -import AnalysisEmptyIcon from '@/assets/images/conversation/analysisEmpty.svg' +import AnalysisEmptyIcon from '@/assets/images/conversation/analysisEmpty.png' import Card from './components/Card' import Chat from './components/Chat' import { readService, getUserMemoryList } from '@/api/memory' @@ -139,6 +139,9 @@ const MemoryConversation: FC = () => { : {logs.map((log, logIndex) => ( diff --git a/web/src/views/NoPermission/index.tsx b/web/src/views/NoPermission/index.tsx index a14e505c..ac547fd6 100644 --- a/web/src/views/NoPermission/index.tsx +++ b/web/src/views/NoPermission/index.tsx @@ -1,5 +1,5 @@ import { useTranslation } from 'react-i18next'; -import noPermission from '@/assets/images/empty/noPermission.svg'; +import noPermission from '@/assets/images/empty/noPermission.png'; import Empty from '@/components/Empty'; const NoPermission = () => { diff --git a/web/src/views/NotFound/index.tsx b/web/src/views/NotFound/index.tsx index 4a7fbbe6..6d879167 100644 --- a/web/src/views/NotFound/index.tsx +++ b/web/src/views/NotFound/index.tsx @@ -1,5 +1,5 @@ import { useTranslation } from 'react-i18next'; -import notFoundImg from '@/assets/images/empty/404.svg'; +import notFoundImg from '@/assets/images/empty/404.png'; import Empty from '@/components/Empty'; const NotFound = () => { diff --git a/web/src/views/SpaceManagement/components/SpaceModal.tsx b/web/src/views/SpaceManagement/components/SpaceModal.tsx index 7b4e5115..8596cceb 100644 --- a/web/src/views/SpaceManagement/components/SpaceModal.tsx +++ b/web/src/views/SpaceManagement/components/SpaceModal.tsx @@ -1,13 +1,14 @@ -import { forwardRef, useImperativeHandle, useState } from 'react'; -import { Form, Input, App } from 'antd'; +import { forwardRef, useImperativeHandle, useState, useEffect } from 'react'; +import { Form, Input, App, Select } from 'antd'; import { useTranslation } from 'react-i18next'; import type { SpaceModalData, SpaceModalRef, Space } from '../types' import RbModal from '@/components/RbModal' import { createWorkspace } from '@/api/workspaces' import RadioGroupCard from '@/components/RadioGroupCard' -import { getModelListUrl } from '@/api/models' +import { getModelListUrl, getModelList } from '@/api/models' import CustomSelect from '@/components/CustomSelect' +import type { Model } from '@/views/ModelManagement/types' const FormItem = Form.Item; @@ -28,6 +29,7 @@ const SpaceModal = forwardRef(({ const [form] = Form.useForm(); const [loading, setLoading] = useState(false) const [editVo, setEditVo] = useState(null) + const [modelList, setModelList] = useState([]) const values = Form.useWatch([], form); @@ -73,6 +75,21 @@ const SpaceModal = forwardRef(({ }); } + useEffect(() => { + getModels() + }, []) + + const getModels = () => { + const requests = [getModelList({ type: 'llm', pagesize: 100, page: 1 }), getModelList({ type: 'chat', pagesize: 100, page: 1 })] + Promise.all(requests) + .then(responses => { + const [chatRes, modelRes] = responses as { items: Model[] }[] + const chatList = chatRes.items || [] + const modelList = modelRes.items || [] + setModelList([...chatList, ...modelList]) + }) + } + // 暴露给父组件的方法 useImperativeHandle(ref, () => ({ handleOpen, @@ -104,13 +121,13 @@ const SpaceModal = forwardRef(({ name="llm" rules={[{ required: true, message: t('common.pleaseSelect') }]} > - { const { id } = useParams() const chartRef = useRef(null); + const resizeScheduledRef = useRef(false) const [loading, setLoading] = useState(false) const [data, setData] = useState>>([]) @@ -30,6 +31,29 @@ const PieCard: FC = () => { }) } + + useEffect(() => { + const handleResize = () => { + if (chartRef.current && !resizeScheduledRef.current) { + resizeScheduledRef.current = true + requestAnimationFrame(() => { + chartRef.current?.getEchartsInstance().resize(); + resizeScheduledRef.current = false + }); + } + } + + const resizeObserver = new ResizeObserver(handleResize) + const chartElement = chartRef.current?.getEchartsInstance().getDom().parentElement + if (chartElement) { + resizeObserver.observe(chartElement) + } + + return () => { + resizeObserver.disconnect() + } + }, [data]) + return ( <> {loading @@ -108,17 +132,6 @@ const PieCard: FC = () => { style={{ height: '340px', width: '100%' }} notMerge={true} lazyUpdate={true} - onEvents={{ - // 图表渲染完成后再次调整大小,确保宽度正确 - // 使用 setTimeout 避免在主渲染过程中调用 resize - rendered: () => { - if (chartRef.current) { - setTimeout(() => { - chartRef.current?.getEchartsInstance().resize(); - }, 0); - } - } - }} /> } diff --git a/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx b/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx index bec0e851..93412274 100644 --- a/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx +++ b/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx @@ -23,6 +23,7 @@ const RelationshipNetwork:FC = () => { const { t } = useTranslation() const { id } = useParams() const chartRef = useRef(null) + const resizeScheduledRef = useRef(false) const [nodes, setNodes] = useState([]) const [links, setLinks] = useState([]) const [categories, setCategories] = useState<{ name: string }[]>([]) @@ -83,6 +84,28 @@ const RelationshipNetwork:FC = () => { setNodes(uniqueNodes) }) } + + useEffect(() => { + const handleResize = () => { + if (chartRef.current && !resizeScheduledRef.current) { + resizeScheduledRef.current = true + requestAnimationFrame(() => { + chartRef.current?.getEchartsInstance().resize(); + resizeScheduledRef.current = false + }); + } + } + + const resizeObserver = new ResizeObserver(handleResize) + const chartElement = chartRef.current?.getEchartsInstance().getDom().parentElement + if (chartElement) { + resizeObserver.observe(chartElement) + } + + return () => { + resizeObserver.disconnect() + } + }, [nodes]) return ( <> {/* 关系网络 */} @@ -147,15 +170,6 @@ const RelationshipNetwork:FC = () => { notMerge={false} lazyUpdate={true} onEvents={{ - // 图表渲染完成后再次调整大小,确保宽度正确 - // 使用 setTimeout 避免在主渲染过程中调用 resize - rendered: () => { - if (chartRef.current) { - setTimeout(() => { - chartRef.current?.getEchartsInstance().resize(); - }, 0); - } - }, // 节点点击事件处理 click: (params: { dataType: string; data: Node }) => { if (params.dataType === 'node') { From 694a0eb4e38f739a42cddca3263a9a6cbcfe7655 Mon Sep 17 00:00:00 2001 From: zhaoying Date: Mon, 15 Dec 2025 15:13:41 +0800 Subject: [PATCH 03/92] update web --- web/.gitignore | 6 ------ web/src/assets/images/application/chat.png | Bin 0 -> 155923 bytes web/src/i18n/en.ts | 3 +++ web/src/i18n/zh.ts | 3 +++ 4 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 web/src/assets/images/application/chat.png diff --git a/web/.gitignore b/web/.gitignore index 0de8ef71..b398d222 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -24,9 +24,3 @@ dist-ssr *.sw? package-lock.json - -# 文档和截图(不上传到仓库) -操作说明.md -记忆熊系统功能使用说明.md -截图清单.md -images/ \ No newline at end of file diff --git a/web/src/assets/images/application/chat.png b/web/src/assets/images/application/chat.png new file mode 100644 index 0000000000000000000000000000000000000000..a8bb40fad1e36cecce84b928af4c529bd4adafec GIT binary patch literal 155923 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ʈDBIVZ|s|oPbih~A6Kc|-tX5s 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 Z@F+)Kfu71m1z$p-siya|`U&v;{{SH~Yw!R7 literal 0 HcmV?d00001 diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 184c34cd..41347c66 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -403,6 +403,7 @@ export const en = { apiKeyName: 'API Key Name', }, knowledgeBase: { + home: 'Home', selectSpace: 'Please select a workspace.', preview:'Preview', pleaseUploadFileFirst: 'Please upload file first', @@ -1171,6 +1172,8 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re quickReply: 'Quick Reply', web_search: 'Online search', memory: 'Memory', + memoryConversationAnalysisEmpty: 'There is currently no dialogue analysis content available', + memoryConversationAnalysisEmptySubTitle: 'After entering your user ID, click on "Send" to view the conversation memory' }, login: { title: 'Red Bear Memory Science', diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 8dc17275..7aeaed03 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -35,6 +35,7 @@ export const zh = { userMemoryDetail: '用户记忆详情', }, knowledgeBase: { + home: '首页', selectSpace: '请选择空间', preview:'预览', pleaseUploadFileFirst: '请先上传文件', @@ -1241,6 +1242,8 @@ export const zh = { startANewConversation: '开始新对话', normalReply: '正常回复', quickReply: '快速回复', + memoryConversationAnalysisEmpty: '当前没有可用的对话分析内容', + memoryConversationAnalysisEmptySubTitle: '输入用户ID后,单击“发送”查看对话记忆' }, login: { title: '红熊记忆科学', From 1eb36f1aef1402b74194c1c5211d5eead73382a9 Mon Sep 17 00:00:00 2001 From: zhaoying Date: Mon, 15 Dec 2025 15:14:56 +0800 Subject: [PATCH 04/92] update web --- web/src/assets/images/application/chat.svg | 54 ------------------ .../images/application/debuggingEmpty.png | Bin 0 -> 187957 bytes .../images/application/debuggingEmpty.svg | 54 ------------------ .../images/conversation/analysisEmpty.png | Bin 0 -> 193540 bytes .../images/knowledgeBase/blankImage.png | Bin 35221 -> 146125 bytes .../assets/images/knowledgeBase/noData.png | Bin 34832 -> 179498 bytes 6 files changed, 108 deletions(-) delete mode 100644 web/src/assets/images/application/chat.svg create mode 100644 web/src/assets/images/application/debuggingEmpty.png delete mode 100644 web/src/assets/images/application/debuggingEmpty.svg create mode 100644 web/src/assets/images/conversation/analysisEmpty.png diff --git a/web/src/assets/images/application/chat.svg b/web/src/assets/images/application/chat.svg deleted file mode 100644 index 9cdf744f..00000000 --- a/web/src/assets/images/application/chat.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - 常见问题 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/src/assets/images/application/debuggingEmpty.png b/web/src/assets/images/application/debuggingEmpty.png new file mode 100644 index 0000000000000000000000000000000000000000..0879d4e3fe047566ef2d34674e077725963f4017 GIT binary patch literal 187957 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

J5 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 %8|zYoFs~|3i}@$H($rAL_Ht7o0qnm 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 xYzFd=sb`f~Z= zeJ9qs@`K(}P_h-qXUc~tBP3= zZ-smT8lLb$(J{leK?;P<-juS|=f`|ksTS;_fs9|jn2RAzE=12W4NY1 z|6Ujqx!)WWcc{Rcz30bn!eE-alBuV za=;5=>avclMMzKep-@#yj1ji!cL~mp#bNcjP8(2jv1sV~(|JZ4=s!R?!sKERMlpy! zjhXyCIhHtmns!>-?(Go#`W~3Bvwcjv1EA88qd4$wc&5S#XLvZ{z-$5=p z_Yt7zxg45F-|&|r;bK%nUOp`qA=gx{+G0ef{)6f%UdkVhyd(^zfd!46vxE%q9L|R) zlyXSGvnM~e+^AY~u2yInM<1TeNG{?MhreY*Q36$(-U*I0f#Z-#AyWuaFAW;w49JCr zZ*LIUfi18bsfW;wlVdyWl+SWWyX=Qrtc>_M8o5c_NDrFmE609{xQ-UjXN8f!k$_-J zmW9Ug!hy^{Ow^Dr3}e2DQGhE3WFI_q!0DXNoo3u=ApMzHP9NsA>M6Ya-C+7 zmG#G~{hxf-|-}(_kYk}ob15|3|5}pFc5bSYHab=^D zglna*P4S|V1WrphJ!%vwXtltmz_dm-&Q|NsN>cr15CjGrhE|VfKD3yVQ9Dr{Wcx?4 zAF=~_?yax=Ot+>XlKf6@VfL5re!l+{taErpr)0@)aO}c&>Y4UhKX_L?>kGa{7ty{k zG8L%l3fVZ3zt!HxgoZ>D5(qv2!eiu>oHs;>I8nSCs;|YOhvAP-Pw{bz=cq7G-5pE8SKc?mrhRRr*sBTVZUBz`dl&>KT(Bt zlS6m1b~%aiB8NpoijL`btq^HegybSPAa>9N^4LzqR_Jknl6SeQp`vt5K_V{L-069G zb^X`L(SPUjYrS`DSRkNbAP-=fu*H=(4+Zrx1NZE;P=)|0U^#opWo|=cf_!7hnBJ9Iq&e z`rp|!S{~yJ&Nj)>*8_z;uJZEqjQ2FW7R*#17{L^E#>;AR#n&kv%KWtS0F3ruOkBzZlUe+tEVMj7 zbPkO02T2Q7!Unk|z6U`HJe735^=im`{{u;a`G|k<5_lt=T8}0>c{#WZ(c0V$NhsuoG} z$I<@*t3Xu06Y^~4>nr`-!t#I@2(3Qt1C;wHZxu{M$Hs;attu~C|8#$ ziNuY2@tSB#E~n1O3$71Cs$MOaRn^25xJy>6%-o=%gUWEtYLv62q~K?ADXWw>28{@* zzJWd{ra(@aCW>M=F@nd~Snk+2cLK=38OJt~xps8L+a6=1&D|>ocLb1K4+?ap)_yXr z128G%>@H4A{K&<9by%;L>s2q+8w?RF9ilkAF3(Dfqkn7h zOAQv!ihk$~mj%V_mb_s7R)O?Y?Fa+>k&k?&o_p-E`qWc@#q|@{{w;OI4_oxmdlY}G zc=htsj;$a4t>XPWo4XW&V%@ru4sO_0oJ~&I!HchQ{G4raa@`uRcEP5XJCEOQ?Ami^Gz zF;JW>yIEcKxa>|^*{{XhP)eAmTVKwc4en8XP0E8Br6V1IOCfg?Kn}?OP?E`Pgob@{*o5crakHIo+eqS@|JivwVe0|6?#1AH}C z#y#LgrTC|9!lyVdIo5Inij_c7o@goBj1B})yj5B(b#VTC>#JAB4&UUwU^X9mm+tzW z@6qc0cS}8AaoJU=mbF+W99fU1QRlUB@F+)nux^opgZf3W$?bsg7UOf9^yL|WzU&-K z?9$);{K{vao#gUyUUjjlQaS<$$=Jjnn9~Ou*kzm_Y-@LaTYI~g2^we6ms+-ea;A_k zREMQvspYOy%0Nm=5g2AuW^E+&73a`|cqHYdF7>i*s+4%Uvpk$N>#Vd`nr*p26N?U4 zAtz8%TtTZv_|_gE<5t0o9JF?Ll}>X3>TN)p{N#YI!a zYcfZcadPCS0;eg3T#d1cCKU8aAnCP^Wu$5?Miwkp=z&Wp1v%n@wv^aSR6H9>5eSZG zp#%)s+eJogP)y{`*x;(WT60&i+2b)p&YQdDzOT&jI-4VS;NJDLIPuz7uakl`RbE*M z#dm#mb-hNgxO#XLJyiE0g2m!~ayak5wmj`0eB|!>+!N2~-XV^mc_i@{+kl)(CjCmV$kikB8?p*oEM;6vyauV>L^&;TEA#7J-@?A zV&9%kUGB6%(O>>T((>S@UBzSf9MfyNSMr?W=h#*Bl`Cm3X6j^;6}0FnMM5o53N); z@))|>X0{;|YC~!A%7Ql*JdP6jjmd8)9N}grl295+RF}uCY1W%w?xTjt147Wu$V_Ek zwcH;#u3i#AE?NLt7FAY-)?OGVv7=ZAlh*`fjq0L)Ox1wEQAY~>0b%H{yQ{Llr|@zW z-!wgSq6La~e%JS?J28>ErNj$piQf6VSK$~M6(j?0NEF95M_T9)7)w$zlT7n!lS{gN z-5!Cj%m~z#mBnXro&B)-e$h|;ireBBq~&%>*)qFQmQ2+L0>`Z=fOz0sqQ%apu?qo^hg~LgCBFkCU zL5u`0R%@&gmMwCuca{V(M#Gy*%0|e7Me+!mD7%@u+zUmLGPb(Rt+gwmSk4EH=2947 zMlLm0lw}e$11AiSV}Kd7GRW(ojNOSgYjM7Z&SdeUH|UhccHk@O8g-%xS~KcuSkN7O zgQ_ZJC%4#HM8Di6bwE<0nxZZxi@K`jg^}}Os#Rf6;~VnGIW(G=@uA9ihpv<OCS^HW>vi{6rGGP##SP~t;^jvn{Q>nL~; z)xv`8W~OFiO)f)2QjD%SL8Ht{smW?30mdb@k*^gdl@W%g2I6^vkfN?`xbh8n8F4aa z=d&<|v74Bkp&_x$=n+7=C@j@ZplsE6$~tzTiX5SyS!`ab=y)7CxI_^}OyS zcN5H>*1k?FNS(5?I1n^WR%&g*;?=8uW3afnRXDmY_3KUyb?@Yd>IY8|EI#*~?!9;L z#X|nnVX*kfBl4Y{NBmK2yYT3vPMoOtN4Xz+>@k0wUOoQ!<8S_ta+@heOutPorq;(3%yqGTy2T9BGX*#*XRHkX%RXky_ ztN7CFYPVKSq~l$(?qDbP`A+k)nf6}2)cGW*rA_j#N}iUrREJ47SCu2zaVfmAAmT;KvX7HOqWnZ%BZsMM7Qy^{Fe*JoC(@ zXsj+@o)2a3zwbMJGI!=VC#4R5!gBFaRb!6UCG&l*gZ*t)BA30zf#w8{RZA_Fd)lAv zXdtLsEN7Y%NQydUrfgX$B{iJ{c!8T4tI@&898;Lp0nNzT>)~|rBI14sKG?cQdSCGi2~q_PUXs)#$Knc3;#-Ak&s0hybcRh zc1R6>XhcAcUL%l;zBq-1E-@w^N6$nuhMg(o2wOxRdNdlYCL79?&;oc=mKp8Ki_&2o z$rN2{xddwv;Uw5mGUb%iSt2*I8F{CEWkm#xKACjBy1sI7{{#0w|IP>Q{=&wJ9c->m zXLp=9y|=Npx}@*sv~41Yb2Jn1#ZICM$1s?c&?qi5JU+1?{XjGrK$UrQ3!V<;pdu2o z6^p1y;`t#`4YVZ}c$TUn2f=A?!{G62=%@6w-o?&h1dC5RAwBx2+MmY7KeQOZVsz{Ac6*#) z@hr0@3fCb9i2)758+bwdtqL)3-hO@i2*=dlXXOw7;eS*fet3QP`IrBvx>x>pW$)^z z<2h+{(%JOj4)b!5CVg&!;%mE?@++_HbP*`}3dhfy8XA7x&~$wXwJdCOQ~2F>E5n=A3Ol0z0d}*@4W+O- zO{Y5X!H0F`J2`^B>y*5oDRotab`}JRizPc8;5Sse8I8eePa)bm8tZ5?%Gk=-M9JJ2 zX_;>SO8Vx}yIuP7jzGMftDbza;Ltvu>f)m*&p(>`v`xSfL5D0cJ7cOchh3EwHfTvu zG@G&WUS~R(T~&?qJ_4%!gR9!vyQ0~0PY1i?^IewVoLBuq)|tAzst%XP0uqI$O$2bQ zi)P9|_%_AGx)|G&%&@_-L=9f*Qc99VFdK$dVVZcWlRM;$JZn-J85hBiB9IHeY2u1o z=0*}hBEA?KEA@gG#H6@eCPZV9M#V<|^>hDy^4m5H$naK_@W1DZ@$w7#)U zFqIhVT(>sYuH1FkT^G-sIdkdQ=Em-Xp>eAQGYr9UH}?qgP|Ua{j1sv)W30`LE>vUq zss$ZsQ$^lGUhS$$@R1WTIVt37rCiMv`hY4KncnQGwOa5PVvSG~?mMMSU!uDa9Lkp* z?3FS{bglsbrx%PxOGwsb3=}XtLG8d8o^?%?w7B+mvV)Gd$SJJeJB@v^Z4<4Q?U5NbBbW`fyG1ql-?>>d<-+C z$FVy8p~bUj&$eLn8-r6$vsxQZnipP(H9l8D9K6!jZlH(v>T2sL8ZYG&XWNC3LIt9cM>Slox$3djA*p{sd66;XlVAha8AP@pc$PoCFu>BprFb<0$M1XBP)@E6< zMx)W}Z{F+e-l}u{zf-sS&3m(GF|w@D+&guuPMtb+s_OKu)4#6U{RXR-%bPhgdaDg6 z$ga`1P{lCceut4>Y14D=0e#UQ|MC4FsviDmRZo7k=%o9){n9!`sohQwAb?=TNeKx^ zsp4tk3OrC$)fkh>klRI}sm5q@8g(^9RSmFm<|Nxz5P1^G?Tl`(k50GCJ;SaA!4~&Y z5SnCWK86Igxj>M>ea!951cU;CWNhW3As}6#C~|mFZZ0#9O%m#e6v$;LK_zg5!%gwr z3C;`kL+DT^fD?uggb6K)u+DjeLVzN$i*Sb;{4xe+p?$cXmpt{#dL_qTJt*fIYx>0> zL$iknlrp0g)*wDtqM(dQXv36|DL{Na#`(BT9?9c8O_>Pb^AT|+&~QU8126V5;rcmW zA!seAr%BP_d=?fL__}pa7JU6mnQYs>cx>kti)XI7=IYbicWgUZlm&+(zB84~a0Jlz zOrS3*Q&9s;>IiwILg1KGFm3AWDsUOwoHu5S?q42+0TCsvu3 zrgQUUDtRoEl4;bTcG6H|SGAkwG$xjF^QyF1#RXjt7WKklk&mI*g2iP%hCXlr*uCy# z@o9raqbr<<#)W|Wl?d?83KEccTceZT7{I%BrWd(E-7>$q!y6c*O z(TX*eeLbY?^RuskE68*{&YwsA0yz0ZLzt9v+uKLd=Q*hrJQp6=4=V$kLioCNeQ#BdGfnz~E@N})7j6i&W=-+J|F0*Zj$z%dy z_acG$M~jOUUuZFtFB&B)gZo3 z0JOu&KsW|1LNp7!R0#+i4-kWB(;&h76#y5&J}L^=^QwwTq%9TRN%RX#*K<`P&$3Ch z*)UD+j%c_hr*FMK&liEhEHY!_^uS7NN+a*&-&f=Wj4xxMg{m48X<8;PNg~*!MB06dn(Fi&NK9Uwg%)6Kw(>h0r2tYCx;N^vgP&6er2#HOAV0x`G3=|Zx zIy=#04Z_t@wLS@hI0xSIA#o8g4Po-8p3-@C#|UP zjQ{`;07*naRKNj`(5AWVg7pBnc}y=J@}q$o+*l6Q;AII2kw_W52BHAki`|5W0??S!NH)HC{TowO#y*rQ5JmuIpM>m0pNYPt^hDr8PpUE z2he;vsR)j6h+4!IoG9^jWC1&YbAaTGW+-5PGM0?e0!DpLpdU;M2rD9PNZ>J-?-xK2 z6l}A`3?v8;2%HI?y^psmB5JGC{Csb)^Q!HSUwPHmBb&EuTG_ODaZ;8Yz3Tc~mbP7W z?Xq_@72&{Qs=^p00K;V#LexwG0-Kvs6=I^U1J}=WW&hw>)FW>Kf%=@e9_QKSdU&!c z0U^xZff7fASy32RP|9f)JZWUbd@8Jx4Fra)S||z)p-?S2Bb|~pWhlzzU@;IVdO25i za-G>(u$XwFxO%dvyzGKtu}(+L!D5w??TiGA4?m0N8;9U>+c(={J?B1Sn&N_c7%>N#d0$iFnPa;5?=V z!8zr2pOa@o-iFkiNq$$D6=j{ZejPs(19dgc$GG9Q$F+Vp6$E40w zob62cwS~|IHIcL=P~^#oat&+duvT}*ue0TI!`byTI$kGnT{B&SK&>;l`xV0Djz+7^ zpSA~D#b?n2AAk4*<7%{Yuf@s#Dg;k-x*Y<>9*UwsD7uhPg10N0%UEz91%qmhI3Z|E ziF_hI2FNF#yjArI>S_hU0T0lrUi-c(N(6$wqI8=;QIrrLBXE!T07BE;KOzA_3PM33 z@8l{heeVlFs>aytGNFwi5D|6`2(-nVae?uLb1@>7a|D-i$3B?VzG zmdex1MDWXnKt!?~$tSC{=eB55+!9MS%3jn9$l-|k#y0j62qUB*w~3J9x;QUv+p9H2rRCYsLv0LHshDx5Jm4XCm& z?a&;MyrW9y@ieZipEK~KG|t1^jegIV*I=xBJ7-4E`!963UNuC%Y^HV1(wrqZXyiL* zQt~7(&!aTryK5(P5?}448oP5ES+dZjC9{f^b&sK+IA)8Jq>Ed&XqCa@E_-+tELP@V zktgz4zTLs%fd(w{n7;Xe%k(kyz6LB_$QvR;Fhwx^$i3z){lP*WNh!@bABI zusGSa5|;)mD@8T56N3u#{1_+mn(E_4XTA%6{5%oH)PS;I^6_)0NANiA6iT4jDGC{t zolZA)LJ@dd7o{L|>Is2jzb+Wt%1K3_D4kMMr>F=sVX31PIxDt$0uX~5nk(O6;5M2G z8u2sB+1G?dNN^(SyOXrm4z*URYx$XwVF7N2?-MgoF5RM2u1qs?+a#BZ$OY#wA`p>j zkMj$+A##4Z$oaDMy*Yc14HoO=Pf_ze(@vZ*o#gsHmXq_(E~z^cMf<@pJPaQCNg?cizY23rceZ`*e4a|Uz#K+4}qlQ5v=gB!@I!C0$xf^vk4#zUem3A$! zhq4?G6q+KtC{22QW1kv?9}unqoV$p?|MBUOfD;h6$a&=MUf~eJcL5Uu%Yy5%09pe- z!BewILJOcB2W4J3FGUFy0VXA+U_Y)RNP)tMgB9H(_Bv(NDW$r4$M$14zv$W{TQ|)Q zHg4=sI6?8Ln9-6F@>zzYlo9aJV(?+PW?^XrfSkCf31`R_CYPyFm;HUR2HH?%yMohz zMiq9=$#vOuh#%JsJi@cZSg zA1+;vHvxg;TW_57$A7qdJiYkLw(U2ZM#KuRJeG34N?O_^MJZK-NUsU0SjP52SsQilhbDNzj`gp4k= z#*re@Fi(*y)yzC&-&I`?1;Xu4`BWAdC@csPMGgR2fPoG^oH6%$;7iIao_lD{!RUeM zrQ{8+Hx)q5GHcV)D=u+r^n6YY2ikUOmgO3*y`Ds5oj^n&BAn(~{k&A6S{5mPwbPR8xojg}}kJp>BS)<$Z_VdlnB#qvz*7Tj#lo1dJ?c?Z~ zL)!9F>47+JEARjKhkyTnm-U(dV#Uhu7G0d|cgt~6ba_fs@K$x;!YPV@p@Tb&_rI{7 zlQK^vqnrg;=VM=3g}NGHw9L;%z8^_Og0Qb^8VxWRyEw6c$1rd>Fh+qoMxbQyv4u6E zh~x0FE_f1{w-7~E7!(A5B#?s$1iX9>eAib3S2)j;PgMns#4>3lYw%bI_Tcdr>$ERy zXB_nDnI$Mc%^TkYkOyQN$5#^k;y}&ZU0dLQP6+7KIA@Ll2S#}Rjpc+Pr76d7L%Hd>y7$EXB)3z&E=J1>SB76NT^}NJ5(| zD8nkj0Cip3ffE2hbNLufP0e#EvxBRHWkas*PvZOGdYXAe_3Jjx-nLG z3C0WfX&wO+k9`mrQOxVK;eA{^xER*Z7+ouNMYK>VJQFv z0rWY1nnHjmWr09~WMxPZ(C^RHJFmXt#HZbM^PwxQ+%yOhJNFX28qbL~R5NwftN#JXo!KWJhNQ}|PZdw8Ww3bsgxS$!C#+6pb2G45C0hp;udghh zEMf{4aR6)oAUAmJBR!2DxA=Npv!$sA&cAD>4VQZ1!0{*E_NK|6Z~xro?$Wg<%F`!K z=z^TkPH`%Z2E(%Mj17`HJx%-|DheyK;uh(lv{ZMsm@7iSDo|u_D7lHdRb6)-RK}qE zNTl7M){W3kW!;JIeGK#Pfq?~($gOi8J{e=;Y1OF zF?Jz1iXl)C?r4ueIW&mRnjp^tH#B+Q+D>GJajXagPU9galM#DSg`GsG3le#%!H81= zWx*f6f(AK`o1h5dSwZ`t+_$PSBM>yDMj}y8u)|y-l)F8#62dU-F^O>)MljgSmmr5- zEEDw!zQFY)_ERL<;QXv$$+@`_6f^|a5fRD-%$R6k%E9}&F4u2hKMraH$Ho&)A@6F! zF@(Lq%QaZQL%6VyaLwR)L0@_Q;Ok}G=o7F{$+ZWcXBiMeKv9&oY3ugo+i(AzkAB{( zU-7Y*z4ZD=%d#p*E6d%o%V%8dlWl+(^#MXSQ4v*98s*FdlzC$46UHh|MTFW+0#PQT z5mz9YsT4kGW%D$-%-J;}xT}beT?`4qBos!>hLk`LB`6s)zSQOyOE{Tn2uj@y4mp`z za-PJ699VcLLlst3mGz)WQjsKBO01{UfJHvN)8t?=Do@0_DJInpv#O`styOz`1f5Qq z^{S}HPn@(mp0NJnCS}#O)oN9hY_c=jt{BO~R;FO_9;^q8&G!{yzQ}$1m@{jC+(JJ* z!{oQqGwgC{sf!3t9dE1le)}7jKm5oQCwFvKjso2$hCMy5X|hzQjfP_$H9`_MfTc+t zQYeFt#`%wR2T3I+ymyUIQ@NA6D0$m;LPDn~LZP*GL_$Yxjvs{qwX<81`-MA;yAA;& zP687r1F*)A-06^M-2y-op}=V-W~pF5wym~PX3b9KIBa8GSOgMT*G6!Ca>jWnO_HU| zTN`pw;5Zz$5lnM8p_)fTGdHe_wv21R^fHdk$+G6!ESOw2BUV?F%Y1H5tHM?0Y_BuK zN&o;507*naRR2{G8Slg5qDiD+n?OY1YjXkw7rt`DgR$9Zt&U{@8>T{|4V|vj=!258M-vJow=K!&Afi>T2mjMTie{3;c1nTb%56OGqdnj6or9bl&Ua z0haK~n9X>y+z&!U)d?mmCr}NR!QDe5fGGqf)TO{tM7<5No(Mxq{?ODR_< z!-YT{u5(NmRO9=MMglb=MdfR*s+@(H(xxg)p`wH$r72iUT4_>KVLhZW z#nD*#4w`BQi^UqS$a=Tt=_0{mzuusee$@Vkjao-t1&dX!1c=EdlV~H(p<43?x&6=P zyqJ%n{g=>wve9)yiP-+Vw^iSE*Y3fu{pklz zZrZtWq-&cVn-d&Pp*j&mu_W*>%~%CBwGOun{M1o9ickdMV`~YWqUPgh@@gmz=%zwS zvs8{TH%Z(kfMD$<;x48poYuCi<=6LF+j5pS2>)^KQe>niiAZKdni5`;L1K`09Z0wDzO@?l9L&>*ltA$ggOA(Wx;&)9Clz%UGRpvF@?C1MGt2-NpItd@|s zd{IzVWZNbIDr5;3L(wJEMJNiI3~mtWC?`;t?GVa@b1-jWC(c(~27wxZ7n|8c8*Foi zV;3AyM5w_vJBW<@-0$=AboDlSUgB=W1d5maSI|UUJKAk4a3zwFfZ~;xI8IC?xO02m(Bbs;JAFIfd-973P$sp%rCG7Mr_UsUk>AQ zH8WKuttn|EK?84i;H2I*G4qid`ijq*hd|x-9FY zJ<^GE${Z}lv>q&O^OHpfix>PGi%;$+gaj3i@I)W%OfS|l=7CexBPZbvnA z7{ofav;H|HCV&JqX%3LpTKI}R|i!dudb!n4U6C_gKha+DhhY!jC3 zjvT4PU`8RDOC-1C3R|Y5fg`&P$7Z{6EAz)K*&$JTE-3wcj6>sP2hr>9^CM z{@vb!{P+Hb&hg%S_e=&b1Xc#_1@1lHYT|dgZ=TuSlV%yF5k}C6RCBvbfm~Svj30qE z_|cg>V*~tRjPb$^(yoB^g@&96y1+WcJ`xzl0NMsY8B#^wAmVl!f)vR5c|IYx6+v8e$Xz3hGb}&dGmh18<`RkpjZ9$xPgOaDj6q@pcjj=(s>6Uu!)9Q42tu zpdAk>6co-5pDBQwenC}85ae8r3-vBKn|O48LjMGaPThQyih zJ%Nmp5(zouAi;!=2{fRZDCK&{dmY9R$s1pKCa;(f-4pDan(2%fzX<|EqTiHjP~{`H zsxkt_S|w-(j=3by6T(!dM14)czq?p;Qj9}gC{qf24!zi!OGP=C{B+SDMMoO!Pc~|N z;+WNsAGInzZi`!M9aX70Sfv5y#^t)3_3% z@H3Lu44277C55_($x2hBs8gUoIjTDm+!?aQSKL>uDM=unU*wj|Vv($)0ysf52OxIi z-sP@ldzQOkN;cD-)^j_Jal^BZvA@t3!-Z+{nUQ*oNaS5k$|D-39Mh;z@(MXGG8ttY zhPIGxW?_z80uiCi*B2;ua$7>aN#55vFV_)OeD2`{G(2h?(6l-6QNU9A#{kXie}o}bNRN;HFAEFv&i?o5mfjd zU>pLt#~EA%-0wnV0wLi^BM6+tx4pNsuQyQxfprl zBVBF_G{$Cd4(4T1f<^$L#UKz71d_%CO-@wwKGYNHAa?=`w8MnL`@pBfaTwJ&E?5tjd(AhrAZrr%IqahoM!Q1;qWO$u-#t2n4rt-JZ?O z&*|dEx$(_6-*9;6_17(}jK^Iu6QP#SN1^O!plyTrDk$X`MxY3KjY24$&oPCi=6yGFhG$hX zrl7Q-#x4}7nXw?%lt@TPEF}$efDtHa>PU#zEn*!t)v-)Gd`uELsVY0kc?XM(rEE)D zMN+N#JBwpJiXK;sI@%ERiKw=?xLFq$x9H;5tvZR(UcO_Ojz-Z|h)kdC$1VAn(EGUb zefx0ksUoHHZqB*n{8D?RrKj+~?7n&mwHJ2t-o2tf@|~|5Z94SFr~l+7qsNDbh994l z^+Qq?4^3c?RjEE^s;7A*Ka42GNQ98a{URc2tkeXIGCu(dzxh_3CDO2F>%@(ad6+4X zzfj8E*;OQS7gBjrnUCv3(**Sl-0bUj2F=der~p>I0M?G@25|l*!Z^$}5%1+zoYw1! zcpGR=GT}m3?v}F)wVu~c#BCK9)O8`J1SjX8iue*RgA+ka!Ni*J2<+)ZnQ@+ZVw8(9%bk2)xvLKa2mqgpGn|V0Jd~%M zNI*WV^he*|=v4Du0zh4^)HQ&_P8`eU0-APK*bY_#%RoWN$M&62==^*+*|r!4+c)*j z+5{c{j#qX-WvE55G)Q#DwoF5c*MEhCs`d(M^J^7`P7Vffw79xXyKu zGYTlCn>alcvWV7{La+!Zg84rfP0?f^aVFs8&B=^sjV5MFEq9Hn8vnUDsE7l?kZ3E> z&q;I&6vfE<3u755q8nnJ2ojT~Zm)yMv&41uh z#}n4CHtD23Y9FuFsw$a-#ZkP$9(dqE_>Ws|8r^D7`QsLx4;I}iA~`qrPfJhV1I^v_ z^z~oRntS)|)!%;8nnepeAz7{SR@UA{DV}Cd26T$lHLUzoWIk={+_Mr{ha(6j-TSG$Md0SJPWmmuPwdJ>rUjQlcZmqX8%UO9&Ktp@O<^aJ@?#mLelU*&CLz}^;{RfT6TJ) zPT2>FGEdp>`t^+0#IsfM{Zx<6pdO#jcqJ5pTUX$*!!>;i25LJG?oE$n1R0DL32wiU zy8^W+Ft$JyMqT8`)7;OxR+mbQT<8Qi$TUvCIEYz-dLLR163Dyd0uo9RbvcB2yCXIf z-Uv2O8{D|0h9l#;-du1FHLM!LI6emhq|6l1lv!rf74caE1eZoT1XMsMP?Q0ICzS<< z<0>c$=yXa_fnKjj+qTS|y5*WphpySyKe=_==FzV0J60CvdeMwVX)}PAfNSAM#!#g~ z(<%_knW)D4tOm}LZIpW=j1%NRDUY;Aq1$zlDC-1>N(HY&0-Io*yD{80B`b{kjhwky z@WWf9n=Pees&uA=#3r&{B}J0e%9$q7Kom&rWaR0A1^pVb>KAh>+I4GC~U(WqC2Ez}OE2S70e%4Pk()6dZq0$*Yw$d51heu#1H^yq4W*%tE=amQS;K6%7e*Zo1 zzrSO1|Dz~6hotC8+35jA!HM$TUfl}h;gP_JO^grVJ{43LFFlIM=_7oGB9IVZ1W1rZ zrywu1A?!;yK{59au?8#w>I7~bDtkZg;+vT5!czG-*g=?+QRXuMLLNhCG}nDPDa07L zQ~&@F07*naRKaQz?FA6bL1;8l6A-e2F^&Z|o&;fkG?#G9VM~obbFA6~; zXF^cO7gRKf6v-bwCt;mnF%k?KLPRG;Ay}+gkCCq|sd7wNXyU1AA}HkJ=Ya-3k`84z zb!*j%r;43wo{ype1A^#1+6^8L8; z&O2?Nv-|v1(U<3yvn1|ap#qjPK(KLeq}O$qZXONG3Va%DBkxA1C>cQZQ} z_bItXnhnv|T1BN%>bZh{=CmnKEsrBEUL|jH6Z|yEUBo$X=LjQ&P$)E$r_7GdQpB)A zj%n2Z84*_?Wn~KB3QnA59=qX1T*uoR^06C^dTet0BAi3+!%k{v4JPED{ zVXrYJTb>wuwyE{N^U?!0EINmI*M5Wnf{!Ch2*D7z7eN6W{Xou{xDm-jShb8aJ_(tO zLA*enz}@eU6(0DgyemdtxRr@MNZ^t3{>z0 zDF_fl0f2qnCjt3tR-7O~;UF&1zKEdU>7s~$2#WIxtdk0{PPerA?p)lmW#eG`_U*%> zP^-p+4yP@qDg3WlY7rC}>wE;QR1?1I2_d#>lEgYGCQT(m0~E>E zk!>UdFH;ioQYRvNzBlr8(ZS**s#aCfs!rM?jVKsRHtKL(YyNS|p~tPN4`r~pV-oG` z_Z4BMZW`ILgGDrdj2i@ttN(M$KHy3J7&nAIpiY~fi3ir{&hE=~!nSh02lns3D}Co( zca3mp|LGI4dQ4BnkH&HTBfQJ+`67(G1_+$ z5lqctcDWobp9w%6_MKJDygsW1GEH5iDJg)D;q!1?A{?FLBHJNjq&#t#8(hb!X?J_z zx~aqUkz3R5HEOh__!}mY!4v(lp8pPIHA2-4?Mp-P;7tMS6@}f?ye~4C3BF#t0fhzJ%j2wjnUS zvE8?`X#&{4@V-PTV4w&gK!n73db{sSRK93TerjOO5BWW(JF1ye%|!q=?odc}c1W8YiJlfd`VTrYbJ0bmmfrV6oea zI_@VOSBv>{v5v=VZgI1&@DcRl;#S?TZJTbG{kY}&%4XkJ^uMnN5G<}fg68@F$BCX} z&z?PWC)sIoZ;9l5oqXEd7SGTFeg{6oE|<6Z-o1O({|A}9-?4k?SQ(D&*uL|j9^$=2 z4Iel(zTu~r>K%_J^w8@Tbd-{e#G-UpN%yu&-U{^ zPG==&xeL$ZZ2MDlCEq+0i{lmBwfAHC<^TGe9(iDX%5|~tC*k}uxuB)i1D{k6JgM=sI35TPK>({>LIBD$fxNMb z0>ZhWC;$Wy6S7pcD)KxyS7F?QFwgod$;U_tMonKsk0*-@{keF>wyno+x#hY?=KJ$i ze|{ldd&4bf=6VZBmFIob^<+kzXyCFOx0$$%v7dDa9RwgijcX(4iSbu*Ih9%BN;oyp zM?Nhlx5yJ-8e|yf<7Q=>h$s(6%|IDnID%76DN%>;&)9;HAPx>omLY>esMpQal9dvn zmJGo?%H`I{B(bcLL8B238j4uQ#1qAFLaj;aGIc4Fin6Mk0v|zd;0a^5Ued5_E{!Wb zhOQRXf84@;87!`Q1RXE@eZ^z5?<-k1U>tcIp={z_m+6(cZz$irN62N!e7i0Hpay0`tc8+`S0GGRZ=482thZyy0t~J?eA6AXyDua%Z_vEJmaN82# z-5Bm@U&$+*8!eY-JxZE1ou|)-eK~2SMz?8iauK0Cu;SF%Gxni?@~I84oJYp-Nxm3z z=QYm+=5~E{Gr_EMnLzzbWhPoJjUiI<_%qRLPP6)~G>)zG)vP`%I|PfBZalM6@BD#} zUG?2Ryk*NvCbPENZ@=A~KX8DZogwiFNi!jUf!{Kry;=`E#~#>p-B)he__FTjNWb{{ zI>zrC*Q2+MSC&41yu8%6$qG=d7~+uogSWF)EbE3qVCOLi%^s$3I&(!z6V%H`NT*Q{ zi1>H+7)l_4w|qf0?swrn%zMm5jD1FsWdu~<7-ou4c8JHgCpm`K;o}hWnFu!#iGa<7 z#ypUD8~bnrH*FjuFbo9Nlw%=-#3*hf@)XltMje_4F)FzPpPC3&SOaaD&nG3&1mKyE zg%ZeMv49Y83I~xQK(jrgIj6|(UJ7*sd@SXd^>_^9{7Y&TMbLg%>QHFCZPTWum)>&o zu`93GIBgz-UDGDnM^40%HE%hbe6C!?PF%i$G{Gh>_5+)J<^ zR8uGw8=_ap8>i}ZK5=F+f=UW%{3phoU6thk0zv)0S&C{g675M!Y8fmR1dGlaLL`zT zKqP345-k?dWicsbiM-c~s04{NSHww3NeZW!>UvqrI%$=E+~Pnn>Tn$OiK8d1KdN+Y zFwq%UT>A+6!yi6~Q={o4=mR`e+`Zet0K5A475C90`~3TgdyL#_a>voJtc%N?$hYa) z@IZJrj9lh6^7kC~-tB+S@qeE9y$vt_(_i_}=f3Tpr7!wB4-Ia6$MMN^e_q=nir}uE z-MfBE2Q)V|a5gl6Q3Mp&Y8z{;Q$H)Qgi>Un2IXk*zVs!aIlm$8|PG}2RPx9zP5{^}l(9k>4dtFTc1ExvodCsy$X;-vcW!Ko8- z_2`tLI%9~-1|?|pN6m4>+uea9OAt8bTRd_W1dy5ccte0?HMBm7G(L*Su}1-()cMJ~ z5EKgci3oQONdiw0%}^A9HiY}11Vc8(m?16>uEXZ34qVRefX5*LPskwr=Y3R-%_Q3J zJR9;4&`{xy5_3HPd>8C{Ru&2v0i;QeYp}#Std5 zK{pC>mUet>^U>HZkU%0BL$Zia6bNOog~iTf%eMKY9_lDEvBmy;y?NtCB61p`4R&EH zV3ah@-P|&TJ}WN5fULxIP^W1#>S1;TXVkMy&IN&~GbD9}3p5@97~d6y;1!&-rDP5W zIdv9^qXyN$Q^g`A2u~3~XLu==R4rNIr-?BY&}c$}MI#Rq;b6?NEKgA-MUEE{l_!g% z)SN8FgeqkURVRTbi^7w|qMS?8olCRtEB5-ecKek+T18vTkDw4!eEi>@<#KlrDxXz`8IrZONnjo`GI%5`Sh>+ihl6E-dlh2 zLrb6amPhK_{{HFu+Ji~^>cKEDasW9#;6m4|#a0_<5(>EUy{maPt(qCRX`<~lwMNUk zQ|=mP+p>@%MjdJy+ntc3%vmietV<%^4-i>jB46ImDOXmrb@N-5PMN8lY3+gqBOc|A z-L_ETdL2y`@P=npl44-`4jM2r9FH0 z;AtZPrURvdXKSwNDg-|v2z>uAjIh6fRhE34 z2?cq9Cgs>hK0puv=3ob5y9p4Af>oCj{eTw%BOnlO1ZY;8jN?f*E^Ji@L1a-lFYw-A zEOar+SVWu5qllOP``A@Rf$92+693kiyXt*Tsm9-A`8SEav11YoZwnHL$17Nwxm zD{br6ErXZ5=%&Z#x;l>aAebZx)H0aR1j$Pkiaa69lyx-Mh2n!XP2jYUr=x(8a)phO z7wH4QyK^Y=;;po9q9&z^5Fm;XFa{#Pq~tUv(@2huNyUsc-yIZ*F9C5A9M(?w110a!+A= z3PpiH@TJ^KywBO>b*hL!2;MaMqh0l`oTk7p;bUlFpRDhKDS4fpAQAu(2v{1sX@ZE? z0)k`#EG6Gu5P-zoz&aot6NG^3vDRahR@{RLB5V_aU6$aSGjaYIYB3&(C0Bs(A9w|J zSQ}CT=bK{%r&N{!{a#PEY}quv>Bj3$U9)rRi8LM*F-ArcMs5RVX+kqOnTZ%>U|$z- zooCy$iI8Tq(xz?Zs+<{+r{X3oyWR2#TrD+>jcSyW6kH6|SSLiJK?jEHoj98W7y+V1 zC>^JSkC5nKF|cHJVo9kD%8wTs#iXW6v^o(KCYIwEIz?S{LahXeM)FbuZB->t5&ds1 zc2n3);>qHc?p0~n_s7slS4NvI`UrZ3V9`$%mzQtPe_zr6WKQ$96=C`Niu-^DEbcLK zt4YX-vx|V zZ~dbxZ5YmVyI?F^--|U7f}SQGz_$WLOlLW6de*1=gVDiNFZg28j<^NtOto1P_HB}f zBbS>SXhco!`lP0^Ca26uYa~;aHied$7>p=mo%y-xT&bJ#F6xS8E@b;cvaG&V-+;Ax zB8@jzWz_X0o;$wV0bFXJs}PDlPEWSI_eA`RyK(jB+zY>m6>q-zW^=4~>#et1^EA52 z4|qG89QoRx^I7IGj;D+^tItZ#OPpr)wroA{iFknbevl+#HSLl@^kQ_^fvDi_(NSOT@sT*9INXd6Kwq2PEB@N%<4 zTV4}>Naa3)6Q91q_z%8DpL5m@@E9jl79UUm0S9Li)&oiiI1$Q?hAnb_i2$1RMG`d= znk%57Ceu zxx&oMXGVr;Ezhd2)eDkxC0rF>2D3ml)}80;%EbBcRbX=>YNTnlxGRj<(8zNELSTr% zQ$#+3h9m;)MB}TJRFfr%^imWDh874En^Q%v2g*VjYAsW3qS2~E&?r%2^9Y*nUJ+GH zs1ku9%MjCsBBqT5ilZuO^9WkCH?GzH*Oqbh_%nP2J^Nt`uxAf0cB%+od_|eJ>67Y# z*}eQp9i%l5?A^Opf8nif9e?9D+u@q}c#?`qqWSu3^a znA4{91>4+yBNP@sCu0dtmsZ&B{awe&`P`T@>a#s!-p757;CS6Yb)pToCgO#U*1Yu4?L9zwr;(7W3RXQ z4#tjuSit^;bo6^;HP|s8oV40c7Lx-X0v^9R3A&K?q=$UJ<($01%L|dWVa?@rVvy-B zt?LSDQZwZE-ckqwoo{Ct zJjDw|0THeaBFJk1FQpC8zIq1XKQc&MZ{i`BvVXQiIRO&&5;@RZU?~7|_+-J0W<>(Q zAlnFqz!;Wj2eiQihDOd=K{dcnLOGX$bD|JM5ir;5>h>L5RzCgHZa%zeal>RX9&~nG zxoddyi(h);%<1DjjzCkEL$LEsX3gng!_Ou{iS)zlo^zBFaz8a z3;1OeIPYa{@J2SUCv$IcOHFOs1hb}YoT>M7qVn0qX79NwSXc2zr`6UqjIWuqwWh;* zyNzt7>@~|1YWmFNXG?+mo1cs8B)j%Jw&`_0aQezupWeB1m)&r~4Tc6WVu~0+tO!hV zGV7Bg#`Th?TjN5Xu4=2-dLVm1Hg4Z^b+YPj#c{l0GMQ{Jt)vJezV)9$p<`}Se*~@I zb_PKN5V!~YaRwj7f+uSY34lNnl9%U_%bnPqQ$bUFk~utzYWWH1c*x!Yp;c5b#Dd&oPmGa?{JfQXQ|r@;?;N^C=Y5tgpcW)8v@_Gc{dys1!^ zbqfVWF*VBa!8z-OfX}2A@;hG(%iXx!fU(lVqZd}>8ZO6pS1RTTrn38vfsn zIjQ9$XUZ|zWh&wLR5ZAwV8%qh<$o{7c^TKkqyGqHjEo7k%-`>e_!l zii;-{1v;fbru~e8amrq_Fh+`tHm)|Tu|(rdA2Lk3I!2?z0JPdmMDkojWL1`#b#;N; zbMm%XlQ3vw%{6PEiE`b}vCFw+`BZ5wKNVf1IM)uND*e)|==?5aAsEH}a4grp?SYM7 z_M=yC_-jKvdWeb-uVTf@A4gNd$A5+fF|r2ma1pb-!HP{zVNUzj3jul9!Az$Ruo=y%jj` zw6<<+cVYpB=>#@9j{4-os5zdS3sN8upc%ndBxq9tzC>O^U?=ur4(>y@3`P=yCst{b zN!U-Vpk>!Zo~vmE2bm%!Za08EnY=)gfr=yn6-a?Rpagn(G;za}v7jN^P7qDiVoS4`ZV*PYJgy-tLOSsRQW>5b!3$YpRyukbN6M<+)$SEX2jg1FW| z7;Mxev0WSDqSO*+8ADO<^iX1eMoSuFvY2>|$bNi4ETE4%Uu!VGjtS;+wwuZD(G7$KLmU z-@pBlw?2l?xMR7#_GftFc&G?nbczCjfGVunB8tE;0?Li0^CX(jQNv@3y4*aju*QaI z5{li9d4EzN!WIfmSrhm_Z>NySYqqXGg*lm7EN$BM~wMN^g%RO@g7|0aWse({SgYyo=y9JJ$v??UDVl@Rj!#8o>XU5 zxn)`ptnmO(70W32B2{~%LHn?%T90H75%Xn@c^jc)r@5~O+z_eh>8ERs@EB7-00fkj zJNca$$j@k2_tHt(Hlqrr188*;R-Hgd6@s{qfN%w73B)EajW9k55h4$7H3lDX&<56w z=91fEndiY0fqe}A4+NYRD+z=(!S&e&FWH~l86rZx04|Iq5YN4VQV^)J+9bvS;|U{O z1F$co%c20M0)VKCc_64w?Bi2H5SR#Z_+%TqQ#YWXzY2bU2S*Cjnd@|I+m_9P+i(B$ zN3Xf&%B2&hmgdW{uuiwfMR7J9%k|iw737QSmple*xuhmpg4tQFKDIZR(ve00$#}(t zEaSY?Nz8+_aPp>RPBbBOIvS!fy+#;Fe5jEyF$n>qMNX;KAS9kF2Go3cYIdvnGLU5Y z7&_KgJ6M!Dmc3f5M6fuFY6VeY9UUlk2pot0j5*W^ixWPUjyj?$w$G)(XoEifL^A)| ziv8&$=)vUdsiHrEUj1Rqi zKiTxHPYiB&%jxmfpBq#QkCdG*3cgwlIxvPHrq$UrGGi#C$QxXNEGP*Ke&A)KoV@Nj zPL@M6wLlWMPD92zcrk#xE$XpyHhFywi3mj2lPeo_n4BdwV;Q-#X?<-~PBE>)`(t%h zvsTGW)0Wva89SnBp9!;G4%6NShzL9wcRC%c#ElP)<>v1=HUD@1{b4+gE7MNHqu}*0 z2oqU8h~{+hAZDkFGqCuqoi47QF2`(B>w%}`fl&6h@9c)+x>U!Hnx;qUy0(HrVt&4` zt$m<}(3TTY#tUF^+ zVjeT48i|j!4IGCieQH9`24NEdLSSqns3fjpN6li205+TYcm%7?fS1pWn9A5F{yoG{ zP{?+rg!<%ISBU$AI;_A85rMdF!LkS_IDX(DQkLlOgs}{&JGN~aefrB@bhJNLL|)<@ z%}ksyy;gah3Z_M_8u7!5pAR02NbDI!S1$I)7+D76VHNLkS;fn%&=kyx@_g z)UnIEDG@j##Izs;i+l`?vX`WoOP%q8`VU*W{YpD?6MeX-VMvd?41u9UAmjy%HJMmp@BxAVA_4(&oq>Vv z$d|zwVUXn_-WLEBBx{?qnPA9cxL8D}bbd02jE)SW*o26?P4(5_IoS!%m402 z7he6FJ9b=YI1D_B=5#Smzq|MVc;(YYfKN|YY0enQ00)5GyLV^HjCnceVePdK*t2I( z)4o=I9^b6vJaH>%J+SJ53o^PeJoa$V@&B{XE8fj5`d`d!xl@D{f|n{)%UV}FStNoG zZUGwNUSvW+)^EKWEL`A~8F}4_I!z~M){yVksjk)pjAvlJugU_U2nY_)9Le$I z(K43d_`dgel%>=It3-yh=XO}}#8?4IJ{k=(dE8*LvA@^g^9MO8AR^GjxWH3EGVl{b z0spZLj5Wpxrx7k8g&gZ#AH<+i6yOArV@07XIk?Z2HaSJELvkM;ismU&Ohc5Fw9_eI zEIZvo=li{CZmvf#Ru>BkbM-Y>?^>pon7L)-YsPbgrtZ0~$x9M#(;J)vc{OSohi76x z6A_B|!X;2As2E?!ASnxtQ!`FlgdkBOVPj%78jRr1qN&B0Sdx^Fn$?s*5Vc0FX{<6W zDkv)2tdpghE+cU4R6$XP3>KwMljJ61#{!AVBxuBh>VB%|K#^qSB%$l4iadlY7t_*U zv-VfE#<{Y=bi0$75UO%QYls8j@fXmtV=HSbu~io zOEXPnO)gw}CUN~W4YUh?^P$M!8~xAbtW;b6=Su$zzV+jqzwjel<2Lit#p=qlr;EtP zix1-Z>SoUNAV#;|$`Y%Oq7NLPG33nuOc?yXs$#a9_GPZgGkcM2I@N6ZA}X!8^}t0v z@D~q1eEQyd@BO2D@BPc)9jE#~mRkR!bmTXx@!^Q63IymX>&u6yaXD~X#>JU9@USsbBSJ_Fb6lwEMQ!?XgFL#9YxVLT0V znGpagc`8xg?EvN{iJCwyfiU?gUY={oe#*z&mPdzjj*N9i9jzxY_AwtHyaL-uAqWjB z1tiW<-6{t&A|>a8+a>5T&RxJb$GIeuajsz9WnLl#);K@cqnnI2z;V6n#!d5+Yp%cM zUOq58G z$<$1h5_T6l$_SSw3M8@<9UN*iizyj-@Dvd>Uv8F(2+zTy)DToAMJ1XVxkk37nozG6 zf<&j9Wz>-C^PNza1dE9$i^+cl%~M5@ZUTWK$|}k9RIxgG%=}c*|6IFaW}{XZNlUj5CZ^7hBJMzwl} zTJtE{PZy)*(?uf2b00+m&FNwT6A$Fm#r?GFVDZj7?_BGS>7$iB>t$K@Y}U-W$i<=b<20Bl)ks!Gy&K`ix$DD00R@&S}MNdA5V z`54OZD2n0;3ORuyoQ4!PZRm{CVW5JF~H z5{$Ag9J|-=r5kqbI`wI{zVzspE4Gc2@z~E271`H_@JQfgsx(9yc}|6l7<~O)J5@Ll zv3$W?YAT#8y(Tn4@2Ht6gaqNSYX*o()p(+aC~&ZdXmkRNMkhrB6m@!{NcS|4oM9C^ zRLN3J|74!7BzWvpdEN3SW%GuHAkSZA_pz>Zav_7_;Pw;uDn) zMp2iCwJxoU)}1PD*swzvc&d2SN|k>B?f0CtSjwgd((D`m|VmA za!}T0iKfXKymSqKx%oIG%Qeg{w>je(LBVELsn2|tT*t}lB5T^HY@C&bK=PTAN<(i!w>%dHf*@{XLs&=+4pbTc;k0$+O_i=7Z*2w z?c&`0Tjw{*H_Y|A|6qQx|6L1n@_n6N`2*eV+>g!8^?th3>-~IZuJcQs{@gEj=I4H; z+n@i{?)<{9b?4{*d$+&wH+u^kf2+5!`FHvoHotdaamRZ%Y~1oc7PoEv|2Ayw{eHjS ze}KC^R@Fo_^7PMvVVwXaIqo6IgA$l=PiD~Qyz3ZoOsWMuF(hcraYk~?2>?qF;i-D; zN!lP$wkdl#0h}EQ7;RC+Rw3-7UCzTm4KWTEAdp;w zb^+G2U6yPqC|g+EQ180->ND40N4oZ!r44gEE=p)`eKM~yyov}{PbQBcjF3JMJY6)S6>wV5qec#PeiP zNeNY~c%oR%z+tTYM6r}k#Zia^>lk>d7_H)C?K*a?h~0h}2Ly^BP(-NGMxH9JjH7Pd z(NBJ==-*W=`-{3^!z6!K@j|DH{$KmuI{mKVL4L6I_;|tZD!L0LXPiEq+=DGW&pZ&G zXY*;N^9($2>l@zv_|0$n(SLTVyZcScldWIAG}`i?s?@iVkD7ezfkBSp2^YFt9@q{B zMK8VHkmaCl+`LZ0ux0{=y8RBIkxhyH-57f?iUPDv2@8WT`jPQO z-E)&sK%zdGb;&3bp%s?S&l;Wgp^CELLzTtj!*u<3{pA(k`p$ClqTx{-gg=VL;m1*3 z$$0!I@G$@FiZ|E;co6F!MX&!=G(f}%o-5|##hkI$q#pA$zVbc)Xz5?>{olvF<6C~<(BJ$1Z+hsf_x}6` z-|H2R>L!}IEI72yqO8eRskZRh@TcZIJBB4 zj^1Vr21-2SM485#-2%W(A`rldATv3*bRB{~7cp!B87ML?Q6MDq4R6N&3@sq}78BYE ze5PDva36D1$9-*idi3 za{Dm&-{vtBLvx)i4QdAAV`t-Z*lOTEVnj+ku_las6mSUQV$)=%425b!7-yDffB{OP zsgX1iK1MarNd$^Klhq6o$*a~xlsq|16@&m$QAueNb6z6ll#wqGu{VJEJ*R#JOOxc?zBFH8AnOMIS|Hn3x0N9?Kmrk~On!@{6dn;?@IC z#{*|?BHnRKxzE0R`zYU&`48W^U+%=6IC$`Y9Nu|9<+tPNEqyt0W4K-roYyo>Hd7F?n%PuwZ*ejzCI0siY1--Gbg= z0q>isM4-OF|M8?Tu^l|bV~jva8%ze5gO|4fg;3~ySh@+eqSGn0ztFGCZbzw@Q(!+R zb#o11tYq*~pRS2`&7&13Mm*^`t(!@XW=dr$LfI=ZOJ>en;*fMkV%;JYq9rU$5CBO;K~y%0gKTx#U%*UCDc_H7~{BbK$!}ZWL*hM4A%t z(uo?JmxxUD!OP_VoM9#ka+`z2(Rky7qjr|Hm>-mKI*r1TO+rY$AX<^Sp&PWQ$EipxOVX%X z={)ej13N$Tp?m-Khd=nCcRuvM$G+?2iPLYY2II|IO@Qc6L^&znvkn*?JXQpPL^m+* zQghzRDDZYyb-3jET!#@rDo+}XZAK6XuF<%&Jw6zZ)(D;`QHBmdV4MERiC0`S@8QmsHbs zCK|7l4x+6pNvb5+B*nU>p$TVA3IvHpijzQ)I0K6&s2F!Ex~QsEYDqjuCW6Jz=n36Y_7mH+?2q&~PZj-7<;)&G_pZ1?*Z!zw?c?Wz z7durHfc^m>27t?9-lj{!11(^@BwnUxHpyGw^b?bt-|(K_yWx#L`xVP^=UdK<7yrws znmgL-bWu!SaRwszzMbt?# z{qV;h`Sg|LGp`+wtJ`BtJ5n8kDPfJ@+hrFh`#_ijih^?s$lF#}61l+Dj61;rncCt{e`)-xOs81b@QglRok}?6W8G*d&Dv#IdMkVfj%&{ zv6}&INSTolN(J6R?1n^5)nsZS5rRlzGBf9EQ;nP)5gUlU1Ccv;93z}xAT6~axtJtr-)>aaw%LP>utKUJP9(_drXG0F9q;*#Yw!5EI|u3NH=R1OxNkh!aI{m-HNltLmVqmqWZ;7HPA>4e6LL@n zcek+JU}lVOUU#jtDNcX5U-f8F$%*zPEVO$p3`S`jbTmi^q2F zwpGNqW+wagc_nAgT$FO0qz5mm@VsnjC-pq@fZyhvl7So26M6qp{yxh0Wd6hXF|>ol z9fH@mh>xKiEN*=oU{TkD#rY{%bilYYS?=BY;e%J+`)= zk~%;!4|Ent8-OnPvJV6TNR%v{xI+VpAdLbv+uhgVqySio7vzbZK%|3286RsK5?RI{ zMiK94M!+|XAHJBljKnBX?X%LXU&w86y=pUj;Urjz)_zkib@_V1EK_p z0z@iC_U5yB)MAoBB8_E$Xqu{|nt`GjPZfcQCd=eN5kbaEkVtP#yq-`JFcLJHO?XyV zu~Mm6RSoN!Bi0rtHG@BoC3&vcS>VZH5tm1kq_fA*kDq<~+*z9Fj$Jn=|DK{heqOj@ zsIy-`zh=j++5ko5$ItnDig(^={NO@2T=em?vC)Y|n=VBUgiCSK?VO*f2gGi^Egb9;I%$DQgB|%OIw%~C zKyw@Up5ZoS%02i7P5GY8p9>Zb-@hnV&%olzzAT+OCYu&`vUp~8ve=Q;lSK!M3p~uy zZV>H+8CYB%p6WjG;Qd#9;Qb%?oP!_!=-+ta$g#VY&J6w0;q0 zi_WtQEW4ym28|3E1dT!}NCaU3rw+f&vxc&Wb>c4nFo_HtS!Z;DQ*IB`CApaU9w6AG zgh-8DD0JEED>Ov`;dmlK4S{5E=qHZUb6-*l_77PutSN0U{_)Yc(1v3@^+)5OkZw1m z8?M}TCWJfydmAqp7sfC}HYXT^r3yp|2oqx%S0V`@NCZ)?AgU3C8lss-Q!Y@z$mFCo z>lI817Oet6B&U^v01#+FitV@k+e-tay(}k_h>DY_s&UOn z&{Zv^)O<=^mpX}cn#6^!)V=vKR#wI&-Q^6&iPVc7M#E0ZgJ zXjm^ilB}?@;HG9ee<6*~^T43$)abZ`ft3|&!X-IC!js=pt_xo5!rX1Jz-q|#$}^^d zrwB34O@{T(e>L9tH@Eness(X+u19B}Rc z)}AbW!eCMII@^HhE^X{!vU zKp-e(2O=FH6q!P&1L^c2CF?V=Sk4K$eIVC+KuPjGLf~ixr_GYF1q5zbjUQYnNG5== zRK^-6c;IjuT+Sx%BLU#})M7~#FT6zrHr_Ok%)|bWBLp3b=_FY(5h6l$ zphzkL0q3x)5uFGYYt$7VKcnQSVn0M1bkpg15hN&DruA7T~DyQF5>>gj%{P=m{ z3hiC7l)tCwK=JX%mwBSN+kpKz$P>j2eNRyUP92zL)P)n;>(cjt?~qG>73~V1kq2J; z+SkSxzwQSgy73MF@*SP>(?4%8+5VoD(cHbJU35DIj6pkai#rKRkE=>X7~z~K0s|k3 z!?Mx@2+uuwDuowLA^{@)1_3bW0bn?#P4>dtODS`L1&SNHWH=rNBV(M96WG5~mZ;*~ znU(6AAN;fUb?-hg+BQ16Np0g3o2}krcI@ae+_bnw9|x~T58mKV&~~64l=Ud0$K%LNK-wvEN6-RL}>Icq~ zF60v27IhFHg)j&8k$EtD2^f(g4+VL$C?c>F*(b)08|KH=XcVf^xKIL0SA&_t#KRSd zJS3SniY0c92A=(aAkj-@X~>VB0m%T-)G9TtU^e0W$4-J`1XJ=h7BnD{c1Dph@H7zw zi>5kGb3FUiH8gul=4QH@x9r zfA=8X^0$W7;t!q~^*$7&i%!W<1zXhv7&y%sPYozV6D@42`J581qRx4A+H5+Pj z+L^Tw0K#cjf0|{NZvZvH;-J2I?+5g&f9$G$)Qf?|ZB;S{i+C7#0O$Oz#S9kLd~Xp4 zGFaTdAH4SCJg~U$X+DN-{Ib@GwAZHA1D}WoxW}55JFoq)a-09ifKq=m$NR|O9vt3z zlWjY>VvAcxwrR@_TNrG!4I3+4S*)x-s;xJPwzRZ_aTTrVC9}{~3!6zLDQb)(JM-A_ z?szzytA>+}X*BG_ia3VgiJ%2S04Mx#83@!uQKIN|Q1Zml2-wVJWd{X8p_Frmq6ZLI zic{G`;0YuMCP5x$7uG4^Wu`#DM?DB-(xIGn0#PzR5I|T5sTd z(ML2mBKjPe>bNF(SvqJe!Z-s(BUrR@!r4|TlPXEKIy0OgUVUh?lL<`czZXHOJoK=IhI-8@x1)&fPo$d`NKwz%9~@HE%|0$01` zO?wYsf5*?hb7gqL8&`&#zVXa>@sE>r5b_-&T)lv?kpWj3?*hqXE~cEtx?~<;ZJo#~ zM!AyA7}{7OtGFH7@H&-jT9RE&E^}HHkSU7-!>a$W6ZH*uKQQ-qe|{A#CO=u+-kdDH zq&f9e;J*L>5CBO;K~z~>3l>Ma_@RILljw{8BARE4Em)+N+w?r~fbSF%_lgLZAe@+k z#yxv{7wv&DW&m#WF2k zu{n0DBBdc>>MTbs2eH6hJvcp#kA3iuHa+~2KYIPj9e zS?=JFeX^dElyzv9W!7OyG-Sf~;eEZ`DHISC0A zC|VVzSD}`=gMLNV)El-g)-#|;Kp58n#a#r7vq#UzhUYzcZh<0Su{N#q0C(uRdRw{7 zJ@Aq*{r<ae7dN*L-^nl|%q~Vu zI0<#9GUu8e%#Af~&u#3zuIlY1w#|Y#S(>9BM+y=!nr!;uiTKj5f4KMMzq6Rs^2uT% zSWFHU4`S2SnE%$|g}~zV*H`9X@uI(oKDL_!?f)yBEc$FY(Ok4y>w#y@1H3Q&zT#%# zzGC8DME+{To;|SJZaZiW91k9Ztpkpy{-6Plj~vsOf#b6FCcQKtPo;FV5;UGkn}(ZX z29BfU_?I6#F#pJXfAr>R>FBptgOj(}=tx=GNh{Ja3L{`7K5|GEIE}#RIGHN)MevtT z{J2NK2}%eEJRuC7E~|y1AcX*7=TJImBj{rvkcR`fz`FD7gIsn1aiTns91vy@*##Ul zdfmwZV(wo6nCj&^LluNFrW|ja7jOdLTsV6{5b%;lD+KaPBJ3EDl0q!l!s6oi<{NG} zS#~?M`eFr9jo=W%PoPGyNP^XTftp9nFg|8>kZ2Q8o*=4DlIqw@^QoZ%Bf5+Lkid|j zkRuM+cgQIYVHh&J4vBS#l4O)(qMnR`bVp*A$zu}92 z@;}t&bzeBDuKL!&c;g?`u~_c%@sS@2@C=c0O-W~+#SnY8Le3cdSX?*>!{fAr>#>$? zd3oUu29M<;9SrI%|LaKj?5{gC_lCb{z~W}xcn(;s>K)dA#a)Jn8J(vmi=Q}HY~Gmh zBv)QelU;lnPtw0_YCZ5YJ>d5jiJM3SOb~Y5vuBSva0K@8#POibfa9qxTk?q`utW2S z;}kfan7lM?NZoXLb4V+brPQs?q2%WELT@rZzhNXI1cn(P@{zOFFlj)dp;9!DnxUA` zE&-yAlch07Rl~qYM4iJJG4zsC$lwt%jUu9tHoy)GjUaNAr)t8JJ1 zj6HDUYxj~L{tn_<)W8mE*2yntV*M%dAL2{gNWriOn zWpwl!loiVyfOAU&<2r;V3(Mnezjn0zyl)|W>?~MRtJj1J2zqQ4x=4Iy?ncjIR5r$^&lD&__{DK@3@$PRsEfk5%m zC4J3~TXii^oSh~frQB|%hLnl@?3Vi>SyYK8(;g{@r|$l zsb4sK>U+O*TyKBVnbC%y9Z%-RC4+2$5hgL9tTDR2#*oUO%mihCo~iL|Zpu=d2~Or& zBQ|yrQV>Cmy?A=O<0lUeU-!00hBqHsOq=)^+D{gB6)XZru@)@um_%#AV&ls;f5Cge zxIz+l6+e}U2$;?Tj}8a`g2!XW?9`Sics$uphj%Wf-f|t0i2fwKKg@T3r|5J)JQ|P6 z<)u@Fs?nTbuBfqdQ^2lGktd5sA@vDB$1n$Jp~EQv1!^o}j4i}T3%0})NuEwJMxZFz zMnK7!0SO3FK#C58bt!~pVZzhAqG0JV>WENIf)qdy2=O8DCD@e55&NCb#V5Gb-@1cb?KB_$F_EMdB0EG5Wtq|BnN zL@QipAjt-Gg&}PZW7T|LQDYjX5XKyIVp>itbtd&tE1isL8?DsC)5AEZ2eA{2*n6TI zm+C9xxV2NbR4|}dW-al zrMA}##slF6vyyfp&xr?ayX&^< zObpPhGGKe)ac)Y+2t;aXY@)&KX$dT;!JQFq7is{SrLy2)%~ zQaf=RICk_PI~_%T@g=&gO6DhvPZun{4+r31?gsYb&O7g1ozXt<+P4pT_V6tN7r(@t znryYNi&|NVGV z!5{4UwCmm-y8S(a(aOqbG~8IjG!#77DnvHScd^g|KK{}Bu(EstmXx52jYK)35rtIP z(w*SCg)`W0PhivdG0auRppjTBCgLfhTLQSPIW+-82C2v-97H4l1cy9Lv>-fnEJ|bD zP%vIlnH5O>2e1I8xey`i$r+NkE=?KbtRe(MASeW95KyBml7*n!EllV8h#UGc*}8dt zaLqM4PQB#C*B$ws+duQ6*ZlQYefafn{NlfO<*PsMzRg>Tx@;n6H0iQxTsE~c>av7029g#mi!*hsS1jrZy|+?8R|^Hp!de6^vldShp6eP-N=F|MSISW1I*GTr(G zx5r109n&696A$hnNc@dun>}{Mp51zokDUF(!ybT-oSj`=dpy(a`zJ|HrFBr0Smo={ zkxE5jOD8;HPa;B_l9XbP#IRGNa(wbg(uq|INe&g}Fq^ZqzQ}0~*~~BuvyE-o;rChn zde!s&_jBLZ`ThFry06c*>lW*s*Oa6#J;bim$TmsB1Fwir8ed(~IwSk)A&!Qn;9Wixire59~u#fnMKi%Gg-vLHr0ydAV;tt^j@x-qr4Z_L7UfbZ*4~iCML_44vpzv&yX3 zwdbUb<^~(WDp<{%wXvNW^kBkL`qUt0EHzGCr=DrIa?!(EN2)ASG~RwVzskF3 z8^U<+qe5ukDvu>^7B6#DUj`hV-oZDxWYgQp@YiUY+=HgK1tU(C)%WtAI`b(3Jb`{b zD_Gj4i;ztFW9N5+DB~dz(J>@WWPlg?;dw{}TNejhXeZi0oP8`gUo47mjO@<`lT7y} z?#{W;zFKyN!|;P6AL-j2P0fXtegWC$ap@zQU<`ZzQ})}M_0(T^dglD5 zlkW2V!sGH|9(sRklXjeH$h_HLfA#&JohkY0`E5Qq5co83f6~Xzf}sJAXV2B+yh>&` z8?OIhm0N#v95l6e)7KX~+m}jtU37`o%2ny&M{27sZ#~3$aC@;ykvoqNVpG*0ng2SE zY#2Uo7+&9xVp!0`2pNz-%03_t73R`zMidFS4JlYX0mFtsszj3qc953wwszFY=kaOM<_Yubyng;V4O;-Z_ z2R*)Mdw>7p40`UB_afawcyV5_VK_DNmc&#&Dz@pt(yg6iM&L58&JNkq@_MTZzjyxm zUqPC-Sw-Ecxl)IsBiXiU8@YP3CjHOYeRUoE z&U>Hn);nU`j?yg4f_;N;iW->g$){FH-tR)E2-ix?Fhld{`buHF#Z)P`9e$%9Tq*ki z#|$io&-L)-FBupG5)Vu;mgplDLbHVe6h)v-6UDnzg`hAv3K(5jF>G`>^5f{2gD1p+{FOgYKqmcV4=q zeS1Rv*wzQxskf42(&@oE?#FNXys&z0b+Bmv#&vax>9%@(L(;`=2R77|Z+!K4r%YTQ z;OoxwjV8S#V<8vmPJ$IHGZ|kCt>zuJt~4~Z$JpZ;utc^=+(IJwZYXHe<{H`UbBh

($hjH#;1+ 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 M3FqVaM}4CH51YPd2mk;8 literal 0 HcmV?d00001 diff --git a/web/src/assets/images/application/debuggingEmpty.svg b/web/src/assets/images/application/debuggingEmpty.svg deleted file mode 100644 index 11f38f03..00000000 --- a/web/src/assets/images/application/debuggingEmpty.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - 分类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/src/assets/images/conversation/analysisEmpty.png b/web/src/assets/images/conversation/analysisEmpty.png new file mode 100644 index 0000000000000000000000000000000000000000..6d497f31f3eb4df0a9bb8862a374de291fa720f4 GIT binary patch literal 193540 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 Y=EsD#AohCPYs(u28CB^@$!|aZ4^#d^XaE2J literal 35221 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 Kb6Mw<&;$U1i%<~& diff --git a/web/src/assets/images/knowledgeBase/noData.png b/web/src/assets/images/knowledgeBase/noData.png index 96af1243e28274293e2287e01b2fda372ae6aa9a..c36100e880707e24101e766ad3974eae6b8c0953 100644 GIT binary patch literal 179498 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 z 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 literal 34832 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 VO-!i@ErI`mQ;<=Wu9P$j`F~lbh?xKY From 437b26ecfc9221c0dcd4098e5f561968ab105c70 Mon Sep 17 00:00:00 2001 From: zhaoying Date: Mon, 15 Dec 2025 15:15:13 +0800 Subject: [PATCH 05/92] update web --- web/src/assets/images/empty/404.png | Bin 0 -> 120706 bytes web/src/assets/images/empty/404.svg | 47 ------------------ .../assets/images/menu/userMemory_active.svg | 18 +++++++ 3 files changed, 18 insertions(+), 47 deletions(-) create mode 100644 web/src/assets/images/empty/404.png delete mode 100644 web/src/assets/images/empty/404.svg create mode 100644 web/src/assets/images/menu/userMemory_active.svg diff --git a/web/src/assets/images/empty/404.png b/web/src/assets/images/empty/404.png new file mode 100644 index 0000000000000000000000000000000000000000..3a4c684d7fc4638c9c8c34b69cf91253cfccd697 GIT binary patch literal 120706 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%0D1u{I~qWgW1WlSc%JFcI)ATowWu6lRGB& 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 literal 0 HcmV?d00001 diff --git a/web/src/assets/images/empty/404.svg b/web/src/assets/images/empty/404.svg deleted file mode 100644 index 96c7f605..00000000 --- a/web/src/assets/images/empty/404.svg +++ /dev/null @@ -1,47 +0,0 @@ - - - 404 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/src/assets/images/menu/userMemory_active.svg b/web/src/assets/images/menu/userMemory_active.svg new file mode 100644 index 00000000..554dc0bc --- /dev/null +++ b/web/src/assets/images/menu/userMemory_active.svg @@ -0,0 +1,18 @@ + + + 编组 29 + + + + + + + + + + + + + + + \ No newline at end of file From fb01d185e4440de3dedce7d96830ae1009490150 Mon Sep 17 00:00:00 2001 From: zhaoying Date: Mon, 15 Dec 2025 15:15:21 +0800 Subject: [PATCH 06/92] update web --- web/src/assets/images/empty/noPermission.png | Bin 0 -> 163593 bytes web/src/assets/images/empty/noPermission.svg | 62 ------------------- 2 files changed, 62 deletions(-) create mode 100644 web/src/assets/images/empty/noPermission.png delete mode 100644 web/src/assets/images/empty/noPermission.svg diff --git a/web/src/assets/images/empty/noPermission.png b/web/src/assets/images/empty/noPermission.png new file mode 100644 index 0000000000000000000000000000000000000000..cacac721b7b2a177ec36a26b6d3b61ef7bda0afc GIT binary patch literal 163593 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

~qKxoCXexm?d?Ln8JK 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

ft9~i~mlETJc``8)0YG5~=TtyEbpb#| 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�rbu-QnzhGzjIFVE86;|rH|vgkCW>eeeNuNZP#bHb0}gzkWC8Fsu= zBO10M0y7B&5(c+|=%g$|kFnh1rgR^bDZ)t#>!|?6Q)&NWZy)H<{^yVy{%1k$-(YCV z=kr%7mwgvb7iyQQR~vip`eTlN9&jyZ%`Lvn{8Ins+WFRrN#)UJf%SOiJTrTrPwSt!HPtweE=rUMnqgX*DAc2mfsyWahk9kGGlbLp!9s4cpxg9erG{_V776)adQ* zFDsFc0oRzCrz&B7+2d?YUNn@s@bIac!BCsK03c0a{><$)(OkAKL(zjT6(7edVC!Ce znl5DRVH=t`F;$cT1qHHQ%eoc>R5ZLKXsdw zCImJV3-0z1@zFt)Ws+j%2iP1iThZue9U=9%$>}55kqbsyve=ps&8uOryZ&c`t*|0& zLunH|vp7OVUA;ALAonijqRSdDza}eqkQe62B+*-Kd@Sv={+kIfZ-+GAI%*aU6Yk3F z<=iyzGo$bRfCtY#8Si?zb&B}&)|jTp+7h*gSFtO2d-8;4gHjY@3#c$ACFSs22>8*# zho?+y^G!y_q*P%+smNZ>v;eAM-Z5NgvaRSCy$WQ3E}YV>2OK0`(P$<*5?Yf?CI0|^ls`Pk7zklr04EET3|X4H-$XO~tI86D6jbhRf`vU~AP z=-fE3wfQRa@>2JFWI!l-`yDjpX#a?6S2w&oQ!Q@_?bu7-a&*MuGJnvSvmJ9`oHt?N zDEP1MCARt|_@2e2pTsxq@{oJV84+VLa!D5fix;7a8uBzZRqSQ&%zrM=9+?XJp~3Yg z=?22r&|I!~snO#ln^MxF5sl5}k~bkL1S$jFs!#FO?#`2UEZ|%zbE}u9RByg0c(Pl% z%O~5t??tpX3HA#V;K4mSpAiozRhu_0|JvwcJW@rm&648p20~#zw{PYX0;y?sB}Ftn z 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 literal 0 HcmV?d00001 diff --git a/web/src/assets/images/empty/noPermission.svg b/web/src/assets/images/empty/noPermission.svg deleted file mode 100644 index 7ba9396a..00000000 --- a/web/src/assets/images/empty/noPermission.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - 订单 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 9b2f603454a1d338d6a836eea10ec1eb71a98686 Mon Sep 17 00:00:00 2001 From: zhaoying Date: Tue, 16 Dec 2025 11:26:41 +0800 Subject: [PATCH 07/92] optimize: UI update --- web/src/components/ButtonCheckbox/index.tsx | 6 +- web/src/components/CustomSelect/index.tsx | 2 +- web/src/components/PageScrollList/index.tsx | 6 +- web/src/components/RbAlert/index.tsx | 2 +- web/src/components/RbCard/Card.tsx | 2 +- web/src/components/Tag/index.tsx | 4 +- web/src/views/NoPermission/index.tsx | 1 + web/src/views/NotFound/index.tsx | 1 + web/src/views/UserMemory/types.ts | 19 +++-- .../components/RelationshipNetwork.tsx | 82 ++++++++++++++----- 10 files changed, 84 insertions(+), 41 deletions(-) diff --git a/web/src/components/ButtonCheckbox/index.tsx b/web/src/components/ButtonCheckbox/index.tsx index bff09c88..65813809 100644 --- a/web/src/components/ButtonCheckbox/index.tsx +++ b/web/src/components/ButtonCheckbox/index.tsx @@ -34,12 +34,12 @@ const ButtonCheckbox: FC = ({ } return ( -
- {icon && !checked && } - {checkedIcon && checked && } + {icon && !checked && } + {checkedIcon && checked && } {children}
); diff --git a/web/src/components/CustomSelect/index.tsx b/web/src/components/CustomSelect/index.tsx index 411e36e0..97ca4e4b 100644 --- a/web/src/components/CustomSelect/index.tsx +++ b/web/src/components/CustomSelect/index.tsx @@ -9,7 +9,7 @@ interface ApiResponse { items?: T[]; } -interface CustomSelectProps { +interface CustomSelectProps extends Omit { url: string; params?: Record; valueKey?: string; diff --git a/web/src/components/PageScrollList/index.tsx b/web/src/components/PageScrollList/index.tsx index 0fc9fff2..a56969e8 100644 --- a/web/src/components/PageScrollList/index.tsx +++ b/web/src/components/PageScrollList/index.tsx @@ -29,7 +29,7 @@ interface PageScrollListProps { const PageScrollList = forwardRef(({ renderItem, - query = {}, + query, url, column = 4, className = '', @@ -51,11 +51,11 @@ const PageScrollList = forwardRef(({ request.get(url, { page: page, pagesize: PAGE_SIZE, - ...query, + ...(query||{}), }) .then((res) => { const response = res as ApiResponse; - const results = Array.isArray(response.items) ? response.items : Array.isArray(response.hosts) ? response.hosts : Array.isArray(response) ? response : []; + const results = Array.isArray(response.items) ? response.items : Array.isArray(response) ? response : []; if (flag) { setData(results); } else { diff --git a/web/src/components/RbAlert/index.tsx b/web/src/components/RbAlert/index.tsx index a92c34b5..63933ee3 100644 --- a/web/src/components/RbAlert/index.tsx +++ b/web/src/components/RbAlert/index.tsx @@ -16,7 +16,7 @@ const colors = { const RbAlert: FC = ({ color = 'blue', icon, className, children }) => { return ( -
+
{icon && {icon}} {children}
diff --git a/web/src/components/RbCard/Card.tsx b/web/src/components/RbCard/Card.tsx index beb237cd..f86b1c60 100644 --- a/web/src/components/RbCard/Card.tsx +++ b/web/src/components/RbCard/Card.tsx @@ -52,7 +52,7 @@ const RbCard: FC = ({ title={typeof title === 'function' ? title() : title ?
{avatarUrl - ? + ? : avatar ? avatar : null }
= ({ color = 'processing', children, className }) => { return ( - + {children} ) diff --git a/web/src/views/NoPermission/index.tsx b/web/src/views/NoPermission/index.tsx index ac547fd6..106160d2 100644 --- a/web/src/views/NoPermission/index.tsx +++ b/web/src/views/NoPermission/index.tsx @@ -8,6 +8,7 @@ const NoPermission = () => { return ( { return ( { const [categories, setCategories] = useState<{ name: string }[]>([]) const [selectedNode, setSelectedNode] = useState(null) - useEffect(() => { - if (!id) return - getEdgeData() - }, [id]) // 关系网络 - const getEdgeData = () => { + const getEdgeData = useCallback(() => { if (!id) return setSelectedNode(null) getMemorySearchEdges(id).then((res) => { @@ -45,20 +41,20 @@ const RelationshipNetwork:FC = () => { const categories: { name: string }[] = [] list.forEach(item => { - if (item.edge) { + if (item.edge && item.edge.target_id && item.edge.source_id) { links.push({ ...item.edge, - target: item.edge?.target_id, - source: item.edge?.source_id, + target: item.edge.target_id, + source: item.edge.source_id, }) } if (item.sourceNode) { nodes.push(item.sourceNode) - categories.push({name: item.sourceNode.entity_type}) + categories.push({name: item.sourceNode.entity_type || 'Unknown'}) } if (item.targetNode) { nodes.push(item.targetNode) - categories.push({name: item.targetNode.entity_type}) + categories.push({name: item.targetNode.entity_type || 'Unknown'}) } }) @@ -76,14 +72,58 @@ const RelationshipNetwork:FC = () => { setLinks(uniqueLinks) setCategories(uniqueCategories) + // Calculate node frequency based on appearance in links + const nodeFrequency = new Map() + + // Count each node's appearance in links (both as source and target) + uniqueLinks.forEach(link => { + // Increment source node frequency (only if source exists and is a string) + if (typeof link.source === 'string') { + nodeFrequency.set(link.source, (nodeFrequency.get(link.source) || 0) + 1) + } + // Increment target node frequency (only if target exists and is a string) + if (typeof link.target === 'string') { + nodeFrequency.set(link.target, (nodeFrequency.get(link.target) || 0) + 1) + } + }) + + // Set minimum frequency to 1 for nodes not in any links + uniqueNodes.forEach(node => { + if (node.id && typeof node.id === 'string') { + if (!nodeFrequency.has(node.id)) { + nodeFrequency.set(node.id, 1) + } + } + }) + uniqueNodes.map(item => { - const index = uniqueCategories.findIndex((n) => n.name === item.entity_type) + const index = uniqueCategories.findIndex((n) => n.name === (item.entity_type || 'Unknown')) item.category = index - item.symbolSize = index < 10 ? 5 : index <100 ? 8 : 10 + + // Get frequency for the node, ensuring id is a string + const frequency = (item.id && typeof item.id === 'string') ? (nodeFrequency.get(item.id) || 1) : 1 + + // Set symbolSize based on frequency + // Adjust these thresholds based on expected frequency ranges + if (frequency <= 1) { + item.symbolSize = 5 + } else if (frequency <= 10) { + item.symbolSize = 10 + } else if (frequency <= 15) { + item.symbolSize = 15 + } else if (frequency <= 20) { + item.symbolSize = 25 + } else { + item.symbolSize = 35 + } }) setNodes(uniqueNodes) }) - } + }, [id]) + useEffect(() => { + if (!id) return + getEdgeData() + }, [id]) useEffect(() => { const handleResize = () => { @@ -95,7 +135,7 @@ const RelationshipNetwork:FC = () => { }); } } - + const resizeObserver = new ResizeObserver(handleResize) const chartElement = chartRef.current?.getEchartsInstance().getDom().parentElement if (chartElement) { @@ -106,6 +146,8 @@ const RelationshipNetwork:FC = () => { resizeObserver.disconnect() } }, [nodes]) + + console.log('nodes', nodes) return ( <> {/* 关系网络 */} @@ -175,12 +217,10 @@ const RelationshipNetwork:FC = () => { if (params.dataType === 'node') { // 处理节点点击事件 console.log('Node clicked:', params.data); - setSelectedNode(params.data) - if (selectedNode?.id === params.data.id) { - setSelectedNode(null) - } else { - setSelectedNode(params.data) - } + // 使用函数式更新避免状态依赖问题 + setSelectedNode(prevSelected => + prevSelected?.id === params.data.id ? null : params.data + ) } } }} From af2b8531e92b64679c43167093d7271d1678bf5a Mon Sep 17 00:00:00 2001 From: zhaoying Date: Tue, 16 Dec 2025 11:27:13 +0800 Subject: [PATCH 08/92] components: Add Chat component --- web/src/components/Chat/ChatContent.tsx | 84 +++++++++++++++++++++++++ web/src/components/Chat/ChatInput.tsx | 80 +++++++++++++++++++++++ web/src/components/Chat/index.tsx | 47 ++++++++++++++ web/src/components/Chat/types.ts | 84 +++++++++++++++++++++++++ 4 files changed, 295 insertions(+) create mode 100644 web/src/components/Chat/ChatContent.tsx create mode 100644 web/src/components/Chat/ChatInput.tsx create mode 100644 web/src/components/Chat/index.tsx create mode 100644 web/src/components/Chat/types.ts diff --git a/web/src/components/Chat/ChatContent.tsx b/web/src/components/Chat/ChatContent.tsx new file mode 100644 index 00000000..18771bb1 --- /dev/null +++ b/web/src/components/Chat/ChatContent.tsx @@ -0,0 +1,84 @@ +/* + * @Author: ZhaoYing + * @Date: 2025-12-10 16:46:17 + * @Last Modified by: ZhaoYing + * @Last Modified time: 2025-12-11 13:40:18 + */ +import { type FC, useRef, useEffect } from 'react' +import clsx from 'clsx' +import Markdown from '@/components/Markdown' +import type { ChatContentProps } from './types' + +/** + * 聊天内容显示组件 + * 负责渲染聊天消息列表,支持不同角色的消息样式和自动滚动 + */ +const ChatContent: FC = ({ + classNames, + contentClassNames, + data = [], + streamLoading = false, + empty, + labelPosition = 'bottom', + labelFormat, + errorDesc +}) => { + // 滚动容器引用,用于控制自动滚动到底部 + const scrollContainerRef = useRef<(HTMLDivElement | null)>(null) + + // 当数据变化时,自动滚动到底部显示最新消息 + useEffect(() => { + setTimeout(() => { + if (scrollContainerRef.current) { + scrollContainerRef.current.scrollTop = scrollContainerRef.current.scrollHeight; + } + }, 0); + }, [data]) + return ( +
+ {data.length === 0 + ? empty // 显示空状态 + : data.map((item, index) => ( +
+ {/* 流式加载时且内容为空则不显示 */} + {streamLoading && item.content === '' + ? null + : <> + {/* 顶部标签(如时间戳、用户名等) */} + {labelPosition === 'top' && +
+ {labelFormat(item)} +
+ } + {/* 消息气泡框 */} +
+ {/* 使用Markdown组件渲染消息内容 */} + +
+ {/* 底部标签(如时间戳、用户名等) */} + {labelPosition === 'bottom' && +
+ {labelFormat(item)} +
+ } + + } +
+ )) + } +
+ ) +} + +export default ChatContent diff --git a/web/src/components/Chat/ChatInput.tsx b/web/src/components/Chat/ChatInput.tsx new file mode 100644 index 00000000..8dd19410 --- /dev/null +++ b/web/src/components/Chat/ChatInput.tsx @@ -0,0 +1,80 @@ +/* + * @Author: ZhaoYing + * @Date: 2025-12-10 16:46:14 + * @Last Modified by: ZhaoYing + * @Last Modified time: 2025-12-10 16:49:13 + */ +import { useEffect } from 'react' +import { Flex, Input, Form } from 'antd' +import SendIcon from '@/assets/images/conversation/send.svg' +import SendDisabledIcon from '@/assets/images/conversation/sendDisabled.svg' +import LoadingIcon from '@/assets/images/conversation/loading.svg' +import type { ChatInputProps } from './types' + +/** + * 聊天输入框组件 + * 提供消息输入、发送功能,支持键盘快捷键和加载状态显示 + */ +const ChatInput = ({ message, onChange, onSend, loading, children }: ChatInputProps) => { + const [form] = Form.useForm() + // 监听表单值变化,用于控制发送按钮状态 + const values = Form.useWatch([], form); + + // 当外部message为空时,清空表单 + useEffect(() => { + if (!message) { + form.setFieldsValue({ + message: undefined, + }) + } + }, [form, message]) + + // 当加载状态时,清空输入框 + useEffect(() => { + if (loading) { + form.setFieldsValue({ + message: undefined, + }) + } + }, [loading]) + + return ( +
+ + {/* 消息输入表单 */} +
+ + onChange(e.target.value)} + onKeyDown={(e) => { + // Enter键发送,Shift+Enter换行 + if (e.key === 'Enter' && !e.shiftKey && (e.target as HTMLTextAreaElement).value?.trim() !== '' && !loading) { + e.preventDefault(); + onSend(); + } + }} + /> + +
+ + {/* 底部操作区域 */} + + {/* 子组件内容(如按钮等) */} + {children} + {/* 发送按钮 - 根据状态显示不同图标 */} + {loading + ? + : !values || !values?.message || values?.message?.trim() === '' + ? + : + } + +
+
+ ) +} + +export default ChatInput diff --git a/web/src/components/Chat/index.tsx b/web/src/components/Chat/index.tsx new file mode 100644 index 00000000..7db29bfc --- /dev/null +++ b/web/src/components/Chat/index.tsx @@ -0,0 +1,47 @@ +/* + * @Author: ZhaoYing + * @Date: 2025-12-10 16:46:09 + * @Last Modified by: ZhaoYing + * @Last Modified time: 2025-12-11 13:43:51 + */ +import { type FC } from 'react' +import ChatInput from './ChatInput' +import type { ChatProps } from './types' +import ChatContent from './ChatContent' + +/** + * 聊天组件 - 主要组件,由内容区域和输入框组成 + * 提供完整的聊天界面功能,包括消息显示和输入交互 + */ +const Chat: FC = ({ + empty, + data, + onChange, + onSend, + streamLoading = false, + loading, + contentClassName = '', + children, + labelFormat, + errorDesc +}) => { + return ( +
+ {/* 聊天内容显示区域 */} + + + {/* 聊天输入框区域 */} + + {children} + +
+ ) +} +export default Chat diff --git a/web/src/components/Chat/types.ts b/web/src/components/Chat/types.ts new file mode 100644 index 00000000..851a8ccc --- /dev/null +++ b/web/src/components/Chat/types.ts @@ -0,0 +1,84 @@ +/* + * @Author: ZhaoYing + * @Date: 2025-12-10 16:45:54 + * @Last Modified by: ZhaoYing + * @Last Modified time: 2025-12-11 13:43:52 + */ +import { type ReactNode } from 'react' + +/** + * 聊天消息项接口 + */ +export interface ChatItem { + /** 消息唯一标识 */ + id?: string; + /** 会话ID */ + conversation_id?: string | null; + /** 消息角色:用户或助手 */ + role?: 'user' | 'assistant'; + /** 消息内容 */ + content?: string | null; + /** 创建时间 */ + created_at?: number | string +} + +/** + * 聊天组件主要属性接口 + */ +export interface ChatProps { + /** 空状态显示内容 */ + empty?: ReactNode; + /** 聊天数据列表 */ + data: ChatItem[]; + /** 输入内容变化回调 */ + onChange: (message: string) => void; + /** 发送消息回调 */ + onSend: () => void; + /** 流式加载状态 */ + streamLoading?: boolean; + /** 加载状态 */ + loading: boolean; + /** 内容区域自定义样式类名 */ + contentClassName?: string; + /** 子组件内容 */ + children?: ReactNode; + /** 标签格式化函数 */ + labelFormat: (item: ChatItem) => any; + errorDesc?: string; +} + +/** + * 聊天输入框组件属性接口 + */ +export interface ChatInputProps { + /** 当前输入消息 */ + message?: string; + /** 输入内容变化回调 */ + onChange: (message: string) => void; + /** 发送消息回调 */ + onSend: () => void; + /** 加载状态 */ + loading: boolean; + /** 子组件内容 */ + children?: ReactNode; +} + +/** + * 聊天内容区域组件属性接口 + */ +export interface ChatContentProps { + /** 自定义样式类名 */ + classNames?: string | Record; + contentClassNames?: string | Record; + /** 聊天数据列表 */ + data: ChatItem[]; + /** 流式加载状态 */ + streamLoading: boolean; + /** 空状态显示内容 */ + empty?: ReactNode; + /** 标签位置:顶部或底部 */ + labelPosition?: 'top' | 'bottom'; + /** 标签格式化函数 */ + labelFormat: (item: ChatItem) => any; + errorDesc?: string; +} \ No newline at end of file From d27ed6c419b0bb6995e176a20cb81a0c7d7c95bc Mon Sep 17 00:00:00 2001 From: zhaoying Date: Tue, 16 Dec 2025 11:31:19 +0800 Subject: [PATCH 09/92] optimize: 1. stream request optimize; 2. replace Chat component --- web/src/api/application.ts | 20 +- web/src/utils/stream.ts | 44 +- web/src/views/ApplicationConfig/Agent.tsx | 1 + .../ApplicationConfig/components/Chat.tsx | 515 ++++++++++-------- web/src/views/ApplicationConfig/types.ts | 6 +- web/src/views/Conversation/index.tsx | 202 ++++--- web/src/views/Conversation/types.ts | 8 + .../MemoryConversation/components/Chat.tsx | 82 --- .../components/ChatInput.tsx | 143 ----- web/src/views/MemoryConversation/index.tsx | 120 ++-- 10 files changed, 545 insertions(+), 596 deletions(-) delete mode 100644 web/src/views/MemoryConversation/components/Chat.tsx delete mode 100644 web/src/views/MemoryConversation/components/ChatInput.tsx diff --git a/web/src/api/application.ts b/web/src/api/application.ts index 583ff8b9..72521d92 100644 --- a/web/src/api/application.ts +++ b/web/src/api/application.ts @@ -1,7 +1,8 @@ import { request } from '@/utils/request' import type { Application } from '@/views/ApplicationManagement/types' import type { Config } from '@/views/ApplicationConfig/types' -import { handleSSE } from '@/utils/stream' +import { handleSSE, type SSEMessage } from '@/utils/stream' +import type { QueryParams } from '@/views/Conversation/types' // 应用列表 export const getApplicationListUrl = '/apps' @@ -37,10 +38,10 @@ export const saveMultiAgentConfig = (app_id: string, values: Config) => { return request.put(`/apps/${app_id}/multi-agent`, values) } // 模型比对试运行 -export const runCompare = (app_id: string, values: Record, onMessage?: (data: string) => void) => { +export const runCompare = (app_id: string, values: Record, onMessage?: (data: SSEMessage[]) => void) => { return handleSSE(`/apps/${app_id}/draft/run/compare`, values, onMessage) } -export const draftRun = (app_id: string, values: Record, onMessage?: (data: string) => void) => { +export const draftRun = (app_id: string, values: Record, onMessage?: (data: SSEMessage[]) => void) => { return handleSSE(`/apps/${app_id}/draft/run`, values, onMessage) } // 删除应用 @@ -76,18 +77,7 @@ export const getConversationHistory = (share_token: string, data: { page: number }) } // 发送体验对话 -export const sendConversation = (share_token: string, values: { - message: string; - web_search: boolean; - memory: boolean; - stream: boolean; - conversation_id: string | null; -}, onMessage, shareToken: string) => { - // return request.post(`/public/share/chat`, values, { - // headers: { - // 'Authorization': `Bearer ${localStorage.getItem(`shareToken_${share_token}`)}` - // } - // }) +export const sendConversation = (values: QueryParams, onMessage: (data: SSEMessage[]) => void, shareToken: string) => { return handleSSE(`/public/share/chat`, values, onMessage, { headers: { 'Authorization': `Bearer ${shareToken}` diff --git a/web/src/utils/stream.ts b/web/src/utils/stream.ts index 2c827c2f..3ef1db39 100644 --- a/web/src/utils/stream.ts +++ b/web/src/utils/stream.ts @@ -3,7 +3,47 @@ import i18n from '@/i18n' import { cookieUtils } from './request' const API_PREFIX = '/api' -export const handleSSE = async (url: string, data: any, onMessage?: (data: string) => void, config = {}) => { +export interface SSEMessage { + event?: string + data?: string | object +} +export function parseSSEToJSON(sseString: string) { + const events: SSEMessage[] = [] + const lines = sseString.trim().split('\n') + + let currentEvent: SSEMessage = {} + + try { + for (const line of lines) { + if (line.startsWith('event:')) { + if (Object.keys(currentEvent).length > 0) { + events.push(currentEvent) + currentEvent = {} + } + currentEvent.event = line.substring(6).trim() + } else if (line.startsWith('data:')) { + const dataStr = line.substring(5).trim() + try { + currentEvent.data = JSON.parse(dataStr.replace(/"/g, '"')) + } catch { + currentEvent.data = dataStr + } + } + } + + if (Object.keys(currentEvent).length > 0) { + events.push(currentEvent) + } + + return events + } catch (error) { + console.error('Parse stream error:', error) + return [] + } +} + + +export const handleSSE = async (url: string, data: any, onMessage?: (data: SSEMessage[]) => void, config = { headers: {} }) => { try { const token = cookieUtils.get('authToken'); const response = await fetch(`${API_PREFIX}${url}`, { @@ -37,7 +77,7 @@ export const handleSSE = async (url: string, data: any, onMessage?: (data: strin const chunk = decoder.decode(value, { stream: true }); if (onMessage) { - onMessage(chunk); + onMessage(parseSSEToJSON(chunk) ?? {}); } } break; diff --git a/web/src/views/ApplicationConfig/Agent.tsx b/web/src/views/ApplicationConfig/Agent.tsx index dc600f1f..2e032d84 100644 --- a/web/src/views/ApplicationConfig/Agent.tsx +++ b/web/src/views/ApplicationConfig/Agent.tsx @@ -239,6 +239,7 @@ const Agent = forwardRef((_props, ref) => { return [ ...(prev || []).map(item => ({ ...item, + conversation_id: undefined, list: [] })), newChatItem diff --git a/web/src/views/ApplicationConfig/components/Chat.tsx b/web/src/views/ApplicationConfig/components/Chat.tsx index 9a70b5f2..02ce405c 100644 --- a/web/src/views/ApplicationConfig/components/Chat.tsx +++ b/web/src/views/ApplicationConfig/components/Chat.tsx @@ -1,46 +1,125 @@ -import { type FC, useRef, useEffect, useState } from 'react'; +import { type FC, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import clsx from 'clsx' import { Input, Form } from 'antd' import ChatIcon from '@/assets/images/application/chat.png' import ChatSendIcon from '@/assets/images/application/chatSend.svg' import DebuggingEmpty from '@/assets/images/application/debuggingEmpty.png' -import type { ChatItem, ChatData, Config } from '../types' +import type { ChatData, Config } from '../types' import { runCompare, draftRun } from '@/api/application' import Empty from '@/components/Empty' -import Markdown from '@/components/Markdown' +import ChatContent from '@/components/Chat/ChatContent' +import type { ChatItem } from '@/components/Chat/types' +import { type SSEMessage } from '@/utils/stream' interface ChatProps { chatList: ChatData[]; data: Config; - updateChatList: (list: ChatData[]) => void; + updateChatList: React.Dispatch>; handleSave: (flag?: boolean) => Promise; - source?: 'cluster' | 'agent'; + source?: 'multi_agent' | 'agent'; } const Chat: FC = ({ chatList, data, updateChatList, handleSave, source = 'agent' }) => { const { t } = useTranslation(); const [form] = Form.useForm<{ message: string }>() - const scrollContainerRefs = useRef<(HTMLDivElement | null)[]>([]) const [loading, setLoading] = useState(false) - const [isCluster, setIsCluster] = useState(source === 'cluster') + const [isCluster, setIsCluster] = useState(source === 'multi_agent') const [conversationId, setConversationId] = useState(null) const [compareLoading, setCompareLoading] = useState(false) - - // 当聊天列表更新时,自动滚动到底部 + useEffect(() => { - // 延迟一下,确保DOM已经更新 - setTimeout(() => { - scrollContainerRefs.current.forEach(container => { - if (container) { - container.scrollTop = container.scrollHeight; - } - }); - }, 0); - }, [chatList]); - useEffect(() => { - setIsCluster(source === 'cluster') + setIsCluster(source === 'multi_agent') }, [source]) + const addUserMessage = (message: string) => { + const newUserMessage: ChatItem = { + role: 'user', + content: message, + created_at: Date.now(), + }; + updateChatList(prev => prev.map(item => ({ + ...item, + list: [...(item.list || []), newUserMessage] + }))) + } + const addAssistantMessage = () => { + const assistantMessage: ChatItem = { + role: 'assistant', + content: '', + created_at: Date.now(), + }; + + if (isCluster) { + updateChatList(prev => prev.map(item => ({ + ...item, + list: [...(item.list || []), assistantMessage] + }))) + } else { + const assistantMessages: Record = {} + chatList.forEach(item => { + assistantMessages[item.model_config_id as string] = assistantMessage + }) + updateChatList(prev => prev.map(item => ({ + ...item, + list: [...(item.list || []), assistantMessages[item.model_config_id as string]] + }))) + } + } + const updateAssistantMessage = (content?: string, model_config_id?: string, conversation_id?: string) => { + if (!content || !model_config_id) return + updateChatList(prev => { + const targetIndex = prev.findIndex(item => item.model_config_id === model_config_id); + if (targetIndex !== -1) { + const modelChatList = [...prev] + const curModelChat = modelChatList[targetIndex] + const curChatMsgList = curModelChat.list || [] + const lastMsg = curChatMsgList[curChatMsgList.length - 1] + if (lastMsg.role === 'assistant') { + modelChatList[targetIndex] = { + ...modelChatList[targetIndex], + conversation_id: conversation_id, + list: [ + ...curChatMsgList.slice(0, curChatMsgList.length - 1), + { + ...lastMsg, + content: lastMsg.content + content + } + ] + } + } + return [...modelChatList] + } + return prev; + }) + } + const updateErrorAssistantMessage = (message_length: number, model_config_id?: string) => { + if (message_length > 0 || !model_config_id) return + + updateChatList(prev => { + const targetIndex = prev.findIndex(item => item.model_config_id === model_config_id); + if (targetIndex > -1) { + const modelChatList = [...prev] + const curModelChat = modelChatList[targetIndex] + const curChatMsgList = curModelChat.list || [] + const lastMsg = curChatMsgList[curChatMsgList.length - 1] + if (lastMsg.role === 'assistant') { + modelChatList[targetIndex] = { + ...modelChatList[targetIndex], + list: [ + ...curChatMsgList.slice(0, curChatMsgList.length - 1), + { + ...lastMsg, + content: null + } + ] + } + } + return [...modelChatList] + } + + return prev + }) + } const handleSend = () => { if (loading) return setLoading(true) @@ -48,182 +127,47 @@ const Chat: FC = ({ chatList, data, updateChatList, handleSave, sourc handleSave(false) .then(() => { const message = form.getFieldValue('message') - if (!message || message.trim() === '') return - const newUserMessage: ChatItem = { - role: 'question', - content: message, - time: Date.now(), - }; - updateChatList((prev: ChatData[]) => { - return prev.map(item => ({ - ...item, - list: [ - ...(item.list || []), - newUserMessage - ] - })) - }) + if (!message?.trim()) return + + addUserMessage(message) form.setFieldsValue({ message: undefined }) - // 添加空的助手消息用于流式更新 - const assistantMessages: Record = {}; - if (isCluster) { - const assistantMessage: ChatItem = { - role: 'answer', - content: '', - time: Date.now(), - }; - assistantMessages['cluster'] = assistantMessage; - updateChatList((prev: ChatData[]) => prev.map(item => ({ - ...item, - list: [...(item.list || []), assistantMessage] - }))) - } else { - chatList.forEach(item => { - const assistantMessage: ChatItem = { - role: 'answer', - content: '', - time: Date.now(), - }; - assistantMessages[item.model_config_id] = assistantMessage; - }); - updateChatList((prev: ChatData[]) => prev.map(item => ({ - ...item, - list: [...(item.list || []), assistantMessages[item.model_config_id]] - }))) - } + addAssistantMessage() - const handleStreamMessage = (data: string) => { + const handleStreamMessage = (data: SSEMessage[]) => { setCompareLoading(false) - try { - const lines = data.split('\n'); - let currentEvent = ''; - - for (let i = 0; i < lines.length; i++) { - const line = lines[i].trim(); - - if (line.startsWith('event:')) { - currentEvent = line.substring(6).trim(); - } else if (line.startsWith('data:') && (!isCluster && currentEvent === 'model_message')) { - const jsonData = line.substring(5).trim(); - const parsed = JSON.parse(jsonData); - - if (parsed.content && parsed.model_config_id) { - const targetIndex = chatList.findIndex(item => item.model_config_id === parsed.model_config_id); - if (targetIndex !== -1) { - updateChatList((prev: ChatData[]) => prev.map((item, index) => { - if (index === targetIndex) { - return { - ...item, - conversation_id: parsed.conversation_id, - list: item.list?.map((msg, msgIndex) => { - if (msgIndex === item.list!.length - 1 && msg.role === 'answer') { - return { ...msg, content: msg.content + parsed.content }; - } - return msg; - }) || [] - }; - } - return item; - })) - } - } - } else if (line.startsWith('data:') && (isCluster && currentEvent === 'message')) { - const jsonData = line.substring(5).trim(); - const parsed = JSON.parse(jsonData); - if (parsed.content) { - updateChatList((prev: ChatData[]) => prev.map((item, index) => { - if (index === 0) { - return { - ...item, - list: item.list?.map((msg, msgIndex) => { - if (msgIndex === item.list!.length - 1 && msg.role === 'answer') { - return { ...msg, content: (msg.content || '') + parsed.content }; - } - return msg; - }) || [] - }; - } - return item; - })) - } - if (parsed.conversation_id) { - setConversationId(parsed.conversation_id); - } - } else if (line.startsWith('data:') && (!isCluster && currentEvent === 'model_end')) { - const jsonData = line.substring(5).trim(); - const parsed = JSON.parse(jsonData); - - if (parsed.message_length === 0 && parsed.model_config_id) { - const targetIndex = chatList.findIndex(item => item.model_config_id === parsed.model_config_id); - if (targetIndex !== -1) { - updateChatList((prev: ChatData[]) => prev.map((item, index) => { - if (index === targetIndex) { - return { - ...item, - list: item.list?.map((msg, msgIndex) => { - if (msgIndex === item.list!.length - 1 && msg.role === 'answer') { - return { ...msg, content: null }; - } - return msg; - }) || [] - }; - } - return item; - })) - } - } - } else if (line.startsWith('data:') && (isCluster && currentEvent === 'model_end')) { - const jsonData = line.substring(5).trim(); - const parsed = JSON.parse(jsonData); - if (parsed.message_length === 0) { - updateChatList((prev: ChatData[]) => prev.map((item, index) => { - if (index === 0) { - return { - ...item, - list: item.list?.map((msg, msgIndex) => { - if (msgIndex === item.list!.length - 1 && msg.role === 'answer') { - return { ...msg, content: null }; - } - return msg; - }) || [] - }; - } - return item; - })) - } - if (parsed.conversation_id) { - setConversationId(parsed.conversation_id); - } - } else if (currentEvent === 'compare_end') { + data.map(item => { + const { model_config_id, conversation_id, content, message_length } = item.data as { model_config_id: string; conversation_id: string; content: string; message_length: number }; + + switch(item.event) { + case 'model_message': + updateAssistantMessage(content, model_config_id, conversation_id) + break; + case 'model_end': + updateErrorAssistantMessage(message_length, model_config_id) + break; + case 'compare_end': setLoading(false); - } + break; } - } catch (e) { - console.error('Parse stream data error:', e); - } + }) }; setTimeout(() => { - if (isCluster) { - draftRun(data.app_id, { message, conversation_id: conversationId, stream: true }, handleStreamMessage) - .finally(() => setLoading(false)) - } else { - runCompare(data.app_id, { - message, - models: chatList.map(item => ({ - model_config_id: item.model_config_id, - label: item.label, - model_parameters: item.model_parameters, - conversation_id: item.conversation_id - })), - variables: {}, - "parallel": true, - "stream": true, - "timeout": 60, - }, handleStreamMessage) - .finally(() => setLoading(false)); - } + runCompare(data.app_id, { + message, + models: chatList.map(item => ({ + model_config_id: item.model_config_id, + label: item.label, + model_parameters: item.model_parameters, + conversation_id: item.conversation_id + })), + variables: {}, + "parallel": true, + "stream": true, + "timeout": 60, + }, handleStreamMessage) + .finally(() => setLoading(false)); }, 0) }) .catch(() => { @@ -231,6 +175,131 @@ const Chat: FC = ({ chatList, data, updateChatList, handleSave, sourc setCompareLoading(false) }) } + + const addClusterAssistantMessage = () => { + const assistantMessage: ChatItem = { + role: 'assistant', + content: '', + created_at: Date.now(), + }; + updateChatList(prev => prev.map(item => ({ + ...item, + list: [...(item.list || []), assistantMessage] + }))) + } + const updateClusterAssistantMessage = (content?: string) => { + if (!content) return + updateChatList(prev => { + const modelChatList = [...prev] + const curModelChat = modelChatList[0] + const curChatMsgList = curModelChat.list || [] + const lastMsg = curChatMsgList[curChatMsgList.length - 1] + if (lastMsg.role === 'assistant') { + modelChatList[0] = { + ...modelChatList[0], + list: [ + ...curChatMsgList.slice(0, curChatMsgList.length - 1), + { + ...lastMsg, + content: lastMsg.content + content + } + ] + } + } + return [...modelChatList] + }) + updateChatList((prev: ChatData[]) => prev.map((item, index) => { + if (index === 0) { + return { + ...item, + list: item.list?.map((msg, msgIndex) => { + if (msgIndex === item.list!.length - 1 && msg.role === 'assistant') { + return { ...msg, content: (msg.content || '') + content }; + } + return msg; + }) || [] + }; + } + return item; + })) + } + const updateClusterErrorAssistantMessage = (message_length: number) => { + if (message_length > 0) return + + updateChatList(prev => { + const modelChatList = [...prev] + const curModelChat = modelChatList[0] + const curChatMsgList = curModelChat.list || [] + const lastMsg = curChatMsgList[curChatMsgList.length - 1] + if (lastMsg.role === 'assistant') { + modelChatList[0] = { + ...modelChatList[0], + list: [ + ...curChatMsgList.slice(0, curChatMsgList.length - 1), + { + ...lastMsg, + content: null + } + ] + } + } + return [...modelChatList] + }) + } + const handleClusterSend = () => { + if (loading) return + setLoading(true) + setCompareLoading(true) + handleSave(false) + .then(() => { + const message = form.getFieldValue('message') + if (!message || message.trim() === '') return + addUserMessage(message) + form.setFieldsValue({ message: undefined }) + addClusterAssistantMessage() + + const handleStreamMessage = (data: SSEMessage[]) => { + setCompareLoading(false) + + data.map(item => { + const { conversation_id, content, message_length } = item.data as { conversation_id: string, content: string, message_length: number }; + + switch(item.event) { + case 'message': + updateClusterAssistantMessage(content) + if (conversation_id && conversationId !== conversation_id) { + setConversationId(conversation_id); + } + break; + case 'model_end': + updateClusterErrorAssistantMessage(message_length) + break; + case 'compare_end': + setLoading(false); + break; + } + }) + }; + + setTimeout(() => { + draftRun( + data.app_id, + { + message, + conversation_id: conversationId, + stream: true + }, + handleStreamMessage + ) + .finally(() => setLoading(false)) + }, 0) + }) + .catch(() => { + setLoading(false) + setCompareLoading(false) + }) + } + const handleDelete = (index: number) => { updateChatList(chatList.filter((_, voIndex) => voIndex !== index)) } @@ -258,69 +327,55 @@ const Chat: FC = ({ chatList, data, updateChatList, handleSave, sourc
{chat.label}
handleDelete(index)} >
} - {!chat.list || chat.list.length === 0 - ? - : ( -
scrollContainerRefs.current[index] = el} className={clsx(`rb:relative rb:overflow-y-auto rb:overflow-x-hidden`, { - 'rb:h-[calc(100vh-186px)]': isCluster, - 'rb:h-[calc(100vh-286px)]': !isCluster, - })}> - {chat.list?.map((vo, voIndex) => { - if (compareLoading && voIndex === chat.list?.length - 1) { - return null - } - return ( -
-
{vo.role === 'question' ? 'You' : chat.label}
-
- -
-
- ) - })} -
- ) - } + } + data={chat.list || []} + streamLoading={compareLoading} + labelPosition="top" + labelFormat={(item) => item.role === 'user' ? 'You' : chat.label} + errorDesc={t('application.ReplyException')} + /> +
))}
-
+
- + - + })} onClick={isCluster ? handleClusterSend : handleSend} />
} diff --git a/web/src/views/ApplicationConfig/types.ts b/web/src/views/ApplicationConfig/types.ts index 607110a6..f910a90f 100644 --- a/web/src/views/ApplicationConfig/types.ts +++ b/web/src/views/ApplicationConfig/types.ts @@ -1,4 +1,5 @@ import type { KnowledgeBaseListItem } from '@/views/KnowledgeBase/types' +import type { ChatItem } from '@/components/Chat/types' export interface ModelConfig { label?: string; @@ -139,11 +140,6 @@ export interface ApiExtensionModalData { export interface ApiExtensionModalRef { handleOpen: () => void; } -export interface ChatItem { - role: 'answer' | 'question'; - content?: string; - time: number; -} export interface ChatData { label?: string; model_config_id?: string; diff --git a/web/src/views/Conversation/index.tsx b/web/src/views/Conversation/index.tsx index 149b2261..e19f4f06 100644 --- a/web/src/views/Conversation/index.tsx +++ b/web/src/views/Conversation/index.tsx @@ -2,16 +2,24 @@ import { type FC, useState, useEffect, useRef } from 'react' import { useParams, useLocation } from 'react-router-dom' import { useTranslation } from 'react-i18next' import InfiniteScroll from 'react-infinite-scroll-component'; -import { Flex, Skeleton } from 'antd' +import { Flex, Skeleton, Form } from 'antd' import clsx from 'clsx' -import Chat, { type ChatItem } from '@/views/MemoryConversation/components/Chat' import AnalysisEmptyIcon from '@/assets/images/conversation/analysisEmpty.svg' import { getConversationHistory, sendConversation, getConversationDetail, getShareToken } from '@/api/application' -import type { HistoryItem } from './types' +import type { HistoryItem, QueryParams } from './types' import Empty from '@/components/Empty' import { formatDateTime } from '@/utils/format'; import { randomString } from '@/utils/common' import BgImg from '@/assets/images/conversation/bg.png' +import Chat from '@/components/Chat' +import type { ChatItem } from '@/components/Chat/types' +import ButtonCheckbox from '@/components/ButtonCheckbox' +import MemoryFunctionIcon from '@/assets/images/conversation/memoryFunction.svg' +import OnlineIcon from '@/assets/images/conversation/online.svg' +import OnlineCheckedIcon from '@/assets/images/conversation/onlineChecked.svg' +import MemoryFunctionCheckedIcon from '@/assets/images/conversation/memoryFunctionChecked.svg' +import dayjs from 'dayjs' +import { type SSEMessage } from '@/utils/stream' const Conversation: FC = () => { const { t } = useTranslation() @@ -20,13 +28,8 @@ const Conversation: FC = () => { const searchParams = new URLSearchParams(location.search) const userId = searchParams.get('user_id') const [loading, setLoading] = useState(false) - const [chatLoading, setChatLoading] = useState(false) - const [query, setQuery] = useState<{ - message?: string; - web_search?: boolean; - memory?: boolean; - conversation_id?: string; - }>({}) + const [streamLoading, setStreamLoading] = useState(false) + const [message, setMessage] = useState('') const [conversation_id, setConversationId] = useState(null) const [historyList, setHistoryList] = useState([]) const [groupHistoryList, setGroupHistoryList] = useState>({}) @@ -36,14 +39,18 @@ const Conversation: FC = () => { const [hasMore, setHasMore] = useState(true); const scrollRef = useRef(null); const [shareToken, setShareToken] = useState(localStorage.getItem(`shareToken_${token}`)) + + const [form] = Form.useForm() + const queryValues = Form.useWatch([], form) useEffect(() => { const shareToken = localStorage.getItem(`shareToken_${token}`) setShareToken(shareToken) if (shareToken && shareToken !== '') return getShareToken(token as string, userId || randomString(12, false)) .then(res => { - localStorage.setItem(`shareToken_${token}`, res?.access_token || '') - setShareToken(res?.access_token || '') + const response = res as { access_token: string } || {} + localStorage.setItem(`shareToken_${token}`, response.access_token ?? '') + setShareToken(response.access_token ?? '') }) }, [token]) @@ -73,7 +80,7 @@ const Conversation: FC = () => { setPageLoading(true); getConversationHistory(token, { page: flag ? 1 : page, pagesize: 20 }) .then(res => { - const response = res as { items: HistoryItem[], page: { hasnext: boolean } } + const response = res as { items: HistoryItem[], page: { hasnext: boolean; page: number; pagesize: number; total: number } } const results = response?.items || [] let list = [] if (flag) { @@ -101,7 +108,7 @@ const Conversation: FC = () => { setConversationId(id) } if (!id) { - setQuery({}) + setMessage('') } } useEffect(() => { @@ -116,72 +123,81 @@ const Conversation: FC = () => { } }, [conversation_id]) + const addUserMessage = (message: string = '') => { + const newUserMessage: ChatItem = { + conversation_id, + role: 'user', + content: message, + created_at: Date.now() + }; + setChatList(prev => [...prev, newUserMessage]) + } + const addAssistantMessage = () => { + const newAssistantMessage: ChatItem = { + created_at: Date.now(), + role: 'assistant', + content: '', + } + setChatList(prev => [...prev, newAssistantMessage]) + } + const updateAssistantMessage = (content: string = '') => { + if (!content) return + if (streamLoading) { + setStreamLoading(false) + } + + setChatList(prev => { + const lastList = [...prev] + const lastIndex = lastList.length - 1 + const lastMsg = lastList[lastIndex] + if (lastMsg?.role === 'assistant') { + return [ + ...lastList.slice(0, lastList.length - 1), + { + ...lastMsg, + content: lastMsg.content + content + } + ] + } + return prev + }) + } + const handleSend = () => { if (!token || !shareToken) { return } - // 添加必需的id和conversation_id属性 - const newUserMessage: ChatItem = { - conversation_id, - role: 'user', - content: query?.message || '', - created_at: Date.now() - }; - setChatList(prev => [...prev, newUserMessage]) - setLoading(true) - setChatLoading(true) - setChatList(prev => [...prev, { - created_at: Date.now(), - role: 'assistant', - content: '', - }]) - let currentConversationId: string | null = null - const handleStreamMessage = (data: string) => { - setChatLoading(false) - try { - const lines = data.split('\n'); - let currentEvent = ''; + setStreamLoading(true) + addUserMessage(message) + addAssistantMessage() - - for (let i = 0; i < lines.length; i++) { - const line = lines[i].trim(); - - if (line.startsWith('event:')) { - currentEvent = line.substring(6).trim(); - } else if (line.startsWith('data:') && currentEvent === 'message') { - const jsonData = line.substring(5).trim(); - const parsed = JSON.parse(jsonData); - - if (parsed.content) { - setChatList(prev => prev.map((msg, msgIndex) => { - if (msgIndex === prev!.length - 1 && msg.role === 'assistant') { - return { ...msg, content: msg.content + parsed.content }; - } - return msg; - })) - } - } else if (line.startsWith('data:') && currentEvent === 'start') { - const jsonData = line.substring(5).trim(); - const parsed = JSON.parse(jsonData); - currentConversationId = parsed.conversation_id - } else if (currentEvent === 'end') { - setLoading(false); + let currentConversationId: string | null = null + const handleStreamMessage = (data: SSEMessage[]) => { + data.forEach((item) => { + switch(item.event) { + case 'start': + const { conversation_id: newId } = item.data as { conversation_id: string } + currentConversationId = newId + break + case 'message': + const { content } = item.data as { content: string } + updateAssistantMessage(content) + break + case 'end': + setLoading(false) if (currentConversationId && currentConversationId !== conversation_id) { setConversationId(currentConversationId) - getHistory(true) } - } + getHistory(true) + break } - } catch (e) { - console.error('Parse stream data error:', e); - } + }) }; - sendConversation(token as string, { - message: query?.message || '', - web_search: query?.web_search || false, - memory: query?.memory || false, + sendConversation({ + ...queryValues, + message: message || '', stream: true, conversation_id: conversation_id || null, }, handleStreamMessage, shareToken) @@ -192,12 +208,12 @@ const Conversation: FC = () => { return ( -
-
+
handleChangeHistory(null)} >
{t('memoryConversation.startANewConversation')}
@@ -216,11 +232,11 @@ const Conversation: FC = () => { scrollableTarget="scrollableDiv" > {Object.entries(groupHistoryList).map(([date, items]) => ( -
-
{date.replace(/\u200e|\u200f/g, '')}
+
+
{date.replace(/\u200e|\u200f/g, '')}
{items.map(item => ( -
-
+
handleChangeHistory(item.id)} @@ -237,18 +253,38 @@ const Conversation: FC = () => {
-
+
- } - query={query} + empty={} + contentClassName="rb:h-[calc(100%-152px)]" data={chatList} + streamLoading={streamLoading} loading={loading} - onChange={setQuery} + onChange={setMessage} onSend={handleSend} - /> + labelFormat={(item) => dayjs(item.created_at).locale('en').format('MMMM D, YYYY [at] h:mm A')} + > +
+ + + + {t(`memoryConversation.web_search`)} + + + + + {t(`memoryConversation.memory`)} + + + +
+
) diff --git a/web/src/views/Conversation/types.ts b/web/src/views/Conversation/types.ts index f1fb199e..b1f28879 100644 --- a/web/src/views/Conversation/types.ts +++ b/web/src/views/Conversation/types.ts @@ -10,4 +10,12 @@ export interface HistoryItem { is_active: boolean; created_at: number; updated_at: number; +} + +export interface QueryParams { + message?: string; + web_search?: boolean; + memory?: boolean; + stream: boolean; + conversation_id?: string | null; } \ No newline at end of file diff --git a/web/src/views/MemoryConversation/components/Chat.tsx b/web/src/views/MemoryConversation/components/Chat.tsx deleted file mode 100644 index 7b1b36c4..00000000 --- a/web/src/views/MemoryConversation/components/Chat.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { type FC, type ReactNode, useEffect, useRef, useState } from 'react' -import { Flex } from 'antd' -import clsx from 'clsx' -import ChatInput from './ChatInput' -import type { TestParams } from '../index' -import dayjs from 'dayjs' -import Markdown from '@/components/Markdown' - -interface ChatProps { - empty?: ReactNode; - data: ChatItem[]; - query?: TestParams; - onChange: (query: TestParams) => void; - onSend: () => void; - loading: boolean; - source?: 'conversation' | 'memory'; -} -export interface ChatItem { - id?: string; - conversation_id?: string | null; - role?: 'user' | 'assistant'; - content?: string; - message?: string; - created_at?: number | string; - meta_data?: Record[]; -} - -const Chat: FC = ({ empty, data, query, onChange, onSend, loading, source = 'memory' }) => { - const scrollContainerRefs = useRef<(HTMLDivElement | null)>(null) - const [isMemory, setIsMemory] = useState(source === 'memory') - - useEffect(() => { - setIsMemory(source === 'memory') - }, [source]) - useEffect(() => { - setTimeout(() => { - if (scrollContainerRefs.current) { - scrollContainerRefs.current.scrollTop = scrollContainerRefs.current.scrollHeight; - } - }, 0); - }, [data]) - - return ( -
- {data.length === 0 ? ( - - {/* Empty */} -
- {empty} -
- - -
- ) - : ( -
- {data.map((item, index) => ( -
-
- -
-
{dayjs(item.created_at).locale('en').format('MMMM D, YYYY [at] h:mm A')}
-
- ))} -
- )} - - -
- ) -} -export default Chat diff --git a/web/src/views/MemoryConversation/components/ChatInput.tsx b/web/src/views/MemoryConversation/components/ChatInput.tsx deleted file mode 100644 index 2b98f515..00000000 --- a/web/src/views/MemoryConversation/components/ChatInput.tsx +++ /dev/null @@ -1,143 +0,0 @@ -import { type FC, useEffect, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { Flex, Input, Form } from 'antd' -import MemoryFunctionIcon from '@/assets/images/conversation/memoryFunction.svg' -import OnlineIcon from '@/assets/images/conversation/online.svg' -import DeepThinkingIcon from '@/assets/images/conversation/deepThinking.svg' -import SendIcon from '@/assets/images/conversation/send.svg' -import SendDisabledIcon from '@/assets/images/conversation/sendDisabled.svg' -import ButtonCheckbox from '@/components/ButtonCheckbox' -import DeepThinkingCheckedIcon from '@/assets/images/conversation/deepThinkingChecked.svg' -import OnlineCheckedIcon from '@/assets/images/conversation/onlineChecked.svg' -import MemoryFunctionCheckedIcon from '@/assets/images/conversation/memoryFunctionChecked.svg' -import LoadingIcon from '@/assets/images/conversation/loading.svg' -import type { TestParams } from '../index' - -interface ChatInputProps { - query?: TestParams; - onChange: (query: TestParams) => void; - onSend: () => void; - loading: boolean; - source: 'conversation' | 'memory'; -} -const searchSwitchList = [ - { - icon: DeepThinkingIcon, - checkedIcon: DeepThinkingCheckedIcon, - value: '0', - label: 'deepThinking' // 深度思考 - }, - { - icon: MemoryFunctionIcon, - checkedIcon: MemoryFunctionCheckedIcon, - value: '1', - label: 'normalReply' // 普通回复 - }, - { - icon: OnlineIcon, - checkedIcon: OnlineCheckedIcon, - value: '2', - label: 'quickReply' // 快速回复 - }, -] - -const ChatInput: FC = ({ source,query, onChange, onSend, loading }) => { - const [form] = Form.useForm() - const { t } = useTranslation(); - const values = Form.useWatch([], form); - const [search_switch, setSearchSwitch] = useState('0') - - useEffect(() => { - if (onChange) { - onChange({...values, search_switch}) - } - }, [values, search_switch, onChange]) - useEffect(() => { - if (!query?.message) { - form.setFieldsValue({ - message: undefined, - }) - } - }, [form, query?.message]) - useEffect(() => { - if (loading) { - form.setFieldsValue({ - message: undefined, - }) - } - }, [loading]) - - const handleChange = (value: string) => { - form.setFieldsValue({ - search_switch: value, - }) - setSearchSwitch(value) - } - - return ( -
- - - onChange({ ...query, message: e.target.value })} - onKeyDown={(e) => { - if (e.key === 'Enter' && !e.shiftKey && e.target.value?.trim() !== '' && !loading) { - e.preventDefault(); - onSend(); - } - }} - /> - - - - {source === 'memory' && - - {searchSwitchList.map(item => ( - handleChange(item.value)} - > - {t(`memoryConversation.${item.label}`)} - - ))} - - } - {source === 'conversation' && - - - - {t(`memoryConversation.web_search`)} - - - - - {t(`memoryConversation.memory`)} - - - - } - {loading ? : - !values || !values?.message || values?.message?.trim() === '' ? - - : - } - - -
- ) -} - -export default ChatInput diff --git a/web/src/views/MemoryConversation/index.tsx b/web/src/views/MemoryConversation/index.tsx index c92044cc..bb8df5e4 100644 --- a/web/src/views/MemoryConversation/index.tsx +++ b/web/src/views/MemoryConversation/index.tsx @@ -1,16 +1,48 @@ import { type FC, type ReactNode, useState, useEffect } from 'react' import { useTranslation } from 'react-i18next' -import { Col, Row, App, Skeleton, Space, Select } from 'antd' +import { Col, Row, App, Skeleton, Space, Select, Flex } from 'antd' import clsx from 'clsx' import ConversationEmptyIcon from '@/assets/images/conversation/conversationEmpty.svg' import AnalysisEmptyIcon from '@/assets/images/conversation/analysisEmpty.png' import Card from './components/Card' -import Chat from './components/Chat' import { readService, getUserMemoryList } from '@/api/memory' import Empty from '@/components/Empty' import Markdown from '@/components/Markdown' import type { Data } from '@/views/UserMemory/types' +import Chat from '@/components/Chat' +import MemoryFunctionIcon from '@/assets/images/conversation/memoryFunction.svg' +import OnlineIcon from '@/assets/images/conversation/online.svg' +import DeepThinkingIcon from '@/assets/images/conversation/deepThinking.svg' +import ButtonCheckbox from '@/components/ButtonCheckbox' +import DeepThinkingCheckedIcon from '@/assets/images/conversation/deepThinkingChecked.svg' +import OnlineCheckedIcon from '@/assets/images/conversation/onlineChecked.svg' +import MemoryFunctionCheckedIcon from '@/assets/images/conversation/memoryFunctionChecked.svg' +import type { ChatItem } from '@/components/Chat/types' +import dayjs from 'dayjs' +import type { AnyObject } from 'antd/es/_util/type'; + + +const searchSwitchList = [ + { + icon: DeepThinkingIcon, + checkedIcon: DeepThinkingCheckedIcon, + value: '0', + label: 'deepThinking' // 深度思考 + }, + { + icon: MemoryFunctionIcon, + checkedIcon: MemoryFunctionCheckedIcon, + value: '1', + label: 'normalReply' // 普通回复 + }, + { + icon: OnlineIcon, + checkedIcon: OnlineCheckedIcon, + value: '2', + label: 'quickReply' // 快速回复 + }, +] export interface TestParams { group_id: string; @@ -30,8 +62,8 @@ interface DataItem { export interface LogItem { type: string; title: string; - data?: DataItem[] | Record; - raw_results?: string; + data?: DataItem[] | AnyObject; + raw_results?: string | AnyObject; summary?: string; query?: string; reason?: string; @@ -41,7 +73,7 @@ export interface LogItem { } const ContentWrapper: FC<{ children: ReactNode }> = ({ children }) => ( -
+
{children}
) @@ -49,17 +81,13 @@ const ContentWrapper: FC<{ children: ReactNode }> = ({ children }) => ( const MemoryConversation: FC = () => { const { t } = useTranslation() const { message } = App.useApp(); - const [query, setQuery] = useState({ - group_id: '', - message: '', - search_switch: '0', - history: [], - }) const [userId, setUserId] = useState() const [loading, setLoading] = useState(false) - const [chatData, setChatData] = useState<{ content: string; created_at: string | number; role: string }[]>([]) + const [chatData, setChatData] = useState([]) const [logs, setLogs] = useState([]) const [userList, setUserList] = useState([]) + const [search_switch, setSearchSwitch] = useState('0') + const [msg, setMsg] = useState('') useEffect(() => { getUserMemoryList().then(res => { @@ -75,11 +103,12 @@ const MemoryConversation: FC = () => { message.warning(t('common.inputPlaceholder', { title: t('memoryConversation.userID') })) return } - setChatData(prev => [...prev, { content: query.message || '', created_at: new Date().getTime(), role: 'user' }]) + setChatData(prev => [...prev, { content: msg, created_at: new Date().getTime(), role: 'user' }]) setLoading(true) readService({ - ...query, + message: msg, group_id: userId, + search_switch: search_switch, history: [], }) .then(res => { @@ -92,6 +121,10 @@ const MemoryConversation: FC = () => { }) } + const handleChange = (value: string) => { + setSearchSwitch(value) + } + return ( <> @@ -101,7 +134,7 @@ const MemoryConversation: FC = () => { value: item.end_user?.id, label: item?.name, }))} - filterOption={(inputValue, option) => option.label?.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1} + filterOption={(inputValue, option) => option?.label?.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1} showSearch={true} // filterOption={(inputValue, option) => option.label?.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1} placeholder={t('memoryConversation.searchPlaceholder')} @@ -118,14 +151,29 @@ const MemoryConversation: FC = () => { > + } + contentClassName='rb:h-[calc(100vh-362px)]' data={chatData} - query={query} - onChange={setQuery} + onChange={setMsg} onSend={handleSend} loading={loading} - /> + labelFormat={(item) => dayjs(item.created_at).locale('en').format('MMMM D, YYYY [at] h:mm A')} + > + + {searchSwitchList.map(item => ( + handleChange(item.value)} + > + {t(`memoryConversation.${item.label}`)} + + ))} + + @@ -147,8 +195,8 @@ const MemoryConversation: FC = () => { {logs.map((log, logIndex) => (
{ } )} > -
{log.title}
+
{log.title}
{log.type === 'problem_split' && Array.isArray(log.data) && log.data.length > 0 ? {log.data.map(vo => ( <>
{vo.id}. {vo.question}
-
{vo.reason}
+
{vo.reason}
))} @@ -175,7 +223,7 @@ const MemoryConversation: FC = () => { <>
{key}
{(log.data as Record)[key].map((item, index) => ( -
{item}
+
{item}
))} @@ -183,15 +231,15 @@ const MemoryConversation: FC = () => {
: log.type === 'search_result' && log.raw_results ? -
{log.query}
-
+
{log.query}
+
{typeof log.raw_results === 'string' ? : <> - {log.raw_results.reranked_results?.statements.length > 0 && log.raw_results.reranked_results?.statements.map((item, index) => ( + {log.raw_results.reranked_results?.statements.length > 0 && log.raw_results.reranked_results?.statements.map((item: { statement: string }, index: number) => (
{item.statement}
))} - {log.raw_results.reranked_results?.summaries.length > 0 && log.raw_results.reranked_results?.summaries.map((item, index) => ( + {log.raw_results.reranked_results?.summaries.length > 0 && log.raw_results.reranked_results?.summaries.map((item: { content: string }, index: number) => (
{item.content}
))} @@ -203,26 +251,26 @@ const MemoryConversation: FC = () => { : log.type === 'verification' ?
{log.query}
-
{log.reason}
-
{log.result}
+
{log.reason}
+
{log.result}
: log.type === 'output_type' ? -
{log.query}
+
{log.query}
{log.summary}
: log.type === 'input_summary' && log.raw_results ? -
{log.query}
-
{log.summary}
-
+
{log.query}
+
{log.summary}
+
{typeof log.raw_results === 'string' ? : <> - {log.raw_results.reranked_results?.statements.length > 0 && log.raw_results.reranked_results?.statements.map((item, index) => ( + {log.raw_results.reranked_results?.statements.length > 0 && log.raw_results.reranked_results?.statements.map((item: { statement: string; } , index: number) => (
{item.statement}
))} - {log.raw_results.reranked_results?.summaries.length > 0 && log.raw_results.reranked_results?.summaries.map((item, index) => ( + {log.raw_results.reranked_results?.summaries.length > 0 && log.raw_results.reranked_results?.summaries.map((item: { content: string; }, index: number) => (
{item.content}
))} From 36cab874fae7db42ab56b09a35a84e1c1736797f Mon Sep 17 00:00:00 2001 From: zhaoying Date: Tue, 16 Dec 2025 11:53:59 +0800 Subject: [PATCH 10/92] feature: memory extraction engine debug switch to streaming output --- web/src/api/memory.ts | 5 +- web/src/components/Chat/ChatContent.tsx | 2 +- web/src/i18n/en.ts | 27 +- web/src/i18n/zh.ts | 25 +- web/src/views/ApplicationConfig/Cluster.tsx | 2 +- .../ApplicationConfig/components/Chat.tsx | 5 + .../components/Card.tsx | 5 +- .../components/Result.tsx | 426 +++++ .../views/MemoryExtractionEngine/constant.ts | 1698 +++++++++++++++++ .../views/MemoryExtractionEngine/index.tsx | 446 +---- 10 files changed, 2217 insertions(+), 424 deletions(-) create mode 100644 web/src/views/MemoryExtractionEngine/components/Result.tsx create mode 100644 web/src/views/MemoryExtractionEngine/constant.ts diff --git a/web/src/api/memory.ts b/web/src/api/memory.ts index 7c7ae4c1..b52d5431 100644 --- a/web/src/api/memory.ts +++ b/web/src/api/memory.ts @@ -9,6 +9,7 @@ import type { ConfigForm as ExtractionConfigForm } from '@/views/MemoryExtractionEngine/types' import type { TestParams } from '@/views/MemoryConversation' +import { handleSSE, type SSEMessage } from '@/utils/stream' // 记忆对话 export const readService = (query: TestParams) => { @@ -132,8 +133,8 @@ export const updateMemoryExtractionConfig = (values: ExtractionConfigForm) => { return request.post('/memory-storage/update_config_extracted', values) } // 记忆萃取引擎-试运行 -export const pilotRunMemoryExtractionConfig = (values: { config_id: number | string; dialogue_text: string }) => { - return request.post('/memory-storage/pilot_run', values) +export const pilotRunMemoryExtractionConfig = (values: { config_id: number | string; dialogue_text: string; }, onMessage?: (data: SSEMessage[]) => void) => { + return handleSSE('/memory-storage/pilot_run', values, onMessage) } /*************** end 记忆管理 相关接口 ******************************/ diff --git a/web/src/components/Chat/ChatContent.tsx b/web/src/components/Chat/ChatContent.tsx index 18771bb1..2067f57e 100644 --- a/web/src/components/Chat/ChatContent.tsx +++ b/web/src/components/Chat/ChatContent.tsx @@ -55,7 +55,7 @@ const ChatContent: FC = ({
} {/* 消息气泡框 */} -
= ({application}) => { chatList={chatList} updateChatList={setChatList} handleSave={handleSave} - source="cluster" + source="multi_agent" /> diff --git a/web/src/views/ApplicationConfig/components/Chat.tsx b/web/src/views/ApplicationConfig/components/Chat.tsx index 02ce405c..ce4f94c9 100644 --- a/web/src/views/ApplicationConfig/components/Chat.tsx +++ b/web/src/views/ApplicationConfig/components/Chat.tsx @@ -265,6 +265,11 @@ const Chat: FC = ({ chatList, data, updateChatList, handleSave, sourc const { conversation_id, content, message_length } = item.data as { conversation_id: string, content: string, message_length: number }; switch(item.event) { + case 'start': + if (conversation_id && conversationId !== conversation_id) { + setConversationId(conversation_id); + } + break case 'message': updateClusterAssistantMessage(content) if (conversation_id && conversationId !== conversation_id) { diff --git a/web/src/views/MemoryExtractionEngine/components/Card.tsx b/web/src/views/MemoryExtractionEngine/components/Card.tsx index e98dd5d1..7734ec08 100644 --- a/web/src/views/MemoryExtractionEngine/components/Card.tsx +++ b/web/src/views/MemoryExtractionEngine/components/Card.tsx @@ -12,6 +12,7 @@ interface CardProps { expanded?: boolean; handleExpand?: (type: string) => void; className?: string; + headerClassName?: string; bodyClassName?: string; } @@ -23,6 +24,7 @@ const Card: FC = ({ expanded, handleExpand, className, + headerClassName, bodyClassName, }) => { const { t } = useTranslation() @@ -37,12 +39,13 @@ const Card: FC = ({ onClick={() => handleExpand(type)} > {expanded ? t('common.foldUp') : t('common.expanded')} -
)} className={className} + headerClassName={headerClassName} bodyClassName={bodyClassName} > {(expanded || !(type && handleExpand)) && children} diff --git a/web/src/views/MemoryExtractionEngine/components/Result.tsx b/web/src/views/MemoryExtractionEngine/components/Result.tsx new file mode 100644 index 00000000..d0850606 --- /dev/null +++ b/web/src/views/MemoryExtractionEngine/components/Result.tsx @@ -0,0 +1,426 @@ +import { type FC, useState } from 'react' +import { useParams } from 'react-router-dom' +import { useTranslation } from 'react-i18next' +import { Space, Button, Progress } from 'antd' +import { ExclamationCircleFilled, CheckCircleFilled, ClockCircleOutlined, LoadingOutlined } from '@ant-design/icons' +import clsx from 'clsx' +import Card from './Card' +import RbCard from '@/components/RbCard/Card' +import RbAlert from '@/components/RbAlert' +import type { TestResult } from '../types' +import { pilotRunMemoryExtractionConfig } from '@/api/memory' +import { type SSEMessage } from '@/utils/stream' +import Tag, { type TagProps } from '@/components/Tag' +import Markdown from '@/components/Markdown' +import { groupDataByType } from '../constant' +import type { AnyObject } from 'antd/es/_util/type'; + +const resultObj = { + extractTheNumberOfEntities: 'entities.extracted_count', + numberOfEntityDisambiguation: 'disambiguation.block_count', + memoryFragments: 'memory.chunks', + numberOfRelationalTriples: 'triplets.count' +} +interface ResultProps { + loading: boolean; + handleSave: () => void; +} +interface ModuleItem { + status: 'pending' | 'processing' | 'completed' | 'failed'; + data: any[], + result: any, + start_at?: number; + end_at?: number; +} +const tagColors: { + [key: string]: TagProps['color'] +} = { + pending: 'default', + processing: 'processing', + completed: 'success', + failed: 'error' +} +const initObj = { + data: [], + status: 'pending', + result: null +} + +const Result: FC = ({ loading, handleSave }) => { + const { t } = useTranslation(); + const { id } = useParams() + const [runLoading, setRunLoading] = useState(false) + const [testResult, setTestResult] = useState({} as TestResult) + + const [textPreprocessing, setTextPreprocessing] = useState(initObj as ModuleItem) + const [knowledgeExtraction, setKnowledgeExtraction] = useState(initObj as ModuleItem) + const [creatingNodesEdges, setCreatingNodesEdges] = useState(initObj as ModuleItem) + const [deduplication, setDeduplication] = useState(initObj as ModuleItem) + + const handleRun = () => { + if(!id) return + setTextPreprocessing({...initObj} as ModuleItem) + setKnowledgeExtraction({...initObj} as ModuleItem) + setCreatingNodesEdges({...initObj} as ModuleItem) + setDeduplication({...initObj} as ModuleItem) + setTestResult({} as TestResult) + const handleStreamMessage = (list: SSEMessage[]) => { + + list.forEach((data: AnyObject) => { + switch(data.event) { + case 'text_preprocessing': // 开始预处理文本 + setTextPreprocessing(prev => ({ + ...prev, + status: 'processing', + start_at: data.data.time + })) + break + case 'text_preprocessing_result': // 预处理文本分块中 + setTextPreprocessing(prev => ({ + ...prev, + data: [...prev.data, data.data?.data] + })) + break + case 'text_preprocessing_complete': // 预处理文本完成 + setTextPreprocessing(prev => ({ + ...prev, + result: data.data?.data, + status: 'completed', + end_at: data.data.time + })) + break + case 'knowledge_extraction': // 开始知识抽取 + setKnowledgeExtraction(prev => ({ + ...prev, + status: 'processing', + start_at: data.data.time + })) + break + case 'knowledge_extraction_result': // 知识抽取中 + setKnowledgeExtraction(prev => ({ + ...prev, + data: [...prev.data, data.data?.data] + })) + break + case 'knowledge_extraction_complete': // 知识抽取完成 + setKnowledgeExtraction(prev => ({ + ...prev, + result: data.data?.data, + status: 'completed', + end_at: data.data.time + })) + break + case 'creating_nodes_edges': // 开始创建节点和边 + setCreatingNodesEdges(prev => ({ + ...prev, + status: 'processing', + start_at: data.data.time + })) + break + case 'creating_nodes_edges_result': // 创建节点和边中 + setCreatingNodesEdges(prev => ({ + ...prev, + data: [...prev.data, data.data?.data] + })) + break + case 'creating_nodes_edges_complete': // 创建节点和边完成 + setCreatingNodesEdges(prev => ({ + ...prev, + result: data.data?.data, + status: 'completed', + end_at: data.data.time + })) + break + case 'deduplication': // 开始去重消歧 + setDeduplication(prev => ({ + ...prev, + status: 'processing', + start_at: data.data.time + })) + break + case 'dedup_disambiguation_result': // 去重消歧中 + setDeduplication(prev => ({ + ...prev, + data: [...prev.data, data.data.data] + })) + break + case 'dedup_disambiguation_complete': // 去重消歧完成 + setDeduplication(prev => ({ + ...prev, + result: data.data?.data, + status: 'completed', + end_at: data.data.time + })) + break + case 'generating_results': // 开始生成结果 + break + case 'result': // 结果 + setTestResult(data.data?.extracted_result) + break + } + }) + } + setRunLoading(true) + pilotRunMemoryExtractionConfig({ + config_id: id, + dialogue_text: t('memoryExtractionEngine.exampleText'), + }, handleStreamMessage) + .finally(() => { + setRunLoading(false) + }) + } + const completedNum = [textPreprocessing, knowledgeExtraction, creatingNodesEdges, deduplication].filter(item => item.status === 'completed').length + const deduplicationData = groupDataByType(deduplication.data, 'result_type') + + const formatTag = (status: string) => { + return ( + + {status === 'pending' && } + {status === 'processing' && } + {t(`memoryExtractionEngine.status.${status}`)} + + ) + } + const formatTime = (data: ModuleItem, color?: string) => { + if (typeof data.end_at === 'number' && typeof data.start_at === 'number') { + return
{t('memoryExtractionEngine.time')}{data.end_at - data.start_at}ms
+ } + return null + } + const lowercaseFirst = (str: string) => str.charAt(0).toLowerCase() + str.slice(1) + return ( + +
+ {runLoading + ? <> + } className="rb:mb-3.5"> + {t('memoryExtractionEngine.processing')} + + {/* 整体进度 */} +
+
+ {t('memoryExtractionEngine.overallProgress')} + {`${completedNum}/4`} +
+ +
+ + : !testResult || Object.keys(testResult).length === 0 + ? } className="rb:mb-3.5"> + {t('memoryExtractionEngine.warning')} + + : } className="rb:mb-3.5"> + {t('memoryExtractionEngine.success')} + + } + + {/* 文本预处理 */} + + {textPreprocessing.data.map((vo, index) => ( +
+ +
+ ))} + {formatTime(textPreprocessing)} + {textPreprocessing.result && + } className="rb:mt-3"> + {t('memoryExtractionEngine.text_preprocessing_desc', { count: textPreprocessing.result.total_chunks })}, + {t('memoryExtractionEngine.chunkerStrategy')}: {t(`memoryExtractionEngine.${lowercaseFirst(textPreprocessing.result.chunker_strategy)}`)} + + } +
+ {/* 知识抽取 */} + + {knowledgeExtraction.data.map(vo => +
{vo.statement}
+ )} + {formatTime(knowledgeExtraction)} + {knowledgeExtraction.result && } className="rb:mt-3"> + {t('memoryExtractionEngine.knowledge_extraction_desc', { + entities: knowledgeExtraction.result.entities_count, + statements: knowledgeExtraction.result.statements_count, + temporal_ranges_count: knowledgeExtraction.result.temporal_ranges_count, + triplets: knowledgeExtraction.result.triplets_count + })} + } +
+ {/* 创建实体关系 */} + + {creatingNodesEdges.data?.map((vo, index) => ( +
+ {vo?.result_type === 'entity_nodes_creation' + ? <>{vo.type_display_name}: {vo.entity_names.join(', ')} + : <>{vo?.relationship_text} + } +
+ ))} + {formatTime(creatingNodesEdges, '#9C6FFF')} + {creatingNodesEdges.result && } className="rb:mt-3"> + {t('memoryExtractionEngine.creating_nodes_edges_desc', {num: creatingNodesEdges.result.entity_entity_edges_count})} + } +
+ {/* 去重消歧 */} + + {Object.keys(deduplicationData).length > 0 && Object.keys(deduplicationData).map(key => { + return deduplicationData[key].map((vo, index) => ( +
+ {vo.message} +
+ )) + })} + {formatTime(deduplication, '#9C6FFF')} + {deduplication.result && } className="rb:mt-3"> + {t('memoryExtractionEngine.deduplication_desc', { count: deduplication.result.summary.total_merges })}
+
} +
+ + {testResult && Object.keys(testResult).length > 0 && resultObj && Object.keys(resultObj).length > 0 && + +
+ {Object.keys(resultObj).map((key, index) => { + const keys = (resultObj as Record)[key].split('.') + return ( +
+
{(testResult?.[keys[0] as keyof TestResult] as any)?.[keys[1]]}
+
{t(`memoryExtractionEngine.${key}`)}
+
+ {} + {key === 'extractTheNumberOfEntities' && testResult.dedup + ? t(`memoryExtractionEngine.${key}Desc`, { + num: testResult.dedup.total_merged_count, + exact: testResult.dedup.breakdown.exact, + fuzzy: testResult.dedup.breakdown.fuzzy, + llm: testResult.dedup.breakdown.llm, + }) + : key === 'numberOfEntityDisambiguation' && testResult.disambiguation + ? t(`memoryExtractionEngine.${key}Desc`, { num: testResult.disambiguation.effects?.length, block_count: testResult.disambiguation.block_count }) + : key === 'numberOfRelationalTriples' && testResult.triplets + ? t(`memoryExtractionEngine.${key}Desc`, { num: testResult.triplets.count }) + :t(`memoryExtractionEngine.${key}Desc`) + } +
+
+ )})} +
+
+ } + + {testResult?.dedup?.impact && testResult.dedup.impact?.length > 0 && + +
{t('memoryExtractionEngine.identifyDuplicates')}
+ {testResult.dedup.impact.map((item, index) => ( +
+ -{t('memoryExtractionEngine.identifyDuplicatesDesc', { ...item })} +
+ ))} + + } className="rb:mt-3"> + {t('memoryExtractionEngine.entityDeduplicationImpactDesc', { count: testResult.dedup.impact.length })} + +
+ } + + {testResult?.disambiguation && testResult.disambiguation?.effects?.length > 0 && + + {testResult.disambiguation.effects.map((item, index) => ( +
0, + })}> +
Disagreement Case {index +1}:
+ -{item.left.name}({item.left.type}) vs {item.right.name}({item.right.type}) → {item.result} +
+ ))} + + } className="rb:mt-3"> + {t('memoryExtractionEngine.entityDeduplicationImpactDesc', { count: testResult.dedup.impact.length })} + +
+ } + + {testResult?.core_entities && testResult?.core_entities.length > 0 && + +
+ {testResult.core_entities.map((item, idx) => ( +
+
{item.type}({item.count})
+ +
+ {item.entities.map((entity, index) => ( +
+ -{entity} +
+ ))} +
+
+ ))} +
+
+ } + + {testResult?.triplet_samples && testResult?.triplet_samples.length > 0 && + + + {testResult.triplet_samples.map((item, index) => ( +
+ -({item.subject}, {item.predicate}, {item.object}) +
+ ))} +
+ } className="rb:mt-3"> + {t('memoryExtractionEngine.extractRelationalTriplesDesc', { count: testResult.triplet_samples.length })} + +
+ } +
+
+ +
+ + +
+
+ ) +} +export default Result \ No newline at end of file diff --git a/web/src/views/MemoryExtractionEngine/constant.ts b/web/src/views/MemoryExtractionEngine/constant.ts new file mode 100644 index 00000000..9337b372 --- /dev/null +++ b/web/src/views/MemoryExtractionEngine/constant.ts @@ -0,0 +1,1698 @@ +import type { ConfigVo } from './types' + +export const configList: ConfigVo[] = [ + { + type: 'storageLayerModule', + data: [ + { + title: 'entityDeduplicationDisambiguation', + list: [ + { + label: 'enableLlmDedupBlockwise', + variableName: 'enable_llm_dedup_blockwise', + control: 'button', // switch + type: 'tinyint', + }, + { + label: 'enableLlmDisambiguation', + variableName: 'enable_llm_disambiguation', + control: 'button', + type: 'tinyint', + }, + { + label: 'tNameStrict', + control: 'slider', + variableName: 't_name_strict', + type: 'decimal', + }, + { + label: 'tTypeStrict', + control: 'slider', + variableName: 't_type_strict', + type: 'decimal', + }, + { + label: 'tOverall', + control: 'slider', + variableName: 't_overall', + type: 'decimal', + }, + ] + }, + // 语义锚点标注 + { + title: 'semanticAnchorAnnotationModule', + list: [ + // 句子提取颗粒度 + { + label: 'statementGranularity', + variableName: 'statement_granularity', + control: 'slider', + type: 'decimal', + max: 3, + min: 1, + step: 1, + meaning: 'statementGranularityDesc', + }, + // 是否包含对话上下文 + { + label: 'includeDialogueContext', + variableName: 'include_dialogue_context', + control: 'button', // switch + type: 'tinyint', + meaning: 'includeDialogueContextDesc' + }, + // 上下文文字上限 + { + label: 'maxDialogueContextChars', + variableName: 'max_context', + control: 'inputNumber', + min: 100, + type: 'decimal', + meaning: 'maxDialogueContextCharsDesc', + }, + ] + }, + ] + }, + { + type: 'arrangementLayerModule', + data: [ + { + title: 'queryMode', + list: [ + { + label: 'deepRetrieval', + variableName: 'deep_retrieval', + control: 'button', + type: 'tinyint', + meaning: 'deepRetrievalMeaning', + }, + ] + }, + { + title: 'dataPreprocessing', + list: [ + { + label: 'chunkerStrategy', + variableName: 'chunker_strategy', + control: 'select', + type: 'enum', + options: [ + { label: 'recursiveChunker', value: 'RecursiveChunker' }, // 递归分块 + { label: 'tokenChunker', value: 'TokenChunker' }, // token 分块 + { label: 'semanticChunker', value: 'SemanticChunker' }, // 语义分块 + { label: 'neuralChunker', value: 'NeuralChunker' }, // 神经网络分块 + { label: 'hybridChunker', value: 'HybridChunker' }, // 混合分块 + { label: 'llmChunker', value: 'LLMChunker' }, // LLM 分块 + { label: 'sentenceChunker', value: 'SentenceChunker' }, // 句子分块 + { label: 'lateChunker', value: 'LateChunker' }, // 延迟分块 + ], + meaning: 'chunkerStrategyDesc', + }, + ] + }, + // 智能语义剪枝 + { + title: 'intelligentSemanticPruning', + list: [ + // 智能语义剪枝功能 + { + label: 'intelligentSemanticPruningFunction', + variableName: 'pruning_enabled', + control: 'button', + type: 'tinyint', + meaning: 'intelligentSemanticPruningFunctionDesc', + }, + // 智能语义剪枝场景 + { + label: 'intelligentSemanticPruningScene', + variableName: 'pruning_scene', + control: 'select', + type: 'enum', + options: [ + { label: 'education', value: 'education' }, + { label: 'online_service', value: 'online_service' }, + { label: 'outbound', value: 'outbound' }, + ], + meaning: 'intelligentSemanticPruningSceneDesc', + }, + // 智能语义剪枝阈值 + { + label: 'intelligentSemanticPruningThreshold', + control: 'slider', + variableName: 'pruning_threshold', + type: 'decimal', + max: 0.9, + min: 0, + step: 0.1, + meaning: 'intelligentSemanticPruningThresholdDesc', + }, + ] + }, + // 自我反思引擎 + // { + // title: 'selfReflexionEngine', + // list: [ + // // 是否启用反思引擎 + // { + // label: 'enableSelfReflexion', + // variableName: 'enable_self_reflexion', + // control: 'button', + // type: 'tinyint', + // }, + // // 迭代周期 + // { + // label: 'iterationPeriod', + // variableName: 'iteration_period', + // control: 'select', + // type: 'enum', + // options: [ + // { label: 'oneHour', value: '1' }, + // { label: 'threeHours', value: '3' }, + // { label: 'sixHours', value: '6' }, + // { label: 'twelveHours', value: '12' }, + // { label: 'daily', value: '24' }, + // ], + // meaning: 'iterationPeriodDesc', + // }, + // // 反思范围 + // { + // label: 'reflexionRange', + // variableName: 'reflexion_range', + // control: 'select', + // type: 'enum', + // options: [ + // { label: 'retrieval', value: 'retrieval' }, + // { label: 'database', value: 'database' }, + // ], + // meaning: 'reflexionRangeDesc', + // }, + // // 反思基线 + // { + // label: 'reflectOnTheBaseline', + // variableName: 'baseline', + // control: 'select', + // type: 'enum', + // options: [ + // { label: 'basedOnTime', value: 'TIME' }, + // { label: 'basedOnFacts', value: 'FACT' }, + // { label: 'basedOnFactsAndTime', value: 'TIME-FACT' }, + // ], + // }, + // ] + // }, + ] + } +] + +export const mockModuleData = [ + { + "data": [ + { + "chunk_index": 1, + "content": "用户: 学生:宋朝军事弱势的根源是什么?\n记忆熊:宋朝军事弱势主要源于制度性因素:禁军由文官控制导致作战效率低下,厢军装备不足;军费长期占财政支出一半以上,持续战争加剧财政压力,反向制约军力发展;对外战略被动,缺乏战略纵深且机动能力弱;文官集团压制武将,军权分散,军事专业化难以提升。\n\n学生:我对财政压力与军力不足的关系表示困惑。\n记忆熊:简单说,宋朝军费占财政一半以上,钱越花越多,仗却越打越输。...", + "full_length": 416, + "dialog_id": "7d11cacd843d45e5942a3ebdc7eb5c8a", + "chunker_strategy": "RecursiveChunker" + }, + { + "chunk_index": 2, + "content": "\n学生:我对\"六部缺乏协调机制\"的具体影响表示理解不足。\n记忆熊:原来丞相相当于\"总理\",六部像今天的各部委,大事小情由他统筹。废丞相后,六部直接对皇帝,皇帝一人批不完,部就互相踢皮球。比如打仗,兵部要银子,户部说没有,工部说武器没材料,没人拍板,战事就拖延。\n\n学生:我在复习春秋战国史,对秦国为何能统一六国表示疑问,认为其他国家也较强。\n记忆熊:秦国统一的原因包括:商鞅变法彻底,建立法律、户籍和...", + "full_length": 428, + "dialog_id": "7d11cacd843d45e5942a3ebdc7eb5c8a", + "chunker_strategy": "RecursiveChunker" + } + ], + "status": "completed", + "result": { + "total_chunks": 2, + "total_dialogs": 1, + "chunker_strategy": "RecursiveChunker" + } + }, + { + "data": [ + { + "extraction_type": "statement", + "statement_index": 1, + "statement": "记忆熊认为宋朝军事弱势主要源于制度性因素。", + "statement_id": "dc0e8b331e584525bda5b63beece6449" + }, + { + "extraction_type": "statement", + "statement_index": 2, + "statement": "记忆熊指出禁军由文官控制导致作战效率低下。", + "statement_id": "b60c2c4cbbc3469a8eccf63eaff8af7c" + }, + { + "extraction_type": "statement", + "statement_index": 3, + "statement": "记忆熊指出厢军装备不足。", + "statement_id": "56b912b3424c41c582849ea47f3c9a67" + }, + { + "extraction_type": "statement", + "statement_index": 4, + "statement": "记忆熊指出宋朝军费长期占财政支出一半以上。", + "statement_id": "6e9f5a974b864731b4f45b156ee2b2b9" + }, + { + "extraction_type": "statement", + "statement_index": 5, + "statement": "记忆熊指出持续战争加剧财政压力,反向制约军力发展。", + "statement_id": "4fbcf48493fa40cd97d2e758046a8114" + }, + { + "extraction_type": "statement", + "statement_index": 6, + "statement": "记忆熊指出宋朝对外战略被动,缺乏战略纵深且机动能力弱。", + "statement_id": "672bb8a4aac548a481ab3c6866ff1537" + }, + { + "extraction_type": "statement", + "statement_index": 7, + "statement": "记忆熊指出文官集团压制武将,军权分散,军事专业化难以提升。", + "statement_id": "94f51d5939d440a89600cc1fede8203e" + }, + { + "extraction_type": "statement", + "statement_index": 8, + "statement": "学生对财政压力与军力不足的关系表示困惑。", + "statement_id": "74304297767144fb98e1f28de4397eba" + }, + { + "extraction_type": "statement", + "statement_index": 9, + "statement": "记忆熊解释宋朝军费占财政一半以上,钱越花越多,仗却越打越输。", + "statement_id": "52169673071844d58cc475f350e0e878" + }, + { + "extraction_type": "statement", + "statement_index": 10, + "statement": "记忆熊指出财政被军费拖垮后,朝廷只能削减装备、裁撤兵员。", + "statement_id": "92c5b675666a444d8bba605682376018" + }, + { + "extraction_type": "triplet", + "triplet_index": 1, + "subject": "记忆熊", + "predicate": "MENTIONS", + "object": "宋朝军事弱势" + }, + { + "extraction_type": "triplet", + "triplet_index": 2, + "subject": "宋朝军事弱势", + "predicate": "RESULTED_IN", + "object": "制度性因素" + }, + { + "extraction_type": "triplet", + "triplet_index": 3, + "subject": "记忆熊", + "predicate": "MENTIONS", + "object": "禁军由文官控制导致作战效率低下" + }, + { + "extraction_type": "triplet", + "triplet_index": 4, + "subject": "禁军由文官控制", + "predicate": "RESULTED_IN", + "object": "作战效率低下" + }, + { + "extraction_type": "triplet", + "triplet_index": 5, + "subject": "记忆熊", + "predicate": "MENTIONS", + "object": "厢军装备不足" + }, + { + "extraction_type": "triplet", + "triplet_index": 6, + "subject": "记忆熊", + "predicate": "MENTIONS", + "object": "宋朝" + }, + { + "extraction_type": "triplet", + "triplet_index": 7, + "subject": "记忆熊", + "predicate": "MENTIONS", + "object": "军费" + }, + { + "extraction_type": "triplet", + "triplet_index": 8, + "subject": "军费", + "predicate": "HAS_A", + "object": "财政支出" + }, + { + "extraction_type": "triplet", + "triplet_index": 9, + "subject": "宋朝", + "predicate": "HAS_REVENUE", + "object": "财政支出" + }, + { + "extraction_type": "triplet", + "triplet_index": 10, + "subject": "持续战争", + "predicate": "RESULTED_IN", + "object": "财政压力" + }, + { + "extraction_type": "temporal", + "temporal_index": 1, + "statement": "记忆熊认为宋朝军事弱势主要源于制度性因素。", + "valid_at": null, + "invalid_at": null + }, + { + "extraction_type": "temporal", + "temporal_index": 2, + "statement": "记忆熊指出禁军由文官控制导致作战效率低下。", + "valid_at": null, + "invalid_at": null + }, + { + "extraction_type": "temporal", + "temporal_index": 3, + "statement": "记忆熊指出厢军装备不足。", + "valid_at": null, + "invalid_at": null + }, + { + "extraction_type": "temporal", + "temporal_index": 4, + "statement": "记忆熊指出宋朝军费长期占财政支出一半以上。", + "valid_at": null, + "invalid_at": null + }, + { + "extraction_type": "temporal", + "temporal_index": 5, + "statement": "记忆熊指出持续战争加剧财政压力,反向制约军力发展。", + "valid_at": null, + "invalid_at": null + } + ], + "status": "completed", + "result": { + "statements": { + "count": 38 + }, + "entities": { + "count": 148 + }, + "triplets": { + "count": 88 + }, + "temporal_ranges_count": 38 + } + }, + { + "data": [ + { + "result_type": "entity_nodes_creation", + "entity_type": "Person", + "type_display_name": "人物实体节点", + "entity_names": [ + "记忆熊", + "记忆熊", + "记忆熊", + "记忆熊", + "记忆熊", + "学生", + "记忆熊", + "学生", + "记忆熊", + "丞相", + "..." + ], + "total_count": 21 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Phenomenon", + "type_display_name": "Phenomenon实体节点", + "entity_names": [ + "宋朝军事弱势" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Factor", + "type_display_name": "Factor实体节点", + "entity_names": [ + "制度性因素" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Policy", + "type_display_name": "政策实体节点", + "entity_names": [ + "禁军由文官控制", + "商鞅变法" + ], + "total_count": 2 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Condition", + "type_display_name": "条件实体节点", + "entity_names": [ + "作战效率低下", + "厢军装备不足", + "军力发展受制约", + "军权分散", + "军事专业化难以提升", + "官僚体系僵化", + "缺乏协作机制", + "缺乏协调机制", + "难以支撑军队" + ], + "total_count": 9 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Statement", + "type_display_name": "Statement实体节点", + "entity_names": [ + "禁军由文官控制导致作战效率低下", + "没有银子", + "武器没材料" + ], + "total_count": 3 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Organization", + "type_display_name": "组织实体节点", + "entity_names": [ + "宋朝", + "宋朝", + "文官集团", + "宋朝", + "朝廷", + "官僚体系", + "六部", + "厂卫机构", + "锦衣卫", + "东厂", + "..." + ], + "total_count": 25 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "EconomicMetric", + "type_display_name": "EconomicMetric实体节点", + "entity_names": [ + "军费", + "财政支出", + "财政", + "军费", + "支出" + ], + "total_count": 5 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Event", + "type_display_name": "事件实体节点", + "entity_names": [ + "持续战争", + "削减装备和裁撤兵员", + "战事失利", + "废除丞相制度", + "废除丞相制度", + "废除丞相制度", + "大事小情", + "废除丞相制度", + "无法批阅完所有政务", + "政令执行困难", + "..." + ], + "total_count": 15 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "EconomicFactor", + "type_display_name": "经济因素实体节点", + "entity_names": [ + "财政压力" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "EconomicIndicator", + "type_display_name": "EconomicIndicator实体节点", + "entity_names": [ + "财政支出" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "MilitaryStrategy", + "type_display_name": "MilitaryStrategy实体节点", + "entity_names": [ + "对外战略被动" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "MilitaryCondition", + "type_display_name": "MilitaryCondition实体节点", + "entity_names": [ + "缺乏战略纵深", + "军力不足" + ], + "total_count": 2 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "MilitaryCapability", + "type_display_name": "MilitaryCapability实体节点", + "entity_names": [ + "机动能力弱" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "PersonGroup", + "type_display_name": "PersonGroup实体节点", + "entity_names": [ + "武将" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Concept", + "type_display_name": "概念实体节点", + "entity_names": [ + "财政压力", + "军力不足", + "恶性循环", + "行政紧张", + "系统行政训练", + "专业分工", + "六部缺乏协调机制", + "六部缺乏协调机制", + "秦国统一六国的原因" + ], + "total_count": 9 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "EconomicCondition", + "type_display_name": "EconomicCondition实体节点", + "entity_names": [ + "财政压力" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Action", + "type_display_name": "Action实体节点", + "entity_names": [ + "削减装备", + "裁撤兵员", + "再花钱募兵", + "建立法律制度", + "建立户籍制度", + "建立军功爵制度" + ], + "total_count": 6 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "State", + "type_display_name": "State实体节点", + "entity_names": [ + "军队更弱", + "不足", + "理解不足" + ], + "total_count": 3 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Outcome", + "type_display_name": "Outcome实体节点", + "entity_names": [ + "打仗更吃亏", + "降低行政效率", + "政令推行困难", + "提升国家组织能力", + "士兵效忠个人而非国家" + ], + "total_count": 5 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "HistoricalPeriod", + "type_display_name": "历史时期实体节点", + "entity_names": [ + "宋朝", + "春秋战国史", + "唐朝史" + ], + "total_count": 3 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "InstitutionalPolicy", + "type_display_name": "InstitutionalPolicy实体节点", + "entity_names": [ + "废除丞相制度" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "StateOfAffairs", + "type_display_name": "StateOfAffairs实体节点", + "entity_names": [ + "中央决策高度集中于皇帝" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Role", + "type_display_name": "Role实体节点", + "entity_names": [ + "协调中枢", + "节度使" + ], + "total_count": 2 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Institution", + "type_display_name": "Institution实体节点", + "entity_names": [ + "科举" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Position", + "type_display_name": "职位实体节点", + "entity_names": [ + "丞相", + "总理", + "丞相", + "总理" + ], + "total_count": 4 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Function", + "type_display_name": "Function实体节点", + "entity_names": [ + "统筹大事小情" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "AdministrativeStructure", + "type_display_name": "AdministrativeStructure实体节点", + "entity_names": [ + "六部直接对皇帝负责", + "六部直接对皇帝负责" + ], + "total_count": 2 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "AdministrativeProblem", + "type_display_name": "AdministrativeProblem实体节点", + "entity_names": [ + "皇帝一人批不完政务" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Behavior", + "type_display_name": "Behavior实体节点", + "entity_names": [ + "互相推诿责任" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Resource", + "type_display_name": "Resource实体节点", + "entity_names": [ + "银子" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Situation", + "type_display_name": "Situation实体节点", + "entity_names": [ + "没人拍板" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "HistoricalState", + "type_display_name": "历史国家实体节点", + "entity_names": [ + "秦国" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "PoliticalCharacteristic", + "type_display_name": "PoliticalCharacteristic实体节点", + "entity_names": [ + "旧贵族势力弱", + "中央集权程度高" + ], + "total_count": 2 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Location", + "type_display_name": "地点实体节点", + "entity_names": [ + "关中" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Attribute", + "type_display_name": "Attribute实体节点", + "entity_names": [ + "资源丰富", + "易守难攻", + "政策连续性强" + ], + "total_count": 3 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "HistoricalEvent", + "type_display_name": "历史事件实体节点", + "entity_names": [ + "安史之乱" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "PoliticalAction", + "type_display_name": "PoliticalAction实体节点", + "entity_names": [ + "中央整顿" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "PoliticalPhenomenon", + "type_display_name": "PoliticalPhenomenon实体节点", + "entity_names": [ + "藩镇割据加剧" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "Right", + "type_display_name": "Right实体节点", + "entity_names": [ + "募兵权", + "财政调度权", + "军事指挥权" + ], + "total_count": 3 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "EconomicEntity", + "type_display_name": "EconomicEntity实体节点", + "entity_names": [ + "中央财政" + ], + "total_count": 1 + }, + { + "result_type": "entity_nodes_creation", + "entity_type": "System", + "type_display_name": "系统实体节点", + "entity_names": [ + "募兵制" + ], + "total_count": 1 + }, + { + "result_type": "relationship_creation", + "relationship_index": 1, + "source_entity": "记忆熊", + "relation_type": "MENTIONS", + "target_entity": "宋朝军事弱势", + "relationship_text": "记忆熊 -[MENTIONS]-> 宋朝军事弱势" + }, + { + "result_type": "relationship_creation", + "relationship_index": 2, + "source_entity": "宋朝军事弱势", + "relation_type": "RESULTED_IN", + "target_entity": "制度性因素", + "relationship_text": "宋朝军事弱势 -[RESULTED_IN]-> 制度性因素" + }, + { + "result_type": "relationship_creation", + "relationship_index": 3, + "source_entity": "记忆熊", + "relation_type": "MENTIONS", + "target_entity": "禁军由文官控制导致作战效率低下", + "relationship_text": "记忆熊 -[MENTIONS]-> 禁军由文官控制导致作战效率低下" + }, + { + "result_type": "relationship_creation", + "relationship_index": 4, + "source_entity": "禁军由文官控制", + "relation_type": "RESULTED_IN", + "target_entity": "作战效率低下", + "relationship_text": "禁军由文官控制 -[RESULTED_IN]-> 作战效率低下" + }, + { + "result_type": "relationship_creation", + "relationship_index": 5, + "source_entity": "记忆熊", + "relation_type": "MENTIONS", + "target_entity": "厢军装备不足", + "relationship_text": "记忆熊 -[MENTIONS]-> 厢军装备不足" + }, + { + "result_type": "relationship_creation", + "relationship_index": 6, + "source_entity": "记忆熊", + "relation_type": "MENTIONS", + "target_entity": "宋朝", + "relationship_text": "记忆熊 -[MENTIONS]-> 宋朝" + }, + { + "result_type": "relationship_creation", + "relationship_index": 7, + "source_entity": "记忆熊", + "relation_type": "MENTIONS", + "target_entity": "军费", + "relationship_text": "记忆熊 -[MENTIONS]-> 军费" + }, + { + "result_type": "relationship_creation", + "relationship_index": 8, + "source_entity": "军费", + "relation_type": "HAS_A", + "target_entity": "财政支出", + "relationship_text": "军费 -[HAS_A]-> 财政支出" + }, + { + "result_type": "relationship_creation", + "relationship_index": 9, + "source_entity": "宋朝", + "relation_type": "HAS_REVENUE", + "target_entity": "财政支出", + "relationship_text": "宋朝 -[HAS_REVENUE]-> 财政支出" + }, + { + "result_type": "relationship_creation", + "relationship_index": 10, + "source_entity": "持续战争", + "relation_type": "RESULTED_IN", + "target_entity": "财政压力", + "relationship_text": "持续战争 -[RESULTED_IN]-> 财政压力" + } + ], + "status": "completed", + "result": { + "dialogue_nodes_count": 1, + "chunk_nodes_count": 2, + "statement_nodes_count": 38, + "entity_nodes_count": 148, + "statement_chunk_edges_count": 38, + "statement_entity_edges_count": 148, + "entity_entity_edges_count": 88 + } + }, + { + "data": [ + { + "result_type": "entity_merge", + "merged_entity_name": "记忆熊", + "merged_count": 9, + "message": "记忆熊合并9个:相似实体已合并" + }, + { + "result_type": "entity_merge", + "merged_entity_name": "宋朝", + "merged_count": 4, + "message": "宋朝合并4个:相似实体已合并" + }, + { + "result_type": "entity_merge", + "merged_entity_name": "军费", + "merged_count": 2, + "message": "军费合并2个:相似实体已合并" + }, + { + "result_type": "entity_merge", + "merged_entity_name": "财政支出", + "merged_count": 2, + "message": "财政支出合并2个:相似实体已合并" + }, + { + "result_type": "entity_merge", + "merged_entity_name": "财政压力", + "merged_count": 3, + "message": "财政压力合并3个:相似实体已合并" + }, + { + "result_type": "entity_disambiguation", + "disambiguated_entity_name": "节度使", + "disambiguation_type": "消歧阻断:Role vs Person", + "confidence": "0.95", + "reason": "实体A类型为'Role',实体B类型为'Person',二者类型完全不同且无别名交集或名称-别名匹配。'节度使'是官职而非具体人物,语义上不应合并。尽管名称文本相似度高,但类型相似度为0.0,且上下文...", + "message": "节度使消歧完成:消歧阻断:Role vs Person" + } + ], + "status": "completed", + "result": { + "entities": { + "original_count": 148, + "final_count": 110, + "reduced_count": 38, + "reduction_rate": 25.7 + }, + "statement_entity_edges": { + "original_count": 148, + "final_count": 148, + "reduced_count": 0 + }, + "entity_entity_edges": { + "original_count": 88, + "final_count": 81, + "reduced_count": 7 + }, + "dedup_examples": [ + { + "type": "精确匹配", + "entity_name": "记忆熊", + "entity_type": "Person", + "merge_count": 8, + "description": "记忆熊实体去重合并8个" + }, + { + "type": "精确匹配", + "entity_name": "宋朝", + "entity_type": "Organization", + "merge_count": 2, + "description": "宋朝实体去重合并2个" + }, + { + "type": "精确匹配", + "entity_name": "军费", + "entity_type": "EconomicMetric", + "merge_count": 1, + "description": "军费实体去重合并1个" + }, + { + "type": "精确匹配", + "entity_name": "学生", + "entity_type": "Person", + "merge_count": 5, + "description": "学生实体去重合并5个" + }, + { + "type": "精确匹配", + "entity_name": "废除丞相制度", + "entity_type": "Event", + "merge_count": 3, + "description": "废除丞相制度实体去重合并3个" + } + ], + "disamb_examples": [ + { + "entity1_name": "节度使", + "entity1_type": "Role", + "entity2_name": "节度使", + "entity2_type": "Person", + "description": "节度使和节度使,消歧区分成功" + } + ], + "summary": { + "total_merges": 39, + "total_disambiguations": 1 + } + } + } +] +// 按type聚合数据的处理函数 +export const groupDataByType = (data: any[], groupKey: string) => { + const grouped: { [key: string]: any[] } = {} + + data.forEach(item => { + if (item[groupKey]) { + if (!grouped[item[groupKey]]) { + grouped[item[groupKey]] = [] + } + grouped[item[groupKey]].push(item) + } else { + if (!grouped.unknown) { + grouped.unknown = [] + } + grouped.unknown.push(item) + } + }) + + return grouped +} + +export const mockTestResult = { + "generated_at": "2025-12-12T09:48:43.389893", + "entities": { + "extracted_count": 148 + }, + "dedup": { + "total_merged_count": 39, + "breakdown": { + "exact": 30, + "fuzzy": 0, + "llm": 9 + }, + "impact": [ + { + "name": "记忆熊", + "type": "Person", + "appear_count": 9, + "merge_count": 8 + }, + { + "name": "宋朝", + "type": "Organization", + "appear_count": 5, + "merge_count": 2 + }, + { + "name": "军费", + "type": "EconomicMetric", + "appear_count": 2, + "merge_count": 1 + }, + { + "name": "学生", + "type": "Person", + "appear_count": 6, + "merge_count": 5 + }, + { + "name": "废除丞相制度", + "type": "Event", + "appear_count": 6, + "merge_count": 3 + }, + { + "name": "六部", + "type": "Organization", + "appear_count": 4, + "merge_count": 3 + }, + { + "name": "六部缺乏协调机制", + "type": "Concept", + "appear_count": 2, + "merge_count": 1 + }, + { + "name": "丞相", + "type": "Position", + "appear_count": 4, + "merge_count": 1 + }, + { + "name": "总理", + "type": "Position", + "appear_count": 2, + "merge_count": 1 + }, + { + "name": "各部委", + "type": "Organization", + "appear_count": 2, + "merge_count": 1 + }, + { + "name": "六部直接对皇帝负责", + "type": "AdministrativeStructure", + "appear_count": 2, + "merge_count": 1 + }, + { + "name": "秦国", + "type": "Organization", + "appear_count": 5, + "merge_count": 2 + }, + { + "name": "文官集团", + "type": "Organization", + "appear_count": 2, + "merge_count": 1 + } + ] + }, + "disambiguation": { + "block_count": 1, + "effects": [ + { + "left": { + "name": "节度使", + "type": "Role" + }, + "right": { + "name": "节度使", + "type": "Person" + }, + "result": "成功区分" + } + ] + }, + "memory": { + "chunks": 2 + }, + "triplets": { + "count": 88 + }, + "core_entities": [ + { + "type": "Organization", + "type_cn": "组织", + "count": 16, + "entities": [ + "厂卫机构", + "西厂", + "东厂", + "工部", + "地方军阀" + ] + }, + { + "type": "Event", + "type_cn": "事件", + "count": 12, + "entities": [ + "均田制瓦解", + "无法批阅完所有政务", + "废除丞相制度", + "持续战争", + "政令执行困难" + ] + }, + { + "type": "Condition", + "type_cn": "Condition", + "count": 9, + "entities": [ + "缺乏协作机制", + "作战效率低下", + "厢军装备不足", + "军权分散", + "军事专业化难以提升" + ] + }, + { + "type": "Person", + "type_cn": "人物", + "count": 8, + "entities": [ + "官员", + "宦官", + "节度使", + "皇帝", + "文士" + ] + }, + { + "type": "Concept", + "type_cn": "Concept", + "count": 8, + "entities": [ + "行政紧张", + "军力不足", + "秦国统一六国的原因", + "六部缺乏协调机制", + "专业分工" + ] + }, + { + "type": "Action", + "type_cn": "Action", + "count": 6, + "entities": [ + "再花钱募兵", + "建立军功爵制度", + "裁撤兵员", + "削减装备", + "建立法律制度" + ] + }, + { + "type": "Outcome", + "type_cn": "Outcome", + "count": 5, + "entities": [ + "打仗更吃亏", + "提升国家组织能力", + "降低行政效率", + "士兵效忠个人而非国家", + "政令推行困难" + ] + }, + { + "type": "EconomicMetric", + "type_cn": "EconomicMetric", + "count": 4, + "entities": [ + "财政", + "财政支出", + "支出", + "军费" + ] + }, + { + "type": "Statement", + "type_cn": "Statement", + "count": 3, + "entities": [ + "没有银子", + "禁军由文官控制导致作战效率低下", + "武器没材料" + ] + }, + { + "type": "State", + "type_cn": "State", + "count": 3, + "entities": [ + "军队更弱", + "理解不足", + "不足" + ] + }, + { + "type": "HistoricalPeriod", + "type_cn": "HistoricalPeriod", + "count": 3, + "entities": [ + "春秋战国史", + "唐朝史", + "宋朝" + ] + }, + { + "type": "Attribute", + "type_cn": "Attribute", + "count": 3, + "entities": [ + "资源丰富", + "易守难攻", + "政策连续性强" + ] + }, + { + "type": "Right", + "type_cn": "Right", + "count": 3, + "entities": [ + "军事指挥权", + "财政调度权", + "募兵权" + ] + }, + { + "type": "Policy", + "type_cn": "Policy", + "count": 2, + "entities": [ + "商鞅变法", + "禁军由文官控制" + ] + }, + { + "type": "MilitaryCondition", + "type_cn": "MilitaryCondition", + "count": 2, + "entities": [ + "军力不足", + "缺乏战略纵深" + ] + }, + { + "type": "Role", + "type_cn": "Role", + "count": 2, + "entities": [ + "节度使", + "协调中枢" + ] + }, + { + "type": "Position", + "type_cn": "Position", + "count": 2, + "entities": [ + "总理", + "丞相" + ] + }, + { + "type": "PoliticalCharacteristic", + "type_cn": "PoliticalCharacteristic", + "count": 2, + "entities": [ + "旧贵族势力弱", + "中央集权程度高" + ] + }, + { + "type": "Phenomenon", + "type_cn": "Phenomenon", + "count": 1, + "entities": [ + "宋朝军事弱势" + ] + }, + { + "type": "Factor", + "type_cn": "Factor", + "count": 1, + "entities": [ + "制度性因素" + ] + }, + { + "type": "EconomicFactor", + "type_cn": "EconomicFactor", + "count": 1, + "entities": [ + "财政压力" + ] + }, + { + "type": "EconomicIndicator", + "type_cn": "EconomicIndicator", + "count": 1, + "entities": [ + "财政支出" + ] + }, + { + "type": "MilitaryStrategy", + "type_cn": "MilitaryStrategy", + "count": 1, + "entities": [ + "对外战略被动" + ] + }, + { + "type": "MilitaryCapability", + "type_cn": "MilitaryCapability", + "count": 1, + "entities": [ + "机动能力弱" + ] + }, + { + "type": "PersonGroup", + "type_cn": "PersonGroup", + "count": 1, + "entities": [ + "武将" + ] + }, + { + "type": "EconomicCondition", + "type_cn": "EconomicCondition", + "count": 1, + "entities": [ + "财政压力" + ] + }, + { + "type": "InstitutionalPolicy", + "type_cn": "InstitutionalPolicy", + "count": 1, + "entities": [ + "废除丞相制度" + ] + }, + { + "type": "StateOfAffairs", + "type_cn": "StateOfAffairs", + "count": 1, + "entities": [ + "中央决策高度集中于皇帝" + ] + }, + { + "type": "Institution", + "type_cn": "Institution", + "count": 1, + "entities": [ + "科举" + ] + }, + { + "type": "Function", + "type_cn": "Function", + "count": 1, + "entities": [ + "统筹大事小情" + ] + }, + { + "type": "AdministrativeStructure", + "type_cn": "AdministrativeStructure", + "count": 1, + "entities": [ + "六部直接对皇帝负责" + ] + }, + { + "type": "AdministrativeProblem", + "type_cn": "AdministrativeProblem", + "count": 1, + "entities": [ + "皇帝一人批不完政务" + ] + }, + { + "type": "Behavior", + "type_cn": "Behavior", + "count": 1, + "entities": [ + "互相推诿责任" + ] + }, + { + "type": "Resource", + "type_cn": "Resource", + "count": 1, + "entities": [ + "银子" + ] + }, + { + "type": "Situation", + "type_cn": "Situation", + "count": 1, + "entities": [ + "没人拍板" + ] + }, + { + "type": "HistoricalState", + "type_cn": "HistoricalState", + "count": 1, + "entities": [ + "秦国" + ] + }, + { + "type": "Location", + "type_cn": "地点", + "count": 1, + "entities": [ + "关中" + ] + }, + { + "type": "HistoricalEvent", + "type_cn": "HistoricalEvent", + "count": 1, + "entities": [ + "安史之乱" + ] + }, + { + "type": "PoliticalAction", + "type_cn": "PoliticalAction", + "count": 1, + "entities": [ + "中央整顿" + ] + }, + { + "type": "PoliticalPhenomenon", + "type_cn": "PoliticalPhenomenon", + "count": 1, + "entities": [ + "藩镇割据加剧" + ] + }, + { + "type": "EconomicEntity", + "type_cn": "EconomicEntity", + "count": 1, + "entities": [ + "中央财政" + ] + }, + { + "type": "System", + "type_cn": "System", + "count": 1, + "entities": [ + "募兵制" + ] + }, + { + "type": "WorkRole", + "type_cn": "WorkRole", + "count": 1, + "entities": [ + "掌控禁军" + ] + } + ], + "triplet_samples": [ + { + "subject": "记忆熊", + "predicate": "MENTIONS", + "predicate_cn": "提到", + "object": "宋朝军事弱势" + }, + { + "subject": "宋朝军事弱势", + "predicate": "RESULTED_IN", + "predicate_cn": "resulted in", + "object": "制度性因素" + }, + { + "subject": "记忆熊", + "predicate": "MENTIONS", + "predicate_cn": "提到", + "object": "禁军由文官控制导致作战效率低下" + }, + { + "subject": "禁军由文官控制", + "predicate": "RESULTED_IN", + "predicate_cn": "resulted in", + "object": "作战效率低下" + }, + { + "subject": "记忆熊", + "predicate": "MENTIONS", + "predicate_cn": "提到", + "object": "厢军装备不足" + }, + { + "subject": "记忆熊", + "predicate": "MENTIONS", + "predicate_cn": "提到", + "object": "宋朝" + }, + { + "subject": "记忆熊", + "predicate": "MENTIONS", + "predicate_cn": "提到", + "object": "军费" + } + ], + "self_reflexion": [ + { + "conflict": { + "data": [ + { + "id": "76be6d82d8804beda6baa3d3447d6cbc", + "statement": "学生对\"六部缺乏协调机制\"的具体影响表示理解不足。", + "group_id": "group_123", + "chunk_id": "4a0804127d35456f86d4f06e1fa458f7", + "created_at": "2025-12-12 09:48:00.166068", + "expired_at": null, + "valid_at": null, + "invalid_at": null, + "entity_ids": [] + } + ], + "conflict": true, + "conflict_memory": { + "id": "e268a6fff35543fab471986c188e023e", + "statement": "学生对\"六部缺乏协调机制\"的具体影响表示理解不足。", + "group_id": "group_123", + "chunk_id": "e6cb5f56020e4a8d925d148e1d2fbda0", + "created_at": "2025-12-12 09:48:00.166068", + "expired_at": null, + "valid_at": null, + "invalid_at": null, + "entity_ids": [] + } + }, + "reflexion": { + "reason": "同一学生在不同时间点重复提出对'六部缺乏协调机制'具体影响的理解困难,表明原有解释未能有效解决其认知障碍,存在记忆冗余与教学反馈失效的冲突。", + "solution": "保留后出现的记忆记录(chunk_id为4a0804127d35456f86d4f06e1fa458f7)作为最新学习状态,将其设为有效;将前次相同内容的记忆(id为e268a6fff35543fab471986c188e023e)标记为失效,避免重复干预,并基于后续完整解释优化知识呈现逻辑。" + }, + "resolved": { + "original_memory_id": "e268a6fff35543fab471986c188e023e", + "resolved_memory": { + "id": "e268a6fff35543fab471986c188e023e", + "statement": "学生对\"六部缺乏协调机制\"的具体影响表示理解不足。", + "group_id": "group_123", + "chunk_id": "e6cb5f56020e4a8d925d148e1d2fbda0", + "created_at": "2025-12-12 09:48:00.166068", + "expired_at": null, + "valid_at": null, + "invalid_at": "2025-12-12 09:48:00.166068", + "entity_ids": [] + } + } + } + ] + } \ No newline at end of file diff --git a/web/src/views/MemoryExtractionEngine/index.tsx b/web/src/views/MemoryExtractionEngine/index.tsx index af35c5bc..ac7b3b70 100644 --- a/web/src/views/MemoryExtractionEngine/index.tsx +++ b/web/src/views/MemoryExtractionEngine/index.tsx @@ -1,18 +1,16 @@ import { type FC, useState, useEffect } from 'react' import { useTranslation } from 'react-i18next' import { useParams } from 'react-router-dom' -import { Row, Col, Space, Switch, Select, InputNumber, Slider, Button, App, Skeleton, Form } from 'antd' -import { ExclamationCircleFilled, CheckCircleFilled } from '@ant-design/icons' +import { Row, Col, Space, Switch, Select, InputNumber, Slider, App, Form } from 'antd' import clsx from 'clsx' import Card from './components/Card' -import RbCard from '@/components/RbCard/Card' -import RbAlert from '@/components/RbAlert' -import Empty from '@/components/Empty' -import type { ConfigForm, ConfigVo, Variable, TestResult } from './types' -import { getMemoryExtractionConfig, updateMemoryExtractionConfig, pilotRunMemoryExtractionConfig } from '@/api/memory' +import type { ConfigForm, Variable } from './types' +import { getMemoryExtractionConfig, updateMemoryExtractionConfig } from '@/api/memory' import Markdown from '@/components/Markdown' import { getModelList } from '@/api/models'; import type { Model } from '@/views/ModelManagement/types' +import { configList } from './constant' +import Result from './components/Result' const keys = [ // 'example', @@ -20,229 +18,16 @@ const keys = [ 'arrangementLayerModule' ] -const configList: ConfigVo[] = [ - { - type: 'storageLayerModule', - data: [ - { - title: 'entityDeduplicationDisambiguation', - list: [ - { - label: 'enableLlmDedupBlockwise', - variableName: 'enable_llm_dedup_blockwise', - control: 'button', // switch - type: 'tinyint', - }, - { - label: 'enableLlmDisambiguation', - variableName: 'enable_llm_disambiguation', - control: 'button', - type: 'tinyint', - }, - { - label: 'tNameStrict', - control: 'slider', - variableName: 't_name_strict', - type: 'decimal', - }, - { - label: 'tTypeStrict', - control: 'slider', - variableName: 't_type_strict', - type: 'decimal', - }, - { - label: 'tOverall', - control: 'slider', - variableName: 't_overall', - type: 'decimal', - }, - ] - }, - // 语义锚点标注 - { - title: 'semanticAnchorAnnotationModule', - list: [ - // 句子提取颗粒度 - { - label: 'statementGranularity', - variableName: 'statement_granularity', - control: 'slider', - type: 'decimal', - max: 3, - min: 1, - step: 1, - meaning: 'statementGranularityDesc', - }, - // 是否包含对话上下文 - { - label: 'includeDialogueContext', - variableName: 'include_dialogue_context', - control: 'button', // switch - type: 'tinyint', - meaning: 'includeDialogueContextDesc' - }, - // 上下文文字上限 - { - label: 'maxDialogueContextChars', - variableName: 'max_context', - control: 'inputNumber', - min: 100, - type: 'decimal', - meaning: 'maxDialogueContextCharsDesc', - }, - ] - }, - ] - }, - { - type: 'arrangementLayerModule', - data: [ - { - title: 'queryMode', - list: [ - { - label: 'deepRetrieval', - variableName: 'deep_retrieval', - control: 'button', - type: 'tinyint', - meaning: 'deepRetrievalMeaning', - }, - ] - }, - { - title: 'dataPreprocessing', - list: [ - { - label: 'chunkerStrategy', - variableName: 'chunker_strategy', - control: 'select', - type: 'enum', - options: [ - { label: 'recursiveChunker', value: 'RecursiveChunker' }, // 递归分块 - { label: 'tokenChunker', value: 'TokenChunker' }, // token 分块 - { label: 'semanticChunker', value: 'SemanticChunker' }, // 语义分块 - { label: 'neuralChunker', value: 'NeuralChunker' }, // 神经网络分块 - { label: 'hybridChunker', value: 'HybridChunker' }, // 混合分块 - { label: 'llmChunker', value: 'LLMChunker' }, // LLM 分块 - { label: 'sentenceChunker', value: 'SentenceChunker' }, // 句子分块 - { label: 'lateChunker', value: 'LateChunker' }, // 延迟分块 - ], - meaning: 'chunkerStrategyDesc', - }, - ] - }, - // 智能语义剪枝 - { - title: 'intelligentSemanticPruning', - list: [ - // 智能语义剪枝功能 - { - label: 'intelligentSemanticPruningFunction', - variableName: 'pruning_enabled', - control: 'button', - type: 'tinyint', - meaning: 'intelligentSemanticPruningFunctionDesc', - }, - // 智能语义剪枝场景 - { - label: 'intelligentSemanticPruningScene', - variableName: 'pruning_scene', - control: 'select', - type: 'enum', - options: [ - { label: 'education', value: 'education' }, - { label: 'online_service', value: 'online_service' }, - { label: 'outbound', value: 'outbound' }, - ], - meaning: 'intelligentSemanticPruningSceneDesc', - }, - // 智能语义剪枝阈值 - { - label: 'intelligentSemanticPruningThreshold', - control: 'slider', - variableName: 'pruning_threshold', - type: 'decimal', - max: 0.9, - min: 0, - step: 0.1, - meaning: 'intelligentSemanticPruningThresholdDesc', - }, - ] - }, - // 自我反思引擎 - { - title: 'selfReflexionEngine', - list: [ - // 是否启用反思引擎 - { - label: 'enableSelfReflexion', - variableName: 'enable_self_reflexion', - control: 'button', - type: 'tinyint', - }, - // 迭代周期 - { - label: 'iterationPeriod', - variableName: 'iteration_period', - control: 'select', - type: 'enum', - options: [ - { label: 'oneHour', value: '1' }, - { label: 'threeHours', value: '3' }, - { label: 'sixHours', value: '6' }, - { label: 'twelveHours', value: '12' }, - { label: 'daily', value: '24' }, - ], - meaning: 'iterationPeriodDesc', - }, - // 反思范围 - { - label: 'reflexionRange', - variableName: 'reflexion_range', - control: 'select', - type: 'enum', - options: [ - { label: 'retrieval', value: 'retrieval' }, - { label: 'database', value: 'database' }, - ], - meaning: 'reflexionRangeDesc', - }, - // 反思基线 - { - label: 'reflectOnTheBaseline', - variableName: 'baseline', - control: 'select', - type: 'enum', - options: [ - { label: 'basedOnTime', value: 'TIME' }, - { label: 'basedOnFacts', value: 'FACT' }, - { label: 'basedOnFactsAndTime', value: 'TIME-FACT' }, - ], - }, - ] - }, - ] - } -] - -const resultObj = { - extractTheNumberOfEntities: 'entities.extracted_count', - numberOfEntityDisambiguation: 'disambiguation.block_count', - memoryFragments: 'memory.chunks', - numberOfRelationalTriples: 'triplets.count' -} - const ConfigDesc: FC<{ config: Variable, className?: string }> = ({config, className}) => { const { t } = useTranslation(); return (
- + {config.variableName && {t('memoryExtractionEngine.variableName')}: {config.variableName}} {config.control && {t('memoryExtractionEngine.control')}: {t(`memoryExtractionEngine.${config.control}`)}} {config.type && {t('memoryExtractionEngine.type')}: {config.type}} - {config.meaning &&
{t('memoryExtractionEngine.Meaning')}: {t(`memoryExtractionEngine.${config.meaning}`)}
} + {config.meaning &&
{t('memoryExtractionEngine.Meaning')}: {t(`memoryExtractionEngine.${config.meaning}`)}
}
) } @@ -253,12 +38,9 @@ const MemoryExtractionEngine: FC = () => { const [expandedKeys, setExpandedKeys] = useState(keys) const [form] = Form.useForm() const [modelForm] = Form.useForm() - // const [data, setData] = useState() const modelValues = Form.useWatch([], modelForm) const values = Form.useWatch([], form) - const [testResult, setTestResult] = useState(null) const [loading, setLoading] = useState(false) - const [runLoading, setRunLoading] = useState(false) const [iterationPeriodDisabled, setIterationPeriodDisabled] = useState(false) const [modelList, setModelList] = useState([]) @@ -305,8 +87,6 @@ const MemoryExtractionEngine: FC = () => { if (id) { getConfig() getModels() - const lastResult = localStorage.getItem(`${id}_testResult`) - setTestResult(lastResult ? JSON.parse(lastResult) : null) } }, [id]) @@ -332,35 +112,11 @@ const MemoryExtractionEngine: FC = () => { setLoading(false) }) } - const handleRun = () => { - if (!id) { - return - } - setRunLoading(true) - updateMemoryExtractionConfig({ - ...values, - ...modelValues, - config_id: id, - }).then(() => { - pilotRunMemoryExtractionConfig({ - config_id: id, - dialogue_text: t('memoryExtractionEngine.exampleText'), - }).then((res) => { - message.success(t('common.testSuccess')) - const response = res as { extracted_result: TestResult } - setTestResult(response.extracted_result || {}) - localStorage.setItem(`${id}_testResult`, JSON.stringify(response.extracted_result || {})) - }) - .finally(() => { - setRunLoading(false) - }) - }) - } return ( <> -
{t('memoryExtractionEngine.title')}
-
{t('memoryExtractionEngine.subTitle')}
+
{t('memoryExtractionEngine.title')}
+
{t('memoryExtractionEngine.subTitle')}
@@ -388,12 +144,12 @@ const MemoryExtractionEngine: FC = () => { handleExpand={handleExpand} > {expandedKeys.includes('example') && -
+
} - +
{
{ )} >
{t(`memoryExtractionEngine.${vo.title}`)}
-
{t(`memoryExtractionEngine.${vo.title}SubTitle`)}
+
{t(`memoryExtractionEngine.${vo.title}SubTitle`)}
{vo.list.map(config => (
{config.control === 'button' && -
+
- -{t(`memoryExtractionEngine.${config.label}`)} - + -{t(`memoryExtractionEngine.${config.label}`)} +
@@ -442,10 +198,10 @@ const MemoryExtractionEngine: FC = () => { } {config.control === 'select' && <> -
+
-{t(`memoryExtractionEngine.${config.label}`)}
-
+
@@ -454,17 +210,17 @@ const MemoryExtractionEngine: FC = () => { options={config.options ? config.options.map(item => ({ ...item, label: t(`memoryExtractionEngine.${item.label}`) })) : []} /> - +
} {config.control === 'slider' && <> -
+
-{t(`memoryExtractionEngine.${config.label}`)}
-
- +
+ @@ -475,7 +231,7 @@ const MemoryExtractionEngine: FC = () => { step={config.step || 0.01} /> -
+
{config.min || 0} {t('memoryExtractionEngine.CurrentValue')}: {values?.[config.variableName as keyof ConfigForm]}
@@ -484,16 +240,16 @@ const MemoryExtractionEngine: FC = () => { } {config.control === 'inputNumber' && <> -
+
-{t(`memoryExtractionEngine.${config.label}`)}
-
+
- +
} @@ -508,148 +264,10 @@ const MemoryExtractionEngine: FC = () => { - -
- {testResult && Object.keys(testResult).length > 0 - ? <> - } className="rb:mb-[14px]"> - {t('memoryExtractionEngine.warning')} - - - - {resultObj && Object.keys(resultObj).length > 0 && - -
- {Object.keys(resultObj).map(key => { - const keys = (resultObj as Record)[key].split('.') - return ( -
-
{testResult?.[keys[0] as keyof TestResult]?.[keys[1]]}
-
{t(`memoryExtractionEngine.${key}`)}
-
- {} - {key === 'extractTheNumberOfEntities' - ? t(`memoryExtractionEngine.${key}Desc`, { - num: testResult.dedup.total_merged_count, - exact: testResult.dedup.breakdown.exact, - fuzzy: testResult.dedup.breakdown.fuzzy, - llm: testResult.dedup.breakdown.llm, - }) - : key === 'numberOfEntityDisambiguation' - ? t(`memoryExtractionEngine.${key}Desc`, { num: testResult.disambiguation.effects?.length, block_count: testResult.disambiguation.block_count }) - : key === 'numberOfRelationalTriples' - ? t(`memoryExtractionEngine.${key}Desc`, { num: testResult.triplets.count }) - :t(`memoryExtractionEngine.${key}Desc`) - } -
-
- )})} -
-
- } - - {testResult?.dedup?.impact && testResult.dedup.impact?.length > 0 && - -
{t('memoryExtractionEngine.identifyDuplicates')}
- {testResult.dedup.impact.map((item, index) => ( -
- -{t('memoryExtractionEngine.identifyDuplicatesDesc', { ...item })} -
- ))} - - } className="rb:mt-[12px]"> - {t('memoryExtractionEngine.entityDeduplicationImpactDesc', { count: testResult.dedup.impact.length })} - -
- } - - {testResult?.disambiguation && testResult.disambiguation?.effects?.length > 0 && - - {testResult.disambiguation.effects.map((item, index) => ( -
0, - })}> -
Disagreement Case {index +1}:
- -{item.left.name}({item.left.type}) vs {item.right.name}({item.right.type}) → {item.result} -
- ))} - - } className="rb:mt-[12px]"> - {t('memoryExtractionEngine.entityDeduplicationImpactDesc', { count: testResult.dedup.impact.length })} - -
- } - - {testResult?.core_entities && testResult?.core_entities.length > 0 && - -
- {testResult.core_entities.map(item => ( -
-
{item.type}({item.count})
- -
- {item.entities.map((entity, index) => ( -
- -{entity} -
- ))} -
-
- ))} -
-
- } - - {testResult?.triplet_samples && testResult?.triplet_samples.length > 0 && - - - {testResult.triplet_samples.map((item, index) => ( -
- -({item.subject}, {item.predicate}, {item.object}) -
- ))} -
- } className="rb:mt-[12px]"> - {t('memoryExtractionEngine.extractRelationalTriplesDesc', { count: testResult.triplet_samples.length })} - -
- } -
- - : loading - ? - : - } -
- -
- - -
-
+ From 1bc06e8204c1834408b82642469c95101c952654 Mon Sep 17 00:00:00 2001 From: yujiangping Date: Tue, 16 Dec 2025 11:58:37 +0800 Subject: [PATCH 11/92] Sync frontend project from dev-yjp branch - Updated web folder with latest frontend code - Added new components: CreateContentModal, CreateContentModalExample - Added new hook: useBreadcrumbManager - Updated knowledge base components and views - Updated i18n translations - Various bug fixes and improvements --- web/.gitignore | 6 + web/src/App.tsx | 7 + web/src/api/knowledgeBase.ts | 13 +- web/src/assets/images/application/chat.png | Bin 155923 -> 0 bytes .../images/application/debuggingEmpty.png | Bin 187957 -> 0 bytes .../images/conversation/analysisEmpty.png | Bin 193540 -> 0 bytes web/src/assets/images/empty/404.png | Bin 120706 -> 0 bytes web/src/assets/images/empty/noPermission.png | Bin 163593 -> 0 bytes .../assets/images/menu/userMemory_active.svg | 18 - web/src/components/Empty/index.tsx | 8 +- web/src/components/Header/index.tsx | 26 +- web/src/components/Layout/AuthLayout.tsx | 8 +- web/src/components/Layout/AuthSpaceLayout.tsx | 10 +- web/src/hooks/useBreadcrumbManager.ts | 248 ++++++++++++ web/src/hooks/useRouteGuard.ts | 9 +- web/src/i18n/en.ts | 9 +- web/src/i18n/zh.ts | 8 +- web/src/store/menu.ts | 2 +- .../ApplicationConfig/components/Chat.tsx | 7 +- .../[knowledgeBaseId]/CreateDataset.tsx | 37 +- .../[knowledgeBaseId]/DocumentDetails.tsx | 36 +- .../[knowledgeBaseId]/Private.tsx | 372 +++++++++++------- .../KnowledgeBase/[knowledgeBaseId]/Share.tsx | 75 ++-- .../components/CreateContentModal.tsx | 104 +++++ .../components/CreateContentModalExample.tsx | 34 ++ .../components/CreateImageDataset.tsx | 4 +- .../KnowledgeBase/components/FolderTree.tsx | 112 +++++- web/src/views/KnowledgeBase/index.tsx | 175 ++++---- web/src/views/KnowledgeBase/types.ts | 16 +- web/src/views/MemoryConversation/index.tsx | 5 +- web/src/views/NoPermission/index.tsx | 2 +- web/src/views/NotFound/index.tsx | 2 +- web/vite.config.ts | 13 +- 33 files changed, 996 insertions(+), 370 deletions(-) delete mode 100644 web/src/assets/images/application/chat.png delete mode 100644 web/src/assets/images/application/debuggingEmpty.png delete mode 100644 web/src/assets/images/conversation/analysisEmpty.png delete mode 100644 web/src/assets/images/empty/404.png delete mode 100644 web/src/assets/images/empty/noPermission.png delete mode 100644 web/src/assets/images/menu/userMemory_active.svg create mode 100644 web/src/hooks/useBreadcrumbManager.ts create mode 100644 web/src/views/KnowledgeBase/components/CreateContentModal.tsx create mode 100644 web/src/views/KnowledgeBase/components/CreateContentModalExample.tsx diff --git a/web/.gitignore b/web/.gitignore index b398d222..0de8ef71 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -24,3 +24,9 @@ dist-ssr *.sw? package-lock.json + +# 文档和截图(不上传到仓库) +操作说明.md +记忆熊系统功能使用说明.md +截图清单.md +images/ \ No newline at end of file diff --git a/web/src/App.tsx b/web/src/App.tsx index c255f522..800b2a47 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -27,12 +27,19 @@ import 'dayjs/locale/en' import 'dayjs/locale/zh-cn' import 'dayjs/plugin/timezone' import 'dayjs/plugin/utc' +import { cookieUtils } from './utils/request'; function App() { const { t } = useTranslation(); const { locale, language, timeZone } = useI18n() + useEffect(() => { + const authToken = cookieUtils.get('authToken') + if (!authToken && !window.location.hash.includes('#/login')) { + window.location.href = `/#/login`; + } + }, []) useEffect(() => { document.title = t('memoryBear') diff --git a/web/src/api/knowledgeBase.ts b/web/src/api/knowledgeBase.ts index 9791ee8d..60f374a2 100644 --- a/web/src/api/knowledgeBase.ts +++ b/web/src/api/knowledgeBase.ts @@ -200,7 +200,7 @@ export const deleteFile = async (id: string) => { // 获取文档列表 export const getDocumentList = async (query: PathQuery) => { - const response = await request.get(`${apiPrefix}/documents/${query.kb_id}/${query.parent_id}/documents`, query); + const response = await request.get(`${apiPrefix}/documents/${query.kb_id}/documents`, query); return response as KnowledgeBaseDocumentData[]; }; // 文档详情 @@ -213,6 +213,11 @@ export const createDocument = async (data: KnowledgeBaseDocumentData) => { const response = await request.post(`${apiPrefix}/documents/document`, data); return response as KnowledgeBaseDocumentData; }; +// 自定义文档上传并创建 +export const createDocumentAndUpload = async ( data: any, params: PathQuery) => { + const response = await request.post(`${apiPrefix}/files/customtext`, data, { params } ); + return response as any; +}; // 更新文档 export const updateDocument = async (id: string, data: KnowledgeBaseDocumentData) => { const response = await request.put(`${apiPrefix}/documents/${id}`, data); @@ -223,9 +228,9 @@ export const deleteDocument = async (id: string) => { const response = await request.delete(`${apiPrefix}/documents/${id}`); return response; }; -// 文档解析 -export const parseDocument = async (id: string) => { - const response = await request.post(`${apiPrefix}/documents/${id}/chunks`); +// 文档解析 / 分块 +export const parseDocument = async (id: string, data: any) => { + const response = await request.post(`${apiPrefix}/documents/${id}/chunks`, data); return response as any; }; // 文档分块预览 diff --git a/web/src/assets/images/application/chat.png b/web/src/assets/images/application/chat.png deleted file mode 100644 index a8bb40fad1e36cecce84b928af4c529bd4adafec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155923 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ʈDBIVZ|s|oPbih~A6Kc|-tX5s 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 Z@F+)Kfu71m1z$p-siya|`U&v;{{SH~Yw!R7 diff --git a/web/src/assets/images/application/debuggingEmpty.png b/web/src/assets/images/application/debuggingEmpty.png deleted file mode 100644 index 0879d4e3fe047566ef2d34674e077725963f4017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187957 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

J5 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 %8|zYoFs~|3i}@$H($rAL_Ht7o0qnm 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 xYzFd=sb`f~Z= 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

($hjH#;1+ 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 M3FqVaM}4CH51YPd2mk;8 diff --git a/web/src/assets/images/conversation/analysisEmpty.png b/web/src/assets/images/conversation/analysisEmpty.png deleted file mode 100644 index 6d497f31f3eb4df0a9bb8862a374de291fa720f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193540 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%0D1u{I~qWgW1WlSc%JFcI)ATowWu6lRGB& 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 diff --git a/web/src/assets/images/empty/noPermission.png b/web/src/assets/images/empty/noPermission.png deleted file mode 100644 index cacac721b7b2a177ec36a26b6d3b61ef7bda0afc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163593 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

~qKxoCXexm?d?Ln8JK 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

ft9~i~mlETJc``8)0YG5~=TtyEbpb#| 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�rbu-QnzhGzjIFVE86;|rH|vgkCW>eeeNuNZP#bHb0}gzkWC8Fsu= zBO10M0y7B&5(c+|=%g$|kFnh1rgR^bDZ)t#>!|?6Q)&NWZy)H<{^yVy{%1k$-(YCV z=kr%7mwgvb7iyQQR~vip`eTlN9&jyZ%`Lvn{8Ins+WFRrN#)UJf%SOiJTrTrPwSt!HPtweE=rUMnqgX*DAc2mfsyWahk9kGGlbLp!9s4cpxg9erG{_V776)adQ* zFDsFc0oRzCrz&B7+2d?YUNn@s@bIac!BCsK03c0a{><$)(OkAKL(zjT6(7edVC!Ce znl5DRVH=t`F;$cT1qHHQ%eoc>R5ZLKXsdw zCImJV3-0z1@zFt)Ws+j%2iP1iThZue9U=9%$>}55kqbsyve=ps&8uOryZ&c`t*|0& zLunH|vp7OVUA;ALAonijqRSdDza}eqkQe62B+*-Kd@Sv={+kIfZ-+GAI%*aU6Yk3F z<=iyzGo$bRfCtY#8Si?zb&B}&)|jTp+7h*gSFtO2d-8;4gHjY@3#c$ACFSs22>8*# zho?+y^G!y_q*P%+smNZ>v;eAM-Z5NgvaRSCy$WQ3E}YV>2OK0`(P$<*5?Yf?CI0|^ls`Pk7zklr04EET3|X4H-$XO~tI86D6jbhRf`vU~AP z=-fE3wfQRa@>2JFWI!l-`yDjpX#a?6S2w&oQ!Q@_?bu7-a&*MuGJnvSvmJ9`oHt?N zDEP1MCARt|_@2e2pTsxq@{oJV84+VLa!D5fix;7a8uBzZRqSQ&%zrM=9+?XJp~3Yg z=?22r&|I!~snO#ln^MxF5sl5}k~bkL1S$jFs!#FO?#`2UEZ|%zbE}u9RByg0c(Pl% z%O~5t??tpX3HA#V;K4mSpAiozRhu_0|JvwcJW@rm&648p20~#zw{PYX0;y?sB}Ftn z z<_l{`Yse!^xf5y0E~)@!=IApwLG6DY|CU?NLQAf;W6qr}zgal#Tn$PN?d~^mWomzo zX#YIT)|f}jFrAm2W081VIry(nORJ?}?qKiM;*+5riuJvdWGl}4k^H8{sl#4RG1L3^ zUn~Z%+GxG6UOzd!$s51bmdc1v%si%P*>7{H7ciT}pB?hxMAf>sUE~h4=&$)zxf$K= zolOw$wnb-2l=GJn@l75=2Y-o`pFhFxy!jn8WRDw#@{EZm(FX=H6$*K7g2QRtJ$3Xx zem}I?NnAA?)ENs!whst1iWzD(cbs97I>X8hRq3!$qz+OHJ{3_oH&=sN2_Sy`hT@mN zm$`5oclkYGxaQ$eH2PA1>-Y<)gmQ?@OJ44#@D%;FA^&daHtiVtLc{Br)0r#O3{lUvg!mSh{n#*-7qKOeM5!SVsy@IlA^$ZwRZsvmvasSXY}hT-LRohdbTx@D z%rw<_Mhj+K!Gf{T!)Gt{BE1ORxz-Fg;lw&sv8oj@Iw~BXko6X#-6};KDuYDQk&nN> zCDniI0I(`r-C+k}^nek@{`@`Sb{ZA+=pmvndo%?HHj@J1h@&My3FWa`oYbsODFAXV zWh@_%3{_Bi>KxNmn!Il-+sw+7Ij$Vbs&Fgwq~#uUcdHQoZble!rboiQ%EV|L^K3@^ zF2jR_v$}m(k~$9@2Dd~>m^HhTd#!9VH7z^7y;L>9vtiGc_>$%MI3Q^}mZtSWnOX4s z&iQ)G=EHASF_&ACF&A7zju$k#=e-A4mv83(bzSHl7c*aW?cpAuFU@tK7yQ*d_nn<$ z$a{O!S}#-`X9UBer!61Y=em(ego|O#dJ@z2hlXDk-LH~}(L?U=KwHjF$6fY(xzw5; zA2E6B?UTy5-Q<%V8)p{qNltlLq?>BIwK-+EQLrgts)o2L=E7~X;WZQzlzhv>5VY!# zs)+ZS3jEsS7I9A5p~ERV$N1gw!K)lrX>qxG8+*t>3p$=6re_?Gv0IR1&pA=}egmbN zy+{{M)-!adYU}$gsfW-*L>DsaS&kO|;N}ZGIZ5v_+7jw2&M{l$n9?JlLuP7asm0c( zPZQ|!2X1ez9a;?4R z*CChBdDk35bqvbQe?y3zfrp6{gPF2iGW4)4SsI4G|Nbx$+YAlKbEP`bHI7h%un2Jq zNhjwP7$_$$0w%&9N+l^s7Uhq2d0j88fg1J+1R4h-vfSkKWH}0BwXzOwt}XDGK>!R1 zrVj4x*hWeL2of7Mz|WHvE5#9R!0k@wPyYB={EZuwcql@doDkl}I#a2B2ZR7PaIhqe zB$wc8-1iH!d;F3#;2}DX%~8+O*-F!1xUAt+{ojRt|LSqOs$BB5VW(a@qa{ECnLwb0 zIWoj{@Ud3%JWQYRR4%6)27D&mA(Fh*MLdN?{$IFg#QZgmSqX?a;EFjva7y2e-YvPh z3~fDQzFL_-CC2Q{^S``$zR4Ey`N@~=-0+rq<2N0nl5;KGCx6#+!z)TT-`@@2^&z;# z)6PW)CZ}j!zgkLmIzKM~YZO?Qx)m68@2R_}yr1)z=>^}vLGQQ2q#Yh*V*aYR5t_kf z_^vMg2d{ye<#_z)v1k0Jo3)-{8}}_Ft;UtWTD70jd3{1t8ZVbz2InJEa@1-=o`*A+ z5e2N)$tymX0&D28%|_KP^jni@ctV=ZPIa9@#;tg$8saVi zyJ|%<2RB*6M3~twpjJC3jXdurq;c(qODEfx-?ajW+on+#+ zYX4$}%_pw|##(?TYc&n;KU^{Vmn71|W-bk%IBGFb)izKdKe{UT^J%!TsSf$hCwj?a z)n0ru0uE()>0~I@gn>Rj#mOpLH8NKjZZ)#F)|ez5)c3tuC(I&7!{rOgC73f zFIj40MAuTfvhNujkTvrS8hyss2z?b=EDv|9vq0FB@HP<$N1-r3DPTFX$gq?w$fOeF z&}H4)1@tWKAbcu7%|IAJi>2Usm<14qa=$n@ED^mUW9Ws#3u}gkjAT>`^}6E{R|JYx z!2Zy1;;$aR^5f9EJXA0q#vYXy;$moevvv?mYS;iP8YLkHEp4c z%%ZmMo%oi`p1FX?Z|iTn?LNIv^Q9>!`IO`y-VF~9>ZVBv(Vh&BQi`)!@9;`#@;vO| zWdvQ+78vIHpZXQnSgl2p;1{qOl99V`upNFNLw)wgI%64M8Xzd{SC517xSOdMNv-3n z^E6zpf?Kv)(6c{R+rer&$(%;yxORlnB3s1)@jndk+z%$U>Z_!N6KPaWgtuTdy7160 zN}Gn-lj@aDkI4mYohkf@WcPq)aHo!F5`>#B2#pX_c2HB^9&C)-=ghR2Uk=N;zpgbl z{h)7=qa@hkqsU5+g!aR#PeihHy6dYMHyF~vU3(g;n8atVg5Z^T9A<*eLh+Rr3Xs>#h43DWF7)*z4h!vC1)cw;J)>b98wx7(lkrT z+x@GIlwlys65`WET44eUn@FQDaG6n9V;EooP^QQ7y`ZJCLS?|>EGgPaiLe}MS~wBR z+7>q-olV1hne)HEdG7Q%bpG)p>!}HyCdcq+}9L)>a$6xna>kD`zoB@C>3(b#uPa_sPuPXK5o}_a{HHSq#yX|EF+`ZDFMQr*>{kev+-8#PcXPO2+pNh2#hMDB*(HaXsYGi-lP#mMIpU3*j(>2p zNyIs)TZ_l*Ykv)fyc|t>+hU9G>y&}i@TJ<+dd8VO8ErkCIja$T?YF`?2ev2o*cEzu z>E2eMi(Ui>{n@sg@Yl=P@#>fLq|*0fG%XjiD-cqeUwX^3n(NlmeTR9iC>k1??Sls? zlZS1?GNWJH3l?%G=j}&=1Nl}@WzyHtN-@O6|-SfDLKPExtmyFy6CwHas$IMDWiTz^v1IKQaptt{+1 zcn3-Ze_b(5;AH%XFTvfn*dPo*DL3-}drBXMVHho~qag2tIZ(q{sRL74SiLy_qaYPA zEGU=2YSn3rp#zSB0QZUZ+)Q^z`N1&9AXqm9XZZjD?8n5h{tuChpai@V;mohri}Hml zg&2{;!Ikkd#giGmK{A^=)C>hGq{Q>$SiMC|nwuLtDY#nGA=4|a2mpx|3mN7$#mmuB zeFAY?iHZ?0hNH1ODiuhPb{IU>#Wknv{|}L9__wIb&Y$*Op~u@ZT?6>TD*qVmz?SVv zGq${0!R^oYLbazfo7#T8nlu9{?xv_euX3F~`&}|K*PL&$WXU}0>B?I+T~&S@)vWuc z_={q8W_!I*S$9{n_3NY>l6F%Qx=G8$w6Hi){J1BlJ~#jEue01KYw!EQ+cxI$zn5|X zG+o{vC+O3D^)sk36qV{H`8By{`APNDD_EH}@Jb(s?WFN2AlGWQI`~)iz~6b-aX{^TKTZ6qL2-)XIQ6+oqW4b;wyW}1qP>x>?{?=KYS(=<7`N^jntYo<0AeuQ{nQ)#UE>*By~n+_BD6 zGP?qlTea1|x1%rrjvuKXJ9s12vpCT9s0T2_7pR7w3}9vL;jOz?NX6aYaXOfAS6bE( z?!TCeY%KZ7A|2J$(os9BNRmEros|J(kc)L(=;+ED<5NJ(n0)XESP zfCq&rxP;15gMJt2INQ4Ex=6XNS5uyE^QIuGP z&i1%Q`U5ri?AI{YFbFA~lWwH%?6FmJYtNuC*rsY^~>K1lRf+gw~dc0hKJN z@~9yZ-Bipsl-kDIUcz{BME0H-rT2br<8kz5NL`-6Bhw=Me06^PQK&(VADzVtx}ALe z+^ExIn2EEM-CWE~t4-*0~b_LnK= z?MRh~iu5=+psuyDb8jznQ5 zH|u!;M_~rKe@7w7lty=iSCh3v%FjeAI9&0E0`fA~U6+0iC1mYwvzcz2T;Q80EmPpg zq5;mE0>ujDYUAK(`Nz7JW9>gUPXll&!(&tyR8BGh+Ev}^k^5PGp`B4*-)%X;cDd|P z!)YVPKGDX!UtIzjZ;SHFji+oi-df+aFyvQa9ac8g5k{+LybbxfdV0zGgD^Qs)$|!2 z1y?cyZvO6xYH)FIFI4#|7^vn<-5+HkEn3#^Gc?runECii`GH^|L_D7>SGgA#DMB`T z^zF@s;LRY3mImbEOFIG@_kl1Q08dSrl6v5B-$NhYh|X_`Us%R~_EJ7McNe}r7Z z(@B!KtkW)^(=0C^!)dy@#o*`Zc3vis5eC}ya@OmX6ix#g-76>jAG`C2_~qW!K}lLac+w#pVE1GwhkUdD3| zNHwkC|1oFh$Y*d+TH^iZpbx4UCp{sdowM6I7boHdoCa!t_Nz*UMAt0GQTG|7IlgMY zI6!C!PHbPBY5rQw7pg*4rttSo;z&a$dF;lkKT%as7t838ucbc6x=PI_$To|4IQYAM zy(6k{AoA;P@B!BS)oNJ3!rPZtL$;jeWVDywxCL#2t!1|Kfq=EgwG^SCy`9YLhnhRr z&*=KM*HH@>qE<0<;hlj`z*g)D^prLtt7bcbX+J1-YB|%bEJ0(|aAQXx6&&d}_a1PLPq{7X(0!z3`R3tn3aZ2}(;==WQvD@`Gz#=*dqHV#_y>Pq#Ff@K5Q@SwzTz>ifUu=C8YW=WQCVHpgSJFZCNXht@qujF(K9|wOV{ztPvaod8SuDn*W>ee8t z%`5wU2H)vH=`=+3Y-QQ2J+Tir!g~|KoG=qbc z4UN%llat~l(FlbZP3P-Mj)z5FxU-}>dWlqm@(x?ZkY#xC&&-}{SsqLN#`o{-SGCDi zE5IM?rUiCKkfBcJZ0`?b>pfDqH#)w~-^mcYmbBt^vl>`W%5jX+*Jvr!34e27ybCkS zY(DKg&d$4HpL%*9Ll^o-d!fGV1)3J#ZDl-2M@*zJOJYG%F<>=zvY`lP2m0X2mzwYT zd4ftdskIMl1B%98)pIhPMP6$Xa2Kd(v!Zv=4U9g_LUXHcJE<*Tg%-Z!ZC>c?Fjto1~mb)Z_6ZfUHn5h zsqSw1fA1AOAGAwrJXy~pMmR^E3a1%|tgq)Jlb?JKHO3r19qAOEiwqn*@mo5$z>Y)> z`9;LCla3CQPLb#-v0z z+|H@`6t~D?SbQVD4kK<>C7ANa#X>Fj_IlUvH4WeFY{73sCy`Ei{iMYsjnBNZM@heE z`hMqzXa*ktPSKccbv^j?c(C=H=Fx~t@{sQPfyidvf@_N-8X2sUU;bVoHzMRDNo>7f zWA(!FSH14b$DD9#ZXwLNf{ABFHHC*8l1?9FaHsmNSiR0P+D8BoR>U0 zk_G~gBoC~C_YHBLhlc4?uVL1%vD8*rTLQon(VjHUix;LV!+^XI7!YmJc#;#F6(z`( zfbFWho4+T^D2kzH{q8TTefX*s)}Gnbu`1RzsLrR{I7I3vskqj^Rl0{ZcoJzqZ`B7C zMyQCI~n2*rFxNO)ipx^XJc^?ZgnOV z5|{`z1Tja`xRP}R)n%^MU%ICcVz!?duQ0cs9W-72iF_gG)X_PWg`iGB9k7pYhUTbW^%;l4S=ucbvt@#|qyN{(M!D2q z7iGq^Q%Odq$vQfD#ug?1$Rx8QLGzw%;H=0f>M?t=YCmjI;lhJkUJ29vQZN z^@lIlqhfW=!~dK3kvzB z5S#2hP5o>=f)3mD<=aphnQU4pJ@#eL(Dz4jUnI-xL+@8uKzvi*dsN#7HGD&T)qx4n z)G`K+h^oKTl6LbK_D3YZUdRZxN4Iu2I~VIq$>`sGw;l17ECrLVh@DcaB_+yI$GM!|$`UP2&12?(iF1jZ9Xe;0wF0GA>ts6h}65O3LFyee6< zKlY>XvlZv_njKb$Hztk30YyVqzVYv9KIpU3vRL&QVno<0Q$e0AtiqIcRWwXuH!euo$WZg;<91%a~uyDK232O`I5ABGGm-~uWX(@_7V$RQh>F)LZ6rVpi+C3P&fbWzmZ?2loT`VLg{X9zF zfmxpRH8csYYGv^pJTfdQAc^|EoS3)&Z0nma!NQWo+31SFRT)nGvzdTaz)TluCjVbB~c^HbLOQib0?M&1}h~u=sjAE2dKgl(M&~A;@0@ z@ZYMq9;B>P#t*-|fKNr5SZ;s+WN`Zfjhj`ezIp@KA9_EO`CDepoe+x&9fz9hk9*?2 zw6+)emb&$x)|PA@B{e;GA5b(1Z}b&b^Xy9yv+|>m)b{6}p}0|OFr7>5kt?a6o@%xS z=C#34?7;uw?!{@w4J@$Xuv#K?y#fP)&q3)#d3QD_gsF{z5)|V^0T9LjDapS!S!#6@ zLJvlu%OO~@?95Is7%V=w3LkYFj0me@wO5{Y1DZerPQi=uH(Yx1aaeB@hF0;e82et5 zSX&u1Ha?X#kA*`l2?wDBNMWH3bRth500FF!0t9{`o&qGi%v1_ty^E#Aim5ZH3q#Z) z7*UXznOO|wA<4Es9`DPq9aqo&do15E^0Ya z$Uoxib03-$)yP1-!1Dr}Ny{v6sLgk-Lq#Tb zE4`+Y(V;g~m*?WXaChqm7YqW6`AvMgOvS&*JId19FlKDBskq@65#C&e2&%pTc+@dy zfYFgb_~{z8A{pNhD!(?`!#pGC*N$A=7mwkc2j|5*C=c&7jN{cScj$IW?;+mJ)WoWk2_X0n_~rJUuI z>?Rmyd14bG*W3s7c=~=pc+!vVl6! zYm2_ujTQg6kx)q~6}Prw9O@FB&jCgYHUP}>0rRebu(U{4Yp_Hm3HaVCd%q`Q$(#`) z_9OCpr}sIf&*D1js1T>iw8OzrYL85WTssCN;1o0I;!GkzUj(1PDD(0t`-iY7&U-$|=>2%yX>wCP^sI$LY zyR&#L-=1^Nj`H7MHr->sAMe_ie(ggJuTKc{9hMvo+U{zY@kDHVloDu7-I=>6<|vBt ztz5EO_k~)z3?TgGTXKmlkdMJbZ!L9?0g9c zf608k?z*;Xa;#r(qGjCe`y&Of-tJO1!(2bA(cvQZ8%5$I5*MTVMf#4@0-BhW&neAD z!flW^CAS~-H+(hL9&ZL0Iu^`qksH`n#w)t*sNvD8HI#AYuSu_^i7&{mVgG&l5y~^x zD6`G48&2E!C(Ldhk>dU^Wqab<&lWYmn4Trx6uvuG-#eEM^KAK;561X3OEzX_+@L)1 z8Nay&8{5QXOE1lH4o>9dZOjZQ1l;o<))K?!BK+w$2#kvFloe_BXSh!kM?F{?EVD1oKnR<2CHUO!=YbX^NS zaNK|Fs1v%o`y*yP)in0r^K$|N0gq)5J0DEE66S`3=4sXcp3#7g@P7JL9Lk4@F9xa zET4kEMW z$MkD+Q@grpxr$9s$-UPM#lnA)8^yIN*TeVDIf`HWPJiX4$*=v#V}8dkx`>$VuLgJU z#G!)NzLziV?+0@3Uejw*SxrlrOWP0%eqqv;>byrCdTMws^K5e5ZJmb)uv`8D(=|U2 zRp(zvrC(0CDxcrh>k>Hd;Niv2>n|=O^)h`G5b$23SFGQlXZ|Tq{g1Khh)mIJn7q8x zXn0`ISz=*aeH9*rkVF?q8$8^2 zB4Tj-L@`b6?r*hU=IsN2*CYabe(F=lqehu?4cmrY`6NY5<4Zfe>SI=63fIrG$4T(> zeH@$$br1iM(`4k1QGKg_0+$7goy1!J+a|p-$j&4+@xdDRzd!D(m*W z!H_Hf!a$h<4JC145Xh7MY#dpEe2gF_jhTFTQk{*W_+go9Gj34nmKNBq7c&TWWNFe; z5{i&by@7yPphdJ$X@yl3dALHx6yLlb+ZvVp`GTj>=a3YyVn-kUzyTE?q%#sA0!IN@ zKv)!j2?V8)K!P)*Y3R{?^2v+SpS9tu?fcRZClwL%d;dxzyx(biWIuM}=YLAQfs2G& zS(U#;6@Q-lv+N{8HLxH9thwcoenikLMP@dN#Re>fG(fQE!4(e{pD<)+BRvGBOMl%6 zU-3AVIrI>>dRq+Q*J~+ql}B^`{?h-pwR3;;nPS7O$hx#l|yI)XZ+J0;M>79nRTZs`z(j_9h0dERy=%LZmM^oZT!vF5@jL6r7 zge(93A{;bP{lv~*Y=cN&^Tqa8YC3Rq;`lDbs)$A@nvTRjFxXa;ihnglpZztKviTp0 zWz;V;a9Hb+w_1?Ri!XoV<>AlhYx0$sjRSM8*P3V9&N>aR{Z$;%IpE}KKMJID?fl^! zQ`z{Jp5pl(l2f>@X>=Vca;7u7E_*)QuwAD}q_*x>hotiAU-D!9r);1m%~v<{?x5IL zAr&ZKs<3NFECJqJ#IAX;n6S2{U!2tR=$rb+KvZRC@G)?HTUw+*S5iT326pR4OONbS zz@yj3bRO9tf)Ui{o{hZFL4%a)`Ta-a*(S|!^%}bX{mMDfsWm|f6cuC=dWu*-8u-r%z$~!+^jlA)J=^h;5_4HB!G)LLm-bZPK5f=_&J3_`LB&S@jk>2r6VUFxLo~x;GdSln zy#SnbwVBiCf*7Ks$}%z4s(keUM(&NsGdDogHMv?wZwvrbccKVlPqC6Gx9v`!7oKoh zoO~___Bh^*6E8Q&`F1Y!N67M>o$2sc4N0C2Cn46}`9XE-Jg2+M52A84ettC?yZd?N zv!9h!9*v2h)P&>AqfKpM16<*7#aEqJvAvn&-H&;C+{+{RFKLQV;9y)6j~4-ai7$u+ z%&=;Pf$jX22@niU1WUd~$e^&Q|KGjZjS2l_?0foog#P9D?)?zeh1!Vqn+JJ&6(`@! zd-|>R52Q2m^60aZDM5Ckd54LrTqA4gw*9_sA2*Ly7|if@f@)oZ3p0{XRO1Y%dKRLg zq6KlUH?#d8vq0uo&y`E8Iw^38T4--qDrI1?=jPgvQ1XcMYmV7o(N^tO_IV%Q7+VYD zg>x2TyT$|W=l15&BN8(-ul~O5Q!_F#?eI!n1Ff2E&{%55w52|}ZCrlKu+=6lz=f_o z@BOkU_G9hUKU^%|!ws^NskW~jOLXQD6sYO6@(|N2yR;=Eiqm*y9Mh^-WQ|$;FSM0H zd<&BXWCFmnr@A$Jb151iTC8mdv+_Z`7;Tfhr(K-gX7f?SIOj~N%Ey1&reBM4F3H_J zPNVPKedc`c6c{vY*7Wv=|H(gC-0^t??PZfhY-8;{s+u&pta^y7(dl9Nw{k*4sDf6c%84pI8@BC*C0oT%oVukfAYNEzmr?OT&GaCih6bv3MwsaLas$tZ5ZK52^i8DI1iz)KY>emoYmCI z+C5+Egj)OV9{w4_(sc&W#!Vo#mVhX5^|g!Y3SdNXt3-zfCJMS-Mj>_H)@4?zedu$1 zP<#5Ib*&}h-@)I5f~Mf3f1jhn^3JZh^eY??& zDSzzI8fjkR)7*dgD*YVpABJ?$^Kny-%&?qB)U z8~Hm?+IyW|(lmBg^iI38P{B>N@_yr`%|4gri_2%jTFP6}GHtDuO)oG2FSvQK*t*)J z>5*sVrTo;I7&^QwxisN1;<@PR0cV#p%c_1IkVw=)yE6UI7ol;&C1#m0@&8?;NEDKo zI6U!IEIFy43!A0zsh-q~(Hg@5{ju}6zDqS*=9E@9O5gp!5qF$C@6WX+$%jv>h6xz( zP;dj0#h&~|KrNX!43i%?9+XNhXSOEZVH3+5nMsC_qYZn8;A&t!tBc?O?ooa#{hv`p zQU0jMFx8STNK3bnWnj*K<;TgtmSh#zpbn$_DvYa_k-_un0)=lN*mTga4gtp@EQ!ce z=IR-pXu*PbRJ9WrMFJ|rp^s@WMuS1H8?bqPV;ZpUTXYJ2&xYEIXezytNGKarp2DPm zF_u^0USEBLW;Oe;c*jlbu`_3l`{FOB*AL5YLq29(=;8H1K#ZIiQV+`Btw+uzfGwpg z4z6A*xhYo(W-J1up1WL-D9(x|V{lF+jCvCagb91E4;7#@DNDmCgeIOj9GtZEJtcbZ zc7dkj;rFlqPL2pDrpH4|9 zG5hMYjFi+5?yu(WD){Wrq*t`v^Bp=4-QCj^f0!f;2gyk4VJKN>_R6*eUaR!xmh<#K ztXi#4x}3paPaun&1+ZhNX-c#%WW+glX>1##`!@VjcX0oBdT(CaF`uOHhxFFZAtS-t zSsvmK;~FED#61wkWaXLy?WKbwSmIbHK_-oR$fYMZwEx$H?A1pr!|ov$D^#n^ilL@s zE>}N(F4XokTPW{>s<5u;O}@!;Z9@c@e$ztS;c_XhDY{-m`3uO+k6I_4FXec>tG7-P zsAQ?s?Br4zN^5BU;P;K^zHu;69I6Y5r^XURiCm^!sVG*=`3nL@*E|Kzo|EEi)&732 ze=5o}x3a5SOGL0j+eN||0=8DdpK*hjdajK&NG(D}(O?P+m;>$$mRX__pvs+0mO%1I z6AzlgT%|{aUb2D8A*C%)iKsih#oB0N><@>)z!RY28j6{S{KS1r>Dg^u1`S7B206Q~ zrWzO$4WONJZ%hctO}`CRbvyu1(O3UpzGLEp7Gl&*(<88%zoujN8zVg!jA_=>TKP!t zCh#~YHzgy)>F)rSZ}ht3h`JeN27Ji=E8@LzB#&TxQcDzgE)tZ0#*t@c;ml~FI%O7$k1B23 zDN$e`^x^xh+Ec4OCliU%<~1k7Ur%@2_skjIfcEB@yAitqx?#U2wv)|h9|kRB?uVwN z=m>_i#f?u$e0j@#;cr+LV@b;O?VtV5==8mRUex0m!aX>O!H&DSpCnU>Qzye)X5ESG z-I?D_H#3s&`$-VJcYOQoTU#wkOqVcgZ z?J$}CI!n06oe+KHtG_1SYsa+Wu8OmzoZska*RoHB?Y(tqM}X;vQRPwlq*A_8$j29{ z-{AgS1IbFFFOS78MP1-RSaz}u?hszU;cJDQ4mi+9e#_n^+m+WPBL4-n7TUii|F^~N zz)?xey{@nxdF8#cVK%eZ)A$t%1nQaNg+YN+ z!QAkf8sb>7Y{?}AB5j8v>~Lm4-7oA!P`JiP3C^F2^N4WeGY86%d^@ zXK86lIeTIK*jtvh2iOf*M2%)}`SP1Txfu`yv3z7%yVE2+CycQ~(-)&?Asc%op!YQO^Zx z$n<)t;G!*z^gg56?I>_Efq>#h0c9|(P&ha?_vTgqYa0ZzKG-52p7AwY#MR-@E*`o+ z?sz=j<#=FxIvml-b~^j@-TjtdUrv9hoBKZew~*F#LYwrZ$F(dk3^V0t=CA9tO1@}( zo#Xsp#W^8)mM%-NylRc>(+u6Ho!w_!>^bO0;xIulgLH!?O#xgfy>4~MgpvI_RgwsU z#2X|P!aa&aFeDG!u_WPCeJ$5bR&{90A%B& zxjX@rol9gZ(X)`Cp9lFpF8x21owIL!t8d;Vp+@P(qBRti64PixAvl%W)aTdt*bBbR zvdS9QzL)F0k1xN(usQq9vE|HVZ)jwj)6ijNmR+qh(%58=K4x9g#!9@3X)v@dnt-pG z46=khVBWgiGXA73oX7ZVr<~466NHF=g@Gzap|FD&!}7Cs8V4IWS&4WlC}MOlPid5z z6HBj+$6^3n4pu`%FX&LPdRojy?i?X&6m&2ODp5utJFR7DAPVIcYS3!hIl`chF8}Aj zFEaj99{FmK{4LB_ltqSxg6yMSC7Ka^sB~1$#*Js=mX>&2=cuI02eHQ}dc0D!zO@vw z5(M-~wgs}WGcn>fi#wy3n?rS~5#}TkXQyfE%i^D;>H_rfiadifZ9fscKFdC|r%W~q z00|(WC}0f81s>pOK3PDkOLvG%=% zF=3s(J)|#v>Q(=6|J30}d9%gSy{SO?c`-3XEI|5E*m6mr#xx&M zw3PXll1q#XACU?!g@6grAVw1|7;y133?a2EoWP`nn}tBQ$qWqGQ{Aj1)*}+uQtVjZ z7r34E`kj8Gokh9C^VSr<$Xh}EJ-yS5Cz;_w%AWkU8H_&0sLx~f$BbN5(eU6_pTBy* zD-CBYPOYX;X`dy`HOnTdw2Uoo!YO3SSA`VSe(m z=abhJyRu!xpxx&t%j>C`#$g}f^XL8dc$dTuI9k*Va`?yif0-AqWyP{BeUL6)w9gq+ z>-Vr#apPSsD>X{Pghf=P9VTY51&~S3 z2`44xTz~!4{Oi}o2vwJ(r_i0F2spp`#o!sSU;rmK5Lm;?9K{1Q!<5dcUyb<;aDk%` zGI{|lQAs4WwZ|hAxEu*&)`RvK{t_Qsc(qq@b93x0Cm(m`lo_y>DNT+5FG6(~C#QA7 zauF;+EL<75ZWu}{+B%Qs|9>~<_u53Z{Z%ooh7ffm08Ls8#X=!|#I& zfYP7%t>V6k!MYf|kr@aJw`>qy%y2^dA_mk$w1SFf`;7d$8bRIwD%<3>>18;5o0{1o zOv*p&d3NujilQjXil5V4?VDmOD|cu99?5E`xgye3T;`Ks-=Hep{p2$H&$M&rYnE95 z6s#(~G(JnZTJTPLp%~Y~VnRS@Pw+#%-6h#()7QDmOERw~)$0CBAO1l*kW!kOIW(SI zV%5!0|01n&Ea3(DnsnF0V#fyD(25>X4tXiH%VGbOsuHPrCjvixp$R#pK2t_wz$7Jc zuEAc>9NU)1+!rJ+Sbo4gP3hJGaaMgUlFm8*#uhci`YEC2cac5MGpRPE5sA52)9dvp)kzH^c(ju00KjfN-b=844v-`VL76c`E2c0s zBP;~E1N8H>oWz0#yQJI%p=y->Ex0i8bwF8XD4)MKOic$bKQ)Y4Jvf*MJwijdO!6oR zmp8GUk&IrFK47s7AOa+Sf}|6?}3sK!NngRwAQBVRN>u|V9WrUaCzvg?7)!uEL zOq}j$PJeEg+Ne0)8!Vv}*3zqB=GkySS9G_=|~iS=>K#U-pBh@28#fN*)7Ygutc!^j(e6 z4JrP~(82lSSFJM#D|v=o?X;er^B)Wts(8a3RaA_Pg3x`#rlW;8t-XHTfzP`OdGWUh z4~uVoQF&!tf)kzb>wJ)$;#@}3h(vm$`6<4{0u~DDjUs5 zoe65YqvOc6sJq(Ee4Qwmn~=;{ADuOa+kSH9D#HGiO?7koTm5Xq6%{3Oro?+_DYx(T z0Zq*=48;}Oob87~F-qp&wBYwrCK2KaGE69r;`8-8)W)AK`YLRgZ8Er@Z8k=R*Og(HgpQ=CGnQ=-(@VlyMN4BPlI za)g-5rfbzEWKG7jmXjAOjRonKa$BBWC7*1MSDg;4weJs!Mi51$W8lEqNLzR(8xV>| zfxu8b0Eo<@hXVkM@njyx)DDUQ4;x2qq)`f45up5MR|^p;ve%<|RM%>F9Bm-af9!p7 z$9d^5Jb}l-@zHV}#xQ9poe6BsCusqL8b~sFi6A&5IVt|{_Q+xurjNg#zR*2wY~Nf{ z2>actn-MWPax#IJnqK4l`}2orX!z};j<`mV9VUwZY3br4Q(;|o-2wlskkD4zK6#OD`9 zn4v|=h>ooxn;oNQn+JK@Q-+`C`-Xb>zP~^kF0Vz$RsJ(^1FSZOog}4)`i}aFDW)jL zO>wj?=3MBCHrz$-@NF{>WtXqQ0=>T}PixKoEs^@InbK!Pyg|9u-I~AnU})1%a_S*1 zc$48)m)G;Ob`Jg7zi_SgSElXCN!re=z_SL_u5g%tg6~>KTd(i%v&?n$5Z|pW!1Zma zFy;mYAfi<{mLzBMqSD0rtj)cp`!3CPue4i@UnEZuk(>+ky0$G+NRIlNPZnom#w|>- zeh%bSlOaVy{Za-T-3Bls7{BHyW&tQA5EsA&s4@#ayoR#5sFY?PG`6>qld!`MzwJ>tS+#HfX6fjK#Wi;K2n{D z0JLi8>MnEHx_43Cx)fK;YYwrM2wa+uzEjep$xhip&HQCf>}(?V2~^m z!!I@dyuM@1f6N_tvsq`6Q47%Xtj=z!C~`8D{rBc-n@O->jc6470uLffr4ZH~X+p#e zcuwl6zGA85o+VhTu*2%GeoS1FQWgdha1^@KZ=lKJyCV+S!Abziq1rHD1%|RZ6Q>}m z&4mQwgj$e5gE+_$)A*kG)b9v@$o}ai8)iisEQ$tW#3C3NIvYds!@+S7EzlM&Fq$|6 z5(_&6!mwgsi)AQYJ6^;7cmZ}kgGfm#7_X!u{DHIOLb{5wusSRq;Ew@6B5XvwWbtT! z=f3~&>-6-SFI!se&Lg1(56l0nsA{R2T)W?LiEc#qX9vNGNP`eoI?7;9Zsx3fGd@aF zvbqmX=s*O3S-I60($Jlf2@9N({^y>hB{`q(jE zp&*?1ebIR4^l|g1SF@S8mL|vV=hwb9&7O5sm*HyEKRRqb)&H(EulG1O{LRwwSiXNi zoV7Sw;KwfYng!Sd4aP&Ur(|N|)oHR2Ru*L{&~(v+L$x?X|W|gQy1wi)qfG`hj)kR|H(f>bBmu zwjCUw#`Je6vN#^Fd9P2GamHU0f88y|NQLF=PfXUeB?q}E=|bN*nr#t{$xbaP2Yh$g z2HfLq7$bkx${ZYpEVyBZ5~${dn)S!nnD)umT`wqBg5Q+9!k6woP^ySRLGWG_S;g$} z&zue-DhBGS*twf}FN;Tzk3@wCSQ;n+sHJB@#ROOo!OHAVW_|)z-v?#Ly8$xT`=)&E zTHQPHCU+Z)upTo3M{05-HC+KnkQ3nCo&E}a95N&(kceR9W(j=YG~4Rvk+WcX*J;6U zhex3xJa&P|IV{dbVw$TEVUg^b(&M{`0Xq}yM6;p`)l1>>iN8zm$o5vWr{;@xm*Vp&Kw#&x*%ariAD8%^r^ZWnOGe+@4u8l7%U z@712Xkglx>zY`jIEn@%LyN;E=N>2+MH`yG+q({mF-|cqv&iQ%wd9`+f1*>Iw9a&;p(};Jd{E`I3!^Oo}HR0KuX_AU+DvD!PZ24Om6G zJSwxnN+AK6ESQ+pQH21=v(XxbW&|GG-Sl72{Dq>4a>sTT|Gzvt;$hiZ_q}U|H#hTo zZk7J{9>yYBj!qdh3~SI5K7Kh)1$b`Iy80>k=#J+JTI&)7CokUbdWe^i%QHyWU^BCyGVi-FG)Lv(`lFg4Pjk{`k<7gg-Gu zW2yVO%AMZA&*eV3CWgPE`Kjdclxub~bu6W|y(_%CT=|GxbrB6joWsKbAc6rf4O&B6}1%5eI^>es$@t(kRNOUVcXaVOhYUg1E4wHjR?@hUN% z6mp|%_7t}lG4F7)>nwA$HKS7ur;@<|^X5bdltcp{;aFDpSZfl987(!K1jjglfp(lA zSP~i0KIfxSHOGJsZNVx?4eXG0+&kyguB1cr1P_{QU7cBPJa93jBpDTxENE{4;-bb?uvZe*U;_$U$fR zyFEm{`Tn@?(c;N`#YnF2!wv4LJIv2RUWy5_Wz6-3TK^}5tjd`u-e zXw?gegXbRA{L6#8$v+P{-0Vi}-_9(QbazZT-uyiy|9otjJ<%Ad>fd6JEw1F?=I~D4 zO(`2YHR0!XHwC5mnl0eROcyR|5H^&t?cVbmW_@8aKa95cLs7HW7sZqQD{p_(*6!`; zi2C7)E{I!mcY1E-QKRe>-|<1(CpPgLSJzL0+aHBLw;o!jBhz27{5#HZek&Qo1X0uu zCwA$_Zl{Ia!#fldI-_hl?|}Geq#_F=W@I^t23!#Ori{-n& zwvXFA+vezelUd|b-h+n3<-xj^;%c+hT9mcLI!?O_k6WXLV!O`GH9LV^IG$l*2`Uuz zt|jmy#1oQ)1A+zNfaND2xtRV+xrYV^8LgFfyQf$*de=Nr*}gFTMdxNKv+pm3{Fhn7 z6YmZ$FxGMX?hV(eSHR-k-zEN~)SCBejLGw>pt()+6y%ZblVU*ft~`~u=>+flf?sbx zF@HDmWesubovBfLSFfY<@n6HF-vZ}!4>-|!M7~h2cYO!{$UPsHEmVo4Ps5UegpW4F zp7ndL|G}zUZrP5dHzfU5EqVr_{SZ}}wYbgtF$mALL( zsI6~UcH=5_>t64~FNT2=`$3?Lwh|>>)cZdv-(lI`X9d5K3V)n2;i~KBbYNC_ZNW?c z8dJH)R_`p?wq}5Se_)H<2CYAM-*)jGGkd3qipyQ%Z67HVkW)}U0ytnJ*b(|yj-n-`L+%1rz1?V?Th_v&zzg)IUcL|tu}qK)3`5C)&%9HKebZAJK6E54btG{0E+EgEHC_P6cx;m zEhNHeuBaM@5fnp!mD4>IjbF%#M)D^)VVJRCL5AfHj)c~LD}vuk58~EPXaRZ41o%w$ zZ6Nq>=l_Qt?ngVd44d`1{8OzDpZ4bl&Plb@EHCyvr&eXZ+bR*CJhMyJr0+T&e9sJC z_pYlyK;OKq-cGOcWmBjcj$ORJ6*r~fUQc=`-NXM-$s-a9= z!P10?=SB-AR_M}<-5WwvK5=;p{uE$qSer)wnRb49%`X3G0Au_1<430VS|lZYOj$e1 zY^hSRkGjqpG|XHaqe%Y+uK1J8fs77mT{XF{bIOr1@X@ z+Z&cc%Na^erbB)Q;O*N3j1xC9`Ox=cR&oAI(reGU=a8;B);G&04GplN3%x1g&O4N$ z74CHwqpu%ppDb)c=9gIc^rPT;PC)Ui!AMIntddonQ3v=HVXe5<-g%k;)VMV}7 zk>CUpP17$91uvw?%pl=Sa8W#o)Onso1j}Hafg1A)gb)y!sDKNjjfdh!xNW(>biM?3tFB+K0@HE#~Zv-P5IrkhVXa zwYF}%?~CfzEmd>>)OZYiVE}Ky)Tm)bA`}b!tWzD|3a=n;p>*)^G8)a&ytkxpL5i9 zYtgRA4o_v^hS`NZ`{WuIR|@>5vm>>T9F`HeN` zFL}4S4O~0lrlyK&xO30E3O)g5N{cINtCu_4Td69ShiZ-v!j!YtraQDQ2N*Uwe0-XZ zl~<5`m}p0g5nki#BPI3CBzuGN;5??O73)WUj1Zj@zwGeVQtBsm@L4w*$YZ@4k#8*W(Z=& zItyko#V~B`F&*S=35|>0gK(sPQ>rjCgF_gtAp?Nn(U6a&xW^a^6sej7l0jp7KoDmF z6(NbOfdS28t(YDrs&P@9tLx73SdTCr-C1*1p{USUd~F3M+}y<26c6X2ECyt zonwA^@92rc`B&QO=`Xs-^5D*}sPD-`E*VUo8G*alRR&1E;fftiO}8wz;wV zZuoCcT*eyf=lbAHrnLAHg(FDA8IDX3g zgYG6v$}6{q=Jw-WSBz|IU3Sqf(|-E#kC>Ht!!wV|ovwIRo->-E-=;$E{(dslgUqeJ z9J|fOeqPW9fc9enp)B4%B(+73-gIV}V>d>m;$ZADOc}sF8$hC}JF`4Jbb*snpo9V- z{b+#A3PvKJV*>}7^Nwuy_JnCEy{YC>L6??@C=gVV@!%ME3Wx`tBkhsl{HXU(cPG&N z69}En0&1BBT%k%hHozr zfrE4vZhZH^&Al0UJAEw9=-oQB{damcw?o?Fn(&?P$!aO<0k1=8DLP?p)0)@oUuh(w zv#tf^^z++aQ@3@fbEy6Gm2JRF@49`VPuG_T?-D4e6N}TdKTp+oFj`?4feO_IMa$1<9V);Ho62^Q6Ryv z4EawIhyiq1XGkPYab47QV3k+mNA|~=ShJTafJLF7mX+9!rTrk!`(kNTeSSOS#{x@S zVlVIg%Np8O&esVA%IZDFD#)1BU4poEG=)VbD7Wr1diR>u0%z-p-VGY3KbcmtzG;Sc zug%v6oXiF}+su}^h5RMITz^)+`*Iw)xQt()bv!rMQmK)=u?w%~eps91?F*Yb>iT3~pz^o6kGYW{1o#RyG z$5JtA07EEms_T5M8x%A|IUsHwEY*- zANFpf#85ZI*7c*q$Hz$w0#2~G7{BLFi$)S1$mtxV8u)1#U6gNi(Xb1ePh-njpOLEz zkCF6#z~xq$r+-TiB1i%xG1daRUnKi)A%?z443Y(l?BL~w8CgzREDC*RaHWp#x>xl5 zO0*BNRG!v{o+@(N+2_ycIF&KQeKy&oM-N$6^*6g6|ApPZTkzsog3+%MM5jnBD-Q{7Ea`9@wk3))vUQ^C`mb0TER-aEA5;3wj^p5x!OQHM`Y|La;w z@Y>C~zfPs63FMC|e3Y8mQDtYGv<6cw<^N&4=8hCA5t5Oms#?2z|xSWsMl8|K30 z9dWITI!bq$j?2sJUu@Cy>v`7%| z|32`71%dTp=*4#A;wftEm?!9J7wr)MOxyp=9UBP>z%hehWGEP?j;AYu!GmO26l4(8 zNh2e_g28qurGC@^HP4BYp%4jLA`4PJ!t@A`I%0+&i~?uRo_D2lb6P`#dMSlu=PdSg zXGM&F`$g!*_lVkuR~f*-?l7+Xcrs!qC46I+K?M+R%Uqj&Tf6UVBp*|6;GwHwzZrJf zhCR|nRU%R`ar;5n-=j1i|HxYTB3pg2$`x94D+_&M(kWR!)Teq5~T4oRQbprG6E#zT#r{6m`~mh+ls_%Mj0pq8DSGrQyO_1gNtjI1fpj3CC6n57{bxP{TLzC-{O7fV0=Y?(<$!CQ3H|Z3; zzQ&##YI1)!YfW^{8T7J9Ga`Nv`Z!WR5)B(5{!nlJZKF_2xq|r;Pl!p8(79jfI`FMH zuY)bEgdWX>1HxQ!0Pa%RDj^D@lQ#_X123kB9AI2`0F#IxiYc36XwJ?XS>t-7+#ey( zGTm1tkr=@lJj4XW%H2mh z7makvN^<4%Nw)Umi}D}Bak>_w+~8j^l-qb-Yz@-g2`Gu+$(Z9EAv5e}vx8Ub(VO3w zzoeY3pWa&zI^ASBolP8D%ne%C9$h=hmlwEWbBEdNtHjOv-eK2)JY2!kdbbY&Z(aRg zmg;Io?&$AH;pLwz8599EBXM;H<2nHN=q*#xmH zN;5csoYTxzF3QVL&Hx%IiNnMC&=ELo!7otAE?3BJqrZmoE^=Nt>RO+VT8-8`r($Jf zUM-Z7x$udRZG0dB=9SWYm}}DJvRw&pXWZ+v<=ZTK$cL6T5Cbjd zS;v{9ly$H})F@@2l%WTa!7;O<$fP#%X0857E#kHlSgAlS25$w3w5GDENut@|jok$< zBtWDj9ExVV>tt7WxAZv@BV_<1Nfbp4LlEVWQ>vBH%LFz&}aquX(w>EG5CTcwo z0~6Tz5H7_~BmeTP*kjF(f7PZf)XI^^e#aojdq>z|6P znS}E`!$Y2ASu4k;UAkh*nyM&ZG_90tn)OHYQ;VgMA=HUMgb;EjKZrHxibCYDo{iZI zi2veYaRKhmU?qm(f!?g(LdXpZAbSRosr!-AInO9cy~IE(TunmPKY2QuMv^X4lFe?)SUuVZRfrFYAAmZ&KIw@C_<> z+hs4WAn@%Ey!zrpNEh<}YnW5;HrhWl<-sB6xNF?Ruug7|lu9dAB!DF(rp?XfZqh1b zYF~^|F97ubJCK>>2JofQeap(%A8gU3M9(K@^ld0W8?f`n*w51YQn0 zgNHV;_2ZbAW>6q9Krjmtg%#NX>CoyfhM3ASmFr>ci0=T7K=FlfFB*Gx z+X-uK#U6G%ynQw1_!+9Fp5o!PuEC)abE7CAd8lOi^~0!wO5mp4cwnUQrxQ# zO>{YJlslxpznuT)a_MUgF2<+c$;R5f?q9^Ec8{Qn;>Pq))umingHPc z0e7BV;PcRhnj-|zk?&GEH7&>oo6R;l(p!xB6}GWAz8YL_(S zQ5?D@z&5P2Cl;DAjV9Y)_@J8pE90qVP_x}#3jBj8t)921<(QQfx-*dn%d_lJ5t6!OFL#ZKp*nMTBq?-}2IT=!deZO}ch_FCHw_9X60 zF*UZ%ayBabBg6gAr4nK?gjV|VOnEOU(s1G1G65S0Xl3IbUOKiZsfxH}5{x&Z#h zbUB*P$oYAQ|}*VROMe*HOv5)@p{{&-DJi*PgE^)3|yY7wOWZ? zoJ-pu7Clpc{(DW?_lb_*#0hH)Q`Cr)U0SUfu{Fr)d)@UnDw?f#6VGlSX5n7dw=A+r zDPY(HF7!lkb)2p0nql_~rt%%3D3Ko5y!O^X)TVE=*kwG`8ns6>I~tYKvdDU&CU9P) zzPXj%jtGJ+$3`NdWHi|o>df2$%EBf>nb?T2p&e84FHt~HKNgtPwP?7uF9daG zUFn<|(oCn*h)r?Mzth50cAV_5cprH(<6)V}5|@;S+Dm zOtEE#`n_M{{av8s^WT}EY3H}u`rcUgq%Lmo%L)CE_%c~VN?u2`%OB~sgZ?1(;NQ<* z>z5}9m)GYM*>`P^IB8--*@xtlM0w+EB)~;_ z?9|%A*EFcVz#Ok6iUe9v#R7zVGS>2Zy#3dk-AI7V%X8+$;kh~4wF>LW-oeHc8@nUu zEmSw`<{D+2S>e3CgQaQ=ug8LmdUla;^WH}5pLd%ES1UXQcR0V<*;9M-m0ovGh*fcI z)EG>GZkIQa-vb*-2YfbB>S*iB)u44-Yb8a4tijEf7eh#CSXjuJTC@J&ms=90tu+ll zYxe$mxF~?kU#}0}6kCyJ6e40!hNc*`P|$*e$cSWjMFD^e)psZkVhv|iGlA?wd83f4 z53XoGJdKW6c3Pk5?{L)G6V^SM4ySKvC>LB1N@Yi|4~l|8gJhsyBnjJn-Wka5?32}W zhK6OzOkb1)bqEnU?{p8s&iD|WKOG_3Y`-ty_Ynz^1fxc0)KMZzB8Wa1qxa~E7DLo%QGfaj z(MK627`-PLqCbh~EsS0xh(4m%;k}>t|KVNMJ@ds{taaVjIeYJO&OURcHh{uY~CB+$o>mV(%MPv!jpU( zYPc>3i}fk}mrqJrdd0ChWN^q2Ne7pX2VVeeXc=XBZ#;;x93V_kstMWo3E8V(*jE3M z%k{vIj0z;3q^y~*@qS-sS^V9Um<%30{>bM4=k^Vij;+t|Q5UB|=j~O;vVXMfbi1*Y zTv5ynmyWHh7pFjyu%azFIqC-mOL%0sVpY!&T!^-PdG*R{d3;FsejR1Q%2Q59G}Ef}F>QspjDtKQ z-e6D4s{-CcH%RLT2a`&fhdXzz*?>u1sK9o(s3ZT&OYJYOnwmN4jkvl)0h>Noo7dZc&0L(ba% zZ1bQt_?W{tcbWa(Eoq@>^06JQGzen#fJff}+-9P2tA&Q9aDnZ?EI1Qf^mqz#ybPl} z=>&}~d!%2i*FetHu2qYJ8f!bJJhP|E>ra138m5(pLi0877^pZ`$n!D%>-k(~$T|1t#2n`r}^45=_5Zk+v5pry6msN4qq^ms} z@ZrnYutgJlyAXeLR}`@u)6(u;XC81q=`Pa}ygZn}Xr0skx!oVJEo$HC@YPl(DYc@a z*zmWJ8Asejau;F1e`d#|*QA&K&rzB{w^3mBV)2*##o%LOQJW4)?a9k2x#7zngzW{w zELrs1{V@eDDp-SX2cOPTT8xMf*6eb~TlI9}4#+k{)2!-Q9Ic^FmKJYZ`93DV_WS>0 zJ-8QPMJ!>8;3RUXah&HFG!rVT;v*vA5dFA)N}zbMQ7O2bP;38QbI6UQal@I`I{1)# z2OrZoYQx+cMt-vXz^9RZhufipTAM3LNvezIDtEUDYf-sqAo+f8?28ORJH|R8!m;CL zjY$cDZq=N5T~g2>Yoee@Ay7>MU#(Ns;W_QUMN3Fb8WSKEVv{o>^qaWn6YG?Oi2)#EEHd9j};9Xw}LS zXa4@?ZoWu5V4`%BY@m9^zpNLd#Nh2xC(fREk0j3S%PRzfP`xjoM3jjRBI{mq;o~O` zi&)i|JKy6K^Erc`B)Juh-ffn$41!U*8AZC_B{`$?Y2Qn!Nw=q5wSW0pv;Xz{*sgTA z{Gwk3U!Q2-lvIo)3i-?+yT4qtlkssCZ_1RX%ygnNMxFi){kin58OoUJ9)F?Z+?fi> zYBWsOEEa*|AIE%?JjJ@g9!7+;O3h$IOc|&`d;BjJ{4Y?uHUpk9AYd;XE~JXkMr0FZ z54Ekc{UA6e?Z8DJ=Bd?Hskx(Y?aFlIhO;ID<}YbBh?^dp>$p^wEw#(>@@Mt1Z)k&a zEuQdWvhZVbL2_uMVp$oKUO&oZ#T+`2V=1H`Nmr4@O##A2%4mOg(RVPCF8OGirDkXX zQPto@rI3pQ!?_yv+?CT6RjETfu~m_Odl=Ps;ziRGZZ~cRwqxFQ5e~b~60J`P@*YzL zwsr{_mUwCr8>c^-+TM-_El98rIcfsE^H;wvgf`|ya0co|4qwuVKm2v9v87cw{{3y8 z&WgtOF_jWN%ngIwv)*c|{oBs1Ut0Yga?~6eKfh?+unk;4pF$B&2iEILOX3*c$Reuj|u@siBQ|__I?lIH0%U^+0XY9_7xt`l; zvnXLz)+cMe;#S_aUud*7A7$~}8ykYiN?Z1KAWICJ-s3D{FU+CHqSL~xRENNK9hR|p zTKtPyDl#8dRVnJAv}gUoA!+cqIbrSoJJt7WDKmFMu}88 zK;(WDj7iDF$o+cF1-PblmcF-Jr|U-ww+Hpry`~7+A{m-7r}>^B`TESJ7V%UcM^kl` zrq3^fH@)8N_A2c*9v(KoszMjG9&U3#=g?CZ>nxUQ=1=!qdvzRKOIeudGnY9i0|Cvs zy?Gp9NSU>s957>+n===W=y)}2-SPS2oV!`>?VKSQk9p)KAvSft?^VSZ@&s-V`jRFx z#tOAsGb9`>~|=TFWg`RUgvc5Vtj((m!m{Oww6 z<`|Lh@qn$}BNg|@WO)jPM=ghGcdVs4?QLc<5s+MtKBtCMQ1 zr&;r7+IB*8EvOqfCF6{37_Xtj*OXR%1C=f4e7_rF+Gf^$L_{Y+c#1#4)WyzW!S!JV zBbdsu-qv8U@-5J74=bQwoZCIO+Qa(1P>?v0m1b|dKIX2p@MBZ(pI@&}{Ft4%?opo8 zR;YtsN4;cyHzLYPSTwB*+(^}Bj}mR(cmcS=6i&s`DG3;Wi&<9GP)2ZpyJmgh)GB+P zWH8?|6~{CTJW_Jt9Yl#vTY^?!4~bSDgVn0WrZ}5`xabOyFeY>gJW>k|siQG~4rJAp zKuN=f;0^|D2LM{@$r#8xzudEV;bx(5uD`P%bc-RndC$CC^COZp~$_9l4W+CODgiNg%NaEbn`tXbvx z5lN8}j5&YnaPg1p%??kv>D$rWPobQCEaFJT#D8NQzl}*vzCz`DYlg|NqYa?=@n-|? zYFy%EEK#1{AEt(MO6@)G8J1{P;O567>o}RE<$51V!u;Ze&88-8L?0BclZJ#bH(|BTU5BC_*h`ex3C z>Gsm*b~I?#0aoi!lm+2d<-{kd($w4yFUyKH5Gal{C>C_7FieT3QyzfQ)q$9l1(ei` zvnn7;MOmpd5IB-tl^a`TsOw)X2&$lqMRK;KlYrh-AQ%c9)6DvLluM>#A!I(x?f-X{ zJ-5fp#Iw+Yu|2%aoP1|a+REz!zZX~kdSATyBV_F3cTf*dx%|P1)ANMVtEowOORJ9Y zJOw2oLa?z}mDa{+Ihp6B_E@!1Jfc-y+y+QXb+0O<4a^tY@V*kw%d@$1&m7-0J||Em z=(^3i`PEp<8;|CVy9?Z<%xB>-_rgy!deL*8HMjRrPmt8oHA zNst8i*0;)z-ZKmuWG-{+8|JhS{)cc(d9be0A~qGzwpw8KA{DRWDDFDh zrRhLyoUK;h_O+9-bpGSF9t7NF`#>!}p206p&)4)M5+3Sa|K^s_&m?bX>T)FSe|&EVkA)oZ{^RanH1krP~V^ZeufRwM|VW zMS9))C#`UFByrDro4OAfiuGgkw;UZSagBsMj?Rt42#y)|CtA!Zp-(MD*rJ_}uDMUH zrMsZA{DGIIP>*AJom=X-m?2$AypwFP5uU({H(?!lJo2nw@2cIiDGgYhWG(MA^U`4^ z(>nOyzpTcRrQgka9%>MrmTXU-4+pojq7~`)#2m}WNtq=D1e|{6`*8ovSJ~-_gnDx8 zEs&E^RKzjvyJTb0Q-t5B*+a_lh7Zf$r@`7L+POcz@~3twP5WeBz*{@`=eQ$T$hH$$ znWVh@u>^%be<58GJsCi%b>l9H5K!Gp&-y;L_2q@-rp*md+-=SB`dO6#KgSmAur#LE|L*Z;0`tCz@#E70#{Ii;PTSf8wa1??@wy&Ziv_MaPGnhm65Ex{yi zsPEVu%9-RA35AVwz={+hP>AxS76Zn<`a2G7sAmX;O`wLLG^t3qk$4n!h%nR^oGMTN z<))h+$0;Jod6ckIJO-rUXy@F>q#EP@%broEJDoR`z3#akN56m-uT;0WU6X$@GAdIq z6wbfxZ=A`?C0_Jf8KyotYsa5dUti=AS3k6wr};iVYuj)8`q=WFIxaE?S10^fO`0{+ z=LgAM4Kv!iX);LGXZ2CDUgd*JD_i@sRvmh!N^Am^^UjUf9i!Z>&&jJ$iPFeTn*rkc z0n3F8ipoIymCs`}iRFbz+lAazWBjuo(@}4~4(BRWo%TjorW(sna{S2jt?MsUvIB7M zCRMYFE**(hVA4@6uxzNaTA}xYs#kBRiTHO^$P)oU>R8o`117th4Ove=x8? z`B-0Hzns=55p=g2(P<>5-f|-1<5|?Rb~?WwaN4z;;q#W&28?9rj#tb)70nGk*Bwq+ ze*WmKS7=GYgD)?Nb5SMuDniyLV$DlSvyQ78Z3Xg+qmEnRy;RX=y(9xTga!pmE(+BL zQ-gRQ$p&ed5aId(nE_$2At{%A$xxC8c|jj%Q0} zE$DEjt$J1TW`Sd#;stID`=QS$O4cHH-2 zM4jb!LgHj)Jff4IWpNBL|GqeP&`rc;GTrEmv1d<6EIWDfc$+pkB2zBEH45tpI=btl zQvaG*BlB_M&e&5qUa41E&I7xj|3x*O2$vVyO)Z*(-vXHcfU%C%S}MaIf-WS-p2;qr1y@ zn@o1N6FUxT-pt$@5Zk+^4?c;u3QDACO;;odFqQB~SZPixC&Q_em6NzEHMel&;zelb zfp>j+kw|#SkRphgSAcgyxXwge&q3=uPEwU-E3X^^Cx^iGu}E?*G`ZnV$tZ{x4%|;| zR@Tj;Z~-U{Z{#*xx(T~@GRD!-5ItMp)3u;0o14PrV1p;8lSdngxp{KFMQ8g&mRkbB zg^DBX718FSvq(l{LR3Od)g!@M#$$1o%!X4c{tWHX%UXTH`&1Q zWBd8)zbmnGhBnEy)L3bnBfI94IS7sF9JWQQiv}gaJoMA{SQIWr(j9*fr5F)DhFkF{ zMwrJ0Cwg$}Pu@Vxe0ui<9DeGuWOSZ|wwzQe6k04lx9N27JNSo!xd4v3M=NMfCq+Sm zia?xMvYn0eMsy#znu>nP=hT0y5~G$Ci53&5Y|wx_%&-jl-XF}+R5W#c+Dgf&OIO%h zdUX3?Ne3^*zHlqyKbkS)*qWFsz$+dJmT=%xf^m@-jTRYElh@uA??*qguLhGt1h;UR zk%B1(DOKVi4HFU&g?JfLRuw$bygePPVp6BXm!egmUxef|MCrkk&CcaLiNm4COBbPk2RpANZue`6J)s>;e5s$UIa*r{Zif|aN_!Me zb8AI7I#~y9iElWTL&ds}TydRqn^GIjxssK3^{IwqQ3yExDJJ^P>c5hRY-gW_2J?oV zoBZW>A7iW`4;*|es-`Y){tYT_KhiT>1jjkabbWp+gOn+se{0!ZTeUAhbz3&Kgw@IV zpvi{YDIOpG=)(`U%TilBFlY0_x;*3eQ>DYdsa4Zwc<|u_POuqg{}RA6AB8l@Suoh< zaS@C)Pn?h$qq27hh?2naZq!K|46xn_C->S=Q;NB3PD=C0QNYdU7ORNmd9DA~51GqX{3HlK#)tXcSv!AM!SS5o?DV8!|22f0eS*fwx>}7YiMXh($GPQlEAR2 zhmk`X0^sjxjYt;^Bn1tF6iorBz8>0iWi$nA&xwMU*=zmp3-unZ01iy7NJ zPVOegI98^0D9r3N_Jr`qpv--W>tBgfy=}mpX1sNNr0UdyIXF}v2Djj3O1v&%(jELQ zBW*5hHI%j$+x~jBpT2yk%8_3iX`1{4I}J2r9)9OI*Crl#Y;4zQ>RA2e$RL+bz4XlT z`fpQ169;6_uBV#M;&ROYp!{WfSaU1Ss8hxOL+yc zn3c-wMZSc!obQEyT^q5{vEw=WlO%Fdl1CMK#foub@eK6b&8EGQP@w@5GRar3w|bCJ z74M1U%pXCJtAEHYB?hE$N4T!Z=I*_#1h;2{o-c-OnmR8{YsHTOZ%;xGI4;IDnFK3_ z1dXTRMOgB3&Y+rnQV>o=uwLik%`;AbQj(Fq{cUwK`R=2>o9^g+u97 zDY_HWO30huJSsZw_mK~5oZJOqiyfe*~5(& zSIf66yM8uEs!?C-phM7AL=$1@?AM-qYsG_6sts%TD}M^eV<4?>jJnXK1|BE4;E za;#TSQ9|mtZyn?~b;y=geb1Kbs$E7*p;>6B%r*ArItutdFahcAsCk=>O?flb24{uO z^G;8#I}CbJC0v4_iT4fOR8G3mmVFP$0LER-%w+RMF&|mSXD;pf6#I=e3~K8IK-T`ozdvCQZ@l;ou5#7RwYRd1&xH}6cnq?)Lt3Ko<%w_drdbmW9> z^u0&SQfhf9rm+-mUV&J(vzSo&{s`Rrbh~cRiI_KtP;9MAY-szn+b{&>l_(t5R0fVNYj8n zYfq;!?t3`?79J@`3ReD_JpMLi$f&+z=^XsujXQN&Cc0f&a0H)gj@noSzh!Rf@Ny6K z_h>n!>NwMVJNl${?qd5z$IaB<+`iPo6h{ERj@#l%1%UYe+KrBms6zf!rmZ`_dA>i? zn#M|o3q{=i)|&PR@P6m(ZClR~zgnhnJ8{$9`|N1hA4&Lh7E->m zL9OIBpNZH>z1>Vxsnsd3azmBq$FyH;p*;PHF+M%S5$_qAqOkOhOmE_gmcpSww#@Owu&!uCDSP9gNB8gN6vcK6$z%if<67;1dP6IRbSGuT zpC8{baK4{)kt|c3Lz(%smsKu63!o|=-Mn9M=`RXwiZz1(S$jMl8aEZMDD=_I2+~*4 zDZ@=+t_6tYv(3ph#j#MI!h9?iY`^#>nn6USq0A|m&k?H03kPW@3mPP_XdBtt;C3vw z{Q;BA!)y1O;?VW3<%=2x3nE>nbxww_n1zrkABGnA6BG&zuxYp+*iw^T6~!4YEPkI0 z3=&6iayztupgj7?tcbBs{v_CM;!JrDgoHE zG4HB5rgUF{s7dUw679fM>E^w(xZdwP-J!H=3EZ!djWf3DKks($WYM*DJ8TL$4+%Q- zvU7gRF89?H_mZYqz{jXmN$#c8X<*#uVoSSTR*zfg*7|Joo@D)^<>shD%AiG-g-x1O zsRf6{Qb%ot?*`+x2etG-SG0`Bj+NoOz*TiiFvMl>T|pItbJC-^W<+Q)Lbl7T7X97G zINr-^)cb{$+y~v@i@=87-^UiL3N)46VitnmzINI+t$2*A#2zR%QELm)>njsRPzl}K zbI)+4X2^@=x#*WhBxYjjyfQw%6>g(qw*QjQ)6;X4h>+Z6OMit`PheC2d7!9aMF$OR$)$u~F=S4}7l#8{ua z)*&VBouwvs1(NRO0|XA-MLH}sh%`mZ-dJLy%D_jYIIDw}AB8xhLesoBA}uXAT^xeJZ2MD|Xvg09y*n*#%;L&`qAqx{lA z{8x(5p^3;Dk?Mf?OuH++nmwUHQdO0@D`yckd$61vvS^?c;CmVU6U+5D;Ev#~! zHgYd6$s@WPxl7?CGQ0ZSm#{~N9^bkpxK#Zrh8!DIbqX_wwOfUX9hd_@%$TuqFg+QS zmVU?-{TnesjaxmP3Q=df>_8IBo@!Kqq9qulgED6*th0KzO)oi7-Ik2 zq1o^-&9}fR?{Q-W-S5BfIXtW3S%c=>UF+A1DpmdWxYc+ZH=lAo?P3nQ58%gpJS1$6 z#^+eZGl@y-OCWo{e+FY5T_Y=+MSr+)e6Eo`;en3$Bw7*?Ziny zI)$@o&1;Hxzf)rWdXBDNX2gvxU6|pGaHUPa%CcyznCl4cjIbqTIzczaT%YC3apq|eq}>%Ow*9)t|1_-e?iJUyu*#H}`&RoU+``Tc1k zJf@i^8=Wu`0Mo5;fE_HUNaig7z) zv&Tjp43YC|ygrgAfr|%nV9EL?rNUdKeO|#xnKasBE{Hz#KFA)NqHIKR7li(6o+7Et zBVJ5rU5P?h^eOXU#6f5+5CnJ;c<*yj)D39ibl}y>AOYnxQh*A;_2K$n%Jc@Xq9MAd zKHDt5qJ9<|QUGZDv<^N$enWY(9C~m){**F($02C{s&mig>LRZ?baO@aVApmv@A}le zk>jO&+_2t|E`ddYwZ?kJI>dIyYV#^rrL*3=T2g!UV%F|#zr%Q%-|wAoaofwQAD>&P z2d@V9+);(CbL$4JmX%lS9i8GfBI|CIgb~&IaPFS=m!ZNoL3u0it6v!tZzfndG*uJG z#u~i>Az8M}{5XZoYSWU%sDndGx!p|@+u-by)IBZf4%bF`gB|-h*NNe%8TmBE&crAu z-8D&l$A;=mpJTGwny)8{Bf6kn^|4`N#I_XOyU~8lx}Q;xHwJ8@*qW8Tg$r+jGVK!X z21qgd5Sz9A{_$0k?5-Z5kQdl0D=8^OC}P1;ik#FxJ}z+U1=W1}*!CTU=!>p`y#ZeK zJfX}tstiCfOB&Wfqwz2{l*v$rGXhC{)avDoY21EOO6Q!r`A0N+aXT$f{Mp006cmpN zC%9bc@|IqSR5jKd5|uUXqA^9sJE^sT(@Oa$7=@(fwbX=ANMGJTX{gbYbAfLZPJgYv zot9L1czDv9x5CzOpyi`u>;wEHHp)IvShatnN&+E;z`lgjYeou)3D4BW&X|#KF>wC4 z2Q**Ag1NY0um6dr{&(iJ^4yl&*_yAP&#>{^n`pnFPa8J}xtA@AYof5UZOe>2iY?5L zV39%iL+2E(WO6PNv%Acr!ORVxt|l(`mT&gNrLN*uKg*&EWu@HD4=fZ;<7$_OWn%`< z7i&Yg*=wc`er+`$O~NsY)c84koJ97K)T14$GK=ul2wEIL&j0vl|5){xeX7HV#3wC# zAuaFyt)m`n>0ee_+;P zyE_q?&}F*rt34~0haW+yRpcx55BK#P>JM0^3)G#VT|E4 zOh2F{Fl7oZ8nZM3aGw^)o;ULCxGuD>N?ZjDM(T~Hp_2{3$)qGoq}}iH?g5W^?HI?C z*3PdvK9p}I2J6n=T6f9@A55D1cAmw%_eKnAuJ*0g_dYSra9eKUfA832$9nJ0_*p!@ z(C!%-6^FvpJdP=gru|18@(a%@wS^p;PD=BpPadp(9b0a3@H}c{ZM0ngG9Sj|ZBLwp zm__X4w8@ymF86ZXj$Ut#oJ}1YiK?c7-xE)FQPIo~1B)A+T^$kzs*Iahd}i>C-Vf$< zHn$SdtK4J0C2tH&b${TSCXV(EO@IIL8DlSe+WGBwWJl^f1~S$~>R?fD_gBZ6iq_+~k7^apud8S_^5jvH`Cm{PPNjFc%v&?=4-Of+(=zztNb z@xUn{spi4L5omiPXSgD41x};PSud#UNUxD>pVC)UVs1FhgO>ntk%YmV1(|rv`X8>q z4;D%lfyZPcE|`&MlY|z4L*+XbGCFTtZ|y_8J=WIedwbrv;1(~&cWk^@&yAixa&>}# z$q{vEd@?nOjxRwhc6c^Xs&Lr()v_)S!!P=^ef$ue*4dqZrPW2-iaw?q;1AbkzBVV} zi_D&^hwyUT{Cj?LD>`SO(t_9`*)Me9psXJfHQ&xZCFr3e8hi!97; zfP>id@W%Gj*b~ExbF#zh#QsNnZ0VwfKZm7ThOhO!b2CM{SMFQ!M?5~=ZL%N7Ns6?- z@98aj!Q)mwD-c|(M&HFuuZew~kFkr0{l|rFK;-xTU|!JuIo{LEH(}Bgf+TD*$4=Db zbad0q4dj^AEZO3{q8=Pn-Fs~cm$0DkhmIC-8Y=+UJewFl#c8G<3YE3}nVy##D!vPP z=#nBXYmnXxUyk!^2)#~T`MsMMdXmv`X_vo0+&T9N53tB-vfm`)i5)3EYsk7MvY9OKo!B^u^zno z#T)V>u^aL@N}J4^Aj9ABr5P3+a*OBRB8&k6<%8^#(*;?%;rjZtH;>zVHyZN-iAQFd zm9~%hy8c}ckkpEC>-hU@AbI`TvBTp`^TH``fnzyX1(G|QdIfOtU+-(b61zna5|7pE z&D_oNT;?YlC+hv;_iyc1$!s#N_`&Hd7ebPv<_rGDY<>+7d=&bIvnFZ9-k}k?)1a_1 zj}S;N9J_@9_MnO7VMNliJn44SOACT+`o1@Nsz9gC@6Bd4`de>nW3BIL zd24)*;Nm~7y&fZkJ6;iYiJHQM{_!~RRLpjRnkFVyNJ~9 zkJL&8>(#;QpHuCMG5rgg1=3%Oz26hxm0+HKYCBrIy1nSUa({V%NnOFfIO2FW~EYh-%)heJ!gMpBA09bhozYmf(!Q(i&i#3LgB)I1@(o$>0z*t4qD93!QDOT3wdfUbN z@^^-7v~#QVmMz^?^^@`K6^rNlx5-<-gQcxwy{gcLW4X?6$sGB~;P0JS*?&gLgr4p)#-kL%kF~4hUh{5p0kbu`D=z|C3V(1f2HFG%?iMN zw@i)!bHrQ8>T*iktTi{@p5$4QR7<(_-y$Uv17dO0uR4%LdF8G`J@KsS!hj)S!VR+J zyCN&+XX;_A*#<0P{WE_6xJ;IZ@{5P-cc5zk<<#dbLM>2MGpwH^Ag-drHkQ1C5zsU< zU5mWKLlT%QJH}S-qsm}JcMMhEii{rudCjDf4$hUr6I0NABgM{FlNB9?6zKnkye(D6SUfg*bdfjTGaIW6N9}4be8)iF7 z72Vdg@$=pvq;y-r4=3zRF>0|icZh;jr?(j%;BRt1)FNcR%wncoz$of^YwzlziII$! z*`crV%!JVC<4xH$N=;!WDs;p=Jc4H6w_>^)B9H{nDL(5qyTA3PA!?8I$+BHrQF}FO zFeV~n^UqMaaN>kLv!532Fi2aM^(Tjf73WXd2fy{6lR?!RCX&YuD3YDT)Z-|-abb?p z(cZNeVvG*`FR;8a zSaoipW{a^#$##JPj8DbbSB@t-35hp&e8lyr@8a;cw|&m_5A^4cCA!l%t?q*jIPtwe zfsi8(`ZYz|u$sP{j+ChY&SMbivIQ^0h#Qg@91KYs8S=hfa^)CO;P zH!UqK5}b3Y&z7$LqGEJK+dMZ)RHtX$Gl!{!)8qGiV}}!JB1=f6U&y@l3^@8!Kd5;{ zT)O_n8+!bw(5*eBh|*;cpKTpPd{keka`h(e^R9U%KUGdUQDi5v!*xzx&3G;w+v?zX zUFXF3Cx#zBJ!?~yR-%9Q){9sp+&;c!$naqG)L_f8B_jJ{;fj}bZduwzN{tLjqf!=tp&*()0sd}OSD$3pW z5EQ~E;6z~tvIp3{UbrFy_)dZ2KrBE&i-rWjNjw;Gurj$buTV-6+^$+&nG+1-sC1$O zMOBe-y`)uwCgUnFJlgjm{b*FZui5 zCO_e?9JUx}IJ?vobwH2cPX@Zv&89C7E1QPlPKi1Tp>2obi?Ww)Jt6z~`;YNnUycuR zWj|G&o#LHBJUCmMha2KDM;6)8+ zYUF}--(G?Yicr#az#PYmtFtk5%nB));-O&jRu@j_2Vb%r{?_(_e)}KW-amUEwMqcl zMoH`O7*@4A68a751~s&QG);2%?jwqDZ(jW*`vOX=>-t1N8m?uER*8?I;;q-hm`|k8 zqgh){{%u(F1lDja3K1BcUIivI3jnWqkDMl3f{2XhcgMtq!(Z>S4!Ra2+=*R@L40!m zda2M?puyy(DMNZm;}TqQv^9|~N<6$sEexW{@89l9#jA@k^{Q(-uvlQ_KJ zdFI!7yL7?Ac=ErlKmyhK{ZGXatMkurCiA(AKVImB5Yk$$JN;CocI4VDKX`<^@$|Nr z)2`ck^lbONxP`EB?%?FWyN;(8>{%!AlZCwrjximFQBuNJ*25k_M-!g|ezm*bh%Vjs z+`fL*u0px#9XHy1@VhpPZE=!qY5YV}TBm2R=kTx5*4OjR){;Fk=;)Z0;{*Ju7Dn{A zRP^zb?riP)jR7lLTm<)61AIC=Z$Zy5qtX55(_(h#pm&&w_Zhm-)SiH0Lq*8KO~%d| zB)rh8);S94RLg0tIAj89!FBC3t(7hYl`ZO$pkr^+xZ%~wP(MO9ks}c0+kaTI$vDK= z5JjY5W2Sj_AA0ZwQAGFW5ickc7#~oKm;&lrb)o@R5(L_1E0FBnm5d==&N`?LTHY9Q47IhIk3ka9nX3O==;^C z*7%Whd@Zqh`Rg$zEhUv_|-W2@zpIPKg<@|#tw+70AS24tiD&HI{Ligu`x1IjeV{K>lvi`RRb1bzXOChXs zvy@NnjXWYB9bNgSd~)BY9nyLb_=;zX$n^^f8wI3Oj(X1qGA+oN}4)OI_Km+ z(4wG)TZFHk8ygM8?=Q6f#NE-3+&di~`=&e}+0=QK7@x7v*?q`9$O0}`!3C}O;N6~n z${SoXk$ws4mEr;ax$OS#@40-F8)_SLXvO3BqhOp(Kwtany=RavMs%_YE@2ARnooNX z$~nr>Pe?LL#tUp)1NyG$Y>jH?Pu4{PP5#rw^=&b-rcDMdXyiNQIW@^%+eW%aBl5Q9 z1xop>~gH${dAcox|j`E{KgPB3rj7|@?M@?#`O|% z*v~f)24Zymrdr1|{oFPH+xVSDd#zLaS`-UExCyH>2XJZR*a>yvh;aK7to(fo3`#!pQCNDMB*S8FJ|u5h!nOZU937EyX|kCWF29=SU=qkZ{#U&cztig{6OqN)jz|gFub(?z%TBoHCvq zs%P#UDRhT|nU0P}dAo>Hodm#N(VJo_apB6O`ca&Mr!%yw&cl>$eV#nwE&LS4+%k@u zm%K6q%J#-{Nqk-FsmnG`vTH>FieYoebo_Tk1>y$=np|UxNW&Ciqog#GX+S|4olgf= z9_G;~LYpPSOK3=A-x@#)pvfo!XKll3XYolv7u56zuP|u-|@gsQJm-()lvVZz*_mYpg)62OsxfjAQH48WPys`(VHQjNfhX zqU~%c*kbxDdU52N?Mj@@h4j9hOg)od$o25;VuWAElbxwio`B(NRdv6m&r1pEakNK` z_->v{TZMN)fB#HtuUeA}XLgp!1%x#w*WbD9ar3EZeDCQY&|-q|-M$Fi?zY%opZB`z z!-e1HW|ovJ^(q6z8rFp*9I_>KgKB-5es9 ztkIY(wy{{>Cz_(zG0FBLs^uHe^m^iLptr~0;`q@|jP9Q%j{40R>MG2Fg~>I5SuT_! zXE-@Ug^&hk>O)gyzHlTO2)__6FqAY|89ps;IBb*(10!Lh_9a^43yv}te0%F}vqm9L0*M+mBu_RYYqe%MR__{gTO+TYP z3V_dRM(v(weS2ND3w|ShlU@89AzMN=l2f_sK~EgX*!PvCvOjp=a>vBCm;q zLJp?JMAbl*;pkcI_2WnB{LV&~QDwCCc4L+U!+>V!r@eEw=F#JiI+mEkdAOo88(DM+ zf{Wt~)|ERC_`G{u<%SsYZJrVh2v7po z|MOmJqQBw8z*nU>=>W;c{hUH$`V83ILO8uh3JlBrbnlBgRyE>&7+rCip@9%@WDX5YCiW=_qH0rm&P0L6W>TVfO8=C|k#dDt677xk%FlL_SFUz&n98uAYtVbEf_Eg zsBM^wsFx(z=*AQ{TEgerEzUizq02Ld;^;@Qd z@&Y05?Cj|PZc05-TU(o)=TC5~rkVmIrE|G6!h+Y42cmO%a}Jv)+7^6U5a>s^=xPdG zE0*f`9kYBJR#?d5SU<98Ve?bi-5=OM+;)+BJGj0|^^BN|kV>MJ!Ilm+^w#2YKi9T= z*m-U8GH5@BT~1y?JHqq566VhTK{S~*Wxz%1_SUzx(ALn3E*JuBCaPILm`U_faH34#{wkH*KI-wL#X|DY zDqy9AwI2|MBPKj)%x0~CMy*0`(z>6L(Bk`ZCXKnQepsD4BcAXQhq*Tq|Aa}KD@Zuc zY3M-glr_JObLsiNDvRt{}I>F5iRi{YgDOk4uzt`MTG7+Wd)2sBHfF8A6lE)l`6j z*^^k)eKrB<4;wcs+SC4f-4=hWT4osQ8`Yh&ejjvEEwsJwl{D7P%L&|zbKjg>iW6;L zD~#c|_@+R-Q+aeIqGR*iTK<`;xB{O{;9c90QFAzb9f&S0Yzznsw)7 zH~CfGpxek-yPP3i9oJELYM&plp>po7AD`)y>kt!zy;bty%H2fO#$B>es8ohs>^Mzz z9~(ZOV3O$pl`gU{Q0Lgmm=J_>XJec;ycPy!@{17yQ34+sGc9+XswaX_O7l?&a4$;0 zUP-rM4H&{?K=GV?xNLgEo>YC)dhN|MqOLmBN}8K>fei>j9#^{{h%qhJB39+sxQ0{@-7RZw}I?!x9Nl_#@!|s@lE%iY!b%s zN~;_}>2j*uA2;8m*8a%t>ZiFuymv>Rf{9wM)fRZtp$05o%KBND7W00x{fevj7hgqs zaW|XLAOHU0hI7Zrogj(%lon!yA3-&exd8_W3wdL#$PhInvq}NEV9`>bBv6)WwDu=w zT}SNcCOIfuNi1z3PJ%;4K~FAYX# z3+CSi=CFA9wH}k3GMiEOa9S~a_7f2^VD?!^ju#d&Lq=T9IHa-C7JxZ@oE{Pp4vwTYfQ|A9e#ep9Cr!XfA;lG>h9=*8 zzvITi;hcAQi-fk|)DRc?PZ|YE14W!P82i45)5?5YP{d?;MTOBz+OQ&hx&QB6^IAi% z+;4^%JFoWkiHG=;O`_kD-)&viw!yZl;ly}_LxI|A?|z%{zVKUMSAZMaFpHl~U~$n& zh@^|Gly0K8c9u{48)vI`XC@nr=~f5d_p+zv^y?Dy7BQ*KH&8R|-4w!TGj zFP?YYvaNP0{L92w^j2`Lo2~0o#Y{B0<}RfZVQis@^>Rk?4LDZD_hqnfFP)fO)3>GF z&Gg}z<+Rl(fk(=e5t&GHCN)RZDUHRPi&uWanxb{o_V-=qE3-9$`em2SW33(aiDzH( zZNz1^ZJu4lqhBRe??IB3DNMtWbbyqc6v9^|NUD@3ZrGCk?EbbSH?)TXbp!Gep1b2XIuHp82_4}1o_4Hd`27Wq2B$>72H;r(=*YNFR~t1thQ`r-FxIDHaG`+`Uj-FHUf$I0X0N8hBdV zogxK_6D&9-5ctl0e_#G$WSlWzu+QFmuDRx%3vJSyD8?D zE(48vLnYP$5Q1CUhPL~QXLRJTYHNk)p4nu;J88lw;>dTQ0h;`iaOI8@149#h+aFEw z4Z-7l-S@xcM7pp=d|esy1*i_U8_^GgiS>RN*;~R$BKLL^u&dZ0{=?K13ouxQ#*WR5 zbHB*epja3x;5fg(A7qW{=CI~6b7AjC>wjFzH63Y9g=cWOH)uxW=w?SP)=f8+oJUxg zK}=Lfx!+)hq3nx{5woN<7a)it19jU^>e27)A=Al^7V}dxP)9>bJ1=Qz$@FPrX2Ua~ zTrl3!4~xU=#BDMfgg~Dz0iqgKlaBvsk+A%7f3im!DjN*aC_k^m_AoJyu8}DxC>PzFR z?avjesg+AB&6`dGb(EBfiP8-J?fsW3<{N)h0=?Yl5=Bb3Xn}t?m0u~60=+;22w0jO z#03V+BOfU#I$W=;%o(O@x;yz|ADZW{(T8X?hXMAlI!d?RMfy>ZDH`%g+>;HwVS_a( zsMOhHji|_AibO@$#61ldD~zZ-CD@HGSy>S3wh~esyzzsjqx&x~@u)Ow?&@8w2jOk; zGV}8W)GwK|eJ}Bal}^yjM)ZMxKUF2`hJ(bGhsgVvYO1Auw^+&N=nip%2=R>FWJTD? zeT39*VZ5=|=|)(C0w8zzp}>Nl{M~W6m@(q{GJ3DZ$tfER2x|-nIT7~FBD zI3=4vqy{%z#=dl}N6C?V-nGT%-^?3Y%jzl?-X3`dE&+reEXNr=t z^{_B^@!+;J`#)i2z5nfvkp@{}({4g}NMST*k<8Cu>qg4I;^EP*kGGgqQ)K@btVoI}xM_ z{#l)*DEOP3hyXO054IzQM=BPFrYI8VHRhsTL5Kl@ljs`occV)O5uqAU`m$CEQA9th z-MAhv4#m+V5=pF#uotD&zeCpWR1g{mgb)TE2H^Sb!kq7qrEpiZ{#{}>hhtNhU72i_ zw)Jb1Ryz_Su^jQ+m~GKzS3$lAFDxe655GgNY1pygbirL!n%S|!t$MDsvoW>F@{zhpwC6TD~Ku5VS2INs|iGC#?R~wn&KP`k5awt<S8eTyl*?ixK)M2g8bnTh$;~7#~HYqak+aM%HxSnN-f{66ncN0#rL}*_qC7`S-hGc}&$kHy( zj>KkL!)=W36umFv3bxclUA&Hephq*42Hm)d7%yIeGzg}v)r+a1`3W-NzLZb`q;vwB zjWUV?9{QHTNsfZM;gixQJ*39(Xp}W|B1i*D0eywZfN_B?j*VcfZrp5*tCl5TnMo1y zuDdA0z`OYatn)bE!-kJUbJnHDXp7*cL7iKNp`=vJ& zU!}Y+ygnI=e>AA1tZUq9eJxr!)wf-|cKf$&W!>c46ItPjmwDbk-cGh-msvXF93mR*5SL*kgNlU=ps-#-$0UB7Qv)w&a+7#l_~TTIw0wDHT34QfA+S`@9^; zxlGGB53K8}rPuvR^Qf3YB2asFZ6sL_gXJsPE4`S)gyB|EmS;Z3jg=F&I`p%1#q{#} zt{*2gpPvb9>I{E3U5a8fTPkx$xYZ9fCm{d*FFOwILyBp{AbH_lEZG-VNhE8# zMURRTe|a3TVXHr2W|>;WnhPE_xSjHH+jsSV%wk^WOb%K!e|vR@P< z*9UBGy>(m3N`fy5hiJg{?b_F`tpd;?+p;*v=RJRf-^mutCRGp0ov$`{g6+HUn-edd zmuMy4?%r<^(wQy#`d<#OU(z)n4B7QXr}IVHN&X&W-)GlO&L&qbs3B~kasPIKx8F(M zzaq9o_#}^j`jyh8Q`;szF2=o7pPHGpr?`)Kl^9UQ_u{O3TT5t$!6hOiqo+_&cK9U! z#ye!kc) zTI>8*n#NLJQ$y-#YrSlY%Uju79NAt{10`;IF?R_Yt({{9=cE-G^s$sZa?e)=CG;7H zy@skM1xN!_J5b9&%8Lxb%IYUpE5Kzo@6A{lNj_%uviq`m+R*d!J6vLv4Qns(O#Xqz z*lvn2mnQhcgyUOnKA&f6&!!*UW>p?K8d)Tk39f?v-qbZw5CdL~8{J2ATyVSLg(PJN2XDMD3yT*H~|rd6))oDs2~9sBmP zKf*~kbf39i!z`@zpwGi$j+I$h9;lG z894o~k!1z~5^_ZxbR;%mg4fS zw@zS48K~(89ynBNnvR_($z{w-A^b23z#_(F|AM<>?I9!|~~* zb)NT0gy8KPwC9v2L1HMyx;9TR5eHa?Ao!3w`A|+x5OPp{eW4BJfVve?fm0ydGNnX| z9fyY8a!BdnLqRc)A~B^R9k6fC?bg%w5$>=yiRE0;(s*;z3->E@d{YU z)%z6}s1ykoCiIc2uHV6KS7ONbRfn7`AxM@oLuiec(+0$lc_Ad(D=^p1(D;U7K=E_alwRd2to z78<=uF;yvdUC8wG{lHQdpE5_?7HF$m`{DS)k~0fz*leH1TT!-{pSLt5BEL;WUbqz%Y#pBAmq^Sie}N`ph`6DfNog#vf1WS@|&T!FtBnuDO+14 zRSE>*>QWnHMnA-6MM^J#LYc5fE4BoG9;E&#K=Ftt?!D>1($7hIr5!@!l3PT3p$I$5 zqe1oA=%=n~%b4?6Q~i~1OM!TN_m%PeoDXip_vLTj>lM$-Q32odMGgp9NpZcJsAW1w zn#h?pqkt>v(2#wlTDeFc_y$VB4k&XoxP=ly3EaPjCk;qi1TCp3p@U!eI5Lho)>U=& zXBv`~!o`p@G~`|XL=hU31YSDhtJAx$Dy77_yB%4a6nbBe=}rnfEtlt;@z{sRGv_cm z*F1YWJ|TqKwQ7L5yG2p4pvC_lt=+`ovnCu$H->!94s)(IlhYOQy4&ksn_m8v)rmm# z#}@P91T`aVi=LT%qo2p|3s%cHyLzhRTzrmR|BP)omJ^G-c~vDRL2cPM+TelDRxIJV z_}N*=wOCBk1A8kr1;of0>`X+JhcZkGm_`dZsINpzPctnJJ^n?6q9F5qy~^`V zJ(AN6wpUF_Jsyd48EbtGzg*p_!&FBKQiPc59*kg?yKcK*O8m8kx@9nv86pw?$RKH^ zbAaY5l;CF$bR-4oR{N=F5aA}v+NlK^q)~Ft$*nJywu*v=L#=p-Jd>1BgQOXQ(yeqr zKoW7arz6HkAynO>T}S*c5BQ~@?VV@frt^#YiSCE^fX%hLhVH+40q0BrDU7yOQ`yw! zeiW4!tq{+5c6uW=GVQZ^7`GF4-q18Bywz72{aJrZtriq`&T==Y7I^n)hiP}$egw0W zhuh(6lf3x5G1jz+8Qg)4IDKuNQf){oa?-7yEdcj`Y24A;13z7-uXRv0Wa%skth@Hx zhjsKo{?(RJwq$y3_lSDm_u`mYTKAssaBXYU1d4@0$3p%0$GY1(@p~e|jHgsGFSn1s znws1qve9fRTS_m0Ocz7^MVPoB)aW3BB|*o`kNvuK`8=Px{ z@=O$Rl$R~78A^!idO%#URdRu%7S<@(EalkS1N>xt3;BFU)_es~HXn){QnY zZQ5}d(7|nms2<56RrBEd6uedZCMwSq-Pl!iC#UKX6r5vqsi`TU>E7xvid1@rW{|v@ zg?O@)7S6TEQ^4qZyRc;Y#hCH^eCf-(uc?tQ6BYlVBnYA^AP`K=e?l25#$B9JUz%$O z^AyxngSVWRyw28U7WlE@uT0oIRR2c09Of^)|qMh~_8X7a1Y-y`8Or=3b z3A_Bmo9}f}e2&Kkt`#~y!~(yE@L>dyf*#rvdm0&cpI%^+H}4zcO|xMsX7t+fRV8rd z2ruuwZEWCf;osHkuEOTG;X|ih7k^!I=$2Kweltr1o+jBA$0T1`X@s~`2x^u;vb3PT z;BGt&Kazj5RlirwyBj~Xz23BbR#(5`+WvebZd2iGOseR4o%f+CDYZLIPn7BGr_`pw z8*q54a{arj+Jy%q-{HsFM9%JM>4(OV-asi~;8~AHG_#D{2OnObKTGz2c0&U2*_K>F zU|!2h=-XHa+-cZgNaWke^uhq~{Gn|{Q1W*83@`p~W-CGzJDhFlJN91vV~~f1x2$L) z>oDvpWh8NRg{c|Eegp=k&_g+JLE;6kCc_>hH>xR-QU3{gMK`KDxe}fHy(cCZrU##= zACk|#*nVYasVm?BM+Vu-KBd7y43Tqemxsvu4-;y}$ML{&h3&Bxzx5#r6=MZr(`2CF zFse|obyW|a(v}kIc4{RTUJ_u0{JM5)DixXw(D@E3W2#3JAOy&`lmKIpyI>g2aVS`h zTaH@`ThKI_2KB1+I@x~rzvb$Fn3uYzy!W%JxlavTS9?%H=iMt?Wi!VQY|{lE@5XPw zmspvIo*!Cu&@PNV`gr{nH?C$puy#}3ZQXVA^XhOK14SMmuykg1wDpzNdOkx(&1uIJ zo;SqqMHgtlu@-n{1|}_}5*}+@)KzVO>g53!-8*A?zC7^q*Yiu>?F)UQ2kGN(HIF(U z&XNHi<48!+;g9J(L(*NCl#&Xc*6V2T&r@pj?{DSebh0H`pJWfBJ8^F#Cb*ONVfHa# zdiA>eKj7VXsJK-tyC$iD`|Uz!M*$Y|jx-+10Hrzd>cO!43>KSGj(|kY6rWhL@MLk} z#s>Dx7N&{)gv96ULn@914SJQWzegmwcwNL zo$ipH;8#2XBioGY)sU*lAYB_|hWOMx=`JXE#)yLW4vIlZ#NfJ4d*g1g&h5Ai@zd z{GFwr*6!nbtYq}=a{6-J3!!v4ANFmE}L~S9M z)t*CaL^*~uIuZ^mAXb46wm+YVIJ+nptlHX_y|Maa-#dDyxfE~H9ifz_p!;2(W4z27 zg;+G2mhAgl4&Lm*VPGqr3eS(es07L#&teY3=a&4wvc>zl7QFK*e3v1ls$u>&{8DT! zrAgm|MMxzj;Ycyh)>oJ`B^J?(iR?wTr&-c`I5^6$kpv`)VLn%iBg}Pa8e6fGmQoZ- z1bTzvQU4Jm0QP8sIfW%hw#D&OF)Sv93?BB@Ktadn*ZIGV1rvgF0y#)ij`ZF7XZ>Sr zJy*(cYYB@E6FMDNxC_kvrNYC_rZN84eYDQQp7VV;VIbI2F?19GOM>zf6c^QpYLscn zpsYzQls~Cu$n6W3Q`)hny@jz72TAj+8#x<72Va3EEyI=d4`AG&WYP?1=&I&Wf<}n} zYtfz|0p(y#niH~!2F4nBXm|dH*92JTquPfYtRKtTuII|lb>O-|_szy)!!-S@3!AJh9_&Mqf;RK|V z(Qe!S{yf-29x0b+JVm~bQ+tobAtO0&Df_1hp9k3kYJN4q}odambLM5};Io zU$7vBf|BSOptb)4Z~!TQ@aryBRCzObwEiQpJDOIYcjRE^FP_EUAtOuBDce|lKHW;c zx~f!3zUiVS#i}FIL5J5IBif@FF3LB{vu{HGv@}_4W>Gs{y)<=uM`W|;v-q6zs*SOq zLg1z0$MLSAtAk#)x_kAV{210x)6W;_;JmW5rS{MA3hmG%V5p^j^qhXx8l6AI(W@4< z1@V%&s(>`Fc&`{@uIw);#0R5D`f|1dq1^lW_Ybr*0)cVp&o$fkVS?JYsqX=541A4v z8O6HKnwh@%|DqdBO#EPox)&D*YM2#3EJNZAV)}>L62-+pFq|fs@brHronD;S;`92U z02&SoNECgO{4DY#CG#%}uB4Ahn{QKSEwDYDq%9r7Lj)Quq~}6uJfRVW$rPedSm3Ik zbg>}Pwil>^hJGa7Svg)j#a*^|tlf489BiNAx}8TbK>MaUaOVelH61AaA_1QR^vLcA zrcT14K?b8x;{5n=T^mH~se#Q=7F+?+M1aX5^~uMUYDj6TVP(OvSCABn$S=H>9vO!1 zsTK+C8o`Q1^GInbKn=F@L+8hzA3CZje;vA|a!a(B<9<2g8fvBN1FISSU+ai3Z&J{ptHSAO}Hl~#~eLC{318u4ylxT41*bN<;x z-a%=JQTEr?`Mig?u3PR(&)yw-*UN7!bjl&W#cB1xAsU)*W9R9UJd$qXp>GjB9+XbB zNYEAzX>{ef8jVR>R~{9^Au$=*yo+@`{}FmNe3iJ$bS?u;o(We7Owt|7Vo7MQyiU~k z-)+pfJRpU2YlRD4N*`UHyd*smvav`U)OQ zbS%fw#HJ~EnGh(pHz!k zp+{ZI)YJb>Nzi8M)v45^C!g0v^l--mC_X@&fy>AAJZ|B0lr9v5iUGCnaivj@r~-3P zQw1XxDQ9g)YcG19TE0lRG#5;1rprond2{>oy`TfP+9|yOVu=ZUwXZH$&=PjTZdZZz z*Yw8m_GZrT!ew9kW+||IQxg-(w0wZQ>@xY*%P-LVuZWdf_#6M7lZ@?4h5DmN1dM|b zFTI*?Vxe2fkw^gJC#ar^hwf)IhB+*qGA0Y(`1iDGnI&aJ$z7pa7#HW}Lc^sM3aiRO zM2!pcO*Vu>Z@mgDl2XzL#U23|&A+HH67u#?2_|~(@H9^|5-K^3ik6OIU{%lM)<57uVP8?&7*HtBHdT&{}%a8F~tA$j_-4&`8@vlZ(gCMfqj zSafZ&c95E?U^eyh^J`a1Bvfoz^l7vME0f@Mr)&Z(@`s&2r!b|=S~4M`9{$At1L{Wh z(e~%&3~^Mx87j9RvOeuxhI9@Mo<$NZGS&V3_j_tjFRr{jz@p-jvn1UulK^&XqMJ8u z+x4^I9hcO@`2%h#L<&?^KEj@)523UpYtrD|q$q(wTa$r49uk@i9n7~JW(NUBAV}_S zX{a*Lad6`;5|dE}L7!xR#1^N*Qh@LZivv(Fd-5paQ{v(SkbtngJO6It>DeV3yQ^o9 zE=31MRMensZ9XWtfs_eQkQaacg+75OX6Lh#&LUNNgOH{>P%3j$(im!mtH_{_rdvhk zF$qMGWR9Nh?ppZq+rKa8^(W4Mvs|w_!!0pV>S9f`BZ_4xaNo%f-~5|D=yRP19N-q&4eTI_X5kPuJeI8uE2zq;>-?lKQ>Qe z7nky9bW45-wpQo?lh8VWaWgX9*`@MJ(rZb*QuMHi#anu;2rpt%)>KWg9*GcROt606TO= zdv2ta+_Bcr@F?dB+Qhucl>MbQzl>-8*XvqJQoA|*hPR$X%X+V0^D%hF6z=uY3qE0- zEB^_3?jK-gz~XR#u4g=W^Mnz$oVvaKfsv7OKl6v~@l>5c;gPNHklxynL#fV%#DT<7 zetr2-jKop6M=`e6l3^cH>Qnf#%jJBCdVmFQ-n8uEb98s}P#}0u8@Lt!V99b||+CDg&a!@bjAGvLHyXCwDS1kBFC&A`syccN;q5(-H@lOI-0p&%iKRDvkkiKrk6 zP-KM$h#|=|Muq2s-dw1^gt1zLAyL4F<0rl3-VE3FdbQeG}+@d3BI zj_ockr*)-jc?(C^FXtP6k$Xzs?DhB6EMHsMZ5Ku_CRf_8{jO;iFp%}}Y<)l2t{cb2 zm=|!MIWVIaTX;FLw!RKbm5A6nOD{vN#+=)G--sLqN5>bxE9n8y=CX2e4aGJx>m6c4PE>_u?^)rLdcQ5y;vM&3alc?un z&vP8I9HQ%9s=UivddQV33B0?VJ*L((Hkim`T7GIby%WEEA+q_&0gMHbJQ+Wj_XU&5 z>ggGo%E%T}hUR~N(J%&|G{dhOqjRtQtdtBpBQ=C#y}8)kT_m#X1tl`TOMkZ)natgJHX4zg4g1m;XhHgZiG zT0~}l|M*Y(ovgM=+|RQtZD0ej5ysVg@vlD#jp@{oH#i5n9eu|ht6q2A?AYgtd+&c= z_P*b5ayRh5yBJ>a{<}&yvBDBRY@otBzkS&FddbvP0PBz6)-eh=l^xh!`*LaMe*T75 zU&JwY_K4SAzx9q|F)$PruCa95q<_49uXIYOO7A2XlJfbgl{4E?w0%PmXqfJGj_m#pm{C znqVM~urdCD9#5TON4WWy!#gPGOx0avg?=-VmQ0LhyuM3aRC&+lZLZ(4kB_>R#o&U4 zfns8+-Cm54C@HC(Y@y+YJZ%QKCm+mz#>5RRh`Jq?%O4LC%c->f8@B{E^)0qb+8)%k zXwy1^HOJbP+Cjcu?Vpu%mh^jELynCXRr%i3cFkX@m0M+Z!PD0?{F~$MhAXYt?oy>L zOYaMxvYZf?!?jpb3bbY_Y^&j5{nQGLy)X*)fT|*Tna&w~)(S7!7b`n(ww(cHk{C1V9><=)Ip>(+m?N%!_a@rqI#&OKyJ6$`ZR}!>-aiXy{VJDGfYIuwovwN8RR%2OJpWDkcLx$H};&SM@ z!YQ1cuo(rG^!fx^FBw+W(N9RRWnG=JOy=Ihm#Fo+%x);d6~a&+c3rQmg@r$xKssre zh1$D1v{%ctDn5y7SmdiGX{8xtf9cPU0xp)L;35AmP)aPLtQNH^VQ98aegdQP(i@PzFMB*UaVD);z68) zlf3Lhy%57<#Ha*{qG3fSlzN90R2_GY={B~dQ7%FHzw>P_XRsOy|;mMuTwW|g(0B9_LR{3GX! zmDB*2Vr)kzF6e0cT3z|w1#h#KrK0^yC+DfMq@$vW#p67T|MW(zhWU&jf_Lt1+h2(n zl4fYl1GMx@235^XZ^%7 zvI+&Z{=1j&@+e{aaAq=Q)~DY8M&-lF9&w07&xsK;1_zns!wI$MYh57xHaU`j>2~~z zs;`+}bP>|stFEWC@Z`KW^NNQ{ByRt2vCFlrtHSdGJl*_l?SeKg)uppx4LeFlw}W?U zz27VBzF!HvslBTp7j|~E(4?JXgf)T2460$No)vOYL9bql6sMeN!#T{=5hBj1Eii6k zVhA-eEy*$wYh(-Tu?)qmdJ}6uJ$p<6Y4Ko!06VD#sjQv|%iW#5q!%Bai!N}J#d+jR ztUhCDKV35OXsM#2)6c!KX)$@^sakDqXDizMa_b`>cH%NCulwZCLqIU&if-PrVa+8+23GOz&9J7_gr2;JaYl-_i8Oi>0mMjjPt~{2e82eg%GOhg^ff)3cZ+ z#z*OUTmRu@^muPFy%cuor64LeSfRxxqrghPAifV49Q>F42R)5aPv{Oj@o`9|MTd^I zvJH)X>5+}l@~3`@MaA!>D`hL1q_`jN*UV=4oRlNnP($M z3!x?HQ*1Qify>z=P!zEsBvrK{1YWH~KW7n|kisq)9+Qx-n8?Zo(&w#C<)M-{%daTk zmuIZL{j+Nfzzqx^zOWmyRT0tFSL=6+l#N~zJ*dwp8A?6~DHq{$!usDG8P}}c{Sc~U z5&fyyU}x8Herl;Hvd1w3%G__@!8HnDuX(-!URSXLyq>UXOCxe6$Zkn^sCfu8>c`4` za5~@FFij8#r@y$HG6pf8tyI ziH1aO_`TG3@6A6`#AHI8&P}$p`sr2lk)akp!o7sWNfzyl?twjZcK&cX5ompT6u83IsK$;4rwAhC!eA-tV1yEIDGf7i zbMc@$wG=n1?TVpc6&hLXj@1rrG68wy znQAIR!0+Ux4Y0WknQQLvJiBjm)GD=qMI7%;8Xj7sQzeg%JbvW@(BkIc*W22fv$0CC z?(?}%{!2{DCG{WjCTgA~ThY%o*)`9gGhvom#Icd|74Jrl>}kxuNKR+jCGQtsTN%Xl z(;xB`i5y^xMc>i=QX8Xt_e|$qwwkIjKGJUX@r=S@?ZVNVU-6QI|7lyf0Q1{7BW8hL zmBy7-nhS#(hja(q>l`c!Qw733+|7N?xI4HSKlOk8fFEqV9rn6u!kl&3U2}sDzHZ*X zTa2p+jCm?dGpy^(!D~emuCQHgH??FDLrWHB2A%hP4WM({M{@3VC~ z?lxQ;-}k-iuJ_07#(CyF^alb$bL>Od+I>VImi&HE>eiY(z*It$W4l_VK)t$59xj&v z;?`Q_-mVTR>eO0|LNK79v`Pfqv8c|(>8IQ@Bq2Q2jBFs#DkCc>QbDV@f*T=XPKqvL zWS0jawGm|1Q~KvWCc6IzD%S4p1APNr-TwwO;hZbNOLgcxsxfH2{+$inlJ*L|=VbqQ z3x_Ga#Mc^$wS+Whz1by9agl86T=2d5()_F+JY<#0$Oh9yzt6i^vGB$JLnhlW&E2ko*oew4vEq;0j~Sh?auNMW3vZ=bF!bfOc!2HqXF6bDiV}8M5MT11og55~ zBc|r;@Au(5kXY=bj<-w0=#S~dJT`s3E0A`C?%^Wv!PxlWVz0UHEE zQXoWgFsgVMlz1br9MVb6E+ELx8m55?RkzWq0HC@sE4(_I0#>F`jrdlfyz>9Uyfy!O z&w;?pmiu|ByLIv|oG)F+F~8c|t7O|;f;lU)k(+T_2BVd{mFmN{H48rld+m;=N*D1A z{;a`Um57TIxTspmO>BUO*i=U0hR{m}E0r*j?%}s{5oM&FE(rQ14w7OxndzNto55GhT&{t-{nx-o++78gk zWvCq`@4~68^zqu<#kiK8wzj}i<%693wX*2=*}gD4v1%2&OpMTs%+WK|wLA3@`K-np zh}$U192X_j^-5cnF9(~4iLlqRNmpxJp`MfMdlvgb%gDg^;kmiy(RAU@e;;XwR$25# zHMsti?g=&NpH?3S;H0=sP zce3e)Z)q0lL4@U0SfF zg=W(jnPr4?KYdzV+3MWC?caKTbDq!Y#`QOABnlL9M%k%U%#iPYDaTduSZJaV@wyi` z`B=W!*Vjh=_|%A7-w&&c%vTOiBjV?_73@4^;MMky)1^6fLLK&c*y;(XhBafDN(D>V zTZ~WymnkaPWRG*?k|A7Yp^*KDnOI<$hIZKe?H?J|6p)F+xx;ob(@#f744UP)-ggPG6npaI-}{c zuR+8SIWfsGzv%lt+$6iCZ_0ndUMkwC@oUB|)ycPfkmzi;?eE50-=iNk`U$C=9oUBr zVohj}JR}^Tc^L{RZ8#XpUZ6zfvg=-hU#S zYSf-T5ApDd(l|gb8HtV7<(cWcU$gh0F44=nw#%KH&B(N{+~42OKTzpcH!qt|H|aS6zu$Q2*-Gb3`$QWm z>};7m6i%%=yjV!aOCn~+`Qu;tI9&-lL{IQzrYBDrt!O?z39m?c!J$B^yZ~Pjb04~( z^dIn;3Ri>;zHVDTxpvjYcb` zM^g~3MpQ-FnKqSHv6d~s*Z?6*TCm0h^*IZGdyxdNk#p0q6!UW3%ICxE3G0%aso`{E zzw#DNZ8hhb-#Mby?&ix5BXAX8s`Ezk9^FfqX8WvYr2e>_VXP&*I_pYDLr89}L|;hR zE_XpqAFE$jFd;T)jf?XxEzwg+zVveQxoi^9eHmx>03D;VTgCWuvNOk$&ShqDHFZ!_ z0@G!qIW$%yVabjKDu^;ck|^w`ws9ohmipsc0K}}n-uzD(@GgJpr?hr> zNjt8qPQ(Bv6*oBrzZ6maCeWE2D{dmguSv#QsjywjDNIUABdWyCM8YgK`jYl2>Zk6U zN2yx!aJ9=F>#{uuSXip^t}3k4O2Y2^@qyKEsnX1@j?<0pqlXK#MgJYT-`fGIAO^W8 z^~i3E$H@=ZpE*A^7z_SUihE0Hjedc zEWcl3`>fuEV!r?KSv=yiAa!I~qQB~R#A@E~I@+D|JfPO62*RtUZ8xnCu!oLIGv9L^ zMyA}{3)G6$47p2`)(mYltH?d)wVN|ry+F6<{o;=dmD7kUb%d?R)OEdMvyN2bYCsLP z)@DW5NpAu{E!4rZ^JvZ{J*M#VWXa3Rl1bJMw2JJRkJ~&nuZ?^Hs`k` z`)@wE4tQ{h67)<&J#-hoUi-d!p!2T&?KrtYdCpAzebXSXQqt zx2s5?a+dQhT#&C?KKXwba(?YD>)|wH^Cochh-<)dO1~xN7=Ol-YM8cMQu%?>9JBfoJ-tM{Kp^u*os3)sehgq!-w=IHw&AdvN@O;lt~Y$VaK;BkmY zzHwn?fQriN+S!$yY#o8`pas+TxHx8D!1);%Odz9R+7nL8Ocq8fGdT&J6krRm`$3$O zDPYRU>1x&y0BfjYsXM*tlgoRF|SfPzp# zMG#;bEjX_uREz_l%vWp;7rwK0}45vzAKcWVmvJGWBxC zcCTxZTK^3&qFY&G&jMiPm~3Wq133KqM{&dNyF|yi=18o67krWKc}CYN?M*{N^60co zT~~cCQh`a^0em_yEz1ffc&fSpmYNs%Zg#GERE8vZ!YKNBfdXo4v!Ll~mmm{3>=vZ8 zO}mR7!Ts!s#sbfuHf+Gv!31Q~j0e@1_r+Hi9j-Tt8uOcuvG9lWyj#zQ9nJ0&d0JRv z5CjUQ3J!X8O3fDYJ&cDco+nfQr7n|78fwQ5M^ZV*5^%7=7*J8{s}(%GQpr##07811 zsu8S|@YvOa0-mZY@_>60md;BXGP+wM z8U2>Eqs#vGw?5d+_jyjSN6Kry?{l>jN-vfAt#aGbR4Qz5(eqpwOM~ZWHV0N z^B-O7CkhauVQXWfVzw${gmYPmTHb{p9UR~GZ+gECEbqYsi2_>{#(u?MM)`pr>pM3)_cBzl`1k)ExJSNxU7q4= zXx#lkx^Ld9vSi!pGS36K?-z1=`?NLUo15CpF5kSb$JG@zPUb?SFDXE-iqcO&tS=}t z{_DohreXFE;npDW`k;kkXsDtM#ghU`Z?gs(cU$0iN9rN*Dk3DYN zXNAn@LucpQ^9EcDJ3Bkz8w*+P=(?9qW#w9j%Sy-(p7G?^?A0!h^9><3fo4;u9zaH| zjDF`Y@y%Q(BBZ&BCPTK_H&tPO4$>Kd&ro|)vvAU(Y!?FFk~x9@ZWrO8{NA6f`X~IMzJftv3G&}+wg<2XlH!pufTgQ zqlZIz&0Kp2PKH!Ua03MqdQjoyU^;JFvrihT^{;Dc7 zoGfU~o|r&`O07)MsIbw};7~*fQ>F-%j$qio+Eq8MBEHdoRfHJ$UyRfOw#%dIz=!LJ zmI&N&sppCdM%CA$@Wp(Ix5f&6$1+{Zyt`#ur2pp&v(Mw>0m%WSV+N4!M!G>lx-_3$6xYyhpEcKBB z6#!{x>umd!Zc9jRMd+`60CjTr8yBCEvhY)ULoKGP{o#9ktrTKgy1O95G2tj>yT@I5 zBv`akL)U} zwUVEdctM6I`l<@Cq3}H(2=XuP))w3m-9U}%u>8r%DUAoMH*>clkwXj~{({fHyO;+5 zuDMU>KK}5y%kV%OavlEobK^|)0t4ryxKK6{tP29kF`t+g5bNveFg;9T!&#Z2FikmF z-^Y~n2y!=Fr2_E^Fgk~hrj8#elw%@QF$4b5<2O<#!%k60j?IdY;r{fk<<7)C04alI1l2o zc0SVSQQIVzuUku1euD5gs!Tw9kS|vxosx(gRgesgg-DYotthz3g_>&mJf#&wDY)H8 ztaEIr+1)Q+^gy}kd98-nXrUnTo43}7@OdTOy&S(%nAFHBFdC<}Lyt7K)F62AY+Lh< zr1sI9E>7_0x|{q07O)_`F)={)RPgmnJO$Bv6U_%g4_nMz04on-d=jo|QLkk2@)MR$ ziR9)npO4jHEu0MK+u`QSz*~b!d(F|%ZHzmKD=ApV{b`xx<7M;X%-Mm|W75N6z~f5D zAEA(4pW{H8@k0np1E@T?d`HoNV|%z?mZhNJZ)AR~MtQy^r$D*ZNwIb2KEmjuCRCx2 zGglX89EmPRF_NaGD~L)EIoDGv{%EfoAyTGiqjxBID{3!!yWAes8ti9$msfE-*B&=C zdj8Y)<`Jm~H2cV^}Bd8|&^`=Bh3_Kt5iQkLGOaSNGGK~3oqVF>v! zJvJ)1Q>{BIp6wxkbveF0nkTZlPI5@=Y|&Xl69ePM3t~!Zt<2}$xnWLXU!9WF72>s5 zr9iwLC7}Mq=3#%J$(pOn>r`w&=$I)gF|z-X!$wYq9k?>{F8TBLjoO>8aExt4`?ASP zPlkVrt%kuAKR+LF$qT$N#_BMN7i>IKU~)`0T>8kqCoeu-)$?y?n3enYV32K74(Jc) z-XLJ|GWrb;LV4xe+K90sDG!5BZlZU`kEcE%*E1L68^7lkFzxK5rQ?Rb8tB-hpfyWWVtgWy}NM|@8X{z zx*bRQi3s?Nwtck9y0;{6N)IB$_i)l0vs~@A6m$4Mo5(BNky=kVJ%oxjmWQ;wp7 zi8-i1lYpDIs$bTTwm z&$@g*5`1)mUJOc=DtoGrU!S3J(Z#YM-f zDX{NyP;}ie$>+=2zS+qy_KnA)$A^FoU_ASFL!*GX6bdFw)0k`I+;)tD!Pszc6p2Z2 zpl@v~@pnLgj!uCC)0~TD-!|;m)r=&aLZB-WBVX!9P6tr_Bi$8_Cz)je?<{mlK^9v-ApA0DEGhS zT6BXa@Rg24oo2g|Gz=_Y4UvHvmnck$dO*G^6qlbCgAxkG@nShoK-h@%RNoo|2wjnn zLX4Ze(hDQkUeXq^?WJ`}y&ephN~bLM&xh&YAI(k6-A{FZRY)uv|^MPp*HL z0k-6KJ73X8k&cyJ>u{uUdF*^!9TC!Nt}Ti+K1e(A5aC5#atm!LO=$4*mwCggI{zl% z*`1%j^L4|-%KOvuTf}mhmQ^|5RfVnMCqvdNSJt$x9IiOJXH9~Gk*$?mcn&F?4spNb z=lZx{Z*@#QCN;8nnOi!2#C|5|`J3#pWhhGVxlWEQ{Uix`BnFlskZC`YkcYM4(&$xz z^`S#yFk+`g62ZeoVnO}hFj~Y`)$e$pmV9yAJC_Y!NpN?$F~ta$8wGxU0M1;o(nUsa zS!UK?yZ+#Tl#fTi->mz=?zy0^a=Ne*5dTiHM&vV+6aD_QXbli6RB3WD)=`DuZj5mX zHwMnZ5yPGmtEB`wG0gy#0$1#k89`7`S~8y<$huHNrDP<4yUOEsFU#y~YGK{=5!rp= zn0O;E^kHXvZK{md)VJgCD0rnaSe!QP==^&nL-2<1T0_UA@2JD8n%NTpLziFgDvu@k5q^PZMwO6e`HW3p51F@% z!#sC`@k+Dz60RGF;7a=A#;;H@Izi19Gzzafj+pr}M^*Y`6*-xM)Z_*lluqP)IaI>Z zGGFsW?4^j;2eR+>_7JnmQ)_6eqrsF3!DqK5JS9Up8Dc@YT61$t^C4JgPb{D|^*o`s z(_fnlL&FU>){!V*){(Gm!}W%fZHL1OZt~k>E8Qvd-6&L+mD;$JI@TunUY)M?zkr>#o1hVFIPIQ^=AkV(V@%sf-b; z|5O|k8K+K12l4_jYFvbMyWX|1SP7;z7(bsKtyl7rA&5YbA?Qd~_u*PSq*h;**X3DO zknhzyRQ-|5e32b$z2lYqUd~0N_Zj>PIkkN%8%rVe-N0HL5GNBDyiSl^|c|xJfQCmrIdtf-$;nUGNV{~Q;D;-lE2kw85Y@5!b2?;H4 zzUCJ4S8d9fb=Nt7CiLRJlq>cDxWzh9qrY40W6n(~%2-$y6%G9ve4Me z6X}^-rM0`p^O< z`)al@cM1k_TTf`hM#2h~2KmUWWGRq-S}J27 zIfjb^&tFafdG%_g`ySQt_e02SQuoWj?US?YS0QH$lFcSjcQeB`o3fui3?*Dd1sAQY zy0@f!sa01TV_vdx+KIQ3K%5rGk5-p_oSLUqbQ5>%w062|mKq#!SC%U8a&OTbO{l`k zy3>bD42rKb$2DTeVU}wCIvwnIjQOo?mbC0XnK|d)GDW)OX&VH6M(UuWv{Q|gKYCY7 zM;M>;nXi9v+JJ@vAOG_=_*a-}=0t`16dwr?#8RR#MykcBT5}ST{xFud%9xnAN;D4l zlisM9qDlc=EKjb*KZLIDlCVC%JAvNh2hPb({`(kb)X+%UgEJm8+Y>cXST^}c7RLN3;uOmiv1920z}`x|zO%!0?|%>o{OF#J7Sc)Y%Qye4`W z-?&|P{Aw1^8hBE3AJ=@@8gO>35;b(TB-m&JL~mcn(L~U~DK+P}k^paZrn`Tj;4a?~ zeEuj4i@N={DrC0)QBD%7!e-8Sp)2L>GJtu~&SZ|~$);6J7CKye@^(M#k8^!lB zHx&7cXTMlyWhqb0C7e%e{H{;dLh~o0_Q(4^3}A$1jFCizU0TVa*D)Z5FX(yb8`r$Z zuVcc;&u=n-1ppbK6SBnQBf1`Qlf>v`7N2!r?bzB1X)PZ$HwM#TQEYf_Fl%X9Cfn0@;AH(<3Uf_O|JEc&`tkJX|On6bxzlr&j&OACpa zi)9-*A&MOU1$a6653ZL-E4;zib|I(T>ucv9zV_7(d^y^Q*6~=1GOe6XoThX()P1H} zR0!dA{?~Q3JXe-3W?EJ#xg~k_ZtN4sD!NpxxDiF*7M~a73I^!Xgo*AQjO0dXt_lGgM>S z@Fhf1JZ4Vb4C@~#H|~Jv!hycN*Jt{!&!vLge2g!h7r!)^x`iY<=Phelmn$NDbT~B2 z9dYlrLscNG+PW;7uqe@0Mug82kGmhA**#7Z;-Ummoo=rLLWe$60q}4{Lk<{OKxDKELEDC;b1Z;d7OkhFspO}{FVh+ubIKK#FaB0p zXpmUvWo(2}gt zDeJ=>Z_8ur<&7W<$-mKkCjw2Y3dnOg$K?s4de8eb*Gj$Lr}@v#-gY_+iFtL*y;)dx zJZ3*Tc{!8DHrF^0xad!S1qD5KB+haWrQBG{NJO~VtY$UaD|~Vq(P!kqVcv{i1DGdE zqA(*i4cq$WbF|(lePI?!?4O9gQg~sfP$q1k|F0{wg38PAx$Oj69y%U_QY*Uu9)=i& z+^6YFrWTJ47u&+gC>ktd9h5#Y74X^VD6t{!2_k{Dk07Hs>IfxbU4_O;PNPUhO(osN zD0I1K4Q+^AdWF72EYJk3vs%AyDzrz&i|7JaE@?XcU!LrSJpZ1BQgP1lxV;<|D|5a* z-TW0O$zL>BTU|L}x+*G|c;L7nhhS!n(o1l(R`BL#ZK&AF(JNt!8MElPA)z_IyJewRdZJwxl)fgr-{JZ-5#x$7##9yJ2a309zJmlZWo4J(k_o9{=lWRv zjQo{THSUW&4Cwxz#KxL=G;t(GZij|5&Rsku7%&~+mT`Ug9L0_?sRx$SnG2{ zq>S!#623gMvUh;I8cdY4Fcd@be_zx9R|%V2blBW!LG~-H^IL&a31qcB1HhL}!@gQg z*vhgumIBLD<@38foEo5E+UBHsc+~y}TCVCaU>1QViYsQ1 zWpzR_h(Xo3y|N!I3XKVh3u8|~AZ%8na+sXovsn9eWo??1Vp+wJfCN~9ZkoyorB(!( z28qcwvdA8ZzHO+XTP&_@dAoOzf3v6Ghk7_hbp@_|dA!^nKTVrBP84O%)PsEI)J9_E zb+k0tdQ>$`xIR;My`3JAP19RmHsQ&Rk5(u}xRlz*9oqTbSq;MddrxB=XM%eNtc8*TK~z)!}!z6*TU_eVne6H1zgHL1|war zJByl)1FPOaYR;Jz6~Arye1KAW&B1mQ6|8LLpt>Wt%T`F<_8YHLlQk%1+3yT#NACye^xA3cJn8BR%O?rJ zm%K~QK_+vt*9gXH8a>Z+fCBdQCq_}c5Y_WEewWmY_%3X9Hc>;&kWK_}jlXGLo}OF) zuV%x=qN^=r!v17)be5*>V&?bvB=6YuVRKmCg-}^3SEXO}Cod~lYdx;gm-I5n8N#=v zsF>mi2AUOh7zZ*#Nv9w>H9r>SrH&K> zF9Df@lu;H}v$~wgeG__pf6Wp>QdCo-R%c_$X#DSS@os^Qd;FZsir>7Gv-Kb6%IiCW zxM{3LzL4!~L$wU7#o(?Xh5ioI{%laO$!DH$3m3?D;UAb-f~1~^lz^@C5(Ezri%E@Y zTtFW-ewkj`V)Rb>sy7O2bt{4%U}MGuQtg1s4oE>kAbGa=U6-_7l4vPGct`O`_|B$fI!ieEuX|)w#QpV#%&{fwOEy8Z}K@2R5(gn zr5cf^Rk0w1CQ^Y3U<*2aycTS^<0AMo=fz54vKd#lKMnmLLH}cQFSeS44~EWAk0%Tv zZ*}~H^NO=5eVR?z*F~SZR0Vm>=nE;gwi|K{9Ul)MOT1QW$|j5an^9j?mR>gkZ+}$0 zMLILiSoUW_gVRf9VmX@xQFCE(Fj6=x(&1$SZ`Z^P{Y7f_#P&PoHznK%8mo^h)!agt zGcmt+_NM|n%GM_J>I1HOeUL(xZj!Vsk%EN06=*T>Pb%V*;t$33rysrMYpNWSPH!FWWcAf$QPax1h^#Dc|MNEq% zo>lhPVHC|Ry_y%{G-V4(HQkS9%Vzh^es^V(Kb3#QFv~Futm6Utn4*IHNP~!or;8}+ z`wWrU+3&i~SGHpxKXOPd7*%j0;2xhmQp*)t(F|Q6>5NDTOXeO ziE`xPZSfm+Hy6>!QCZ@#HPiLl(NW5IJ}W7_K8Y;zIaCWu0J+05mr!8&}#Hg>~$MNQ=0`I&)2e4mlFMa%yy?hpOG>t z(6G0+2Y8AF^lQKLSAyemv8Lx2O3&6-v{%>>I>#@VE}lLiHGcP%USDBVmIC;v9)-?=$QSwC8NkLk`&d_)+%&P4^%RV- zQIU@Qi^n_CmAhYnnWso#S=0QTg?WZ;=YU=8aDPx_$qCEje$wA1_Or|G+YqU{gU97m(U8*6g*=@FXTx7>p`iz3syH40NI|)tfZx}m|k8|6ywBqOu=>f2XqD@?j&bXo1{dj9IgSECh|eW91Y(I!Thes8Bzu z%Wu6fw*8V0QDlltd|sSximi?zv9DN&o;}j()z+X^8CscroHMlMqR9Mj4Mo~v@wo~c zybC0rrie39LY%9_ETfdd6hSH%ldP!J>C;)ZE(W-wKiz~6Ag{uEky(RF_YJ(C*QD;w zrIOUm)PXun&aPjM-dD(B8$H%Ku0CH&a2MP^ z>#P4(DbFRw3`YCf-;zq5&MZy=b*&e2q(C?&9R6ZH=${fH*!l!c=L|P^*1AzAlI5J~ zT$7l#YDz-&dI$a-Y~5hoRcV_A+)T@}*9Xld|j-CU?a9>pMkRQ%1QJZU2;Do zM<5KD&l+Y;W@~sg^Mxu ztHa75#=?3%7BYEtdmM{Rz6_%#QOJCI7x%&cK#AVEeJ~zmSI>fNJye+9^Bk`&T+NjF zKvha=qeEo2i#s!};MNy;HZFJ*Q?zwb2H!~B>;66`xf0OQM{v2f_wWn7kAX`=gBXnc zKScT$SjxI36N+k5u}2|V{C97Ws5`mlE+v0XZCfR*7!?RMI%HVwfNS`(^>kWp?hC47 zUDe%ePgI1LDy7hVPTbB(=79+Jnnz4JI&%aibDsbQF|gkViengt9T5$Snx78t-h=<< zV+8DIvJ0N2aA>UhOMzWFJtYILT&m0Fw!OPE+79E0)R3{-`zgx(Tu$p`@EmmRZr=SOH=emL)<*snhz1uE{n-)^!AvxF ztBeP6?4?UWW!_`f<4>Y{u_5`3vZ#Xl3nG`>?#|qijdj%XhlBRf=7&L0Nb#>@sX_^h z*Yfhr_xrdJ;nKcLbm+K!`ncryR2rJZgl)Scj8Vh22=~Wp_8S9_gBMP_Gs&8e;oSNe zGDUyRVa6E`xTohKZTsNoMo=0yIWyQG%QLt?N7Z1icI}l}V23YCRAQ+FgG4R{*kApW zNv@bQ^mvpxHkw&HgCmUe+pHMU3+V;yK#;@j^lCzf#=v-8f_7g35e@#+-t|Jg)FOK{ zx9cNkHsDnuvR37E6+kHzu+T23Ld$NqYq``GjG}k$rql$>y{+I4XzjLG=dYqlqSA{e z+fpEykVP`%rmC6QE|D=Q;i}sdYRD^DP*J^BD)5TZ%p`s}XK*f`mv;8jP{Eod4Ijdn zY_eiTRS0Gs<`yNfHjjJ)^<1i+nF2=P~OaRJ4=;(;S5fxm3lWFa@?tU=6Zt zujY2(`2Ch8{l5P~(8<)#O|Q1)4{XtetnditVrlFY4ptKM7+Klqd^<8Nq}B{6ht z4Tm>d0~O?pq3qNSVA~?H!B<6{R6(H_L4~9Uy3Z&8|<5= zW*dz8Ld>K$6wBB4C16Yc*JbP+QF4aDt=ccsFN}EnDQ}i3f?j03U9v;R#l`J|nv*Qa zMvQT{l|3vEFAXP21YZB~AW6wxcFD?Ha%pX8`7=oSIHp~|6gWk9B3>&=<%1li7bO2hIpI>Ayo6nR2#;3K3ZPwGiQU8MKy3E== z3I}R$Wz|kvONEfUKc&P)v5%)&YFq8WA>~AlYwX3Ov)+KC#1hZig;ztjiyoPbjWi~5 zN>dpztTVmF^6KDS)2?ln=?2d$`GFVgbBHLrsIX#?+;0gR!1j-Xi8&n`cp5ZGP-366 z-Y)y*la`FF=w9scyiXTUroOxW?d+x$LgwZoE7K}kVv$A?b9Ab6E*pm)=e>6fe=gh2 z&VQ{f*kF3G7HP!IHXUIsQP0mdQ6*V>7Yxtau)$sJ>wbsnCf~0_1I`JSL7hkSM5K>ax$&MTzK4f+j!jD?l40w7b;8KS} zh=>?1)wCa&cz8*yaK~W}!q}+4X_VwLrK+mR%X0zI+;Uv#tW%dK^GU4Ssz~N&z%v0{ zpR6_d1V}=Op_k+&Q3WHc+@s6_P3!4KC7uWOB`p_PZALpb4b;m^wuQX&Gx>XZTjuS8 zHbK8{fA&#!|M5d&*%YHMMdWjH1w<)UsSixm8Pv#CK*A0i6P1+VId!paCFz{Z;EH^d z%i_^MW9DXs`6s|PUd~Y0#sjq6bf4W_EOEod>BghWENi}A6uTb7h#UK5;}b8#G$j@p zbvcMR8WusGX~WJk71`0>EmEDeLEQWVu?g-t)q6j@3T zB1IC$XO>9 z)FTf~thEmmasYQrOFGQaOW5%jQjw|>b1L{eB-#i++p4Zzu=_#zcED9km}E;ri8$d) z(S&uHX7m$*PwSLtmtpIC`J#X+bp|+hv~*m*evJ{7*B9wJX?C-;@I^aDeRZQsl|(5* zDkxO?1nUKua2hZ4r#aMz&z!vJQj|yP=KDeS-%-NnENi#Rz}=bAb7S-{Pd-c^b-klaTdkra5{zkd@WqUVh?ioieya7vJoJe9F95ut9s z%l7OdyqoVhDZlyKK3CPdAjg{V zz{B^Q@(mH{3@1$G&kRI7%>iOBP+fPqLs?0N^qRP#^ZR>LNpQ6aUE4Bp{~{l_BBmmk zE3WWG6Q@k{y-7-{qDY?WIXp?Q(3Am`(4+<6;HRyn>bDZlcn1#SodG4Cm)lSVOB4Zf>a zVh~qj5VkdJYkto2+_Z!>j#$Ag6Aqcth{K-92!kDPu*fFww-U$x1act2F!w(^v@-l= zxbDe0s33(WF1%DO9$m9skng_Rd1D#G^;_B>F-7?sJlZc@7$d2Tt98jHF-HdFKnEOs zxmK9{vqnv21SPVkx$D5ZDF7+oTw1nC@&o zxucv}JTuxE*n&?rhmTv0C+k2*+P_dgDc>DszpG1N=w9YU(W$@Cre8BumGo>QVGS&i z&Idj~f$qZ#m4-s0*IzMkpT@}gGXb0uo19$dUoT_{iZv1ugG&b8{1A{j077XutRex} zpEFLTWj3lEC~gE?|L{s;kklv}Ub=aqrmjZt&kwSL%O9o0QAl2C!DsCgEOxj_RAX?po7y_;-*f%lI<^!DZC={~uy(bYM^TW+eqVI%$k7a|#ez zfC^v&;q}y@PAo6dy0bg(s=s-$*m~hLysmUveU-i>2ZG99=>Y9MOX}LT465VAFo}m@ zc&>t|^L9-HnM9YDvrOmQXwtBHNMX@n`X*t(QH7yH!0#d>;bLmgi$Q!js+F=HFuWrt zugHHkIK2j+&TAcQ16=GbdBU^+`*)#4IgWyK#_&T&oDv=21u`i&eC>a1KHaoc?EF6X zYJFgPdpzgN!?oigv4p$SVY{=kbN@OX;>$){$x6n&Pb8`K1#y_0XKN=r0oW8^X z1^Bx&+whT|sYD8Q(^2ADBDg9^wt^XkUu2Nr?&IKhmUg%0yod;B+fl6U(dx0NnICf>?;kZEl=_5|xR zloT3K21CtuElT(%$q5^I#5CZ#d`q zc$^a8lQefR@^$UUiSbduoG6?r(he8)O)Wu(Su>(6HT|hX8g^4u9VQ$?ukS}{FgKD-*(?*Cv61mPHhN_nRa{En=Y-bMt6a~TAL-#x}`5+kK8W4b1!W~2A-vL zoGCVWyLqw&%w%DNf++pj5qlM^lw2|idB`ZZn+oz&!#-u4&Iwz`$!btJdzHQW7s$<;Ak z&i!?8_uc1p=Rs(M6hOuFjrTf4Osg?_Z;aoZI z3F~56!24^uM5{b9UI$m1UEtz~tTl*t-T%nvr$7Ac{K2OwD93%#>GPU|P(qQ7)C&pc z`4^RLvzKCa@L77v|`X0xi6@OKF0k+9uo`LCO zM8{t`QZ&6qa~M-NKJ#{9=y5BA>6-*8#*2DlSscqa`Y8^I(8!Ly!t}uDi^uWaXK}8k zm3DT1o{f%8e?rf+w=`^S(LmG9@}k&Sn~`C$PXG>H#6suk=_%N~(HQH8xR+Y}?s{*t zK(y|8Kucx_>O(22vrgjy-3$zq+abrVdG1Tn)=qEsc60ESwpX=`%W;T)l7+KJ;NkiC zsvtq5A(GBDajZS3YeQ@$-n291@ZsL7vM2$W!OEsg6eAtO89@vKlQ3gj`*Y4}MG^z6 zM`mfPN7PDpl>qfglCR}r+EFuU$f3hb@JjvrXQaF}L30T}B*l?AK));}MW7gj8gWomc4(}g(Yi?foUH|a8tMobE zQ1O{?c3k|z!}>JzJcBew`g$j_23Y!q%lUNkALwL<;sGaYI9M*`K56YO!(X%N=9R0} z+bEmYzHExtx44_5TKPrklVV7L{9UfB0b!N(hd$RV-g(vFUw02qc`McNN3oLSEK8pn zg~irB?%J-eN7so;!Ox3^UD`do8d@A1=ARYWMyD%IAYM44lPEA_!!*$~=jzL$w*G9a zp=zN2(}Ug~pM=i&H?;+{c|Qgoc{W`BX?vs7q-Ggn6}+Y2)Eu00NenDnwY*1+L3!dx zq3mzSxMQH{oB?G*N+ixHXSvUcpPNwYAMK)LYcpM zY(_?FI2LF}W7_6ddt>}Cz)q1WlnZ&X$v8`Y0G6{3qG(>Mkd z@paQ-g=MR2wICZ%Z1Oo#B@Q3BjJG;kY@AU_Uu7uJLLeV%4qg=#r zm@g9vGthDi@c5f) z*Px5*uaFqXq#X(LEhHA40oj8qA?x*a1|cjQy0Vj$%mhPr%NJIoVtKZ~M4_>XIA#5~ ziY_En-x$S6S@>fav)EgD!<3x%VkD}kG^VCx$65w|R)m}%bU(b2dQP&xvKP?(csIH> zGftesQ{$r)#UC4AYgi-E+L{R`Y+DbaEeZD|CKM&5r;iDXjqM4Opn1CAy7y>@T6ipa zvr&kjs*cf?bLG64nQ=s(>wH*X%NxMiuV-r_L@VSkrYLTzu%5b9p<0=O zNwn7aI$)3vhHwU@bk5WrI^bzp%Vmr@35!Dd4{yiS1*BkdZo~!_2{=N)qFY8$xHbE0 zr4p2E05kXAV)RGr_TI3lovUA5cNCYftXnDRGv~|SSAi3O-o^~5nrbJXh9V<^ro~Ga z0ac#rnqpZ-Vg*p&0y|wq___R>$rLbfWD}`@y8xs|XYix$9;@aq)=oRc**{naRxa*~ zXY=v}vU@po#4MSU{xpu|6mWmL-0VXOBQL9VL9>bA?KDc$o1Pbvr)vx&7xf7?J`O%X z1y_QzmQA08l~&dccW$Q*%f~$z#ku8jxFRG`02(3ovmt86CfR=AL(__TayJuy+G}UZyY}Kzi&FsUAFol z3x%@SwHg;Pg*=t|aPE956!Me(dB)h|y={9#4kgJzPEpgA#jO8~R|Id|A07GITRr0nOdXW1Yu1D@O_SM@=o6B!1q4DW4vZ>I*bR9fo*}4|aAQOHD z6BU-Dg-}`MY^Z1ixWKAeePwMdaLe=Mikal;zS*ObIQ*-x|HRJUuJIFiLE>^p^1gM0 z`{Oa(jjOt*rfHoOGJL22SBz3ABoC9F0Da2^vBt(v7QStJvvKneTaUlHZ)!S%1D75* z#ZabygWx8)}e2mS+dtmYXpZu$;Q5CxkUm9(xUQf|Z4Ranylfvs$oii8o0kaL2 z6%s|{FRlQR8T(e>IPcJ&_XMOu*gz5T#LDUDjh4Vnu|AIBwk1~q{~`<+BV-fgg0#Of zGs`4R@<)YGx?Wom{|b5M7c{jDBcIX8K`wxwPsCAb0U|$kNUij(W2k3x*Oz0)&SZmR zLee!nj$cy8nU8}=*CgVleYn;)Ph#|G?OqM47fafgw5hO8}wDP|<< z{B*0Ntc3$IRDgvTaippWO%Z=)r@`dIbCDmL&j;NVyP17{!SZ6*nv?9a6ygmwu`xoQ zDCPr(%-r_uqOcHir8>`8Xp<$n0-V z31F5kW~iPR)f>Ddrocp}o;G$I2~b?1IoSN)w;4Ab2w*UlP#GDStH-R&yq=|hwFP1V*Pf-nyXvh$NSg9}_3-p-xB#w3jCjwSRKYahd)=U|^ zwGgsGYu52@j(ujhwJ1$no}Il=r_)QO1aMo1;bL*5$SQFu%h=}}LOGbVvS0|P=IZTt zA%L3Q*3A$FUj6z0u;Cln(3~TKTI0)Mo;~>%Oej)?FH^4d=5o*h(rim7e-@nCZm8r% zbDmA>lB z>j*XL%#(I1n(;y?Yc@w1vXVkNX4?-w=Z&?ag14QTP{yVkR7x$&M)KpbMgt8qT8tXwFk=`tWS={dFL6%C zUZP1QbbiJWpY>z-y5cO1K-5UNB%-9musp*r#F>V2_aNbeYxnl;?QG7O_OASk>RmS7u672Re-pEyN#=3nB#yOp3;?fLhuXzT>268*>R%w%QDn$X{ z{vgq52Itw86QY(2XE)I%7$9UpBd|eJIO-TA*0pBS^`2o4TmYk>LO5UpOOoHwzCD0% z_}t&!nJom>G+j#G(J`zH<({Z44+|2L%4kiqF}Z4#Bl49Z^(o{OqJ`vOCEWQ+3UVc% zyDB(M(?1l3jbxuUYFeimt;}*uij`%7oj9ZY?`nZfig9xb^Bf zy~w&5Z{M{xoGN!xb15t@eiHtK)=43P>vQQ<|NEJ96&Q>p8Rw&C>aZ2VlU^%^Hw#ve z%MXEfXY7@~Dy&ZE^L#%Q=@z7i+T>E}XRyDbeN|E`71DFkM22pS8fzDL7bf}(CKZIS ziI6ulDyY5f}w|O^le{#C>h9qm(rdeRJ*oxRp z>uT@0i}S%BcdUiHjFf9Do;2w>qBr&UQ^bdtLz<+~&8x{{XnHlC4xeWVCkQw=7x2D$ zeN=uQZ{y#S)fJdE)5#CD1X+!-meomzX+8ZsOG+M!o{E!?PKh7Is(QL858bXyLU!N# zJZ=ilU-l1!6Nlitx#FApYG&+?1>-yR9(@-@EIT%~YHm9EpY!qn-jan=SxB6FRohPV zj5t{gh|B9qOu?rF;?nWSIGzIoEc6D6lmC>0s%Ja1Vbzib9&kv-3m!E=?I?I@Z zQsc2f#K2$0!^b9OYqtPb&7(Q*e->&m@^U0$4KtDz&1bhFF^L>YBvAN>M_P}A@r6IR zXIjjPqzN;teq5Gkw(jI~?KQI!H#(buBGyhSHoOi~u9h0BXZEQ~XqPAK^%Dh8nN;!1 zO?|&ZtAh-{U-t%WFw0txD!{>QHRoKuNnVCd*Ye@AGCkG{PFmoXt#3dy}P&j+3l#x-R=h?zl)1Ir>MR(`L|tx-ckRZf!)ld z-#>YRITq?C=3yRu2bv7U2qfg@KcKKVQyjvj%VW}e_V;b6kF!f)YgO=dcgD(NImJ;MqPuI*DK`wO82AS~8Wcb*OEDF!L83V(<2ge%i z$#Jrn`4hb!0J@i$~?!I|9G9H{Wa;@9Y}RD3Pby+siYLIA6&&CagB3 zm7|`}etth*)Q=HP;-EnL=J1lNq^GHfqM~or+@)4&S)-CFHd*==%)Fcg z09K0Z+k}P&52H82qDFP5L|kXjcU8VEDlSu5(2ikP(c*K9k)|_)fX$d`8cd2HM&Cmg z;K!lrMYbcYoqvw33d3)Z+EJ6t8?eS+x^&irjjAGVUw0qJ|^zzB5 zT>5}h#{d;Aq@X#G;O>5Gnle!ctHt)6GM|5GK-lKE&(~xWE z@m2M{Pbf5(#^faf7tpp4x}o#KHbODqJ*8OukLW#y!Fvhw{HH9n|6!6YqTvA8K^u$2 zxMq0YJ%LKu@ZCIU$AZ_aOG#Nd3goqVrK#=qHog&5YtS zQe(bX=F;Y&PiT!kSx#{q6=TRJOLUnDiqd36R_< z#V_kF==1!KZ-=LL+Fxz;xHyOlZ-k33%xAonA6nf|I|t)$MY}WYQjh%Sg#kII|Mjfm z{rk31fAp^}8%09hFqpt-_-HgqZZv%MvUO3LID*DlPX+VqpFI7EuJaxTfL`r?!xXy3 z|IyT9T>|Aa|H-h-)%)(Rr~=x9i+%4;rlKq3;50iIIuFU0ka2@B@*P$pG02md;!# zjf8SrmRnMVMdx1>uT(9d6*i2KeIbDX7)!uVkmcy;#Y7|32Zbg$_x!)w-ZHAKF6tU3 zAq0m&DGtS@I23m)?pic>f#B{0w*n8I;w@5&J1OoKtfjaVDU{M8#f#naz2m+2@Av1+ z7#YcrlXFh?T6@j8)?Q~%smnPCddyl2E9z#ApNIbbdW&X zkC_wxcV2|PuS3?R`|;Ct7aBeRs_n!iN-ZLQ>hgnerp0pW5O&dYYQ5)r#vNAdsl^xw zT}8eBfVl6#o_GZSb0|7Ush-fAM$+*E=w8cVW~kh8pIqHYpBFzi%KEnz=1^Rnp@NO_ z_7fMUFKO$slNf}S+qJ0`wm%pvVE|EZF@9|D5IitB5(CH~2LPhuCdN>w(6M%x?2dmL zd+~?xKZs4IstlxEXBa{tL;kN1$;Bo(H4+bmp5*`Eu>T)@IbF5?Nn}${;ba>pTxqU+lPG8v@k~R#qii1ud> zSj;d{d`RA{RX|(cIK)Lf{mQ!p)DpyW_?83nh_FeKElbWT#SVW|r*wE}IAeWf!VIiBl<-`K`mqvg?PXXIe03Qbq{;Y4If^JUQ zBDN4QtvIoD5o06nZXY*Gq?e(y_z6_5l7To;b+IKHViuE zcXGVMks*BqlpJyx{pREh@NXp;U19!d1?OJ!gySB5Fb zHETEDi*F-teg#CxULAKUIofSfM}uCEIouGB{9d=dM$Mh*hj>b*-G+ow#&LHR-WZ4S zZI&#!Y@Ac`oxYjiiVh+sc^{O|hbcQyZf3Ga(i*?hnr zCSG3!c+!}Am#<-zSB=>48g(lLKN=s>afY5^=|{#sK|>3vKT}_xM)rW+vv4$|_4FKe zE-(*HEs)3QFQ@cp#oo`G20QuqzFBZ2XZKs0t?+qQr~ArAiGZsB>!&J#tGBE?+p@o^ zocUOgf{6I<6JIa_g5@T8B$UTBBF9{bEq2w1Q3C(~K)M)SPzE%4#{j&562ssJi#CX$ zh<|p_Iq9ap+0K}r5!#9x9McboJt(Z%opY>JbLYHc1-(qBFNnI>(kq| zbnSn1z=HxEU2us0g&J`Pl!zdqJr84nq)clCCl7G8L7x9!qG7f0=lKH{!OmEV2c;=` z_rv=yPOG=FYm@Ac#a~DEoqB|oi<@7M?flxteEp^!*>BF2g!HA;4wB5at&@tpwMfJ{ z6OlYiSg0e>Ln)Gcm6{I`?i!#`=iK=1-&MNsGdJ=!`)lT$7hBd4_>2hflBL3rIoWJ$ z|{-6CHpwvWxYc2}{^jOruszUhar4UQ6tPQYQ?7Ngu#jKUjjYA{$Y$PR`)B(YaQW*xmV`A zwF`$u2&-JXKdDQ8Le5n$=U!A-({8w7(er1$S7xy3*#gufW1 zFp4mzL@#T5%E;^Zbdk1t%C`_9DKlGS3|u`!rDn;S^T~5!^g)dFUkbCB)N#1RG|i~- z!6^_EmUI&0aeHbtduqlFh8O{0N)QLe*>8cg`_w8lGW(fN^qyBf6t0h-3KV60`91kM z5cpZ@W(c?P%G!zY`Oc~EQE&J&LM~N?m@G;~|1QbV$(VuN7yV6r-bC)SAar7p9tj_i z$H4jk0fL@G0ObEt25ggekswOg4?-M66^nX#sW)A>+_1-x>v^5=o8IrslM$F!U8Ckh z#~rdtd)kM7&w5U>e@9$7-^9nztJ)rVWQn$JT4Z9<8XjZ*dGvL`iQVF;!2`p z8Uws!=xq`Hb`($&4#HzVr-c9bA4rNq42AEAWM*06kL3-ZX6&uiKgtTT~P zXm^)Bn^^DUlb&0-!~8jErsD9`HNSSQTg1nvkUY)PJW*wdb0fBJdzB%UDln65kFJdW zSD>QOX$~eQO0kjnES(H2^qgQZ(x)U%Mq5xaLp6nfk^lz>6M(2N6fhJLZO)e`9Kjpq zdX4Mz#3{tI9{N;Q#q`tCj3Xt3TF#ktb*ZPXA>&l|&jOuse!~%$J)#!-53y!kr3^?0 z2pF!apg^9>0-q{Jv3!9-fHbR-eE=#cmW|>dkL`QJsLVfre0#b(ZR?BQts9P8?^3r!hS**r55u9p8$4O=35tS<#$9vI7Ilo&f_M#f9`#22kS6 zVmN?6czsa$T84kw5Q0k(Cjsyiqg&qE(*s&kcj`&lg*T5@k9n4Gy3i|lQW$Z#Fn4Et zKb966yx0EiXuWg0^vf56Q>|bAlBctW^|B_Tr=o{aGZ+1W?!6i85kfi5xiixDKJ|s} z#iURr3YZWlaux$uAzdV+fe>A{z-5X$S5QS)dZ=Q3-e4uIDByGd_{uWI<;rUCJ zQVQy5>+D4pM!_}oJFW_i`>brf3}eNvnQ*o-#4<&a)78EVc z&rrgy*_`;a=6MWMa&QgG!B6C9gj$2PV=nY#q+l^Y-PQaX%@Wt=U%g#U$==z4+Z+^l z(9~jA8|kW}pR>LyA&S*_$-u~qyNcs89;a#72gDR1PSgOxzI1}x#XF{M(WRPb5-9yG zPqoygd_o%7t=&L7*{64X)Tj9R{_bzC_5SW|O#OOT>`o^0LiI#+GtW*(DGy=w>>i@v zii5CwP%zqQjA$7isn3Xs&YM;?7}9nmGyLHrMgtzvQ)8{m4HEhL7C9@Z8MM!c-UQ>_}MCZ zWBBWF;L~*)^+ybVHsoAfdCcL-EGa$AM!L@>a)+c1A4O<3U|IrRYFK3t!!c%7N_cO? z&o}O_zEG`TtKE*jWBRH-ioM9Rd373Pz^vY2WyIf-qlCjqM4+864#_38Q(TD*%Iq7* zA|VA)9N`p+u7Tapcpy+2N-wmrbBrENS!C8g?LpS+mb9*_V^O2{R>aX#$0AB(7z-~ZD9yw*|T*C)f`y^5!xkb!5IZJFHRv$NSPRf0ygQ- zuMNL?UT0>ZUeh%m>zZ0_)<`pYde}ALLBL6ou7L@wXnw?VqSN(ks4wxVq?S* zgGH{|hE=HHzn|3KWq=JzXn%se$8h7=w!F-m=TX=%U6?`IqPnu#b$X5#)h3p@dHkI- z^(gJsrgb^cMwF3k__@fhpC8kPSCz9ahLsoRM-)E=OAraR5HZ!uS?)8UpMoe=!7(X? zCZV8Ama~d!nvVk(33@pLk!9JejkY>UfhtM(NpHlNIv}_F6#izn_&#?lLigu0ci%3W zBf85TVL-aVitFv&Kh3g1A0zxd9?xV0yU(h!6C<0cE|WV%-tLg>fjhysV8uSuQi54C zTlD-+&$GdKmwzuqr6RB}@FJk%RZaZvkJr#l$4=LRV!j&VY%iSP<0UZA3t~Z_|6VAY?x3QFt?qXD+HG*UWtJ;DD9G(2&q;E>A^lM5{KM#MA ziQ7nL(7;J{x#)&wb2Z|~sj9WhSmuH_+%9yF+xF0v-SaBe`tHf&V)dEzeUEFqtwjsw6UKQ{3te zKY803N^nLME`Z}gXeN|}r%i^Xt_;S9Z~*hUQh{I^4gi`P!FxQFfgl!psMj|l0Yz>o zFWDG~v5Iqi?L1^x%2Yudln=RLR4S4TISA%73v_wqWl zhcp^o_K?-&=>5iN=jM+c95z01XZ7Uvf0OWezu8u$aTSB4O`~Kbgs;S<8iO%JH*l=z z{dd5N=P#%~{!(E0^x1`{&pD}#jnIHUX`2bcCI_@<451R_?4Xcztw#Ibrjqjy!g9W(wNYCjOHD85H@uV^YPBcU zZ|qjYQ~AXc%WTgJ!{F4EW@kdhTE-xKiT0oGl`h4xBJlME3|-b)DN+OqRlb^K#;aHH zI`9{GS1q{wu%M3PN9Ue9Ch-w}jy-K?RU(3o2-q!xkC4y)n#BPNsCudb_211Fj0CQeWaoAbz1NnSri##So zmw*Zyjitv($O^|ZlLJtfh_c8%4FQn;#9*ZiE2bI5EKB_I!u*+hft+`Ly3q7(%|fNr z)jT1Z%SHco?Xrp$LhLV=tV228=&a>^5I>z*7Mb=x>plPJ`uFQjW@Y%wv`xd{mf-5w zI;`L&YM9BV!S$yWFg%VDBLt90VR(9s1qT}v*)Rx+Wa3f6XrlXR+M&pDu*@_-&JYa( z0yueNvj(8NVuEEK>KL5}zyvmMM$IyLX{8Ji5>C~cm=+#$A}62-QG%u*)-(&o zhpc63wy(kT3vH=`_r9-~q_{MaPe}VU*)=#dJlwOI>>W~#J5Th#T8Or)w5(x%wy)ri zVGXMER5HbD#!^e=h?_trF(--3DnHNJO|a!$5Ws24sSBECz@yT;W z2PwUov-sfW@Um|HufrMrh}XGevw#V;hjSnO(n(xq=99Ao^LBScK;Xm8{uFcgxk|)& za{KYxO(Wm^_2acuPtSgR_+`SyvmTpNE)?$SIKg@i*vp%x0?S`WlTaj@s@hYOaLe}N zu#f0J(oD^;8VT@;e_OEhBYqjw80fiQ=%m^=jT}U^E>!?gKOiqC;=ZOxjfZWmR(ru&l#LW=!7^bPrnAoNQV- zroXFZ9pP}0^5E!GW`jP5412SXHK1#|k{DEmUY?9kR9Sd^H^|_~cOa@Ckt7r_LqSju z=|FnA`dCVOWHW(zj_xd2wUMv$ceiIWb4|RJufPGE zv^E}%(GC7KFIKv2Q1s?kL=w43hS)6`k}Z-1j#NJZ-;yU@o8@Fa4tt+n%f(!T`RMc} zp!7+UVc|sip9E>>|B|*EpYe`(y-4|2X`|QH)(#C0{`miU(dpgUOuow6Ug_$|j_h=2 z;Ks?F_2$0yjcmjg?7`zmH2j3vGG3>)RE^uYEAOqNa6)O)Z_w&6%Gnqzi2!6z%E}>3 zIf_n?e4LzZrODMvI>Vf-GIq3-ff@|VL#&*TJ;H99r*`=o+ZhlBTv*1a4BqozzwJRa z&;01ev6I~4P9$Ob&E65(fq2)tLrg;HWoAVG-tEisZET&N8+IlCzcDHQ0e53|g%3{# zv%s^eRSnU6&0Dk=%vOPlFZ39nTae8u+06%*>e*?YaI&>ga4Tt%IYeK}*$+lv zCN%W@B9au67QQ#N^qanUjOaZcHTc@9=y80G8fcnrK8xt~=li95DCe3jFcmCi3saDa zU+ZXU-t7+_reUwXN*f#(eLZ(iU=GG2(soGV@p>us5-$E8L<_?LlP=38sp_(o?UJXL zuvM{^mEozE_?1`dyH&l4Zb>pLWyxSQabU~R^fUels6ead>31+xyN=Hy^~6{m)YYeb zImh)KF_}9#KSN!Vj|>KcS`9h1yw$fp`nL3_{g)wC9Psp`O-c4=vj6m)v<62qyuZ63 zHLA=M%}9(bCf>(zg#G!(NU{Z1Z6b5z+AcMhEKS=^u-$u;aJy&0ISg9|8zzazButlE z2&N_ekjDPx?w-SU%4xZXU_TG@Sh7J{yscbXT@})4?CtevyS%!ZTDUk|oLT_v6I~OC zx}U^g(%TgsIYn+>jSFvvg?#Jmb<8~qu#A&YYOca{bK4VYZYLO_E+BYgBwSc}OzJ4V zP-etoSrR$?jz4vL{G)!7DK8$nZs%$5wDBc73c~oGNE>cqPNIM?m*x4qv3v=HEfEN` zPq6>PJ9~;45;~CU%EX+eJ?Y-&S?dZiSc}Q;+uAC=N+O^?m8RdK? zhO@S9(hgxu43}CPKEJLx*}TQfD^8P$F0P^4MGvpr{-nl%qwjq0=D!6BK`cuT@$w<} zHG{q!c=qKluE4h4$63sIu+(6QS1`dLRwv79{c z&jg6j%Q}?FFCLq@sU^e}H}9pCSWsW#dvk(TxWtRq@-M(_xXaR^<1fpunAJX0>{Jm) ztC(vv-Q9>yJn)T5b)>#+T7{fXy&1qM)@Xi|QrH&6JhK&1c0(0ovPp_@4` zM>wW$$ZDiUSb%UTG;B_Oo1Q`Q^KF)vU9R%nyt2V_4d~Y zeq7FQbezsf`BIKyYVg1*>FnqZ?_VluSsdt*VE})|y$f z{9JkJcYXD^2HOL>)Wkfef*3;8;mbzzXyq7Z_Mvx_)Fi_vU=o`)b%HC`vA)nU8E!?Y=HnH>N<16|qBSIAwX{Uuze=lc6to6m zeXzq!{EXGi%kf{z`yfvX#0>tr<`Nqyr(uYSMh!ammTL4RC)>OCtpK$pH44CTI%Cv$ zr`)KMU|NFH1YF#Qp=d8s2phXV{M!L~0)zzya%_yu&HWdc^wov6EzSm_^Wow#N$9w8 z;Z30C9z)v--y7S*g|qb5pX#pL7Oq;J_#NtwPt6fp2-n8!<)NJQ-A*lJ=BMKd%aYb0 zPl~03j^p_*PC*s5Ey=6nyV?)z*8UM3n-)QR-dBQ!N<=iD@`Q+7YoN3$F^QxtASMQ& zA6C0MQvy{7#?wx37d^BeEm&9`ova=4o`t_;p_R7qnqU9^I+V)KIu<7n7bZdcq1H1W zP9S2*Y0=#=S{M=_zCo+EDs3n^FC0S|Psl6ex%20U_bQE^zu1qTsNhrYD<21GCvh%| z&W_PZ;?!~2?N-wKCN_69fNHBnm4k4Nh5CbNv z;geg=X4}86D1TK;-Hgba!4sSpIQY~@8urYWCBL+>>YF7amJ$Qp4P75!wST*y>H4M) z)Jp#O4NPqj%bfvNFi+}MqG(#G@S4yEx=|!1_H7=Z^T}Q2I|fmo)Yjfq{`MMrVT72N zc=$T}J&RhSwHtjwY`W7)Gn!%Jz5jl( z)p_rEhj2_gREV9?zN*!9&Eyo@GTbm%a&%FIiY|{ynh=MbuUyqE9!6x(^)?t};7f+A zg`GUVFXwZdOI!#RabsZ}(Tc?(Po^6wB_S17k>lV}Es=9iub878g|7ssny~*mve^0a zee%4%XTbd#ZCWwQDwe`x35&iWlBrpbYf0LVwrVi$d(HlzX`H>YOW*uxafxi4kn#-iSqRZKt4QYXzy zeWmQe^n|ngwWYzd1b#CaNj8xR)TyKGT4{ zm+SCJWWos$&G_(%r;rK!=H+CYdnD_eaW9pemddjbL7K$poguh?~I=a15Q9!2W-?0`MCB6-eW5`c#_wwsfP&dICpuDw`~E~dH* zN7WCw^iNu$8_CMVwTW-}Q`Kt6L)rE$q50{rr#Pa%uhqn{6hgMM2t|}|aDT;tSe2>? zS8=|O3TmmAiDmZhT9)jXjE4FT)yob7j^$|k0F^}7zKc_pLjOY2mvwY}jE|4sUfb9x z3c^=WQQ79HG3M$I(p@&^EI-{C*chR} z@tA;kxk!nO>EeIrW+#pgpJU#$;etYZ4aaI`2@#k`Z{#v$r4%R0nB`68RG&B95bPx# z_|iYv|F1%&eI~K)WgZnfI}P>t^x8SrisNv(Mo8EB-@^nIg09OG##W-x#L{C4?KqMx z9q#?);*6{e0wImB`eiK9+~d^W_5RD?9tWA*sKo)&(b7-q9Ss0jTiHoTLspzU5rLu; zroL&@zIRlA;$Kgtw>+Go3XEv*sv8)Md|Q*5U2Y4hWa4M3Wa4GnFSEUs`TSo10UDTW zMN!6_!%}-2p+yCshK+%pS%O0QOu@~qt5bx0{a73Geud(TSKZ5Iyt#4A-=3$fq8U+f z?EQV1b#M4O8kW`oI(|FgeWJjqpvydKEUN+oY58o_99CZsLI#}p-$ksiaMzyv`gs(vD!C!3BFs5O2EY6}_y zjqffmp58cwUkvT11%3JF1D<=4GtfS?`Q6Y#Oi|P$X_S_pKB-a+O@o|L1G%b=p6;W8 z3Db$%TE3R+lw2fVfX`y8c4hkcmp9DxuN?p>1E=tx^{%$=)o^h}n;c$9;yFhy;Q`9r*tR6HeOCM3>l zP>diwd+n7z%-^w-EQ1u_#&SqklbRW`Y&(5=s<_hdE}4bQ6na*{IJGqn9ww3YcOrOVD8cUJt!8Z2|UAGMv zFPs(GoR}nLkc4kkBs%ny#J~DfWNp_S61>qt4yz)jP}Q)DI7`8RgHK2y@l3Q*PU&Gz zT=CBQSF@?A>Mmzw0Ya2eN)W?j`5&QO+T0XPL-r$S7N;a7zNv}2uYKc0c}Shn?9iXE zr_pRaW?tQ>#M9J06iuF#Yv8ou5j;J5mXD7wPz(nu^y_A38ofVO+Qh{zs90Wt;i^SK zfJ2;4Oo?^)O#@4s)J?+gKwxehp`hF!f&K`m=$jhalQtrVxoF?r&xDzk(Lns||1Qya zq7!eYb%$8zWj#%G@w@LP8K}1Oxg>4#jfuZ?L5u zJ)vv|(^JydnNBTm6A;tWd;R{*s%<>l;zhXJ2Se0cIoHk8nzo8Bi$qe1z*qaMWSyFM zQwHNuyZ@1d*njAsjapTqA#YAye+5+>WO1wp#Ma`iy{fH>EPFJa*kdnS4G6;iNB^^c zAySNRx@*(T{L$_)yPQ2OX^(m!U!G`KOaL0hZr1W<#tGX{yNjQDh3|gw)!tNI5#2Cb z`;dh1E9X6Zg7tE6FdMB&#U1rSQ%N^}dA_XTK=MbDE;TJB08aRF>7`!78CSH%4I|?qObCG>(I0tt!2-oJXRgd1>%nl>MVWBh@7+NM5#)bE+%{yayiX(cCR`Cx z`yy785;B{Aez=HO!`|TgTLv3^s;TE}`uNpQNq6)~HU|McQf2TAEB^vlvaqVvyGvrv zzM0WYdzra)0~>W3j79lxE#HrY@0X|Bt0kC73ZkHyg?S`C-;c~`eqj#jqv7-9FVCpq<}IgM|KTk zUJEBeumpkve&ls6Qp&7s1nx}6?-zC6LwF;*O21>)EWXduAlaDu!I$;<_?$IIP-6#K zGJ{I4{i;!W8e}1AJ{Yb3Z*xCBm#vBYSRlZ7U<(;Ph>Kw;9J* z6jw)z(i2kQfmcUgg+pPWjPYIkQCaOX#bVR58QHt%o7aSBVb|lNAi4e*-vZb3W};p_ zLopqY%U7eDCI|?Xl|P)=XLe`=%+S-9$I%UL{nhx%F*Z*61DqCdRyHgvV) zbl_IDGa%S89j(hJu3qjM`FU|VU8o#u^1LfU4mfWAC$<_8fq8u;ns%M*0lWT5Y^4@{ z$a`)hM}R1(QOfUcqOioCL~;nS^(#cOzZ_+ z0HMag!RRO?K#=I>$oe79tRIK@bH6E~3*T3B;}FFRCg5w!wNj8`y8e6Jhiyz9Cx3V$ zG192KXY}9f3M8m8?#qhCWSiOHK-(`e^ELGJJJhy{CypAsyxID z1Z@r=WIaFB%Sw>`%LLGHo?yoFkI=dKS~|6T(sryq<_khv{0*YN`Eh%NQn{Q$(7>qv zjhg)*<8aXR3U+qym12D8?Iin2NPS*6l`kEENIo8704G*AlD|#-7YJbTzwxyv+J2%T%Uh~-<2 zb-;+_LH9f7sQ`V{W1?CTKE%Yh$tc69>~YwR!Tt7sZXEjlHRGe(Q!~eR&wgV^*7r#N zxtI0C4?idDkR6aJ;Yf$S5R-$mcmiJnS3&ZX7&QF;w$TuHUY8^&bKG9=Mj-&_Zq5;{ zgtEEQ-y8DON(Sy?m!js$L<51sR* zrcsV*rZmPdr7NvOiaYc<{^2G0ci3+CNFREq{`y-EF#3$7t7WkOWoR^^vmN})5)&E2 ze>QB#ME&-H2+fU5^0|l4Y-hdEqkWXoZwkvY4HW6bv*Q*BfNGRa7`0i^RF2|*&M18# z`7pVamg4b)IQp^e)YY=VAw@h}t`>}236M{KF#H(c#v^-Y_XmZKzP|mRqKiV=u*2(_ z$CE8OFHQt6tMj$OoDB|VtV-^CFJ|x80`BVv z7xSdfhW`B}wtXUoy1P=ohrP|Nh#SS`o{*h~xxd4O->0hsOb!PZ-D^GWv!C4$S^m%U y5TQ2LTf|||tIg0Kn9~35;GbRo?|tZ8JOV7)tS7$jal~PuUuw$QN_7g*sQ(8%j6Prh diff --git a/web/src/assets/images/menu/userMemory_active.svg b/web/src/assets/images/menu/userMemory_active.svg deleted file mode 100644 index 554dc0bc..00000000 --- a/web/src/assets/images/menu/userMemory_active.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - 编组 29 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/src/components/Empty/index.tsx b/web/src/components/Empty/index.tsx index 53f52941..3aa2bb50 100644 --- a/web/src/components/Empty/index.tsx +++ b/web/src/components/Empty/index.tsx @@ -6,7 +6,6 @@ interface EmptyProps { url?: string; size?: number | number[]; title?: string; - isNeedSubTitle?: boolean; subTitle?: string; className?: string; } @@ -14,7 +13,6 @@ const Empty: FC = ({ url, size = 200, title, - isNeedSubTitle = true, subTitle, className = '', }) => { @@ -22,12 +20,12 @@ const Empty: FC = ({ const width = Array.isArray(size) ? size[0] : size ? size : url ? 200 : 88; const height = Array.isArray(size) ? size[1] : size ? size : url ? 200 : 88; - const curSubTitle = isNeedSubTitle ? (subTitle || t('empty.tableEmpty')) : null; + subTitle = subTitle || t('empty.tableEmpty'); return (
404 - {title &&
{title}
} - {curSubTitle &&
{subTitle}
} + {title &&
{title}
} + {subTitle &&
{subTitle}
}
); } diff --git a/web/src/components/Header/index.tsx b/web/src/components/Header/index.tsx index 6ce5484e..9aeeab6b 100644 --- a/web/src/components/Header/index.tsx +++ b/web/src/components/Header/index.tsx @@ -3,6 +3,7 @@ import { Layout, Dropdown, Space, Breadcrumb } from 'antd'; import type { MenuProps, BreadcrumbProps } from 'antd'; import { UserOutlined, LogoutOutlined, SettingOutlined } from '@ant-design/icons'; import { useTranslation } from 'react-i18next'; +import { useLocation } from 'react-router-dom'; import { useUser } from '@/store/user'; import { useMenu } from '@/store/menu'; import styles from './index.module.css' @@ -12,12 +13,35 @@ const { Header } = Layout; const AppHeader: FC<{source?: 'space' | 'manage';}> = ({source = 'manage'}) => { const { t } = useTranslation(); + const location = useLocation(); const settingModalRef = useRef(null) const userInfoModalRef = useRef(null) const { user, logout } = useUser(); const { allBreadcrumbs } = useMenu(); - const breadcrumbs = allBreadcrumbs[source] || []; + + // 根据当前路由动态选择面包屑源 + const getBreadcrumbSource = () => { + const pathname = location.pathname; + + // 知识库列表页面使用默认的 space 面包屑 + if (pathname === '/knowledge-base') { + return 'space'; + } + + // 知识库详情相关页面使用独立的面包屑 + if (pathname.includes('/knowledge-base/') && pathname !== '/knowledge-base') { + return 'space-detail'; + } + + // 其他页面使用传入的 source + return source; + }; + + const breadcrumbSource = getBreadcrumbSource(); + const breadcrumbs = allBreadcrumbs[breadcrumbSource] || []; + + // 处理退出登录 const handleLogout = () => { diff --git a/web/src/components/Layout/AuthLayout.tsx b/web/src/components/Layout/AuthLayout.tsx index a969298d..c53be942 100644 --- a/web/src/components/Layout/AuthLayout.tsx +++ b/web/src/components/Layout/AuthLayout.tsx @@ -6,7 +6,6 @@ import { useNavigationBreadcrumbs } from '@/hooks/useNavigationBreadcrumbs'; import AppHeader from '@/components/Header'; import Sider from '@/components/SiderMenu' import { useUser } from '@/store/user'; -import { cookieUtils } from '@/utils/request'; const { Content } = Layout; @@ -19,12 +18,7 @@ const AuthLayout: FC = () => { // 自动更新面包屑导航 useNavigationBreadcrumbs('manage'); useEffect(() => { - const authToken = cookieUtils.get('authToken') - if (!authToken && !window.location.hash.includes('#/login')) { - window.location.href = `/#/login`; - } else { - getUserInfo() - } + getUserInfo() }, []); return ( diff --git a/web/src/components/Layout/AuthSpaceLayout.tsx b/web/src/components/Layout/AuthSpaceLayout.tsx index 17ee0bac..acc2cdb0 100644 --- a/web/src/components/Layout/AuthSpaceLayout.tsx +++ b/web/src/components/Layout/AuthSpaceLayout.tsx @@ -6,7 +6,6 @@ import { useNavigationBreadcrumbs } from '@/hooks/useNavigationBreadcrumbs'; import AppHeader from '@/components/Header'; import Sider from '@/components/SiderMenu'; import { useUser } from '@/store/user'; -import { cookieUtils } from '@/utils/request'; const { Content } = Layout; @@ -19,13 +18,8 @@ const AuthSpaceLayout: FC = () => { // 自动更新面包屑导航 useNavigationBreadcrumbs('space'); useEffect(() => { - const authToken = cookieUtils.get('authToken') - if (!authToken && !window.location.hash.includes('#/login')) { - window.location.href = `/#/login`; - } else { - getUserInfo() - getStorageType() - } + getUserInfo() + getStorageType() }, []); return ( diff --git a/web/src/hooks/useBreadcrumbManager.ts b/web/src/hooks/useBreadcrumbManager.ts new file mode 100644 index 00000000..bd18f4f8 --- /dev/null +++ b/web/src/hooks/useBreadcrumbManager.ts @@ -0,0 +1,248 @@ +import { useCallback } from 'react'; +import { useNavigate } from 'react-router-dom'; +import { useMenu } from '@/store/menu'; +import type { MenuItem } from '@/store/menu'; + +export interface BreadcrumbItem { + id: string; + name: string; + type?: 'knowledgeBase' | 'folder' | 'document'; +} + +export interface BreadcrumbPath { + knowledgeBaseFolderPath: BreadcrumbItem[]; // 知识库文件夹路径 + knowledgeBase?: BreadcrumbItem; // 知识库信息 + documentFolderPath: BreadcrumbItem[]; // 文档文件夹路径 + document?: BreadcrumbItem; // 文档信息 +} + +export interface BreadcrumbOptions { + onKnowledgeBaseMenuClick?: () => void; + onKnowledgeBaseFolderClick?: (folderId: string, folderPath: BreadcrumbItem[]) => void; + // 新增:区分面包屑类型 + breadcrumbType?: 'list' | 'detail'; +} + +export const useBreadcrumbManager = (options?: BreadcrumbOptions) => { + const { allBreadcrumbs, setCustomBreadcrumbs } = useMenu(); + const navigate = useNavigate(); + + const updateBreadcrumbs = useCallback((breadcrumbPath: BreadcrumbPath) => { + const breadcrumbType = options?.breadcrumbType || 'list'; + + // 获取基础面包屑,对于详情页面,使用列表页面的基础面包屑作为起点 + const baseBreadcrumbs = breadcrumbType === 'list' + ? (allBreadcrumbs['space'] || []) + : (allBreadcrumbs['space'] || []); // 详情页面也从 space 获取基础面包屑 + + // 只保留知识库菜单项之前的面包屑 + const knowledgeBaseMenuIndex = baseBreadcrumbs.findIndex(item => item.path === '/knowledge-base'); + const filteredBaseBreadcrumbs = knowledgeBaseMenuIndex >= 0 + ? baseBreadcrumbs.slice(0, knowledgeBaseMenuIndex + 1) + : baseBreadcrumbs; + + // 给"知识库管理"添加点击事件 + const breadcrumbsWithClick = filteredBaseBreadcrumbs.map((item) => { + if (item.path === '/knowledge-base') { + return { + ...item, + onClick: (e?: React.MouseEvent) => { + e?.preventDefault(); + e?.stopPropagation(); + + if (options?.onKnowledgeBaseMenuClick) { + // 如果提供了回调函数,执行回调 + options.onKnowledgeBaseMenuClick(); + } else if (breadcrumbType === 'detail') { + // 知识库详情页面:没有回调函数时,返回到知识库列表页面 + navigate('/knowledge-base', { + state: { + resetToRoot: true, + } + }); + } + return false; + }, + }; + } + return item; + }); + + let customBreadcrumbs: MenuItem[] = [...breadcrumbsWithClick]; + + if (breadcrumbType === 'list') { + // 知识库列表页面:只显示知识库文件夹路径 + customBreadcrumbs = [ + ...breadcrumbsWithClick, + ...breadcrumbPath.knowledgeBaseFolderPath.map((folder, index) => ({ + id: 0, + parent: 0, + code: null, + label: folder.name, + i18nKey: null, + path: null, + enable: true, + display: true, + level: 0, + sort: 0, + icon: null, + iconActive: null, + menuDesc: null, + deleted: null, + updateTime: 0, + new_: null, + keepAlive: false, + master: null, + disposable: false, + appSystem: null, + subs: [], + onClick: (e?: React.MouseEvent) => { + e?.preventDefault(); + e?.stopPropagation(); + + // 如果有回调函数,直接调用回调函数来更新状态 + if (options?.onKnowledgeBaseFolderClick) { + options.onKnowledgeBaseFolderClick(folder.id, breadcrumbPath.knowledgeBaseFolderPath.slice(0, index + 1)); + } else { + // 否则使用导航(兜底逻辑) + navigate('/knowledge-base', { + state: { + navigateToFolder: folder.id, + folderPath: breadcrumbPath.knowledgeBaseFolderPath.slice(0, index + 1) + } + }); + } + return false; + }, + })), + ]; + } else { + // 知识库详情页面:显示知识库名称 + 文档文件夹路径 + 文档名称 + customBreadcrumbs = [ + ...breadcrumbsWithClick, + + // 添加知识库名称 + ...(breadcrumbPath.knowledgeBase ? [{ + id: 0, + parent: 0, + code: null, + label: breadcrumbPath.knowledgeBase.name, + i18nKey: null, + path: null, + enable: true, + display: true, + level: 0, + sort: 0, + icon: null, + iconActive: null, + menuDesc: null, + deleted: null, + updateTime: 0, + new_: null, + keepAlive: false, + master: null, + disposable: false, + appSystem: null, + subs: [], + onClick: (e?: React.MouseEvent) => { + e?.preventDefault(); + e?.stopPropagation(); + // 返回到知识库详情页的根目录 + const navigationState = { + fromKnowledgeBaseList: true, + knowledgeBaseFolderPath: breadcrumbPath.knowledgeBaseFolderPath, + resetToRoot: true, // 添加重置到根目录的标志 + refresh: true, // 添加刷新标志 + timestamp: Date.now(), // 添加时间戳确保状态变化 + }; + navigate(`/knowledge-base/${breadcrumbPath.knowledgeBase!.id}/private`, { + state: navigationState, + replace: true // 使用 replace 避免历史记录堆积 + }); + return false; + }, + }] : []), + + // 添加文档文件夹路径 + ...breadcrumbPath.documentFolderPath.map((folder, index) => ({ + id: 0, + parent: 0, + code: null, + label: folder.name, + i18nKey: null, + path: null, + enable: true, + display: true, + level: 0, + sort: 0, + icon: null, + iconActive: null, + menuDesc: null, + deleted: null, + updateTime: 0, + new_: null, + keepAlive: false, + master: null, + disposable: false, + appSystem: null, + subs: [], + onClick: (e?: React.MouseEvent) => { + e?.preventDefault(); + e?.stopPropagation(); + // 返回到知识库详情页的对应文件夹 + const navigationState = { + fromKnowledgeBaseList: true, + knowledgeBaseFolderPath: breadcrumbPath.knowledgeBaseFolderPath, + navigateToDocumentFolder: folder.id, + documentFolderPath: breadcrumbPath.documentFolderPath.slice(0, index + 1), + refresh: true, // 添加刷新标志 + timestamp: Date.now(), // 添加时间戳确保状态变化 + }; + navigate(`/knowledge-base/${breadcrumbPath.knowledgeBase!.id}/private`, { + state: navigationState, + replace: true // 使用 replace 避免历史记录堆积 + }); + return false; + }, + })), + + // 添加文档名称(如果存在) + ...(breadcrumbPath.document ? [{ + id: 0, + parent: 0, + code: null, + label: breadcrumbPath.document.name, + i18nKey: null, + path: null, + enable: true, + display: true, + level: 0, + sort: 0, + icon: null, + iconActive: null, + menuDesc: null, + deleted: null, + updateTime: 0, + new_: null, + keepAlive: false, + master: null, + disposable: false, + appSystem: null, + subs: [], + // 文档名称不可点击 + }] : []), + ]; + } + + // 根据面包屑类型使用不同的键,实现独立的面包屑路径 + const breadcrumbKey = breadcrumbType === 'list' ? 'space' : 'space-detail'; + + + + setCustomBreadcrumbs(customBreadcrumbs, breadcrumbKey); + }, [setCustomBreadcrumbs, navigate, options?.breadcrumbType, options?.onKnowledgeBaseMenuClick, options?.onKnowledgeBaseFolderClick]); + + return { + updateBreadcrumbs, + }; +}; \ No newline at end of file diff --git a/web/src/hooks/useRouteGuard.ts b/web/src/hooks/useRouteGuard.ts index 23c31ec5..0bf6d485 100644 --- a/web/src/hooks/useRouteGuard.ts +++ b/web/src/hooks/useRouteGuard.ts @@ -11,8 +11,10 @@ export const checkAuthStatus = (): boolean => { // 递归检查路由是否存在于菜单数据中 export const checkRoutePermission = (menus: MenuItem[], currentPath: string): boolean => { - // 首页默认有权限 - if (currentPath === '/' || currentPath.includes('knowledge-detail')) return true; + // 首页和知识库相关页面默认有权限 + if (currentPath === '/' || currentPath.includes('knowledge-detail') || currentPath.includes('knowledge-base')) { + return true; + } for (const menu of menus) { // 检查当前菜单的path是否匹配 @@ -26,6 +28,7 @@ export const checkRoutePermission = (menus: MenuItem[], currentPath: string): bo } } } + return false; }; @@ -52,7 +55,7 @@ export const useRouteGuard = (source: 'space' | 'manage') => { const hasPermission = checkRoutePermission(menus, location.pathname); if (!hasPermission) { // 无权限访问该路由,重定向到无权限页面 - // navigate('/not-found', { replace: true }); + // navigate('/no-permission', { replace: true }); } } }, [navigate, location.pathname, location.search, location.hash, menus]); diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 41347c66..503f54f0 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -479,11 +479,18 @@ export const en = { noDataSets: 'No datasets yet, click the button below or drag files to create.', createEmptyDataSet: '+ Empty Dataset', createImageDataSet: '+ Image Dataset', + createContent: 'Create Content', + title: 'Title', + content: 'Content', + pleaseEnterTitle: 'Please enter title', + pleaseEnterContent: 'Please enter content', + // createImageDataSet: '+ Image Dataset', dragFilesHere: 'Drag files here to upload', createImport: 'Create/Import', textDataSet: 'Text Dataset', imageDataSet: 'Image Dataset', blankDataset: 'Blank Dataset', + customTextDataset: 'Custom Text Dataset', text: 'Text', search: 'Search', image: 'Image', @@ -1172,8 +1179,6 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re quickReply: 'Quick Reply', web_search: 'Online search', memory: 'Memory', - memoryConversationAnalysisEmpty: 'There is currently no dialogue analysis content available', - memoryConversationAnalysisEmptySubTitle: 'After entering your user ID, click on "Send" to view the conversation memory' }, login: { title: 'Red Bear Memory Science', diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 7aeaed03..1f9b315e 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -110,6 +110,11 @@ export const zh = { noDataSets: '暂无数据集,点击下方按钮或拖拽文件创建。', createEmptyDataSet: '+ 空白数据集', createImageDataSet: '+ 图片数据集', + createContent: '创建内容', + title: '标题', + content: '内容', + pleaseEnterTitle: '请输入标题', + pleaseEnterContent: '请输入内容', dragFilesHere: '拖拽文件到此处上传', downloadOriginal: '下载原始内容', createImport: '新建/导入', @@ -117,6 +122,7 @@ export const zh = { imageDataSet: '图片数据集', blankDataset: '空白数据集', emptyDataSet: '空白数据集', + customTextDataset: '自定义文本数据集', text: '文本', search: '搜索', image: '图片', @@ -1242,8 +1248,6 @@ export const zh = { startANewConversation: '开始新对话', normalReply: '正常回复', quickReply: '快速回复', - memoryConversationAnalysisEmpty: '当前没有可用的对话分析内容', - memoryConversationAnalysisEmptySubTitle: '输入用户ID后,单击“发送”查看对话记忆' }, login: { title: '红熊记忆科学', diff --git a/web/src/store/menu.ts b/web/src/store/menu.ts index 7e725921..f6a66077 100644 --- a/web/src/store/menu.ts +++ b/web/src/store/menu.ts @@ -32,7 +32,7 @@ interface MenuState { allBreadcrumbs: Record<'space' | 'manage' | string, MenuItem[]>; loadMenus: (source: 'space' | 'manage') => void; updateBreadcrumbs: (keyPath: string[], source: 'space' | 'manage') => void; - setCustomBreadcrumbs: (breadcrumbs: MenuItem[], source: 'space' | 'manage') => void; + setCustomBreadcrumbs: (breadcrumbs: MenuItem[], source: string) => void; } const initBreadcrumbs = localStorage.getItem('breadcrumbs') || '[]' diff --git a/web/src/views/ApplicationConfig/components/Chat.tsx b/web/src/views/ApplicationConfig/components/Chat.tsx index 9a70b5f2..8adb642a 100644 --- a/web/src/views/ApplicationConfig/components/Chat.tsx +++ b/web/src/views/ApplicationConfig/components/Chat.tsx @@ -2,9 +2,9 @@ import { type FC, useRef, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import clsx from 'clsx' import { Input, Form } from 'antd' -import ChatIcon from '@/assets/images/application/chat.png' +import ChatIcon from '@/assets/images/application/chat.svg' import ChatSendIcon from '@/assets/images/application/chatSend.svg' -import DebuggingEmpty from '@/assets/images/application/debuggingEmpty.png' +import DebuggingEmpty from '@/assets/images/application/debuggingEmpty.svg' import type { ChatItem, ChatData, Config } from '../types' import { runCompare, draftRun } from '@/api/application' import Empty from '@/components/Empty' @@ -240,7 +240,6 @@ const Chat: FC = ({ chatList, data, updateChatList, handleSave, sourc {chatList.length === 0 ? = ({ chatList, data, updateChatList, handleSave, sourc

} {!chat.list || chat.list.length === 0 - ? + ? : (
scrollContainerRefs.current[index] = el} className={clsx(`rb:relative rb:overflow-y-auto rb:overflow-x-hidden`, { 'rb:h-[calc(100vh-186px)]': isCluster, diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx index 92059e7e..7139230d 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx @@ -8,15 +8,14 @@ import type { UploadFileResponse,KnowledgeBaseDocumentData } from '@/views/Knowl import type { ColumnsType } from 'antd/es/table'; import UploadFiles from '@/components/Upload/UploadFiles'; import type { UploadRequestOption } from 'rc-upload/lib/interface'; -import { uploadFile, getDocumentList, previewDocumentChunk, parseDocument, updateDocument, deleteDocument } from '@/api/knowledgeBase'; +import { uploadFile, getDocumentList, parseDocument, updateDocument, deleteDocument } from '@/api/knowledgeBase'; import exitIcon from '@/assets/images/knowledgeBase/exit.png'; -import { NoData } from '../components/noData'; -import noDataIcon from '@/assets/images/knowledgeBase/noData.png'; + import SliderInput from '@/components/SliderInput'; import DelimiterSelector from '../components/DelimiterSelector'; const { confirm } = Modal const { TextArea } = Input; -import styles from '../index.module.css'; + const style: React.CSSProperties = { display: 'flex', gap: 16, @@ -71,12 +70,11 @@ const CreateDataset = () => { const initialFileIds = locationState.fileIds ?? (locationState.fileId ? [locationState.fileId] : []); const [current, setCurrent] = useState(stepIndexMap[initialStepKey]); const tableRef = useRef(null); + + const [data, setData] = useState([]); - const [chunkData, setChunkData] = useState([]); - const [total, setTotal] = useState(0); const [rechunkFileIds, setRechunkFileIds] = useState(initialFileIds); - const [curSelectedFileId, setCurSelectedFileId] = useState(-1); - const [previewLoading, setPreviewLoading] = useState(false); + const [pollingLoading, setPollingLoading] = useState(false); const pollingTimerRef = useRef | null>(null); const [delimiter, setDelimiter] = useState(undefined); @@ -121,6 +119,7 @@ const CreateDataset = () => { layout_recognize:'DeepDOC', delimiter: delimiter, chunk_token_num: blockSize, + auto_question: processingMethod === 'directBlock' ? 0 : 1, } } updateDocument(id, params) @@ -145,7 +144,7 @@ const CreateDataset = () => { }); return; } - debugger + // 显示确认弹框 confirm({ @@ -168,7 +167,7 @@ const CreateDataset = () => { const startProcessing = (autoReturnToList: boolean) => { // 触发文档解析 rechunkFileIds.map((id) => { - parseDocument(id); + parseDocument(id, {}); }); // 开启 loading @@ -276,21 +275,7 @@ const CreateDataset = () => { onError?.(error as Error); }); }; - // 点击文件 预览分块 - const handlePreview = async(item: KnowledgeBaseDocumentData, index: number) => { - setCurSelectedFileId(index); - setPreviewLoading(true); - try{ - const res = await previewDocumentChunk(knowledgeBaseId ?? '', item.id ?? ''); - setChunkData(res.items || []); - setTotal(res.page.total || 0); - console.log('res', res); - }catch(error) { - console.log('error', error); - } finally { - setPreviewLoading(false); - } - } + // 轮询检查文档处理状态 // autoReturn: 是否在所有文档完成时自动返回列表页 @@ -346,6 +331,8 @@ const CreateDataset = () => { state: { refresh: true, timestamp: Date.now(), // 添加时间戳确保每次都是新的 state + // 保持返回到原来的文档文件夹位置 + navigateToDocumentFolder: parentId !== knowledgeBaseId ? parentId : undefined, }, }); } else { diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx index 1994c456..b96dff75 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx @@ -4,11 +4,12 @@ * @Author: yujiangping * @Date: 2025-11-15 16:13:47 * @LastEditors: yujiangping - * @LastEditTime: 2025-11-29 19:46:46 + * @LastEditTime: 2025-12-12 20:02:05 */ import { useEffect, useState, useRef, type FC } from 'react'; import { useNavigate, useParams, useLocation } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; +import { useBreadcrumbManager, type BreadcrumbPath } from '@/hooks/useBreadcrumbManager'; import { Button, Spin, message, Switch } from 'antd'; import { getDocumentDetail, getDocumentChunkList, downloadFile, updateDocument, updateDocumentChunk, createDocumentChunk } from '@/api/knowledgeBase'; import type { KnowledgeBaseDocumentData, RecallTestData } from '@/views/KnowledgeBase/types'; @@ -25,7 +26,18 @@ const DocumentDetails: FC = () => { const navigate = useNavigate(); const { knowledgeBaseId } = useParams<{ knowledgeBaseId: string }>(); const location = useLocation(); - const { documentId, parentId: locationParentId } = location.state as { documentId: string; parentId?: string }; + const { updateBreadcrumbs } = useBreadcrumbManager({ + breadcrumbType: 'detail' + }); + const { + documentId, + parentId: locationParentId, + breadcrumbPath + } = location.state as { + documentId: string; + parentId?: string; + breadcrumbPath?: BreadcrumbPath; + }; const [loading, setLoading] = useState(false); const [document, setDocument] = useState(null); const [chunkList, setChunkList] = useState([]); @@ -44,6 +56,13 @@ const DocumentDetails: FC = () => { } }, [documentId]); + // 更新面包屑 + useEffect(() => { + if (breadcrumbPath) { + updateBreadcrumbs(breadcrumbPath); + } + }, [breadcrumbPath, updateBreadcrumbs]); + // 当文档加载完成且 progress === 1 时,加载分块列表 useEffect(() => { if (document && document.progress === 1 && !isManualRefreshRef.current) { @@ -179,7 +198,18 @@ const DocumentDetails: FC = () => { }; const handleBack = () => { - if (knowledgeBaseId) { + if (knowledgeBaseId && breadcrumbPath) { + // 返回到知识库详情页,并传递面包屑信息以恢复状态 + const navigationState = { + fromKnowledgeBaseList: true, + knowledgeBaseFolderPath: breadcrumbPath.knowledgeBaseFolderPath, + navigateToDocumentFolder: locationParentId, + documentFolderPath: breadcrumbPath.documentFolderPath, + timestamp: Date.now(), // 添加时间戳确保状态变化 + }; + navigate(`/knowledge-base/${knowledgeBaseId}/private`, { state: navigationState }); + } else if (knowledgeBaseId) { + // 降级处理:直接跳转到知识库详情页 navigate(`/knowledge-base/${knowledgeBaseId}/private`); } }; diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx index 7c43b79f..96b1af9d 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx @@ -1,5 +1,5 @@ -import { useEffect, useState, useRef, type FC } from 'react'; +import { useEffect, useState, useRef, useCallback, type FC } from 'react'; import { useNavigate, useParams, useLocation } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { Switch, Button, Dropdown, Space, Modal, message } from 'antd'; @@ -12,26 +12,29 @@ import { MoreOutlined } from '@ant-design/icons'; import folderIcon from '@/assets/images/knowledgeBase/folder.png'; import textIcon from '@/assets/images/knowledgeBase/text.png'; import editIcon from '@/assets/images/knowledgeBase/edit.png'; +import blankIcon from '@/assets/images/knowledgeBase/blankDocument.png'; import { getKnowledgeBaseDetail, deleteDocument, downloadFile, updateKnowledgeBase } from '@/api/knowledgeBase'; -import type { - CreateModalRef, - KnowledgeBaseListItem, - RecallTestDrawerRef, - CreateFolderModalRef, - CreateImageModalRef, - ShareModalRef, - CreateDatasetModalRef,FolderFormData, - KnowledgeBaseDocumentData +import { + type CreateModalRef, + type KnowledgeBaseListItem, + type RecallTestDrawerRef, + type CreateFolderModalRef, + type CreateSetModalRef, + type ShareModalRef, + type CreateDatasetModalRef,type FolderFormData, + type KnowledgeBaseDocumentData, } from '@/views/KnowledgeBase/types'; import RecallTestDrawer from '../components/RecallTestDrawer'; import CreateFolderModal from '../components/CreateFolderModal'; +import CreateContentModal from '../components/CreateContentModal'; import CreateModal from '../components/CreateModal'; import ShareModal from '../components/ShareModal'; import CreateDatasetModal from '../components/CreateDatasetModal'; import CreateImageDataset from '../components/CreateImageDataset'; import FolderTree, { type TreeNodeData } from '../components/FolderTree'; import { formatDateTime } from '@/utils/format'; -import { useMenu } from '@/store/menu'; + +import { useBreadcrumbManager, type BreadcrumbItem } from '@/hooks/useBreadcrumbManager'; import './Private.css' const { confirm } = Modal // 树节点数据类型 @@ -48,7 +51,8 @@ const Private: FC = () => { const [tableApi, setTableApi] = useState(undefined); const recallTestDrawerRef = useRef(null); const createFolderModalRef = useRef(null); - const createImageDataset = useRef(null) + const createImageDataset = useRef(null) + const createContentModalRef = useRef(null); const [knowledgeBase, setKnowledgeBase] = useState(null); const [folder, setFolder] = useState({ kb_id:knowledgeBaseId ?? '', @@ -56,47 +60,47 @@ const Private: FC = () => { }); const [query, setQuery] = useState>({ orderby: 'created_at', - desc: true, + desc: true }); const modalRef = useRef(null) const shareModalRef = useRef(null); const datasetModalRef = useRef(null); const [folderTreeRefreshKey, setFolderTreeRefreshKey] = useState(0); - const { allBreadcrumbs, setCustomBreadcrumbs } = useMenu(); - const [folderPath, setFolderPath] = useState>([]); + const [autoExpandPath, setAutoExpandPath] = useState>([]); + + const { updateBreadcrumbs } = useBreadcrumbManager({ + breadcrumbType: 'detail', + // 不提供 onKnowledgeBaseMenuClick,让它使用默认的导航行为(返回列表页面) + onKnowledgeBaseFolderClick: useCallback((folderId: string, folderPath: Array<{ id: string; name: string }>) => { + // 点击文件夹面包屑时,导航到对应文件夹 + setParentId(folderId); + setFolderPath(folderPath); + setSelectedKeys([folderId]); + setFolder({ + kb_id: knowledgeBaseId ?? '', + parent_id: folderId + }); + + // 确保query对象发生变化,触发表格刷新 + setQuery({ + orderby: 'created_at', + desc: true, + parent_id: folderId, + _timestamp: Date.now() + }); + + // 确保API URL正确设置 + setTableApi(`/documents/${knowledgeBaseId}/documents`); + + // 手动触发表格刷新,确保数据更新 + setTimeout(() => { + tableRef.current?.loadData(); + }, 100); + }, [knowledgeBaseId]) + }); + const [folderPath, setFolderPath] = useState([]); const [selectedKeys, setSelectedKeys] = useState([]); - useEffect(() => { - if (knowledgeBaseId) { - let url = `/documents/${knowledgeBaseId}/${parentId}/documents`; - setTableApi(url); - fetchKnowledgeBaseDetail(knowledgeBaseId); - } - }, [knowledgeBaseId]); - - // 更新面包屑 - useEffect(() => { - if (knowledgeBase) { - updateBreadcrumbs(); - } - }, [knowledgeBase, folderPath]); - - // 监听 tableApi 变化,自动刷新表格数据 - useEffect(() => { - if (tableApi) { - tableRef.current?.loadData(); - } - }, [tableApi]); - - // 监听 location state 变化,如果有 refresh 标志则刷新列表 - useEffect(() => { - const state = location.state as { refresh?: boolean; timestamp?: number } | null; - if (state?.refresh) { - tableRef.current?.loadData(); - // 清除 state,避免重复刷新 - navigate(location.pathname, { replace: true, state: {} }); - } - }, [location.state]); - + const [knowledgeBaseFolderPath, setKnowledgeBaseFolderPath] = useState([]); const fetchKnowledgeBaseDetail = async (id: string) => { setLoading(true); try { @@ -109,110 +113,160 @@ const Private: FC = () => { } }; - // 更新面包屑,包含知识库名称和文件夹路径 - const updateBreadcrumbs = () => { - if (!knowledgeBase) return; - - const baseBreadcrumbs = allBreadcrumbs['space'] || []; - // 只保留知识库菜单项之前的面包屑 - const knowledgeBaseMenuIndex = baseBreadcrumbs.findIndex(item => item.path === '/knowledge-base'); - const filteredBaseBreadcrumbs = knowledgeBaseMenuIndex >= 0 - ? baseBreadcrumbs.slice(0, knowledgeBaseMenuIndex + 1) - : baseBreadcrumbs; - - const customBreadcrumbs = [ - ...filteredBaseBreadcrumbs, - { - id: 0, - parent: 0, - code: null, - label: knowledgeBase.name, - i18nKey: null, - path: null, - enable: true, - display: true, - level: 0, - sort: 0, - icon: null, - iconActive: null, - menuDesc: null, - deleted: null, - updateTime: 0, - new_: null, - keepAlive: false, - master: null, - disposable: false, - appSystem: null, - subs: [], - onClick: (e?: React.MouseEvent) => { - // 阻止默认行为和事件冒泡 - e?.preventDefault(); - e?.stopPropagation(); - // 点击知识库名称,回到根目录 - setParentId(knowledgeBaseId); - setFolder({ - kb_id: knowledgeBaseId ?? '', - parent_id: knowledgeBaseId ?? '' - }); - setTableApi(`/documents/${knowledgeBaseId}/${knowledgeBaseId}/documents`); - setFolderPath([]); - setSelectedKeys([knowledgeBaseId ?? '']); - return false; - }, - }, - ...folderPath.map((folder, index) => ({ - id: 0, - parent: 0, - code: null, - label: folder.name, - i18nKey: null, - path: null, - enable: true, - display: true, - level: 0, - sort: 0, - icon: null, - iconActive: null, - menuDesc: null, - deleted: null, - updateTime: 0, - new_: null, - keepAlive: false, - master: null, - disposable: false, - appSystem: null, - subs: [], - onClick: (e?: React.MouseEvent) => { - // 阻止默认行为和事件冒泡 - e?.preventDefault(); - e?.stopPropagation(); - // 点击文件夹,回到该文件夹层级 - setParentId(folder.id); - setFolder({ - kb_id: knowledgeBaseId ?? '', - parent_id: folder.id - }); - setTableApi(`/documents/${knowledgeBaseId}/${folder.id}/documents`); - // 更新文件夹路径,只保留到当前点击的文件夹 - setFolderPath(folderPath.slice(0, index + 1)); - setSelectedKeys([folder.id]); - return false; - }, - })), - ]; + useEffect(() => { + if (knowledgeBaseId) { + let url = `/documents/${knowledgeBaseId}/documents`; + setTableApi(url); + fetchKnowledgeBaseDetail(knowledgeBaseId); + } + }, [knowledgeBaseId]); - setCustomBreadcrumbs(customBreadcrumbs, 'space'); - }; + // 更新面包屑 + useEffect(() => { + if (knowledgeBase) { + updateBreadcrumbs({ + knowledgeBaseFolderPath, + knowledgeBase: { + id: knowledgeBase.id, + name: knowledgeBase.name, + type: 'knowledgeBase' + }, + documentFolderPath: folderPath, + }); + } + }, [knowledgeBase, knowledgeBaseFolderPath, folderPath, updateBreadcrumbs]); + + // 监听 tableApi 变化,自动刷新表格数据 + useEffect(() => { + if (tableApi) { + tableRef.current?.loadData(); + } + }, [tableApi]); + + // 监听 query 变化,确保表格数据更新 + useEffect(() => { + if (tableApi && query._timestamp) { + // 当 query 中有 _timestamp 时,说明是通过面包屑或其他方式触发的更新 + tableRef.current?.loadData(); + } + }, [query._timestamp, tableApi]); + + // 监听 location state 变化 + useEffect(() => { + const state = location.state as { + refresh?: boolean; + timestamp?: number; + fromKnowledgeBaseList?: boolean; + knowledgeBaseFolderPath?: BreadcrumbItem[]; + parentId?: string; + navigateToDocumentFolder?: string; + documentFolderPath?: BreadcrumbItem[]; + resetToRoot?: boolean; + } | null; + + if (state?.refresh) { + tableRef.current?.loadData(); + // 清除 state,避免重复刷新 + navigate(location.pathname, { replace: true, state: {} }); + } + + // 如果是从知识库列表页跳转过来的,设置知识库文件夹路径 + if (state?.fromKnowledgeBaseList && state?.knowledgeBaseFolderPath) { + setKnowledgeBaseFolderPath(state.knowledgeBaseFolderPath); + } + + // 如果需要重置到根目录(回到初始状态) + if (state?.resetToRoot) { + // 重置所有状态到初始状态,和页面初始化保持一致 + setParentId(knowledgeBaseId); + setFolderPath([]); + setSelectedKeys([]); + setFolder({ + kb_id: knowledgeBaseId ?? '', + parent_id: knowledgeBaseId ?? '' + }); + setQuery({ + orderby: 'created_at', + desc: true, + _timestamp: Date.now() // 添加时间戳确保query对象发生变化,触发API调用 + }); + + // 重新设置API URL + const rootUrl = `/documents/${knowledgeBaseId}/documents`; + setTableApi(rootUrl); + + // 清除自动展开路径 + setAutoExpandPath([]); + + // 刷新文件夹树(简单的刷新,不需要复杂的重置逻辑) + setFolderTreeRefreshKey((prev) => prev + 1); + + // 清除 state,避免重复处理 + navigate(location.pathname, { replace: true, state: {} }); + } + + // 如果是从文档详情页返回,恢复文档文件夹路径 + if (state?.navigateToDocumentFolder && state?.documentFolderPath) { + setFolderPath(state.documentFolderPath); + setParentId(state.navigateToDocumentFolder); + setFolder({ + kb_id: knowledgeBaseId ?? '', + parent_id: state.navigateToDocumentFolder + }); + setQuery(prevQuery => ({ + ...prevQuery, + parent_id: state.navigateToDocumentFolder, + _timestamp: Date.now() + })); + setTableApi(`/documents/${knowledgeBaseId}/documents`); + setSelectedKeys([state.navigateToDocumentFolder]); + + // 设置自动展开路径,让FolderTree自动展开到对应位置 + setAutoExpandPath(state.documentFolderPath); + + // 手动触发表格刷新 + setTimeout(() => { + tableRef.current?.loadData(); + }, 100); + + // 清除自动展开路径,避免重复触发(延迟清除,确保FolderTree处理完成) + setTimeout(() => { + setAutoExpandPath([]); + }, 2000); + } + }, [location.state, knowledgeBaseId, navigate, location.pathname]); // 处理树节点选择 const onSelect = (keys: React.Key[]) => { - if (!keys.length) return; + if (!keys.length) { + // 如果没有选中任何节点,回到根目录(初始状态) + setParentId(knowledgeBaseId); + setFolder({ + kb_id: knowledgeBaseId ?? '', + parent_id: knowledgeBaseId ?? '' + }); + setQuery({ + orderby: 'created_at', + desc: true, + _timestamp: Date.now() // 添加时间戳确保query对象发生变化 + }); + setSelectedKeys([]); + return; + } + if (!folder) return; + const f = { ...folder, parent_id: String(keys[0]), } - let url = `/documents/${knowledgeBaseId}/${String(keys[0])}/documents`; + setQuery({ + ...query, + parent_id: String(keys[0]), + _timestamp: Date.now() // 添加时间戳确保query对象发生变化 + }) + let url = `/documents/${knowledgeBaseId}/documents`; + setTableApi(url); setParentId(String(keys[0])) setFolder(f) @@ -253,6 +307,15 @@ const Private: FC = () => { datasetModalRef?.current?.handleOpen(knowledgeBase?.id,folder?.parent_id ?? knowledgeBase?.id ?? ''); }, }, + { + key: '8', + icon: Custome Text, + label: t('knowledgeBase.customTextDataset'), + onClick: () => { + createContentModalRef?.current?.handleOpen(knowledgeBase?.id ?? '', folder?.parent_id ?? knowledgeBase?.id ?? ''); + // handleCreate('folder'); // 传入 type: 'folder' + }, + }, // 暂时未实现 // { // key: '3', @@ -413,6 +476,21 @@ const Private: FC = () => { state: { documentId: document.id, parentId: parentId ?? knowledgeBaseId, + // 传递面包屑信息 + breadcrumbPath: { + knowledgeBaseFolderPath, + knowledgeBase: { + id: knowledgeBase?.id || knowledgeBaseId, + name: knowledgeBase?.name || '', + type: 'knowledgeBase' + }, + documentFolderPath: folderPath, + document: { + id: document.id, + name: document.file_name || '', + type: 'document' + } + } }, }); } @@ -486,7 +564,9 @@ const Private: FC = () => { } const refreshDirectoryTree = async () => { // 先刷新知识库详情,确保数据是最新的 - await fetchKnowledgeBaseDetail(knowledgeBase.id); + if (knowledgeBase?.id) { + await fetchKnowledgeBaseDetail(knowledgeBase.id); + } // 添加短暂延迟,确保后端数据已经完全更新 await new Promise(resolve => setTimeout(resolve, 300)); // 然后刷新文件夹树 @@ -501,6 +581,7 @@ const Private: FC = () => { } const handleRootTreeLoad = (nodes: TreeNodeData[] | null) => { if (!nodes || nodes.length === 0) { + // 如果没有节点,设置folder为null(这会隐藏FolderTree) setFolder(null); } else { // 如果有节点且 folder 为 null,重新设置 folder @@ -545,6 +626,7 @@ const Private: FC = () => { onRootLoad={handleRootTreeLoad} onFolderPathChange={handleFolderPathChange} selectedKeys={selectedKeys} + autoExpandPath={autoExpandPath} />
)} @@ -601,6 +683,10 @@ const Private: FC = () => { ref={createFolderModalRef} refreshTable={refreshDirectoryTree} /> + { const { t } = useTranslation(); const params = useParams<{ knowledgeBaseId: string }>(); + const location = useLocation(); const knowledgeBaseId = params.knowledgeBaseId; const [loading, setLoading] = useState(false); const [knowledgeBase, setKnowledgeBase] = useState(null); const recallTestRef = useRef(null); const [infoItems, setInfoItems] = useState([]); - const { allBreadcrumbs, setCustomBreadcrumbs } = useMenu(); + const [knowledgeBaseFolderPath, setKnowledgeBaseFolderPath] = useState([]); + + const { updateBreadcrumbs } = useBreadcrumbManager({ + breadcrumbType: 'detail' + }); useEffect(() => { console.log('Share.tsx - useParams result:', params); console.log('Share.tsx - knowledgeBaseId:', knowledgeBaseId); @@ -46,9 +51,30 @@ const Share: FC = () => { // 更新面包屑 useEffect(() => { if (knowledgeBase) { - updateBreadcrumbs(); + updateBreadcrumbs({ + knowledgeBaseFolderPath, + knowledgeBase: { + id: knowledgeBase.id, + name: knowledgeBase.name, + type: 'knowledgeBase' + }, + documentFolderPath: [], + }); } - }, [knowledgeBase]); + }, [knowledgeBase, knowledgeBaseFolderPath, updateBreadcrumbs]); + + // 监听 location state 变化 + useEffect(() => { + const state = location.state as { + fromKnowledgeBaseList?: boolean; + knowledgeBaseFolderPath?: BreadcrumbItem[]; + } | null; + + // 如果是从知识库列表页跳转过来的,设置知识库文件夹路径 + if (state?.fromKnowledgeBaseList && state?.knowledgeBaseFolderPath) { + setKnowledgeBaseFolderPath(state.knowledgeBaseFolderPath); + } + }, [location.state]); const formatInfoItems = (data: KnowledgeBaseListItem): InfoItem[] => { const items: InfoItem[] = [ { @@ -112,46 +138,7 @@ const Share: FC = () => { }); }; - // 更新面包屑,包含知识库名称 - const updateBreadcrumbs = () => { - if (!knowledgeBase) return; - - const baseBreadcrumbs = allBreadcrumbs['space'] || []; - // 只保留知识库菜单项之前的面包屑 - const knowledgeBaseMenuIndex = baseBreadcrumbs.findIndex(item => item.path === '/knowledge-base'); - const filteredBaseBreadcrumbs = knowledgeBaseMenuIndex >= 0 - ? baseBreadcrumbs.slice(0, knowledgeBaseMenuIndex + 1) - : baseBreadcrumbs; - - const customBreadcrumbs = [ - ...filteredBaseBreadcrumbs, - { - id: 0, - parent: 0, - code: null, - label: knowledgeBase.name, - i18nKey: null, - path: null, - enable: true, - display: true, - level: 0, - sort: 0, - icon: null, - iconActive: null, - menuDesc: null, - deleted: null, - updateTime: 0, - new_: null, - keepAlive: false, - master: null, - disposable: false, - appSystem: null, - subs: [], - }, - ]; - setCustomBreadcrumbs(customBreadcrumbs, 'space'); - }; // const handleBack = () => { // navigate('/knowledge-base'); diff --git a/web/src/views/KnowledgeBase/components/CreateContentModal.tsx b/web/src/views/KnowledgeBase/components/CreateContentModal.tsx new file mode 100644 index 00000000..5ad0b4f8 --- /dev/null +++ b/web/src/views/KnowledgeBase/components/CreateContentModal.tsx @@ -0,0 +1,104 @@ +import { forwardRef, useImperativeHandle, useState } from 'react'; +import { Form, Input } from 'antd'; +import { useTranslation } from 'react-i18next'; +import RbModal from '@/components/RbModal'; +import { createDocumentAndUpload } from '@/api/knowledgeBase' +import type { CreateSetModalRef,CreateSetMoealRefProps } from '../types' +interface ContentFormData { + title: string; + content: string; +} + +const CreateContentModal = forwardRef( + ({ refreshTable }, ref) => { + const { t } = useTranslation(); + const [visible, setVisible] = useState(false); + const [form] = Form.useForm(); + const [loading, setLoading] = useState(false); + const [kbId, setKbId] = useState(''); + const [parentId, setParentId] = useState(''); + + const handleClose = () => { + form.resetFields(); + setLoading(false); + setVisible(false); + setKbId(''); + setParentId(''); + }; + + const handleOpen = (kb_id: string, parent_id: string) => { + setKbId(kb_id); + setParentId(parent_id); + form.resetFields(); + setVisible(true); + }; + + const handleSave = async () => { + try { + const values = await form.validateFields(); + setLoading(true); + + // TODO: 这里需要调用相应的API来保存内容 + const params = { + // ...values, + kb_id: kbId, + parent_id: parentId, + }; + + // 模拟API调用 + await new Promise(resolve => setTimeout(resolve, 1000)); + await createDocumentAndUpload(values, params) + if (refreshTable) { + await refreshTable(); + } + + handleClose(); + } catch (err) { + console.error('创建内容失败:', err); + } finally { + setLoading(false); + } + }; + + useImperativeHandle(ref, () => ({ + handleOpen, + })); + + return ( + +
+ + + + + + + +
+
+ ); + } +); + +export default CreateContentModal; \ No newline at end of file diff --git a/web/src/views/KnowledgeBase/components/CreateContentModalExample.tsx b/web/src/views/KnowledgeBase/components/CreateContentModalExample.tsx new file mode 100644 index 00000000..7434e559 --- /dev/null +++ b/web/src/views/KnowledgeBase/components/CreateContentModalExample.tsx @@ -0,0 +1,34 @@ +import { useRef } from 'react'; +import { Button } from 'antd'; +import CreateContentModal from './CreateContentModal'; +import type { CreateContentModalRef } from '../types'; + +// 使用示例组件 +const CreateContentModalExample = () => { + const createContentModalRef = useRef(null); + + const handleOpenModal = () => { + // 打开弹窗,传入知识库ID和父级ID + createContentModalRef.current?.handleOpen('kb_123', 'parent_456'); + }; + + const handleRefreshTable = () => { + console.log('刷新表格数据'); + // 这里可以添加刷新表格的逻辑 + }; + + return ( +
+ + + +
+ ); +}; + +export default CreateContentModalExample; \ No newline at end of file diff --git a/web/src/views/KnowledgeBase/components/CreateImageDataset.tsx b/web/src/views/KnowledgeBase/components/CreateImageDataset.tsx index 4f40da7f..8f57b009 100644 --- a/web/src/views/KnowledgeBase/components/CreateImageDataset.tsx +++ b/web/src/views/KnowledgeBase/components/CreateImageDataset.tsx @@ -2,7 +2,7 @@ import { forwardRef, useImperativeHandle, useState, useRef } from 'react'; import { Form, Input } from 'antd'; import { useTranslation } from 'react-i18next'; import type { UploadFile } from 'antd'; -import type { CreateImageModalRef, CreateImageMoealRefProps,UploadFileResponse } from '@/views/KnowledgeBase/types'; +import type { CreateSetModalRef, CreateSetMoealRefProps, UploadFileResponse } from '@/views/KnowledgeBase/types'; import type { UploadRequestOption } from 'rc-upload/lib/interface'; import RbModal from '@/components/RbModal'; import UploadFiles from '@/components/Upload/UploadFiles'; @@ -13,7 +13,7 @@ interface ImageDatasetFormData { images: UploadFile[]; } -const CreateImageDataset = forwardRef( +const CreateImageDataset = forwardRef( ({ refreshTable }, ref) => { const { t } = useTranslation(); const [visible, setVisible] = useState(false); diff --git a/web/src/views/KnowledgeBase/components/FolderTree.tsx b/web/src/views/KnowledgeBase/components/FolderTree.tsx index 4a5a288c..299e4cf3 100644 --- a/web/src/views/KnowledgeBase/components/FolderTree.tsx +++ b/web/src/views/KnowledgeBase/components/FolderTree.tsx @@ -60,6 +60,8 @@ interface FolderTreeProps { onRootLoad?: (nodes: TreeNodeData[] | null) => void; onFolderPathChange?: (path: Array<{ id: string; name: string }>) => void; selectedKeys?: React.Key[]; + // 新增:自动展开到指定路径 + autoExpandPath?: Array<{ id: string; name: string }>; } const renderIcon = (icon?: string) => { @@ -275,8 +277,11 @@ const FolderTree: FC = ({ onRootLoad, onFolderPathChange, selectedKeys, + autoExpandPath, }) => { const [treeData, setTreeData] = useState([]); + const [expandedKeys, setExpandedKeys] = useState([]); + const [autoExpandInProgress, setAutoExpandInProgress] = useState(false); // 更新树节点数据的辅助函数 const updateTreeData = (nodes: TreeNodeData[], key: Key, children: TreeNodeData[]): TreeNodeData[] => { @@ -370,6 +375,109 @@ const FolderTree: FC = ({ return null; }; + // 查找节点的辅助函数 + const findNodeInTree = (nodes: TreeNodeData[], key: string): TreeNodeData | null => { + for (const node of nodes) { + if (String(node.key) === key) { + return node; + } + if (node.children) { + const found = findNodeInTree(node.children, key); + if (found) return found; + } + } + return null; + }; + + // 渐进式自动展开到指定路径 + useEffect(() => { + if (!autoExpandPath || autoExpandPath.length === 0 || autoExpandInProgress || treeData.length === 0) { + return; + } + + const expandToPath = async () => { + setAutoExpandInProgress(true); + + try { + const keysToExpand: React.Key[] = []; + let currentTreeData = treeData; + + // 逐级展开,从第一级开始(跳过根节点,因为根节点已经加载) + for (let i = 0; i < autoExpandPath.length - 1; i++) { + const nodeKey = autoExpandPath[i].id; + keysToExpand.push(nodeKey); + + // 查找当前节点 + const targetNode = findNodeInTree(currentTreeData, nodeKey); + + if (targetNode && targetNode.children === undefined) { + // 如果子节点未加载,先加载 + try { + console.log(`自动展开:加载节点 ${nodeKey} 的子节点`); + const children = await buildTreeNodes(knowledgeBaseId, nodeKey); + + // 更新树数据 + setTreeData((prevData) => { + const newData = updateTreeData(prevData, nodeKey, children); + currentTreeData = newData; // 更新当前引用 + return newData; + }); + + // 等待状态更新完成 + await new Promise(resolve => setTimeout(resolve, 150)); + + } catch (error) { + console.error(`自动展开时加载节点 ${nodeKey} 失败:`, error); + // 加载失败时停止展开 + break; + } + } + } + + // 设置展开的节点 + setExpandedKeys(keysToExpand); + + // 选中最后一个节点(目标文件夹) + const targetKey = autoExpandPath[autoExpandPath.length - 1]?.id; + if (targetKey) { + console.log(`自动展开:选中目标节点 ${targetKey}`); + // 延迟选中,确保展开动画完成 + setTimeout(() => { + if (onSelect) { + onSelect([targetKey], { + selected: true, + selectedNodes: [], + node: {} as any, + event: 'select', + nativeEvent: new MouseEvent('click') + }); + } + }, 200); + } + + } catch (error) { + console.error('自动展开路径失败:', error); + } finally { + // 延迟重置标志,确保展开过程完全完成 + setTimeout(() => { + setAutoExpandInProgress(false); + }, 500); + } + }; + + // 延迟执行,确保树数据已经加载完成 + const timer = setTimeout(expandToPath, 300); + return () => clearTimeout(timer); + }, [autoExpandPath, treeData.length, knowledgeBaseId, onSelect, autoExpandInProgress]); + + // 处理展开事件 + const handleExpand: TreeProps['onExpand'] = (expandedKeys, info) => { + setExpandedKeys(expandedKeys); + if (onExpand) { + onExpand(expandedKeys, info); + } + }; + // 处理选择事件,计算并传递路径 const handleSelect: TreeProps['onSelect'] = (selectedKeys, info) => { if (selectedKeys.length > 0) { @@ -391,11 +499,13 @@ const FolderTree: FC = ({ return ( ; @@ -28,6 +29,7 @@ type ModelMenuInfo = { const KnowledgeBaseManagement: FC = () => { const { t } = useTranslation(); const navigate = useNavigate(); + const location = useLocation(); const [loading, setLoading] = useState(false); const [data, setData] = useState([]) const [page, setPage] = useState(1) @@ -42,10 +44,29 @@ const KnowledgeBaseManagement: FC = () => { const modelListCache = useRef>({}); const modalRef = useRef(null) const [messageApi, contextHolder] = message.useMessage(); + const processedStateRef = useRef(null); - // 使用 menu store 管理面包屑 - const { allBreadcrumbs, setCustomBreadcrumbs } = useMenu(); - const [folderPath, setFolderPath] = useState>([]); + // 使用面包屑管理 Hook + const { updateBreadcrumbs } = useBreadcrumbManager({ + breadcrumbType: 'list', + onKnowledgeBaseMenuClick: useCallback(() => { + // 返回根目录 + setFolderPath([]); + setQuery((prev) => ({ + ...prev, + parent_id: undefined, + })); + }, []), + onKnowledgeBaseFolderClick: useCallback((folderId: string, folderPath: Array<{ id: string; name: string }>) => { + // 直接更新文件夹路径和查询状态 + setFolderPath(folderPath); + setQuery((prev) => ({ + ...prev, + parent_id: folderId, + })); + }, []) + }); + const [folderPath, setFolderPath] = useState([]); // 生成下拉菜单项(根据当前 item) @@ -134,7 +155,7 @@ const KnowledgeBaseManagement: FC = () => { handleCreate(type); }, })); - }, [knowledgeBaseTypes, t, folderPath, query]); + }, [knowledgeBaseTypes, t]); const typeToFieldKey = (type: string) => { const normalized = (type || '').toLowerCase(); switch (normalized) { @@ -371,90 +392,72 @@ const KnowledgeBaseManagement: FC = () => { })); return; } - // 根据权限类型跳转到不同的详情页 - if (knowledgeBase.permission_id === 'Private' || knowledgeBase.permission_id === 'private') { - navigate(`/knowledge-base/${knowledgeBase.id}/private`) + // 跳转时传递当前的文件夹路径信息 + const navigationState = { + fromKnowledgeBaseList: true, + knowledgeBaseFolderPath: folderPath, + parentId: query.parent_id, + timestamp: Date.now(), // 添加时间戳确保每次跳转状态都不同 + }; + const targetPath = knowledgeBase.permission_id === 'Private' || knowledgeBase.permission_id === 'private' + ? `/knowledge-base/${knowledgeBase.id}/private` + : `/knowledge-base/${knowledgeBase.id}/share`; + + // 检查是否是相同路径跳转 + const currentPath = location.pathname; + + if (currentPath === targetPath) { + // 如果是相同路径,使用replace并强制刷新状态 + navigate(targetPath, { + state: navigationState, + replace: true + }); } else { - navigate(`/knowledge-base/${knowledgeBase.id}/share`) + // 不同路径,正常跳转 + navigate(targetPath, { state: navigationState }); } } - // 更新面包屑的函数 - const updateBreadcrumbs = () => { - const baseBreadcrumbs = allBreadcrumbs['space'] || []; - // 只保留知识库菜单项之前的面包屑 - const knowledgeBaseMenuIndex = baseBreadcrumbs.findIndex(item => item.path === '/knowledge-base'); - const filteredBaseBreadcrumbs = knowledgeBaseMenuIndex >= 0 - ? baseBreadcrumbs.slice(0, knowledgeBaseMenuIndex + 1) - : baseBreadcrumbs; - - // 给"知识库管理"添加点击事件,返回根目录 - const breadcrumbsWithClick = filteredBaseBreadcrumbs.map((item) => { - if (item.path === '/knowledge-base') { - return { - ...item, - onClick: (e?: React.MouseEvent) => { - e?.preventDefault(); - e?.stopPropagation(); - // 返回根目录 - setFolderPath([]); - setQuery((prev) => ({ - ...prev, - parent_id: undefined, - })); - return false; - }, - }; - } - return item; - }); - - const customBreadcrumbs = [ - ...breadcrumbsWithClick, - ...folderPath.map((folder, index) => ({ - id: 0, - parent: 0, - code: null, - label: folder.name, - i18nKey: null, - path: null, - enable: true, - display: true, - level: 0, - sort: 0, - icon: null, - iconActive: null, - menuDesc: null, - deleted: null, - updateTime: 0, - new_: null, - keepAlive: false, - master: null, - disposable: false, - appSystem: null, - subs: [], - onClick: (e?: React.MouseEvent) => { - e?.preventDefault(); - e?.stopPropagation(); - // 点击文件夹,回到该文件夹层级 - const newFolderPath = folderPath.slice(0, index + 1); - setFolderPath(newFolderPath); - setQuery((prev) => ({ - ...prev, - parent_id: folder.id, - })); - return false; - }, - })), - ]; - - setCustomBreadcrumbs(customBreadcrumbs, 'space'); - }; - // 更新面包屑 useEffect(() => { - updateBreadcrumbs(); - }, [folderPath]); + updateBreadcrumbs({ + knowledgeBaseFolderPath: folderPath, + documentFolderPath: [], + }); + }, [folderPath, updateBreadcrumbs]); + + // 处理从详情页返回的导航 + useEffect(() => { + const state = location.state as { + navigateToFolder?: string; + folderPath?: Array<{ id: string; name: string }>; + resetToRoot?: boolean; + } | null; + + // 避免重复处理相同的状态 + if (state && state !== processedStateRef.current) { + processedStateRef.current = state; + + if (state.resetToRoot) { + // 重置到根目录 + setFolderPath([]); + setQuery((prev) => ({ + ...prev, + parent_id: undefined, + })); + } else if (state?.navigateToFolder && state?.folderPath) { + // 恢复文件夹路径和查询状态 + setFolderPath(state.folderPath); + setQuery((prev) => ({ + ...prev, + parent_id: state.navigateToFolder, + })); + } + + // 不清除 state,避免干扰后续导航 + // 使用 processedStateRef 来避免重复处理相同的 state + } + }, [location.state, navigate]); useEffect(() => { fetchModelTypes(); @@ -465,7 +468,7 @@ const KnowledgeBaseManagement: FC = () => { if (modelTypes.length) { fetchData(1, false); } - }, [modelTypes, query]) + }, [modelTypes, query.parent_id, query.keywords, query.orderby, query.desc]) return ( <> diff --git a/web/src/views/KnowledgeBase/types.ts b/web/src/views/KnowledgeBase/types.ts index 04c66ac0..f4a6ed56 100644 --- a/web/src/views/KnowledgeBase/types.ts +++ b/web/src/views/KnowledgeBase/types.ts @@ -146,11 +146,19 @@ export interface CreateFolderModalRefProps{ refreshTable?: () => void; } -//他建图片数据集 -export interface CreateImageModalRef{ - handleOpen: (kb_id:string,parent_id:string) => void; +//创建图片数据集 / 创建自定义文本数据集 +export interface CreateSetModalRef{ + handleOpen: (kb_id:string, parent_id:string) => void; } -export interface CreateImageMoealRefProps{ +export interface CreateSetMoealRefProps{ + refreshTable?: () => void; +} + +// 创建内容 +export interface CreateContentModalRef { + handleOpen: (kb_id: string, parent_id: string) => void; +} +export interface CreateContentModalRefProps { refreshTable?: () => void; } diff --git a/web/src/views/MemoryConversation/index.tsx b/web/src/views/MemoryConversation/index.tsx index c92044cc..43c81cc6 100644 --- a/web/src/views/MemoryConversation/index.tsx +++ b/web/src/views/MemoryConversation/index.tsx @@ -4,7 +4,7 @@ import { Col, Row, App, Skeleton, Space, Select } from 'antd' import clsx from 'clsx' import ConversationEmptyIcon from '@/assets/images/conversation/conversationEmpty.svg' -import AnalysisEmptyIcon from '@/assets/images/conversation/analysisEmpty.png' +import AnalysisEmptyIcon from '@/assets/images/conversation/analysisEmpty.svg' import Card from './components/Card' import Chat from './components/Chat' import { readService, getUserMemoryList } from '@/api/memory' @@ -139,9 +139,6 @@ const MemoryConversation: FC = () => { : {logs.map((log, logIndex) => ( diff --git a/web/src/views/NoPermission/index.tsx b/web/src/views/NoPermission/index.tsx index ac547fd6..a14e505c 100644 --- a/web/src/views/NoPermission/index.tsx +++ b/web/src/views/NoPermission/index.tsx @@ -1,5 +1,5 @@ import { useTranslation } from 'react-i18next'; -import noPermission from '@/assets/images/empty/noPermission.png'; +import noPermission from '@/assets/images/empty/noPermission.svg'; import Empty from '@/components/Empty'; const NoPermission = () => { diff --git a/web/src/views/NotFound/index.tsx b/web/src/views/NotFound/index.tsx index 6d879167..4a7fbbe6 100644 --- a/web/src/views/NotFound/index.tsx +++ b/web/src/views/NotFound/index.tsx @@ -1,5 +1,5 @@ import { useTranslation } from 'react-i18next'; -import notFoundImg from '@/assets/images/empty/404.png'; +import notFoundImg from '@/assets/images/empty/404.svg'; import Empty from '@/components/Empty'; const NotFound = () => { diff --git a/web/vite.config.ts b/web/vite.config.ts index 7181389f..e2a484fb 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -1,3 +1,11 @@ +/* + * @Description: + * @Version: 0.0.1 + * @Author: yujiangping + * @Date: 2025-12-03 15:40:49 + * @LastEditors: yujiangping + * @LastEditTime: 2025-12-12 14:09:00 + */ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import { resolve } from 'path' @@ -11,7 +19,10 @@ export default defineConfig({ proxy: { // 主要API代理,支持 /api 和 /api/* 格式 '/api': { - target: 'http://0.0.0.0:5173', // 后端服务地址 + // target: 'http://0.0.0.0:5173', // 后端服务地址 + // target: 'http://119.45.181.55:8000', + target: 'https://devmemorybear.redbearai.com/', // 开发服务器 + // target: 'https://memorybear.redbearai.com', // 测试服务器 changeOrigin: true, // 匹配所有以/api开头的请求,包括/api/token From ac2173743bd7dd3a115d2af45250a2f50d914cc4 Mon Sep 17 00:00:00 2001 From: yujiangping Date: Tue, 16 Dec 2025 12:05:22 +0800 Subject: [PATCH 12/92] feat(web): Update auto-imports with new React hooks and components - Add React components: Activity, Fragment, Suspense - Add React hooks: cache, cacheSignal, createContext, use, useActionState, useEffectEvent, useOptimistic - Maintain existing React Router imports and hooks - Expand global type declarations for improved IDE autocomplete support --- web/public/auto-imports.d.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/web/public/auto-imports.d.ts b/web/public/auto-imports.d.ts index 62f88140..61cb2733 100644 --- a/web/public/auto-imports.d.ts +++ b/web/public/auto-imports.d.ts @@ -6,22 +6,31 @@ // biome-ignore lint: disable export {} declare global { + const Activity: typeof import('react').Activity + const Fragment: typeof import('react').Fragment const Link: typeof import('react-router-dom').Link const NavLink: typeof import('react-router-dom').NavLink const Navigate: typeof import('react-router-dom').Navigate const Outlet: typeof import('react-router-dom').Outlet const Route: typeof import('react-router-dom').Route const Routes: typeof import('react-router-dom').Routes + const Suspense: typeof import('react').Suspense + const cache: typeof import('react').cache + const cacheSignal: typeof import('react').cacheSignal + const createContext: typeof import('react').createContext const createRef: typeof import('react').createRef const forwardRef: typeof import('react').forwardRef const lazy: typeof import('react').lazy const memo: typeof import('react').memo const startTransition: typeof import('react').startTransition + const use: typeof import('react').use + const useActionState: typeof import('react').useActionState const useCallback: typeof import('react').useCallback const useContext: typeof import('react').useContext const useDebugValue: typeof import('react').useDebugValue const useDeferredValue: typeof import('react').useDeferredValue const useEffect: typeof import('react').useEffect + const useEffectEvent: typeof import('react').useEffectEvent const useHref: typeof import('react-router-dom').useHref const useId: typeof import('react').useId const useImperativeHandle: typeof import('react').useImperativeHandle @@ -33,6 +42,7 @@ declare global { const useMemo: typeof import('react').useMemo const useNavigate: typeof import('react-router-dom').useNavigate const useNavigationType: typeof import('react-router-dom').useNavigationType + const useOptimistic: typeof import('react').useOptimistic const useOutlet: typeof import('react-router-dom').useOutlet const useOutletContext: typeof import('react-router-dom').useOutletContext const useParams: typeof import('react-router-dom').useParams From 44ceee3f42d206074bbb26363c92c13304b72ac8 Mon Sep 17 00:00:00 2001 From: zhaoying Date: Tue, 16 Dec 2025 13:54:41 +0800 Subject: [PATCH 13/92] feature: add api key --- web/src/api/apiKey.ts | 33 ++ .../assets/images/menu/userMemory_active.svg | 18 -- web/src/i18n/en.ts | 63 +++- web/src/i18n/zh.ts | 64 +++- web/src/routes/index.tsx | 1 + web/src/routes/routes.json | 1 + web/src/store/menu.json | 15 + web/src/utils/apiKeyReplacer.ts | 46 +++ .../components/ApiKeyDetailModal.tsx | 102 ++++++ .../components/ApiKeyModal.tsx | 153 +++++++++ web/src/views/ApiKeyManagement/index.tsx | 125 ++++++++ web/src/views/ApiKeyManagement/types.ts | 40 +++ web/src/views/ApplicationConfig/Api.tsx | 294 ++++++++++-------- .../components/ApiKeyConfigModal.tsx | 127 ++++++++ .../components/ApiKeyModal.tsx | 103 ++++++ web/src/views/ApplicationConfig/index.tsx | 4 +- web/src/views/ApplicationConfig/types.ts | 6 + web/src/views/ApplicationManagement/types.ts | 2 +- 18 files changed, 1028 insertions(+), 169 deletions(-) create mode 100644 web/src/api/apiKey.ts delete mode 100644 web/src/assets/images/menu/userMemory_active.svg create mode 100644 web/src/utils/apiKeyReplacer.ts create mode 100644 web/src/views/ApiKeyManagement/components/ApiKeyDetailModal.tsx create mode 100644 web/src/views/ApiKeyManagement/components/ApiKeyModal.tsx create mode 100644 web/src/views/ApiKeyManagement/index.tsx create mode 100644 web/src/views/ApiKeyManagement/types.ts create mode 100644 web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx create mode 100644 web/src/views/ApplicationConfig/components/ApiKeyModal.tsx diff --git a/web/src/api/apiKey.ts b/web/src/api/apiKey.ts new file mode 100644 index 00000000..56ad79c4 --- /dev/null +++ b/web/src/api/apiKey.ts @@ -0,0 +1,33 @@ +import { request } from '@/utils/request' +import type { ApiKey } from '@/views/ApiKeyManagement/types' + +// API Key列表 +export const getApiKeyListUrl = '/apikeys' +export const getApiKeyList = (data: Record) => { + return request.get(getApiKeyListUrl, data) +} + +// API Key详情 +export const getApiKey = (id: string) => { + return request.get(`/apikeys/${id}`) +} + +// 创建API Key +export const createApiKey = (values: ApiKey) => { + return request.post('/apikeys', values) +} + +// 更新API Key +export const updateApiKey = (id: string, values: ApiKey) => { + return request.put(`/apikeys/${id}`, values) +} + +// 删除 API Key +export const deleteApiKey = (id: string) => { + return request.delete(`/apikeys/${id}`) +} + +// 使用统计 +export const getApiKeyStats = (app_key_id: string) => { + return request.get(`/apikeys/${app_key_id}/stats`) +} \ No newline at end of file diff --git a/web/src/assets/images/menu/userMemory_active.svg b/web/src/assets/images/menu/userMemory_active.svg deleted file mode 100644 index 554dc0bc..00000000 --- a/web/src/assets/images/menu/userMemory_active.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - 编组 29 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index c3683718..9fcc5585 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -33,6 +33,7 @@ export const en = { knowledgeCreateDataset: 'Create Dataset', knowledgeDocumentDetails: 'Document Details', userMemoryDetail: 'UserMemory Detail', + apiKeyManagement: 'API KEY Management', }, dashboard: { totalMemoryCapacity: 'Total Memory Capacity', @@ -117,7 +118,7 @@ export const en = { triplet_count_desc: 'Build {{entities_count}} entity nodes and {{relations_count}} relation connections', temporal_count: 'Time extraction', temporal_count_desc: 'Record {{count}} time series information', - + dialogue: 'Dialogue', chunk: 'Chunk', statement: 'Statement', @@ -735,7 +736,7 @@ export const en = { workflowDesc: 'To be opened, please stay tuned', editApplication: 'Edit Application Info', - + currentModel: 'Current Model', modelConfig: 'Model Config', parameterConfig: 'Parameter Config', @@ -929,7 +930,7 @@ export const en = { similarity_threshold: 'Semantic similarity threshold', similarity_threshold_desc: 'Only return results with semantic similarity higher than this threshold', similarity_threshold_desc1: 'The minimum similarity threshold for semantic retrieval', - + vector_similarity_weight: 'Vector Similarity Weight', vector_similarity_weight_desc: 'Only return results with BM25 scores above this threshold', vector_similarity_weight_desc1: 'The minimum BM25 score threshold for word segmentation retrieval', @@ -947,7 +948,7 @@ export const en = { versionNameTip: 'Version number format: v[major version number].[next version number].[revision number] (e.g. v1.3.0)', agentName: 'Agent Name', roleType: 'Role Type', - + coordinator: 'Coordinator', analyzer: 'Analyzer', executor: 'Executor', @@ -957,8 +958,28 @@ export const en = { capabilities: 'Capabilities', subAgent: 'Sub Agent', maxChatCount: 'Add up to 4 models', - addApiKey: 'Add API Key', - ReplyException: 'Reply exception' + ReplyException: 'Reply exception', + + endpointConfigurationSubTitle: 'Configure API access address and supported HTTP methods', + apiKeys: 'API Keys Management', + apiKeySubTitle: 'Manage API keys, view usage and traffic statistics for each key', + addApiKey: 'Add New API Key', + apiKeyName: 'Key Name', + apiKeyNamePlaceholder: 'e.g.: Production, Testing, Development', + apiKeyDescPlaceholder: 'Describe the purpose of this Key', + apiKeyTotal: 'Total Keys', + apiKeyRequestTotal: 'Total Requests', + qps: 'Average QPS', + qpsLimit: 'QPS Limit', + qpsLimitTip: '(Requests per second)', + apiLimitConfig: 'Rate Limiting Configuration', + qpsLimitDesc: 'Limit the maximum number of requests this Key can make per second', + dailyUsageLimit: 'Daily Usage Limit', + dailyUsageLimitDesc: 'Limit the maximum total number of requests this Key can make per day', + dailyUsageLimitUnit: 'times/day', + apiKeyDeleteContent: 'Once deleted, it cannot be recovered, and applications using this Key will not be able to access the API', + currentValue: 'Current Value', + qpsLimitUnit: 'times/second', }, userMemory: { userMemory: 'User Memory', @@ -1057,7 +1078,7 @@ export const en = { extractTheNumberOfEntities: 'Extract the number of entities', extractTheNumberOfEntitiesDesc: 'Merge after deduplication: {{num}} (exact: {{exact}}, fuzzy: {{fuzzy}}, LLM: {{llm}})', - + numberOfEntityDisambiguation: 'Number of entity disambiguation', numberOfEntityDisambiguationDesc: 'Total {{num}} times (blocking: {{block_count}})', @@ -1162,7 +1183,6 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re failed: 'Failed' }, time: 'Time: ', - text_preprocessing_desc: 'Text split into {{count}} semantic fragments', knowledge_extraction_desc: 'Knowledge extraction completed, identified {{entities}} entities, {{statements}} statements, {{temporal_ranges_count}} temporal extractions, {{triplets}} triplets', creating_nodes_edges_desc: 'Entity relationship creation completed, {{num}} relationships in total', @@ -1250,6 +1270,31 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re tableEmpty: 'There are currently no data', loadingEmpty: 'The content is loading…', loadingEmptyDesc: 'Your content is on its way by rocket! It will soon land on your screen' - } + }, + apiKey: { + name: 'Project Name', + createApiKey: 'Create API Key', + updateApiKey: 'Edit API Key', + id: 'ID', + created_at: 'Created At', + description: 'Description', + memoryEngine: 'Memory Engine', + knowledgeBase: 'Knowledge Base', + advancedSettings: 'Advanced Settings', + expires_at: 'Expiration At', + apiKey: 'API Key', + status: 'Status', + createdAt: 'Created At', + expiresAt: 'Expires At', + requestsPerMinute: 'Requests/Minute', + viewDetail: 'View Details', + disable: 'Disable', + enable: 'Enable', + baseInfo: 'Basic Information', + permissionInfo: 'Permission Information', + is_expired: 'Status', + active: 'Active', + inactive: 'Expired' + }, }, }; diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 95418915..3e7e204d 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -28,16 +28,18 @@ export const zh = { spaceManagement: '空间管理', memoryExtractionEngine: '记忆提取引擎', forgettingEngine: '遗忘引擎', + apiKeyManagement: 'API KEY管理', knowledgePrivate: '详情', knowledgeShare: '详情', knowledgeCreateDataset: '新建数据集', knowledgeDocumentDetails: '详情', userMemoryDetail: '用户记忆详情', + toolManagement: '工具管理', }, knowledgeBase: { home: '首页', selectSpace: '请选择空间', - preview:'预览', + preview: '预览', pleaseUploadFileFirst: '请先上传文件', shareSuccess: '分享成功', shareFailed: '分享失败', @@ -288,7 +290,7 @@ export const zh = { number: '数字', checkbox: '复选框', apiVariable: 'API变量', - + displayName: '显示名称', maxLength: '最大长度', required: '必填', @@ -467,7 +469,7 @@ export const zh = { similarity_threshold: '语义相似度阈值', similarity_threshold_desc: '仅返回语义相似度高于此阈值的结果', similarity_threshold_desc1: '语义检索的最小相似度阈值', - + vector_similarity_weight: '向量相似度权重', vector_similarity_weight_desc: '仅返回BM25分数高于此阈值的结果', vector_similarity_weight_desc1: '分词检索的最小BM25分数阈值', @@ -481,6 +483,27 @@ export const zh = { chooseKnowledge: '选择知识库', active: '活跃', inactive: '不活跃', + + endpointConfigurationSubTitle: '配置 API 访问地址和支持的 HTTP 方法', + apiKeys: 'API Keys 管理', + apiKeySubTitle: '管理 API 密钥,查看每个密钥的使用情况和流量统计', + addApiKey: '添加新 API Key', + apiKeyName: 'Key 名称', + apiKeyNamePlaceholder: '例如:生产环境、测试环境、开发环境', + apiKeyDescPlaceholder: '描述这个 Key 的用途', + apiKeyTotal: '总 Keys', + apiKeyRequestTotal: '总请求数', + qps: '平均 QPS', + qpsLimit: 'QPS 限制', + qpsLimitTip: '(每秒请求数)', + apiLimitConfig: '限流配置', + qpsLimitDesc: '限制此 Key 每秒最多可以发起的请求数', + dailyUsageLimit: '日调用量限制', + dailyUsageLimitDesc: '限制此 Key 每天最多可以发起的请求总数', + dailyUsageLimitUnit: '次/天', + apiKeyDeleteContent: '删除后将无法恢复,使用此Key的应用将无法访问 API', + currentValue: '当前值', + qpsLimitUnit: '次/秒', }, // 角色管理相关翻译 role: { @@ -618,7 +641,7 @@ export const zh = { triplet_count_desc: '构建{{entities_count}}个实体节点和{{relations_count}}个关系连接', temporal_count: '时间提取', temporal_count_desc: '记录{{count}}条时间序列信息', - + dialogue: '对话', chunk: '分块', statement: '语句', @@ -1027,7 +1050,7 @@ export const zh = { minimumRetention: '时间遗忘率 (λ_time)', minimumRetentionDesc: '控制记忆随时间的遗忘速度,值越高时间越短', - forgettingRate: '记忆遗忘率 (λ_mem)', + forgettingRate: '记忆遗忘率 (λ_mem)', forgettingRateDesc: '控制记忆遗忘的速度,值越高遗忘越快', offset: '最小保留度 (offset)', offsetDesc: '控制记忆保留的最小保留阈值 遗忘这地方改个文字描述', @@ -1130,7 +1153,7 @@ export const zh = { extractTheNumberOfEntities: '提取实体数量', extractTheNumberOfEntitiesDesc: '去重后合并:{{num}}(精确:{{exact}},模糊:{{fuzzy}},LLM:{{llm}})', - + numberOfEntityDisambiguation: '实体消歧数量', numberOfEntityDisambiguationDesc: '总计{{num}}次(阻止:{{block_count}})', @@ -1217,7 +1240,6 @@ export const zh = { 学生:那我换到唐朝史:安史之乱后,中央已开始整顿,为何藩镇割据反而加剧? 记忆熊:安史之乱后藩镇割据加剧的原因包括:节度使掌握募兵权、财政调度权与军事指挥权,形成地方军阀;中央财政因均田制瓦解和租庸调失效而衰退,难以支撑军队,导致地方军事力量依附节度使;募兵制使士兵效忠个人而非国家;宦官掌控禁军,文官集团失势,中央制衡能力削弱。`, - warning: '当您修改左侧的配置项后,点击【调试】,提取结论将在此处实时更新', processing: '配置已更新,正在重新萃取示例记忆...', success: '记忆萃取完成!', @@ -1234,7 +1256,6 @@ export const zh = { failed: '失败' }, time: '耗时: ', - text_preprocessing_desc: '文本切分为{{count}}个语义片段', knowledge_extraction_desc: '知识抽取完成,共识别{{entities}}个实体,{{statements}}个句子, {{temporal_ranges_count}}个时间提取, {{triplets}}个三元组', creating_nodes_edges_desc: '实体关系创建完成,共{{num}}条关系', @@ -1357,6 +1378,31 @@ export const zh = { title: '页面未找到', description: '请求的页面不存在。', backToHome: '返回首页' - } + }, + apiKey: { + name: '项目名称', + createApiKey: '创建API Key', + updateApiKey: '编辑API Key', + id: 'ID', + created_at: '创建时间', + description: '描述', + memoryEngine: '记忆引擎', + knowledgeBase: '知识库', + advancedSettings: '高级设置', + expires_at: '过期时间', + apiKey: 'API Key', + status: '状态', + createdAt: '创建时间', + expiresAt: '过期时间', + requestsPerMinute: '次/分钟', + viewDetail: '查看详情', + disable: '禁用', + enable: '启用', + baseInfo: '基础信息', + permissionInfo: '授权信息', + is_expired: '状态', + active: '活跃', + inactive: '过期' + }, }, } \ No newline at end of file diff --git a/web/src/routes/index.tsx b/web/src/routes/index.tsx index 4d7faf7a..bdcf7d78 100644 --- a/web/src/routes/index.tsx +++ b/web/src/routes/index.tsx @@ -54,6 +54,7 @@ const componentMap: Record>> = UserManagement: lazy(() => import('@/views/UserManagement')), ModelManagement: lazy(() => import('@/views/ModelManagement')), SpaceManagement: lazy(() => import('@/views/SpaceManagement')), + ApiKeyManagement: lazy(() => import('@/views/ApiKeyManagement')), Login: lazy(() => import('@/views/Login')), InviteRegister: lazy(() => import('@/views/InviteRegister')), NoPermission: lazy(() => import('@/views/NoPermission')), diff --git a/web/src/routes/routes.json b/web/src/routes/routes.json index 6c485a12..0b87e192 100644 --- a/web/src/routes/routes.json +++ b/web/src/routes/routes.json @@ -25,6 +25,7 @@ { "path": "/knowledge-base/:knowledgeBaseId/share", "element": "Share" }, { "path": "/knowledge-base/:knowledgeBaseId/create-dataset", "element": "CreateDataset" }, { "path": "/knowledge-base/:knowledgeBaseId/DocumentDetails", "element": "DocumentDetails" }, + { "path": "/api-key", "element": "ApiKeyManagement" }, { "path": "/no-permission", "element": "NoPermission" }, { "path": "/*", "element": "NotFound" } ] diff --git a/web/src/store/menu.json b/web/src/store/menu.json index 448400b0..cda4a6b0 100644 --- a/web/src/store/menu.json +++ b/web/src/store/menu.json @@ -243,6 +243,21 @@ "icon": null, "iconActive": null, "subs": null + }, + { + "id": 11, + "parent": 0, + "code": "apiKey", + "label": "API KEY管理", + "i18nKey": "menu.apiKeyManagement", + "path": "/api-key", + "enable": true, + "display": true, + "level": 1, + "sort": 0, + "icon": null, + "iconActive": null, + "subs": null } ] } \ No newline at end of file diff --git a/web/src/utils/apiKeyReplacer.ts b/web/src/utils/apiKeyReplacer.ts new file mode 100644 index 00000000..a2914e46 --- /dev/null +++ b/web/src/utils/apiKeyReplacer.ts @@ -0,0 +1,46 @@ +/** + * API密钥替换工具 + */ + +const API_KEY_PATTERNS = { + service: /sk-service-[A-Za-z0-9_-]+/g, + agent: /sk-agent-[A-Za-z0-9_-]+/g, + multiAgent: /sk-multi_agent-[A-Za-z0-9_-]+/g, + workflow: /sk-workflow-[A-Za-z0-9_-]+/g +} +const API_KEY_PREFIX = { + service: 'sk-service-', + agent: 'sk-agent-', + multiAgent: 'sk-multi_agent-', + workflow: 'sk-workflow-' +} + +/** + * 替换文本中的API密钥为*号 + * @param text 原始文本 + * @returns 替换后的文本 + */ +export const maskApiKeys = (text: string): string => { + if (!text) return text + let result = text + + Object.keys(API_KEY_PREFIX).map(type => { + const key = type as keyof typeof API_KEY_PREFIX + result = result.replace(API_KEY_PATTERNS[key as keyof typeof API_KEY_PREFIX], (match) => { + const prefixLength = API_KEY_PREFIX[key].length + const prefix = match.substring(0, prefixLength) + return prefix + '*'.repeat(match.length - prefixLength) + }) + }) + + return result +} + +/** + * 检测文本中是否包含API密钥 + * @param text 待检测文本 + * @returns 是否包含API密钥 + */ +export const hasApiKeys = (text: string): boolean => { + return Object.values(API_KEY_PATTERNS).some(pattern => pattern.test(text)) +} \ No newline at end of file diff --git a/web/src/views/ApiKeyManagement/components/ApiKeyDetailModal.tsx b/web/src/views/ApiKeyManagement/components/ApiKeyDetailModal.tsx new file mode 100644 index 00000000..2c154f51 --- /dev/null +++ b/web/src/views/ApiKeyManagement/components/ApiKeyDetailModal.tsx @@ -0,0 +1,102 @@ +import { forwardRef, useImperativeHandle, useState } from 'react'; +import { Switch, Button } from 'antd'; +import clsx from 'clsx'; +import { useTranslation } from 'react-i18next'; +import type { ApiKey, ApiKeyModalRef } from '../types'; +import RbModal from '@/components/RbModal' +import { getApiKey } from '@/api/apiKey'; +import { formatDateTime } from '@/utils/format' +import Tag from '@/components/Tag' +import { maskApiKeys } from '@/utils/apiKeyReplacer'; + +const ApiKeyDetailModal = forwardRef void }>(({ handleCopy }, ref) => { + const { t } = useTranslation(); + const [visible, setVisible] = useState(false); + const [data, setData] = useState({} as ApiKey) + + // 封装取消方法,添加关闭弹窗逻辑 + const handleClose = () => { + setVisible(false); + }; + + const handleOpen = (apiKey?: ApiKey) => { + if (apiKey?.id) { + getApiKey(apiKey.id) + .then((res) => { + setVisible(true); + setData(res as ApiKey) + }) + } + }; + + // 暴露给父组件的方法 + useImperativeHandle(ref, () => ({ + handleOpen, + handleClose + })); + + return ( + +
{t('apiKey.baseInfo')}
+ {['id', 'name', 'is_expired', 'created_at'].map((key, index) => ( +
+ {t(`apiKey.${key}`)} + + { key === 'created_at' + ? formatDateTime(data[key], 'YYYY-MM-DD HH:mm:ss') + : key === 'is_expired' + ? {data[key] ? t('apiKey.inactive') : t('apiKey.active')} + : String(data[key as keyof ApiKey]) + } + +
+ ))} + +
+ {maskApiKeys(data.api_key)} + + +
+ +
{t('apiKey.permissionInfo')}
+ +
+ {t(`apiKey.memoryEngine`)} + + + +
+
+ {t(`apiKey.knowledgeBase`)} + + + +
+ + {/* 高级设置 */} + {data.expires_at && <> +
{t('apiKey.advancedSettings')}
+ +
+ {t(`apiKey.expires_at`)} + + {data.expires_at ? formatDateTime(data.expires_at as number, 'yyyy-MM-DD') : '-'} + +
+ } +
+ ); +}); + +export default ApiKeyDetailModal; \ No newline at end of file diff --git a/web/src/views/ApiKeyManagement/components/ApiKeyModal.tsx b/web/src/views/ApiKeyManagement/components/ApiKeyModal.tsx new file mode 100644 index 00000000..f0bf4e11 --- /dev/null +++ b/web/src/views/ApiKeyManagement/components/ApiKeyModal.tsx @@ -0,0 +1,153 @@ +import { forwardRef, useImperativeHandle, useState } from 'react'; +import { Form, Input, Switch, App, DatePicker } from 'antd'; +import { useTranslation } from 'react-i18next'; +import type { ApiKey, ApiKeyModalRef } from '../types'; +import RbModal from '@/components/RbModal' +import dayjs from 'dayjs' +import { createApiKey, updateApiKey } from '@/api/apiKey'; + +const FormItem = Form.Item; + +interface CreateModalProps { + refresh: () => void; +} + +const ApiKeyModal = forwardRef(({ + refresh, +}, ref) => { + const { t } = useTranslation(); + const { message } = App.useApp(); + const [visible, setVisible] = useState(false); + const [form] = Form.useForm(); + const [loading, setLoading] = useState(false); + const [editVo, setEditVo] = useState(null); + + // 封装取消方法,添加关闭弹窗逻辑 + const handleClose = () => { + setVisible(false); + form.resetFields(); + setLoading(false); + setEditVo(null); + }; + + const handleOpen = (apiKey?: ApiKey) => { + if (apiKey?.id) { + const { scopes = [], expires_at } = apiKey + // 编辑模式,填充表单 + form.setFieldsValue({ + name: apiKey.name, + description: apiKey.description, + memory: scopes.includes('memory'), + rag: scopes.includes('rag'), + expires_at: expires_at ? dayjs(expires_at) : undefined + }); + setEditVo(apiKey); + } + setVisible(true); + }; + + // 封装保存方法,添加提交逻辑 + const handleSave = async () => { + form.validateFields() + .then((values) => { + const { memory, rag, expires_at, ...rest } = values + let scopes = [] + + if (memory) { + scopes.push('memory') + } + if (rag) { + scopes.push('rag') + } + // 准备新的/更新的API Key数据 + const apiKeyData = { + ...rest, + scopes, + expires_at: expires_at ? dayjs(expires_at.valueOf()).endOf('day').valueOf() : null, + type: 'service' + }; + setLoading(true) + const req = editVo?.id ? updateApiKey(editVo.id, apiKeyData as ApiKey) : createApiKey(apiKeyData as ApiKey) + + req.then(() => { + refresh(); + handleClose(); + message.success(t(editVo ? 'common.updateSuccess' : 'common.createSuccess')); + }) + .finally(() => setLoading(false)) + }) + } + + // 暴露给父组件的方法 + useImperativeHandle(ref, () => ({ + handleOpen, + handleClose + })); + + return ( + +
+
{t('apiKey.baseInfo')}
+ + + + + + + + +
{t('apiKey.permissionInfo')}
+ + + + + + + + + + {/* 高级设置 */} +
{t('apiKey.advancedSettings')}
+ + + current && current < dayjs().subtract(1, 'day').endOf('day')} + /> + +
+
+ ); +}); + +export default ApiKeyModal; \ No newline at end of file diff --git a/web/src/views/ApiKeyManagement/index.tsx b/web/src/views/ApiKeyManagement/index.tsx new file mode 100644 index 00000000..007526de --- /dev/null +++ b/web/src/views/ApiKeyManagement/index.tsx @@ -0,0 +1,125 @@ +import React, { useRef } from 'react'; +import { useTranslation } from 'react-i18next'; +import { Button, App, Space } from 'antd'; +import clsx from 'clsx'; +import { DeleteOutlined, EditOutlined, EyeOutlined } from '@ant-design/icons'; +import type { ApiKey, ApiKeyModalRef } from './types'; +import ApiKeyModal from './components/ApiKeyModal'; +import ApiKeyDetailModal from './components/ApiKeyDetailModal'; +import RbCard from '@/components/RbCard/Card' +import { getApiKeyListUrl, deleteApiKey } from '@/api/apiKey'; +import PageScrollList, { type PageScrollListRef } from '@/components/PageScrollList' +import { formatDateTime } from '@/utils/format'; +import Tag from '@/components/Tag' +import copy from 'copy-to-clipboard' +import { maskApiKeys } from '@/utils/apiKeyReplacer'; + +const ApiKeyManagement: React.FC = () => { + const { t } = useTranslation(); + const { modal, message } = App.useApp(); + const apiKeyModalRef = useRef(null); + const apiKeyDetailModalRef = useRef(null) + const scrollListRef = useRef(null) + + const refresh = () => { + scrollListRef.current?.refresh(); + } + + const handleEdit = (item?: ApiKey) => { + apiKeyModalRef.current?.handleOpen(item); + } + const handleView = (item: ApiKey) => { + apiKeyDetailModalRef.current?.handleOpen(item); + } + const handleDelete = (item: ApiKey) => { + modal.confirm({ + title: t('common.confirmDeleteDesc', { name: item.name }), + okText: t('common.delete'), + okType: 'danger', + onOk: () => { + deleteApiKey(item.id) + .then(() => { + refresh(); + message.success(t('common.deleteSuccess')) + }) + } + }) + } + const handleCopy = (content: string) => { + copy(content) + message.success(t('common.copySuccess')) + } + return ( + <> +
+ +
+ + ) => { + let apiKeyItem = item as unknown as ApiKey + return ( + + {['id', 'is_expired', 'created_at'].map((key, index) => ( +
+ {t(`apiKey.${key}`)} + + { key === 'created_at' + ? formatDateTime(apiKeyItem[key], 'YYYY-MM-DD HH:mm:ss') + : key === 'is_expired' + ? {apiKeyItem[key] ? t('apiKey.inactive') : t('apiKey.active')} + : String(apiKeyItem[key as keyof ApiKey]) + } + +
+ ))} + +
+ {maskApiKeys(apiKeyItem.api_key)} + + +
+ + + {apiKeyItem.scopes?.includes('memory') && {t('apiKey.memoryEngine')}} + {apiKeyItem.scopes?.includes('rag') && {t('apiKey.knowledgeBase')}} + + +
+ + + +
+
+ ); + }} + /> + + + + + ); +}; + +export default ApiKeyManagement; \ No newline at end of file diff --git a/web/src/views/ApiKeyManagement/types.ts b/web/src/views/ApiKeyManagement/types.ts new file mode 100644 index 00000000..2df67193 --- /dev/null +++ b/web/src/views/ApiKeyManagement/types.ts @@ -0,0 +1,40 @@ +import type { Dayjs } from 'dayjs' +import { maskApiKeys } from '@/utils/apiKeyReplacer' + +export interface ApiKey { + id: string; + name: string; + description?: string; + type: 'agent' | 'multi_agent' | 'workflow' | 'service'; + scopes?: string[]; // 'memory' | 'rag' | 'app' + + api_key: string; + is_active: boolean; + is_expired: boolean; + created_at: number; + expires_at?: number | Dayjs; + memory?: boolean; + rag?: boolean; + + + updated_at: string; + qps_limit?: number; + daily_request_limit?: number; + + rate_limit?: number; + total_requests: number; + quota_used: number; + quota_limit: number; +} + +export interface ApiKeyModalRef { + handleOpen: (apiKey?: ApiKey) => void; + handleClose: () => void; +} + +/** + * 获取掩码后的API密钥 + */ +export const getMaskedApiKey = (apiKey: string): string => { + return maskApiKeys(apiKey) +} \ No newline at end of file diff --git a/web/src/views/ApplicationConfig/Api.tsx b/web/src/views/ApplicationConfig/Api.tsx index 90612687..1281f573 100644 --- a/web/src/views/ApplicationConfig/Api.tsx +++ b/web/src/views/ApplicationConfig/Api.tsx @@ -1,153 +1,189 @@ -import { type FC, useState } from 'react'; +import { type FC, useState, useRef, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; -import { Button, Space, App - // Slider, Input, - // Form, - // Checkbox -} from 'antd'; +import { Button, Space, App, Statistic, Row, Col, Divider } from 'antd'; import copy from 'copy-to-clipboard' import Card from './components/Card'; -// import qpsRestrictions from '@/assets/images/application/qpsRestrictions.svg' -// import dailyAdjustmentDosage from '@/assets/images/application/dailyAdjustmentDosage.svg' -// import tokenCap from '@/assets/images/application/tokenCap.svg' +import type { Application } from '@/views/ApplicationManagement/types' +import type { ApiKeyModalRef, ApiKeyConfigModalRef } from './types' +import type { ApiKey } from '@/views/ApiKeyManagement/types' +import ApiKeyModal from './components/ApiKeyModal'; +import ApiKeyConfigModal from './components/ApiKeyConfigModal'; +import Tag from '@/components/Tag' +import { getApiKeyList, getApiKeyStats } from '@/api/apiKey'; +import { maskApiKeys } from '@/utils/apiKeyReplacer' -// const limitList = [ -// { key: 'qpsRestrictions', value: '10', icon: qpsRestrictions, unit: ' times/second' }, -// { key: 'dailyAdjustmentDosage', value: '1000', icon: dailyAdjustmentDosage, unit: ' times/day' }, -// { key: 'tokenCap', value: '10', icon: tokenCap, unit: 'M Tokens/day' }, -// ] -// const sdkList = ['pythonSDK', 'nodejsSDK', 'goSDK', 'curlExample'] - -const Api: FC<{apiKeyList?: string[]}> = ({apiKeyList = []}) => { +const Api: FC<{ application: Application | null }> = ({ application }) => { const { t } = useTranslation(); const [activeMethods, setActiveMethod] = useState(['GET']); - const { message } = App.useApp() - // const [form] = Form.useForm(); + const { message, modal } = App.useApp() const copyContent = window.location.origin + '/v1/chat' + const apiKeyModalRef = useRef(null); + const apiKeyConfigModalRef = useRef(null); + const [apiKeyList, setApiKeyList] = useState([]) const handleCopy = (content: string) => { copy(content) message.success(t('common.copySuccess')) } - return ( -
- {/*
*/} - - -
- - {['GET', 'POST', 'PUT', 'DELETE'].map((method) => ( - - ))} - -
- {copyContent} - - + ))} + + +
+ {copyContent} + + +
+
+ + + {t('application.addApiKey')} + } + > +
{t('application.apiKeySubTitle')}
+ {/* 总览数据 */} + + + + + + + + + {/* API Key 列表 */} + {apiKeyList.sort((a, b) => b.created_at - a.created_at).map(item => ( +
+
+
+
{item.name}
+ ID: {item.id} +
+
handleEdit(item)} + >
+
handleDelete(item)} + >
+
+
+
+ {maskApiKeys(item.api_key)} + +
+ + + + + + + + + + + +
-
- + {t('application.addApiKey')} - // } - > -
- {t('application.apiKeyTitle')} -

{t('application.apiKeyDesc')}

-
- {apiKeyList.map((item, index) => ( -
- {item} + ))} + + - - - {/*
handleDelete(index)} - >
*/} -
-
- ))} -
- {/* -
- {t('application.requestExample')} - -
-
- curl -X POST https://api.example.com/v1/agent/execute \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d -
- -
- {t('application.responseExample')} -
-
- curl -X POST https://api.example.com/v1/agent/execute \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d -
-
- -
- {limitList.map(item => ( -
-
-
- {t(`application.${item.key}`)} -
{item.value}{item.unit}
-
- -
- -
- ))} -
-
- -
- {sdkList.map(item => ( -
- {t(`application.${item}`)} -
- ))} -
-
- - {t('application.WebhookReturnsTimeout')} ({t('application.WebhookReturnsTimeoutDesc')})} - > - - - {t('application.whitelistIP')} ({t('application.whitelistIPDesc')})} - > - - - - {t('application.publicAPIDocumentation')} - - */} - - {/* */} + +
); } diff --git a/web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx b/web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx new file mode 100644 index 00000000..f66c02c5 --- /dev/null +++ b/web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx @@ -0,0 +1,127 @@ +import { forwardRef, useImperativeHandle, useState } from 'react'; +import { Form, Slider } from 'antd'; +import { useTranslation } from 'react-i18next'; + +import type { ApiKeyConfigModalRef } from '../types' +import RbModal from '@/components/RbModal' +import { updateApiKey } from '@/api/apiKey'; +import type { ApiKey } from '@/views/ApiKeyManagement/types' + +interface ApiKeyConfigModalProps { + refresh: () => void; +} +const ApiKeyConfigModal = forwardRef(({ + refresh +}, ref) => { + const { t } = useTranslation(); + const [visible, setVisible] = useState(false); + const [form] = Form.useForm(); + const [loading, setLoading] = useState(false) + const values = Form.useWatch([], form) + const [editVo, setEditVo] = useState({} as ApiKey) + + // 封装取消方法,添加关闭弹窗逻辑 + const handleClose = () => { + setVisible(false); + form.resetFields(); + setLoading(false) + }; + + const handleOpen = (apiKey: ApiKey) => { + setVisible(true); + setEditVo(apiKey) + form.setFieldsValue({ + daily_request_limit: apiKey.daily_request_limit, + rate_limit: apiKey.rate_limit + }); + }; + // 封装保存方法,添加提交逻辑 + const handleSave = () => { + form.validateFields() + .then((values) => { + updateApiKey(editVo.id, { + ...editVo, + ...values + }) + handleClose() + refresh() + }) + } + + // 暴露给父组件的方法 + useImperativeHandle(ref, () => ({ + handleOpen, + handleClose + })); + + return ( + +
+ {/* QPS 限制(每秒请求数) */} + <> +
+ {t(`application.qpsLimit`)}({t('application.qpsLimitTip')}) +
+
+ {t('application.qpsLimitDesc')} +
+
+ + + +
+ 1 + {t('application.currentValue')}: {values?.rate_limit}{t('application.qpsLimitUnit')} +
+
+ + {/* 日调用量限制 */} + <> +
+ {t(`application.dailyUsageLimit`)} +
+
+ {t('application.dailyUsageLimitDesc')} +
+
+ + + +
+ 100 + {t('application.currentValue')}: {values?.daily_request_limit}{t('application.dailyUsageLimitUnit')} +
+
+ +
+
+ ); +}); + +export default ApiKeyConfigModal; \ No newline at end of file diff --git a/web/src/views/ApplicationConfig/components/ApiKeyModal.tsx b/web/src/views/ApplicationConfig/components/ApiKeyModal.tsx new file mode 100644 index 00000000..2b18f07a --- /dev/null +++ b/web/src/views/ApplicationConfig/components/ApiKeyModal.tsx @@ -0,0 +1,103 @@ +import { forwardRef, useImperativeHandle, useState } from 'react'; +import { Form, Input, App } from 'antd'; +import { useTranslation } from 'react-i18next'; + +import type { Application } from '@/views/ApplicationManagement/types' +import type { ApiKeyModalRef } from '../types' +import { createApiKey } from '@/api/apiKey'; +import RbModal from '@/components/RbModal' + +const FormItem = Form.Item; + +interface ApiKeyModalProps { + refresh: () => void; + application?: Application | null; +} + +const ApiKeyModal = forwardRef(({ + refresh, + application +}, ref) => { + const { t } = useTranslation(); + const { message } = App.useApp(); + const [visible, setVisible] = useState(false); + const [form] = Form.useForm(); + const [loading, setLoading] = useState(false) + + // 封装取消方法,添加关闭弹窗逻辑 + const handleClose = () => { + setVisible(false); + form.resetFields(); + setLoading(false) + }; + + const handleOpen = () => { + setVisible(true); + form.resetFields(); + }; + // 封装保存方法,添加提交逻辑 + const handleSave = () => { + if (!application) return + form.validateFields() + .then((values) => { + setLoading(true) + createApiKey({ + ...values, + type: application.type, + resource_id: application.id, + }) + .then(() => { + handleClose() + refresh() + message.success(t('common.createSuccess')) + }) + .finally(() => { + setLoading(false) + }) + }) + } + + // 暴露给父组件的方法 + useImperativeHandle(ref, () => ({ + handleOpen, + handleClose + })); + + return ( + +
+ {/* Key 名称 */} + + + + {/* 描述 */} + + + +
+
+ ); +}); + +export default ApiKeyModal; \ No newline at end of file diff --git a/web/src/views/ApplicationConfig/index.tsx b/web/src/views/ApplicationConfig/index.tsx index 8ad25989..4fbba8b4 100644 --- a/web/src/views/ApplicationConfig/index.tsx +++ b/web/src/views/ApplicationConfig/index.tsx @@ -8,9 +8,7 @@ import Api from './Api' import ReleasePage from './ReleasePage' import Cluster from './Cluster' import { getApplication } from '@/api/application' -import { randomString } from '@/utils/common' -const apiKeyList = [`app-${randomString(24, false)}`] const ApplicationConfig: React.FC = () => { const { id } = useParams(); const agentRef = useRef(null) @@ -52,7 +50,7 @@ const ApplicationConfig: React.FC = () => { /> {activeTab === 'arrangement' && application?.type === 'agent' && } {activeTab === 'arrangement' && application?.type === 'multi_agent' && } - {activeTab === 'api' && } + {activeTab === 'api' && } {activeTab === 'release' && } ); diff --git a/web/src/views/ApplicationConfig/types.ts b/web/src/views/ApplicationConfig/types.ts index f910a90f..c5cda44e 100644 --- a/web/src/views/ApplicationConfig/types.ts +++ b/web/src/views/ApplicationConfig/types.ts @@ -187,4 +187,10 @@ export interface SubAgentItem { } export interface SubAgentModalRef { handleOpen: (agent?: SubAgentItem) => void; +} +export interface ApiKeyModalRef { + handleOpen: () => void; +} +export interface ApiKeyConfigModalRef { + handleOpen: (apiKey: ApiKey) => void; } \ No newline at end of file diff --git a/web/src/views/ApplicationManagement/types.ts b/web/src/views/ApplicationManagement/types.ts index 4c5f928a..03d8b1b0 100644 --- a/web/src/views/ApplicationManagement/types.ts +++ b/web/src/views/ApplicationManagement/types.ts @@ -7,7 +7,7 @@ export interface Application { description?: string; icon?: string; icon_type?: string; - type: string; + type: 'agent' | 'multi_agent' | 'workflow'; visibility: string; status: string; tags: string[]; From 9799ba510af0742a1f6c6fecb06b104988102b8a Mon Sep 17 00:00:00 2001 From: zhaoying Date: Tue, 16 Dec 2025 14:22:37 +0800 Subject: [PATCH 14/92] optimize: check en.ts --- web/src/i18n/en.ts | 112 ++++++++++-------- web/src/i18n/zh.ts | 15 ++- .../components/ModelByProvider.tsx | 43 ------- .../components/MemberModal.tsx | 2 +- .../components/ConfigModal.tsx | 5 +- 5 files changed, 76 insertions(+), 101 deletions(-) delete mode 100644 web/src/views/ApplicationConfig/components/ModelByProvider.tsx diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 9fcc5585..51ddac6e 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -58,13 +58,13 @@ export const en = { forgettingExecutionRate: 'Forgetting Execution Rate', memoryClassificationDistribution: 'Memory classification distribution', - knowledgeBaseTypeDistribution: 'Distribution of knowledge base types', - memoryGrowthTrend: 'Memory growth trend', + knowledgeBaseTypeDistribution: 'Distribution of Knowledge Base Types', + memoryGrowthTrend: 'Memory Growth Trend', corporateMemory: 'Corporate Memory', - recentMemoryActivities: 'Recent memory activities', + recentMemoryActivities: 'Recent Memory Activities', apiCallTrend: 'API call trend', quickOperation: 'Quick Operation', - popularMemoryTags: 'Popular memory tags', + popularMemoryTags: 'Popular Memory Tags', title: 'Real-time Monitoring of Your AI Memory Core and Agent Status', loading: 'Loading...', @@ -116,7 +116,7 @@ export const en = { statements_count_desc: 'Manage {{count}} knowledge statements', triplet_count: 'Entity Relation Extraction', triplet_count_desc: 'Build {{entities_count}} entity nodes and {{relations_count}} relation connections', - temporal_count: 'Time extraction', + temporal_count: 'Time Extraction', temporal_count_desc: 'Record {{count}} time series information', dialogue: 'Dialogue', @@ -263,6 +263,7 @@ export const en = { exportList: 'Export List', selectPlaceholder: 'Please select {{title}}', inputPlaceholder: 'Please enter {{title}}', + enterPlaceholder: 'Enter {{title}}', saveSuccess: 'Save Success', saveFailure: 'Save Failure', pleaseSelect: 'Please select', @@ -289,8 +290,8 @@ export const en = { addOption: 'Add Option', viewDetail: 'View Detail', deleteSuccess: 'Delete successfully', - foldUp: 'Fold Up', - expanded: 'Expanded', + foldUp: 'Collapse', + expanded: 'Expand', clickUploadIcon: 'click on the upload icon', export: 'Export', active: 'Active', @@ -330,7 +331,7 @@ export const en = { provider: 'Provider', status: 'Status', created: 'Created', - configureBtn: 'Click to Configure', + configureBtn: 'Run Configuration', name: 'Name', displayName: 'Display Name', nameRequired: 'Please enter model name', @@ -402,6 +403,17 @@ export const en = { saveConfig: 'Save Config', apiKeyName: 'API Key Name', + + llm: 'LLM', + chat: 'Chat', + embedding: 'Embedding', + rerank: 'Rerank', + openai: "Openai", + dashscope: "Dashscope", + ollama: "Ollama", + xinference: "Xinference", + gpustack: "Gpustack", + bedrock: "Bedrock" }, knowledgeBase: { home: 'Home', @@ -440,7 +452,7 @@ export const en = { recallTestDescription:'Input test questions to evaluate the recall effectiveness and relevance of the knowledge base', similarityThreshold: 'Similarity Threshold', startTesting: 'Start Testing', - semanticSimilarity: 'Semantic similarity', + semanticSimilarity: 'Semantic Similarity', recallResult: 'Result', setting: 'Setting', similarity: 'Similarity', @@ -495,7 +507,7 @@ export const en = { delete: 'Delete', rechunking: 'Rechunking', download: 'Download', - selectSource:'Please select the source', + selectSource:'Please select a source', confirmDelete: 'Are you sure you want to delete this document?', knowledgeBaseSettings: 'Knowledge Base Settings', modelConfiguration: 'Model Configuration', @@ -650,16 +662,14 @@ export const en = { role: 'Role', lastLoginTime: 'Last Login Time', editMember: 'Edit Member', - createMember: 'Create Member', + createMember: 'Add Member', email: 'Email', - inviteToMember: 'Invite to Member', + inviteToMember: 'Member Role', member: 'Member', memberDesc: 'Can only use the application, cannot create the application', - admin: 'Admin', - adminDesc: 'Can create applications and manage team settings', sendInvitation: 'Send Invitation', manager: 'Admin', - managerDesc: 'Can create applications and manage team settings', + managerDesc: 'Can access applications, but cannot create or manage them', inviteLinkDesc: 'Invite link 【{{inviteLink}}】, please copy and send to the member', inviteLinkTip: 'Please copy the invite link and send it to the user to complete the invitation', }, @@ -739,7 +749,7 @@ export const en = { currentModel: 'Current Model', modelConfig: 'Model Config', - parameterConfig: 'Parameter Config', + parameterConfig: 'Parameter Configuration', apply: 'Apply', resetDefault: 'Reset Default', @@ -783,7 +793,7 @@ export const en = { promptConfiguration: 'Prompt Configuration', configurationDesc: 'Define the role, capabilities, and behavioral guidelines of the Agent', aiPrompt: 'AI Prompt', - promptPlaceholder: 'You are a professional AI assistant, and your responsibilities are ..', + promptPlaceholder: 'You are a professional AI assistant, and your responsibility is to help users solve problems.', knowledgeBaseAssociation: 'Knowledge base association', associatedKnowledgeBase: 'Associated Knowledge Base', addKnowledgeBase: 'Add Knowledge Base', @@ -896,7 +906,7 @@ export const en = { frequency_penalty_desc: 'Frequency penalty', presence_penalty: 'Presence Penalty', presence_penalty_desc: 'Presence Penalty', - n: 'Number of replies generated (n)', + n: 'Number of Replies Generated (n)', n_desc: 'Number of replies generated', contains: 'Contains {{include_count}} documents', @@ -909,7 +919,7 @@ export const en = { versionNumber: 'Version Number', versionNumberTip: 'Version number format: v[major version number].[next version number].[revision number] (e.g. v1.3.0)', versionDescription: 'Version Description', - versionDescriptionTip: 'Suggest explaining the feature updates, bug fixes, and optimization items for this release', + versionDescriptionTip: 'Please describe the feature updates, bug fixes, and optimizations included in this release.', releasePreview: 'Release Preview', globalConfig: 'Global Config', globalConfigDesc: 'The global configuration will be applied to all associated knowledge bases as the default configuration. The configuration of a single knowledge base will override the global configuration.', @@ -995,7 +1005,7 @@ export const en = { memoryInsight: 'Memory Insight', relationshipNetwork: 'Relationship Network', aboutMe: 'About Me', - foldUp: 'Fold Up', + foldUp: 'Collapse', interestDistribution: 'Interest Distribution', memoryDetails: 'Memory Details', importantMomentsInLife: 'Important Moments in Life', @@ -1006,7 +1016,7 @@ export const en = { memoryDetailEmpty: 'Please select a memory node', memoryDetailEmptyDesc: 'Click on any node in the above view to view detailed information', - totalNumOfMemories: 'Total number of memories', + totalNumOfMemories: 'Total Number of Memories', footprintCity: 'Footprint City', totalNumOfPhotos: 'Total number of photos', importantRelationships: 'Important Relationships', @@ -1016,7 +1026,7 @@ export const en = { emotions: 'Emotions', occupation: 'Occupation', memories: 'memories', - expanded: 'Expanded', + expanded: 'Expand', description: 'Description', entityType: 'Entity Type', conversationMemory: 'Conversation Storage Content', @@ -1032,32 +1042,32 @@ export const en = { associated: 'Associated', notAssociated: 'Not Associated', storageType: 'Storage Type', - rag: 'RAG storage', + rag: 'RAG Storage', ragDesc: 'Based on vector retrieval, suitable for document Q&A and semantic search', - neo4j: 'Graph storage', + neo4j: 'Graph Storage', neo4jDesc: 'Based on knowledge graph, suitable for relational reasoning and path query', llmModel: 'LLM Model', embeddingModel: 'Embedding Model', rerankModel: 'Rerank Model' }, memoryExtractionEngine: { - title: 'Memory Engine module configuration center', + title: 'Memory Engine Module Configuration Center', subTitle: 'Configure the parameters of six core modules, and view in real-time the impact on the memory processing conclusions of the "sample memory text (insights from the technology conference)". Any parameter changes will be instantly reflected in the results area on the right.', - example: 'Example memory text', - storageLayerModule: 'Storage layer module', + example: 'Example Memory Text', + storageLayerModule: 'Storage Layer Module', - enableLlmDedupBlockwise: 'Entity de-duplication (LLM decision-making)', - enableLlmDisambiguation: 'Memory disambiguation function (LLM decision)', - tNameStrict: 'Name matching threshold', - tTypeStrict: 'Type matching threshold', - tOverall: 'Comprehensive matching threshold', + enableLlmDedupBlockwise: 'Entity De-duplication (LLM decision-making)', + enableLlmDisambiguation: 'Memory Disambiguation Function (LLM decision)', + tNameStrict: 'Name Matching Threshold', + tTypeStrict: 'Type Matching Threshold', + tOverall: 'Comprehensive Matching Threshold', - arrangementLayerModule: 'Arrangement layer module', - queryMode: 'Query mode', + arrangementLayerModule: 'Arrangement Layer Module', + queryMode: 'Query Mode', queryModeSubTitle: 'Control whether to activate deeper search functions', deepRetrieval: 'Deep Retrieval', deepRetrievalMeaning: 'Control whether to initiate deep memory retrieval (true/false).', - dataPreprocessing: 'Data preprocessing', + dataPreprocessing: 'Data Preprocessing', dataPreprocessingSubTitle: 'Through reflection and refinement, transform episodic memory into deeper semantic memory.', entityDeduplicationModuleThreshold: 'Entity de-duplication - name matching threshold', @@ -1066,14 +1076,14 @@ export const en = { control: 'Control', button: 'button', inputNumber: 'progress value', - slider: 'progress value', + slider: 'Slider', select: 'select', location: 'Location', CurrentValue: 'Current Value', type: 'Type', Meaning: 'Meaning', - exampleMemoryExtractionResults: 'Example memory extraction results', + exampleMemoryExtractionResults: 'Example Memory Extraction Results', exampleMemoryExtractionResultsSubTitle: '(from a technology conference)', extractTheNumberOfEntities: 'Extract the number of entities', @@ -1103,26 +1113,26 @@ export const en = { lateChunker: 'Late Chunker', debug: 'Debug', model: 'Model', - chunkerStrategy: 'Chunker strategy', + chunkerStrategy: 'Chunker Strategy', chunkerStrategyDesc: 'Choose a partitioning strategy.', - intelligentSemanticPruning: 'Intelligent semantic pruning', + intelligentSemanticPruning: 'Intelligent Semantic Pruning', intelligentSemanticPruningSubTitle: 'Whether to activate the intelligent semantic pruning function, select pruning scenarios, and set thresholds.', - intelligentSemanticPruningFunction: 'Intelligent semantic pruning function', + intelligentSemanticPruningFunction: 'Intelligent Semantic Pruning Function', intelligentSemanticPruningFunctionDesc: 'Whether to activate intelligent semantic pruning (true/false).', - intelligentSemanticPruningScene: 'Intelligent semantic pruning scene', + intelligentSemanticPruningScene: 'Intelligent Semantic Pruning Scene', intelligentSemanticPruningSceneDesc: 'Select intelligent semantic pruning scene (education, online_service, outbound).', - intelligentSemanticPruningThreshold: 'Intelligent semantic pruning threshold', + intelligentSemanticPruningThreshold: 'Intelligent Semantic Pruning Threshold', intelligentSemanticPruningThresholdDesc: 'Set intelligent semantic pruning threshold (0-0.9).', - selfReflexionEngine: 'Self-reflexion engine', + selfReflexionEngine: 'Self-Reflexion Engine', selfReflexionEngineSubTitle: 'Through reflection and refinement, transform episodic memory into deeper semantic memory.', enableSelfReflexion: 'Enable self-reflexion', - iterationPeriod: 'Iteration period', + iterationPeriod: 'Iteration Period', iterationPeriodDesc: 'Set the iteration period for self-reflexion (hourly, 3_hours, 6_hours, 12_hours, daily).', - reflexionRange: 'Reflexion range', + reflexionRange: 'Reflexion Range', reflexionRangeDesc: "When selecting 'Database', the iteration cycle is non configurable and fixed at daily", retrieval: 'Retrieval', database: 'Database', - reflectOnTheBaseline: 'Reflect on the baseline', + reflectOnTheBaseline: 'Reflect on the Baseline', basedOnTime: 'Based on time', basedOnFacts: 'Based on facts', basedOnFactsAndTime: 'Based on facts and time', @@ -1134,15 +1144,15 @@ export const en = { education: 'Education', online_service: 'Online service', outbound: 'Outbound', - entityDeduplicationDisambiguation: 'Entity de-duplication disambiguation', + entityDeduplicationDisambiguation: 'Entity De-duplication Disambiguation', entityDeduplicationDisambiguationSubTitle: 'Control the LLM decision-making function for memory deduplication and disambiguation, set various matching thresholds, and affect the accuracy of memory deduplication.', - semanticAnchorAnnotationModule: 'Semantic anchor annotation module', + semanticAnchorAnnotationModule: 'Semantic Anchor Annotation Module', semanticAnchorAnnotationModuleSubTitle: 'Control the granularity of statement extraction and whether to include dialog context.', - statementGranularity: 'Statement granularity', + statementGranularity: 'Statement Granularity', statementGranularityDesc: 'Statement extraction granularity (1-3): 1 represents breaking down sentences into different statements, 2 represents sentence level, and 3 represents merging sentences into paragraphs.', - includeDialogueContext: 'Include dialogue context', + includeDialogueContext: 'Include Dialogue Context', includeDialogueContextDesc: 'Control whether the complete dialogue context is included in the extraction process (true/false).', - maxDialogueContextChars: 'Max dialogue context chars', + maxDialogueContextChars: 'Max Dialogue Context Chars', maxDialogueContextCharsDesc: 'The maximum number of characters included in the dialogue context (to avoid character limit issues) (greater than 100).', coreEntitiesAfterDedup: 'Core entities after deduplication', extractRelationalTriples: 'Extracted relational triples (partial)', diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 3e7e204d..fbbe9135 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -310,7 +310,7 @@ export const zh = { promptConfiguration: '提示词配置', configurationDesc: '定义Agent的角色、能力和行为准则', aiPrompt: 'AI提示词', - promptPlaceholder: '你是一个专业的AI助手,你的职责是..', + promptPlaceholder: '你是一个专业的AI助手,你的职责是帮助用户解决问题。', knowledgeBaseAssociation: '知识库关联', associatedKnowledgeBase: '关联知识库', addKnowledgeBase: '添加知识库', @@ -894,6 +894,17 @@ export const zh = { saveConfig: '保存配置', apiKeyName: 'API密钥名称', + + llm: 'LLM', + chat: 'Chat', + embedding: 'Embedding', + rerank: 'Rerank', + openai: "Openai", + dashscope: "Dashscope", + ollama: "Ollama", + xinference: "Xinference", + gpustack: "Gpustack", + bedrock: "Bedrock" }, timezones: { 'Asia/Shanghai': '中国标准时间 (UTC+8)', @@ -1002,8 +1013,6 @@ export const zh = { inviteToMember: '邀请成员', member: '成员', memberDesc: '只能使用应用,不能创建应用', - admin: '管理员', - adminDesc: '可以创建应用和管理团队设置', sendInvitation: '发送邀请', manager: '管理员', managerDesc: '可以创建应用和管理团队设置', diff --git a/web/src/views/ApplicationConfig/components/ModelByProvider.tsx b/web/src/views/ApplicationConfig/components/ModelByProvider.tsx deleted file mode 100644 index f108ccd4..00000000 --- a/web/src/views/ApplicationConfig/components/ModelByProvider.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { useEffect, useState, type FC } from 'react'; -import { useTranslation } from 'react-i18next'; -import { Cascader } from 'antd' -import type { CascaderProps } from 'antd'; -import { getModelProviderList } from '@/api/models' - -interface Option { - value?: string | number | null; - label: React.ReactNode; - children?: Option[]; - isLeaf?: boolean; -} -const CustomSelect: FC = () => { - const { t } = useTranslation(); - const [options, setOptions] = useState([]); - useEffect(() => { - getProviderList() - }, []); - - const getProviderList = () => { - getModelProviderList().then(res => { - const response = res as string[] - setOptions(response.map((key: string) => ({ - value: key, - label: t(`model.${key}`), - children: [], - isLeaf: false, - }))) - }) - } - const loadData = (selectedOptions: Option[]) => { - const targetOption = selectedOptions[selectedOptions.length - 1]; - console.log(targetOption) - } - return ( - - ); -} -export default CustomSelect; \ No newline at end of file diff --git a/web/src/views/MemberManagement/components/MemberModal.tsx b/web/src/views/MemberManagement/components/MemberModal.tsx index cd1e9613..052c5e29 100644 --- a/web/src/views/MemberManagement/components/MemberModal.tsx +++ b/web/src/views/MemberManagement/components/MemberModal.tsx @@ -132,7 +132,7 @@ const MemberModal = forwardRef(({ label={t('member.email')} rules={[{ required: true, message: t('common.pleaseEnter') }]} > - + (({ items.map((item) => ({ label: item, value: item }))} + format={(items) => items.map((item) => ({ label: t(`model.${item}`), value: item }))} /> @@ -138,10 +138,9 @@ const ConfigModal = forwardRef(({ items.map((item) => ({ label: item, value: item }))} + format={(items) => items.map((item) => ({ label: t(`model.${item}`), value: item }))} /> - {/* TODO:改成模型名称 */} Date: Wed, 17 Dec 2025 14:16:25 +0800 Subject: [PATCH 15/92] feat:create cusotm text dataset --- .../[knowledgeBaseId]/CreateDataset.tsx | 4 +-- .../[knowledgeBaseId]/Private.tsx | 1 + .../components/CreateContentModal.tsx | 27 ++++++++++++++----- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx index 7139230d..d4a9084f 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx @@ -552,8 +552,8 @@ const CreateDataset = () => { {rechunkFileIds.length > 0 ? ( { } const handleRefreshTable = () => { + debugger // 刷新表格数据 tableRef.current?.loadData(); } diff --git a/web/src/views/KnowledgeBase/components/CreateContentModal.tsx b/web/src/views/KnowledgeBase/components/CreateContentModal.tsx index 5ad0b4f8..63292dec 100644 --- a/web/src/views/KnowledgeBase/components/CreateContentModal.tsx +++ b/web/src/views/KnowledgeBase/components/CreateContentModal.tsx @@ -1,4 +1,6 @@ import { forwardRef, useImperativeHandle, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; + import { Form, Input } from 'antd'; import { useTranslation } from 'react-i18next'; import RbModal from '@/components/RbModal'; @@ -12,6 +14,7 @@ interface ContentFormData { const CreateContentModal = forwardRef( ({ refreshTable }, ref) => { const { t } = useTranslation(); + const navigate = useNavigate(); const [visible, setVisible] = useState(false); const [form] = Form.useForm(); const [loading, setLoading] = useState(false); @@ -45,13 +48,11 @@ const CreateContentModal = forwardRef parent_id: parentId, }; - // 模拟API调用 - await new Promise(resolve => setTimeout(resolve, 1000)); - await createDocumentAndUpload(values, params) - if (refreshTable) { - await refreshTable(); - } + const response = await createDocumentAndUpload(values, params) + if(response){ + handleChunking(response.kb_id,parentId,response.id) + } handleClose(); } catch (err) { console.error('创建内容失败:', err); @@ -59,7 +60,19 @@ const CreateContentModal = forwardRef setLoading(false); } }; - + const handleChunking = (kb_id: string, parent_id: string, file_id: string) => { + if (!kb_id) return; + const targetFileId = file_id + navigate(`/knowledge-base/${kb_id}/create-dataset`, { + state: { + source: 'local', + knowledgeBaseId: kb_id, + parentId: parent_id ?? kb_id, + startStep: 'parameterSettings', + fileId: targetFileId, + }, + }); + } useImperativeHandle(ref, () => ({ handleOpen, })); From e92a2f814ba93de5e3bf3de5398900a2471a996e Mon Sep 17 00:00:00 2001 From: yujiangping Date: Wed, 17 Dec 2025 14:19:43 +0800 Subject: [PATCH 16/92] feat(web): update auto-imports with new React hooks and components - Add React components: Activity, Fragment, Suspense - Add React hooks: cache, cacheSignal, createContext, use, useActionState, useEffectEvent, useOptimistic - Maintain existing React Router imports and hooks - Expand global type declarations for improved IDE autocomplete and type safety --- web/public/auto-imports.d.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/web/public/auto-imports.d.ts b/web/public/auto-imports.d.ts index 62f88140..61cb2733 100644 --- a/web/public/auto-imports.d.ts +++ b/web/public/auto-imports.d.ts @@ -6,22 +6,31 @@ // biome-ignore lint: disable export {} declare global { + const Activity: typeof import('react').Activity + const Fragment: typeof import('react').Fragment const Link: typeof import('react-router-dom').Link const NavLink: typeof import('react-router-dom').NavLink const Navigate: typeof import('react-router-dom').Navigate const Outlet: typeof import('react-router-dom').Outlet const Route: typeof import('react-router-dom').Route const Routes: typeof import('react-router-dom').Routes + const Suspense: typeof import('react').Suspense + const cache: typeof import('react').cache + const cacheSignal: typeof import('react').cacheSignal + const createContext: typeof import('react').createContext const createRef: typeof import('react').createRef const forwardRef: typeof import('react').forwardRef const lazy: typeof import('react').lazy const memo: typeof import('react').memo const startTransition: typeof import('react').startTransition + const use: typeof import('react').use + const useActionState: typeof import('react').useActionState const useCallback: typeof import('react').useCallback const useContext: typeof import('react').useContext const useDebugValue: typeof import('react').useDebugValue const useDeferredValue: typeof import('react').useDeferredValue const useEffect: typeof import('react').useEffect + const useEffectEvent: typeof import('react').useEffectEvent const useHref: typeof import('react-router-dom').useHref const useId: typeof import('react').useId const useImperativeHandle: typeof import('react').useImperativeHandle @@ -33,6 +42,7 @@ declare global { const useMemo: typeof import('react').useMemo const useNavigate: typeof import('react-router-dom').useNavigate const useNavigationType: typeof import('react-router-dom').useNavigationType + const useOptimistic: typeof import('react').useOptimistic const useOutlet: typeof import('react-router-dom').useOutlet const useOutletContext: typeof import('react-router-dom').useOutletContext const useParams: typeof import('react-router-dom').useParams From 29cc708f4f976e3b789ed962e9d030dfbf8605ef Mon Sep 17 00:00:00 2001 From: zhaoying Date: Thu, 18 Dec 2025 12:35:42 +0800 Subject: [PATCH 17/92] feat(web): api key --- .../ApiKeyManagement/components/ApiKeyDetailModal.tsx | 8 ++++---- web/src/views/ApiKeyManagement/index.tsx | 6 +++--- .../views/ApplicationConfig/components/ApiKeyModal.tsx | 1 + 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/web/src/views/ApiKeyManagement/components/ApiKeyDetailModal.tsx b/web/src/views/ApiKeyManagement/components/ApiKeyDetailModal.tsx index 2c154f51..2899a306 100644 --- a/web/src/views/ApiKeyManagement/components/ApiKeyDetailModal.tsx +++ b/web/src/views/ApiKeyManagement/components/ApiKeyDetailModal.tsx @@ -1,5 +1,5 @@ import { forwardRef, useImperativeHandle, useState } from 'react'; -import { Switch, Button } from 'antd'; +import { Switch, Button, Tooltip } from 'antd'; import clsx from 'clsx'; import { useTranslation } from 'react-i18next'; import type { ApiKey, ApiKeyModalRef } from '../types'; @@ -51,8 +51,8 @@ const ApiKeyDetailModal = forwardRef{data[key] ? t('apiKey.inactive') : t('apiKey.active')} - : String(data[key as keyof ApiKey]) + ? {data[key] ? t('apiKey.inactive') : t('apiKey.active')} + : {String(data[key as keyof ApiKey])} } @@ -91,7 +91,7 @@ const ApiKeyDetailModal = forwardRef {t(`apiKey.expires_at`)} - {data.expires_at ? formatDateTime(data.expires_at as number, 'yyyy-MM-DD') : '-'} + {data.expires_at ? formatDateTime(data.expires_at as number, 'YYYY-MM-DD HH:mm:ss') : '-'} } diff --git a/web/src/views/ApiKeyManagement/index.tsx b/web/src/views/ApiKeyManagement/index.tsx index 007526de..fee8bf08 100644 --- a/web/src/views/ApiKeyManagement/index.tsx +++ b/web/src/views/ApiKeyManagement/index.tsx @@ -72,12 +72,12 @@ const ApiKeyManagement: React.FC = () => {
- {t(`apiKey.${key}`)} - + {t(`apiKey.${key}`)} + { key === 'created_at' ? formatDateTime(apiKeyItem[key], 'YYYY-MM-DD HH:mm:ss') : key === 'is_expired' - ? {apiKeyItem[key] ? t('apiKey.inactive') : t('apiKey.active')} + ? {apiKeyItem[key] ? t('apiKey.inactive') : t('apiKey.active')} : String(apiKeyItem[key as keyof ApiKey]) } diff --git a/web/src/views/ApplicationConfig/components/ApiKeyModal.tsx b/web/src/views/ApplicationConfig/components/ApiKeyModal.tsx index 2b18f07a..54740436 100644 --- a/web/src/views/ApplicationConfig/components/ApiKeyModal.tsx +++ b/web/src/views/ApplicationConfig/components/ApiKeyModal.tsx @@ -45,6 +45,7 @@ const ApiKeyModal = forwardRef(({ ...values, type: application.type, resource_id: application.id, + scopes: ['app'] }) .then(() => { handleClose() From fa53ab1d6aae3bb47847e30d8fcef9dc2fef5a43 Mon Sep 17 00:00:00 2001 From: zhaoying Date: Thu, 18 Dec 2025 13:34:32 +0800 Subject: [PATCH 18/92] feat(web): api method readonly --- web/src/views/ApplicationConfig/Api.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/src/views/ApplicationConfig/Api.tsx b/web/src/views/ApplicationConfig/Api.tsx index 1281f573..ca8b20ee 100644 --- a/web/src/views/ApplicationConfig/Api.tsx +++ b/web/src/views/ApplicationConfig/Api.tsx @@ -15,7 +15,7 @@ import { maskApiKeys } from '@/utils/apiKeyReplacer' const Api: FC<{ application: Application | null }> = ({ application }) => { const { t } = useTranslation(); - const [activeMethods, setActiveMethod] = useState(['GET']); + const activeMethods = ['GET']; const { message, modal } = App.useApp() const copyContent = window.location.origin + '/v1/chat' const apiKeyModalRef = useRef(null); @@ -86,7 +86,7 @@ const Api: FC<{ application: Application | null }> = ({ application }) => { // 计算total_requests总数 const totalRequests = apiKeyList.reduce((total, item) => total + item.total_requests, 0); return ( -
+
= ({ application }) => {
{['GET', 'POST', 'PUT', 'DELETE'].map((method) => ( - ))} From 3ab68e126feecd23fe029bf843dfccbe4591096a Mon Sep 17 00:00:00 2001 From: zhaoying Date: Thu, 18 Dec 2025 15:12:39 +0800 Subject: [PATCH 19/92] feature: app's api key support delete --- web/src/views/ApplicationConfig/Api.tsx | 12 ++++++++---- .../components/ApiKeyConfigModal.tsx | 10 ++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/web/src/views/ApplicationConfig/Api.tsx b/web/src/views/ApplicationConfig/Api.tsx index ca8b20ee..50575fee 100644 --- a/web/src/views/ApplicationConfig/Api.tsx +++ b/web/src/views/ApplicationConfig/Api.tsx @@ -1,6 +1,6 @@ import { type FC, useState, useRef, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; -import { Button, Space, App, Statistic, Row, Col, Divider } from 'antd'; +import { Button, Space, App, Statistic, Row, Col } from 'antd'; import copy from 'copy-to-clipboard' import Card from './components/Card'; @@ -10,7 +10,7 @@ import type { ApiKey } from '@/views/ApiKeyManagement/types' import ApiKeyModal from './components/ApiKeyModal'; import ApiKeyConfigModal from './components/ApiKeyConfigModal'; import Tag from '@/components/Tag' -import { getApiKeyList, getApiKeyStats } from '@/api/apiKey'; +import { getApiKeyList, getApiKeyStats, deleteApiKey } from '@/api/apiKey'; import { maskApiKeys } from '@/utils/apiKeyReplacer' const Api: FC<{ application: Application | null }> = ({ application }) => { @@ -44,7 +44,7 @@ const Api: FC<{ application: Application | null }> = ({ application }) => { }).then(res => { const response = res as { items: ApiKey[] } const list = response.items ?? [] - getAllStats(list) + getAllStats([...list]) }) } const getAllStats = (list: ApiKey[]) => { @@ -78,7 +78,11 @@ const Api: FC<{ application: Application | null }> = ({ application }) => { okText: t('common.delete'), okType: 'danger', onOk: () => { - + deleteApiKey(vo.id) + .then(() => { + getApiList(); + message.success(t('common.deleteSuccess')) + }) } }) } diff --git a/web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx b/web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx index f66c02c5..248bf50a 100644 --- a/web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx +++ b/web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx @@ -18,13 +18,14 @@ const ApiKeyConfigModal = forwardRef(); const [loading, setLoading] = useState(false) const values = Form.useWatch([], form) - const [editVo, setEditVo] = useState({} as ApiKey) + const [editVo, setEditVo] = useState(null) // 封装取消方法,添加关闭弹窗逻辑 const handleClose = () => { - setVisible(false); form.resetFields(); setLoading(false) + setEditVo(null) + setVisible(false); }; const handleOpen = (apiKey: ApiKey) => { @@ -37,6 +38,7 @@ const ApiKeyConfigModal = forwardRef { + if (!editVo?.id) return form.validateFields() .then((values) => { updateApiKey(editVo.id, { @@ -88,7 +90,7 @@ const ApiKeyConfigModal = forwardRef -
+
1 {t('application.currentValue')}: {values?.rate_limit}{t('application.qpsLimitUnit')}
@@ -113,7 +115,7 @@ const ApiKeyConfigModal = forwardRef -
+
100 {t('application.currentValue')}: {values?.daily_request_limit}{t('application.dailyUsageLimitUnit')}
From 50a244af4debd9d7592145d9211f16ce80256a4f Mon Sep 17 00:00:00 2001 From: zhaoying Date: Thu, 18 Dec 2025 15:20:01 +0800 Subject: [PATCH 20/92] style(web): ui update --- web/src/views/ApplicationConfig/Api.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web/src/views/ApplicationConfig/Api.tsx b/web/src/views/ApplicationConfig/Api.tsx index 50575fee..2616b32b 100644 --- a/web/src/views/ApplicationConfig/Api.tsx +++ b/web/src/views/ApplicationConfig/Api.tsx @@ -1,4 +1,5 @@ import { type FC, useState, useRef, useEffect } from 'react'; +import clsx from 'clsx'; import { useTranslation } from 'react-i18next'; import { Button, Space, App, Statistic, Row, Col } from 'antd'; import copy from 'copy-to-clipboard' @@ -99,9 +100,12 @@ const Api: FC<{ application: Application | null }> = ({ application }) => {
{['GET', 'POST', 'PUT', 'DELETE'].map((method) => ( - +
))} From 7da3c5a8e8a5f5ea94e0509796bdbc07379ea15d Mon Sep 17 00:00:00 2001 From: zhaoying Date: Thu, 18 Dec 2025 20:35:38 +0800 Subject: [PATCH 21/92] feat(web): update api key --- web/src/views/ApplicationConfig/Api.tsx | 3 --- .../views/ApplicationConfig/components/ApiKeyConfigModal.tsx | 4 +++- .../ApplicationManagement/components/ApplicationModal.tsx | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/web/src/views/ApplicationConfig/Api.tsx b/web/src/views/ApplicationConfig/Api.tsx index 2616b32b..e9fdea68 100644 --- a/web/src/views/ApplicationConfig/Api.tsx +++ b/web/src/views/ApplicationConfig/Api.tsx @@ -171,9 +171,6 @@ const Api: FC<{ application: Application | null }> = ({ application }) => {
- - - diff --git a/web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx b/web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx index 248bf50a..1b4f3f6e 100644 --- a/web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx +++ b/web/src/views/ApplicationConfig/components/ApiKeyConfigModal.tsx @@ -46,7 +46,9 @@ const ApiKeyConfigModal = forwardRef { + refresh() + }, 50) }) } diff --git a/web/src/views/ApplicationManagement/components/ApplicationModal.tsx b/web/src/views/ApplicationManagement/components/ApplicationModal.tsx index 3e2ebc23..6856f76d 100644 --- a/web/src/views/ApplicationManagement/components/ApplicationModal.tsx +++ b/web/src/views/ApplicationManagement/components/ApplicationModal.tsx @@ -69,7 +69,7 @@ const ApplicationModal = forwardRef( const response = editVo?.id ? updateApplication(editVo.id, { ...editVo, ...values, - } as Application) : addApplication(values as Application) + }) : addApplication(values) response.then(() => { refresh() handleClose() @@ -127,7 +127,6 @@ const ApplicationModal = forwardRef( label: t(`application.${type}`), labelDesc: t(`application.${type}Desc`), icon: typeIcons[type], - disabled: editVo?.id || type === 'workflow' }))} /> From bcec0ae40138df748387d5c1ed28e30511031892 Mon Sep 17 00:00:00 2001 From: zhaoying Date: Fri, 19 Dec 2025 16:54:52 +0800 Subject: [PATCH 22/92] feat(web): Add Emotion Memory --- web/src/api/memory.ts | 29 ++ web/src/components/RbAlert/index.tsx | 4 +- web/src/components/RbModal/index.tsx | 3 +- web/src/i18n/en.ts | 354 +++++++++++++++- web/src/i18n/zh.ts | 380 ++++++++++++++++-- web/src/routes/index.tsx | 19 +- web/src/routes/routes.json | 4 + web/src/store/menu.json | 42 +- web/src/views/EmotionEngine/index.tsx | 252 ++++++++++++ web/src/views/EmotionEngine/types.ts | 48 +++ web/src/views/MemoryManagement/index.tsx | 49 ++- web/src/views/UserMemoryDetail/Neo4j.tsx | 148 ++++--- .../components/EmotionTags.tsx | 111 +++++ .../UserMemoryDetail/components/Health.tsx | 100 +++++ .../components/Suggestions.tsx | 63 +++ .../UserMemoryDetail/components/WordCloud.tsx | 131 ++++++ .../UserMemoryDetail/pages/EmotionDetail.tsx | 29 ++ 17 files changed, 1620 insertions(+), 146 deletions(-) create mode 100644 web/src/views/EmotionEngine/index.tsx create mode 100644 web/src/views/EmotionEngine/types.ts create mode 100644 web/src/views/UserMemoryDetail/components/EmotionTags.tsx create mode 100644 web/src/views/UserMemoryDetail/components/Health.tsx create mode 100644 web/src/views/UserMemoryDetail/components/Suggestions.tsx create mode 100644 web/src/views/UserMemoryDetail/components/WordCloud.tsx create mode 100644 web/src/views/UserMemoryDetail/pages/EmotionDetail.tsx diff --git a/web/src/api/memory.ts b/web/src/api/memory.ts index b52d5431..d6811c06 100644 --- a/web/src/api/memory.ts +++ b/web/src/api/memory.ts @@ -8,6 +8,9 @@ import type { import type { ConfigForm as ExtractionConfigForm } from '@/views/MemoryExtractionEngine/types' +import type { + ConfigForm as EmotionConfig +} from '@/views/EmotionEngine/types' import type { TestParams } from '@/views/MemoryConversation' import { handleSSE, type SSEMessage } from '@/utils/stream' @@ -96,6 +99,23 @@ export const getChunkInsight = (end_user_id: string) => { export const getRagContent = (end_user_id: string) => { return request.get(`/dashboard/rag_content`, { end_user_id, limit: 20 }) } +// 情感分布分析 +export const getWordCloud = (group_id: string) => { + return request.post(`/memory/emotion/wordcloud`, { group_id, limit: 20 }) +} +// 高频情绪关键词 +export const getEmotionTags = (group_id: string) => { + return request.post(`/memory/emotion/tags`, { group_id, limit: 20 }) +} +// 情绪健康指数 +export const getEmotionHealth = (group_id: string) => { + return request.post(`/memory/emotion/health`, { group_id, limit: 20 }) +} +// 个性化建议 +export const getEmotionSuggestions = (group_id: string) => { + return request.post(`/memory/emotion/suggestions`, { group_id, limit: 20 }) +} + /*************** end 用户记忆 相关接口 ******************************/ /****************** 记忆管理 相关接口 *******************************/ @@ -136,6 +156,15 @@ export const updateMemoryExtractionConfig = (values: ExtractionConfigForm) => { export const pilotRunMemoryExtractionConfig = (values: { config_id: number | string; dialogue_text: string; }, onMessage?: (data: SSEMessage[]) => void) => { return handleSSE('/memory-storage/pilot_run', values, onMessage) } +// 情绪引擎-获取配置 +export const getMemoryEmotionConfig = (config_id: number | string) => { + return request.get('/memory/emotion/read_config', { config_id: config_id }) +} +// 情绪引擎-更新配置 +export const updateMemoryEmotionConfig = (values: EmotionConfig) => { + return request.post('/memory/emotion/updated_config', values) +} + /*************** end 记忆管理 相关接口 ******************************/ diff --git a/web/src/components/RbAlert/index.tsx b/web/src/components/RbAlert/index.tsx index 63933ee3..68a88cd0 100644 --- a/web/src/components/RbAlert/index.tsx +++ b/web/src/components/RbAlert/index.tsx @@ -3,7 +3,7 @@ import { type FC, type ReactNode } from 'react' interface RbAlertProps { color?: 'blue' | 'green' | 'orange' | 'purple', children: ReactNode | string; - icon: ReactNode; + icon?: ReactNode; className?: string; } @@ -17,7 +17,7 @@ const colors = { const RbAlert: FC = ({ color = 'blue', icon, className, children }) => { return (
- {icon && {icon}} + {icon && {icon}} {children}
) diff --git a/web/src/components/RbModal/index.tsx b/web/src/components/RbModal/index.tsx index f6af75aa..46812207 100644 --- a/web/src/components/RbModal/index.tsx +++ b/web/src/components/RbModal/index.tsx @@ -16,9 +16,10 @@ const RbModal: FC = ({ cancelText={t('common.cancel')} onOk={onOk} destroyOnHidden={true} + maskClosable={false} {...props} > -
+
{children}
diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 51ddac6e..134b18ff 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -34,6 +34,9 @@ export const en = { knowledgeDocumentDetails: 'Document Details', userMemoryDetail: 'UserMemory Detail', apiKeyManagement: 'API KEY Management', + toolManagement: 'Tool Management', + emotionEngine: 'Emotion Engine', + emotionDetail: 'Emotion Memory' }, dashboard: { totalMemoryCapacity: 'Total Memory Capacity', @@ -320,10 +323,7 @@ export const en = { loginApiCannotRefreshToken: 'Login API cannot refresh token', logoutApiCannotRefreshToken: 'Logout API cannot refresh token', publicApiCannotRefreshToken: 'Public API cannot refresh token', - refreshTokenNotExist: 'Refresh token does not exist', - reset: 'Reset', - statusEnabled: 'Enabled', - statusDisabled: 'Disabled', + refreshTokenNotExist: 'Refresh token does not exist' }, model: { searchPlaceholder: 'search model…', @@ -416,9 +416,6 @@ export const en = { bedrock: "Bedrock" }, knowledgeBase: { - home: 'Home', - selectSpace: 'Please select a workspace.', - preview:'Preview', pleaseUploadFileFirst: 'Please upload file first', shareSuccess: 'Share successfully', shareFailed: 'Share failed', @@ -553,7 +550,6 @@ export const en = { fileName: 'File Name', fileList: 'File List', blockPreview: 'Block Preview', - processingDocuments: 'Processing documents, please wait...', chunkContent: 'Chunk Content', sampleChunk: 'Sample Chunk Content', noFilesSelected: 'No files', @@ -563,10 +559,6 @@ export const en = { waiting: 'Waiting', startUpload: 'Total {{count}} files | Start Upload', startUploading: 'Start Uploading', - startUploadConfirmTitle: 'Start Processing Documents', - startUploadConfirmContent: 'Document processing will run in the background. You can choose to return to the list page immediately or stay on this page to view the processing progress.', - returnToList: 'Return to List', - stayOnPage: 'Stay on Page', uploadSuccess: 'Upload Success', datasetName: 'Dataset Name', pleaseEnterDatasetName: 'Please enter dataset name', @@ -655,6 +647,8 @@ export const en = { active: 'Active', inactive: 'Inactive', configurationName: 'Configuration Name', + emotionEngine: 'Emotion Engine', + selfReflexionEngine: 'Self-Reflection Engine' }, member: { username: 'Username', @@ -1223,8 +1217,6 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re quickReply: 'Quick Reply', web_search: 'Online search', memory: 'Memory', - memoryConversationAnalysisEmpty: 'There is currently no dialogue analysis content available', - memoryConversationAnalysisEmptySubTitle: 'After entering your user ID, click on "Send" to view the conversation memory' }, login: { title: 'Red Bear Memory Science', @@ -1306,5 +1298,339 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re active: 'Active', inactive: 'Expired' }, + tool: { + mcp: 'MCP Service', + inner: 'Built-in Tools', + custom: 'Custom Tools', + mcpSearchPlaceholder: 'Search MCP services...', + addService: 'Add MCP Service', + addServiceSuccess: 'Service added successfully', + serviceAddress: 'Service Address', + lastConnection: 'Last Connection', + responseTime: 'Response Time', + status: { + running: 'Running', + stopped: 'Stopped', + abnormal: 'Abnormal', + unknown: 'Unknown' + }, + serviceEndpoint: 'Service Endpoint URL', + serviceEndpointPlaceholder: 'Service endpoint URL', + serviceEndpointExtra: 'Complete access address for MCP service', + nameAndIcon: 'Name and Icon', + namePlaceholder: 'Name your MCP service', + serverIdentifier: 'Server Identifier', + serverIdentifierPlaceholder: 'Unique server identifier, e.g. my-mcp-server', + serverIdentifierLength: 'Maximum 24 characters', + serverIdentifierPattern: 'Supports lowercase letters, numbers, underscores and hyphens', + description: 'Description', + auth: 'Authentication', + requestHeader: 'Request Headers', + config: 'Configuration', + authType: 'Authentication Type', + noAuth: 'No Authentication', + apiKey: 'API Key', + basicAuth: 'Basic Auth', + bearerToken: 'Bearer Token', + username: 'Username', + password: 'Password', + requestHeaderDesc: 'Additional HTTP request headers sent to MCP server', + addRequestHeader: 'Add Request Header', + editRequestHeader: 'Edit Request Header', + requestHeaderName: 'Request Header Name', + requestHeaderValue: 'Request Header Value', + timeout: 'Timeout (seconds)', + sseReadTimeout: 'SSE Read Timeout (seconds)', + saveAndTest: 'Save and Test', + + innerSearchPlaceholder: 'Search built-in tools', + + timeFormat: 'Time Formatting', + timeZoneConversion: 'Time Zone Conversion', + timestampConversion: 'Timestamp Conversion', + timeCalculation: 'Time Calculation', + time_desc: 'Date and time processing', + time_features: 'Provides time format conversion, time zone conversion, timestamp calculation and other functions', + currentTime: 'Current Time', + timestamp: 'Timestamp', + localTime: 'Local Time', + utcTime: 'UTC Time', + secondsTimestamp: 'Timestamp (seconds)', + millisecondsTimestamp: 'Timestamp (milliseconds)', + enterTimestamp: 'Enter timestamp', + conversion: 'Conversion', + conversionResult: 'Conversion Result', + chooseFormatType: 'Choose Format', + + json_desc: 'Data format conversion', + json_features: 'JSON formatting, compression, validation and conversion functions', + jsonFormat: 'JSON Formatting', + jsonGzip: 'JSON Compression', + jsonCheck: 'JSON Validation', + jsonConversion: 'Format Conversion', + jsonEg: 'Example JSON', + enterJson: 'Enter JSON', + jsonPlaceholder: 'Enter JSON data, e.g.: {"name": "test", "value": 123}', + clear: 'Clear', + parse: 'Paste', + format: 'Format', + gzip: 'Compress', + check: 'Validate', + escape: 'Escape', + outputResult: 'Output Result', + validJosn: 'JSON format is correct, validation passed!', + + baidu_desc: 'Search engine service', + baidu_features: 'Integrated Baidu Search API, providing web search, news search and other functions', + webSearch: 'Web Search', + newsSearch: 'News Search', + imageSearch: 'Image Search', + realTimeResults: 'Real-time Results', + configStatus: 'Configuration Status', + hasApiKey: 'API configured and enabled', + needApiKey: 'Need to configure API Key', + + minerU_desc: 'PDF parsing tool', + minerU_features: 'High-precision PDF document parsing tool, supports text, table, and image extraction', + pdfParser: 'PDF Parser', + tableExtraction: 'Table Extraction', + imageRecognition: 'Image Recognition', + textExtraction: 'Text Extraction', + + textIn_desc: 'OCR text recognition', + textIn_features: 'Intelligent OCR text recognition service, supports multilingual and handwriting recognition', + universalOCR: 'Universal OCR', + handwritingRecognition: 'Handwriting Recognition', + multilingualSupport: 'Multilingual Support', + highPrecisionRecognition: 'High Precision Recognition', + + configDesc: 'Configuration Description', + baidu_config_desc: 'To use Baidu Search API, you need to apply for API Key and Secret Key on Baidu Open Platform first.', + minerU_config_desc: 'MinerU is a high-precision PDF document parsing tool that requires an API Key to use.', + textIn_config_desc: 'TextIn provides intelligent OCR text recognition service with multilingual support.', + link: 'Application Link', + api_key: 'API Key', + baidu_api_key_desc: 'API Key obtained from Baidu Open Platform', + minerU_api_key_desc: 'API Key obtained from MinerU platform', + secret_key: 'Secret Key', + baidu_secret_key_desc: 'Secret Key obtained from Baidu Open Platform', + textIn_secret_key_desc: 'Secret Key obtained from TextIn platform', + search_type: 'Search Type', + pagesize: 'Results Per Page', + pagesize_desc: 'Number of results returned per search (1-50)', + baidu_enable: 'Enable Baidu Search', + baidu_safe_enable: 'Enable Safe Search', + baidu_safe_enable_desc: 'Filter inappropriate content', + api_address: 'API Address', + minerU_api_address_desc: 'Default uses official API address, can be modified for private deployment', + textIn_api_address_desc: 'Default uses official API address', + parsing_mode: 'Parsing Mode', + auto_recognition: 'Auto Recognition', + pure_text_mode: 'Pure Text Mode', + table_priority: 'Table Priority', + image_priority: 'Image Priority', + minerU_timeout_desc: 'PDF parsing timeout (10-300 seconds)', + minerU_enable: 'Enable MinerU', + minerU_extract_images_enable: 'Extract Images', + minerU_extract_images_enable_desc: 'Whether to extract image content from PDF', + app_id: 'APP ID', + textIn_app_id_desc: 'App ID obtained from TextIn platform', + language_identification: 'Recognition Language', + automatic_detection: 'Automatic Detection', + simplified_chinese: 'Simplified Chinese', + traditional_chinese: 'Traditional Chinese', + english: 'English', + japanese: 'Japanese', + korean_language: 'Korean', + pattern_recognition: 'Recognition Mode', + universal_identification: 'Universal Recognition', + high_precision_identification: 'High Precision Recognition', + handwriting_recognition: 'Handwriting Recognition', + formula_recognition: 'Formula Recognition', + textIn_enable: 'Enable TextIn', + return_text_position_enable: 'Return Text Position Info', + return_text_position_enable_desc: 'Whether to return coordinate positions of recognized text', + + addCustom: 'Add Custom Tool', + editCustom: 'Edit Custom Tool', + schema: 'Schema', + schemaPlaceholder: 'Enter your OpenAPI schema here', + authentication: 'Authentication Method', + tag: 'Tag', + created_at: 'Created At', + headerName: 'Header Name', + null: 'None', + tagDesc: 'Multiple tags separated by commas', + availableTools: 'Available Tools', + name: 'Name', + desc: 'Description', + method: 'Method', + path: 'Path', + viewDetail: 'View Details' + }, + workflow: { + coreNode: 'Core Nodes', + start: 'Start', + end: 'End', + answer: 'Answer', + aiAndCognitiveProcessing: 'AI & Cognitive Processing', + llm: 'Large Language Model (LLM)', + model_selection: 'Model Selection', + model_voting: 'Model Voting', + rag: 'Knowledge Retrieval (RAG)', + classification: 'Smart Classification', + parameter_extraction: 'Parameter Extraction', + flowControl: 'Flow Control', + condition: 'Conditional Branch', + iteration: 'Iteration', + loop: 'Loop', + parallel: 'Parallel Execution', + aggregator: 'Aggregator', + externalInteraction: 'External Interaction', + http_request: 'HTTP Request', + tools: 'Tools', + code_execution: 'Code Execution', + template_rendering: 'Template Rendering', + cognitiveUpgrading: 'Cognitive Upgrading (Innovation)', + task_planning: 'Task Planning', + reasoning_control: 'Reasoning Control', + self_reflection: 'Self Reflection', + memory_enhancement: 'Memory Enhancement', + agentCollaborationNode: 'Agent Collaboration Nodes', + agent_scheduling: 'Agent Scheduling', + agent_collaboration: 'Agent Collaboration', + agent_arbitration: 'Agent Arbitration', + safetyAndCompliance: 'Safety & Compliance', + sensitive_detection: 'Sensitive Detection', + output_audit: 'Output Audit', + evolutionAndGovernance: 'Evolution & Governance', + self_optimization: 'Self Optimization', + process_evolution: 'Process Evolution', + + clickToConfigure: 'Click to configure node parameters', + nodeProperties: 'Node Properties', + empty: "Emmm... The box is empty, there's nothing here~", + nodeName: 'Node Name', + + + config: { + llm: { + model_id: 'Model', + temperature: 'Temperature', + max_tokens: 'Max Tokens', + }, + start: { + variables: 'Input Fields', + + string: 'Text', + number: 'Number', + boolean: 'Checkbox', + array: 'Dropdown Options', + object: 'Object', + + addVariable: 'Add Variable', + editVariable: 'Edit Variable', + variableType: 'Variable Type', + variableName: 'Variable Name', + description: 'Display Name', + default: 'Default Value', + required: 'Required', + max_length: 'Max Length', + defaultChecked: 'Checked', + notDefaultChecked: 'Not Checked', + options: 'Options', + }, + end: { + output: 'Reply' + } + }, + + clear: 'Clear', + run: 'Run', + save: 'Save', + export: 'Export', + variableConfig: 'Variable Configuration' + }, + emotionEngine: { + emotionEngineConfig: 'Emotion Engine Configuration', + + emotion_enabled: 'Enable Emotion Engine', + emotion_enabled_desc: 'Automatically analyze emotional tendencies in conversations', + + emotion_model_id: 'Emotion Analysis Model', + emotion_model_id_desc: 'Different models vary in accuracy and speed', + + emotion_extract_keywords: 'Emotion Keyword Extraction', + emotion_extract_keywords_subTitle: 'Automatically extract emotion-related keywords from conversations', + emotion_extract_keywords_desc: 'Extract emotional keywords like "happy", "disappointed", "excited" to better understand user emotions', + emotion_min_intensity: 'Confidence Threshold', + emotion_min_intensity_desc: 'Higher confidence leads to more accurate recognition, but may miss some information', + + emotion_enable_subject: 'Emotion Subject Classification', + emotion_enable_subject_subTitle: 'Identify emotion attribution (self/other/object)', + emotion_enable_subject_desc: 'Distinguish emotion subjects: self (I feel happy), other (he is angry), object (this product is great)', + + currentValue: 'Current Value', + emotion_min_intensity_description: 'Confidence Threshold Description', + question: 'What is Confidence Threshold?', + answer: 'Confidence threshold is the "certainty level" standard for emotion engine to judge emotions. When the emotional confidence analyzed by AI is lower than the set threshold, the emotion will not be recorded.', + differentTitle: 'Impact of Different Thresholds', + advantage: 'Advantages', + shortcoming: 'Disadvantages', + scene: 'Applicable Scenarios', + low_title: 'Low Threshold (0.0 - 0.4)', + low_tag: 'Sensitive', + low_advantage: 'Can capture more subtle emotional changes without missing potential emotional signals', + low_shortcoming: 'May cause misjudgments, identifying neutral or unclear expressions as specific emotions', + low_scene: 'Scenarios requiring comprehensive understanding of user emotional fluctuations with low accuracy requirements', + middle_title: 'Medium Threshold (0.5 - 0.7)', + middle_tag: 'Recommended', + middle_advantage: 'Balances accuracy and coverage, can identify obvious emotions without being overly sensitive', + middle_shortcoming: 'May miss some less obvious emotional expressions', + middle_scene: 'Most daily conversation scenarios, suitable for general emotional analysis needs', + high_title: 'High Threshold (0.8 - 1.0)', + high_tag: 'Precise', + high_advantage: 'Only records very clear emotional expressions, extremely high accuracy with low misjudgment rate', + high_shortcoming: 'Will miss a large amount of less obvious emotional information, low data coverage', + high_scene: 'Scenarios requiring extremely high accuracy, such as emotional crisis warnings and important decision references', + + configSuggest: 'Configuration Suggestions', + first: 'First Time Use', + first_desc: 'Recommend starting with medium threshold (0.6-0.7), observe for a period and adjust based on actual results', + customer_service: 'Customer Service Scenarios', + customer_service_desc: 'Recommend using lower threshold (0.4-0.6) to timely capture user dissatisfaction', + data_analysis: 'Data Analysis', + data_analysis_desc: 'Recommend using medium threshold (0.6-0.7) to ensure data quality while having sufficient sample size', + risk_warning: 'Risk Warning', + risk_warning_desc: 'Recommend using higher threshold (0.7-0.8) to ensure warning accuracy', + + actual_case: 'Actual Case', + user_input: 'User Input', + user_input_message: '"This feature is okay, but there are some minor issues"', + neutral_emotion: 'Neutral Emotion', + neutral_emotion_tag: 'All thresholds will record', + minor_dissatisfaction: 'Minor Dissatisfaction', + minor_dissatisfaction_tag: 'Only low/medium thresholds will record', + expect_improvement: 'Expect Improvement', + expect_improvement_tag: 'Only low threshold will record', + confidence: 'Confidence' + }, + emotionDetail: { + wordCloud: 'Emotion Distribution Analysis', + pieces: 'items', + emotionTags: 'High-Frequency Emotion Keywords', + joy: 'Joy', + anger: 'Anger', + sadness: 'Sadness', + fear: 'Fear', + neutral: 'Neutral', + surprise: 'Surprise', + + health: 'Emotional Health Index', + positivity_rate: 'Positivity Rate', + stability: 'Stability', + resilience: 'Resilience', + suggestions: 'Personalized Suggestions', + } }, }; diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index fbbe9135..48d50135 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -35,6 +35,8 @@ export const zh = { knowledgeDocumentDetails: '详情', userMemoryDetail: '用户记忆详情', toolManagement: '工具管理', + emotionEngine: '情感引擎', + emotionDetail: '情绪记忆' }, knowledgeBase: { home: '首页', @@ -174,7 +176,6 @@ export const zh = { fileName: '文件名称', fileList: '文件列表', blockPreview: '分块预览', - processingDocuments: '正在处理文档,请稍候...', chunkContent: '分块内容', sampleChunk: '示例分块内容', noFilesSelected: '暂无文件', @@ -184,10 +185,6 @@ export const zh = { waiting: '等待中', startUpload: '共{{count}}个文件 | 开始上传', startUploading: '开始上传', - startUploadConfirmTitle: '开始处理文档', - startUploadConfirmContent: '文档处理将在后台进行,您可以选择立即返回列表页或停留在此页面查看处理进度。', - returnToList: '返回列表页', - stayOnPage: '停留在此页', uploadSuccess: '上传成功', datasetName: '数据集名称', pleaseEnterDatasetName: '请输入数据集名称', @@ -753,8 +750,8 @@ export const zh = { copy: '复制', copySuccess: '复制成功', viewDetails: '查看详情', - enabled: '启用', - disabled: '停用', + enabled: '已启用', + disabled: '已停用', updateWarning: '更新警告', deleteWarning: '删除警告', deleteWarningContent: '确定要删除此{{content}}吗?', @@ -794,9 +791,7 @@ export const zh = { logoutApiCannotRefreshToken: '退出登录接口不能刷新token', publicApiCannotRefreshToken: '公共接口不能刷新token', refreshTokenNotExist: '刷新token不存在', - reset: '重置', - statusEnabled: '已启用', - statusDisabled: '已禁用', + reset: '重置' }, product: { applicationManagement: '应用管理', @@ -1001,6 +996,8 @@ export const zh = { active: '活跃', inactive: '不活跃', configurationName: '配置名称', + emotionEngine: '情感引擎', + selfReflexionEngine: '反思引擎' }, member: { username: '用户名', @@ -1061,8 +1058,8 @@ export const zh = { minimumRetentionDesc: '控制记忆随时间的遗忘速度,值越高时间越短', forgettingRate: '记忆遗忘率 (λ_mem)', forgettingRateDesc: '控制记忆遗忘的速度,值越高遗忘越快', - offset: '最小保留度 (offset)', - offsetDesc: '控制记忆保留的最小保留阈值 遗忘这地方改个文字描述', + offset: '偏移量 (offset)', + offsetDesc: '最小保留度的偏移量', CurrentValue: '当前值', range: '范围', forgettingEngineConfigParams: '遗忘引擎配置参数', @@ -1118,11 +1115,8 @@ export const zh = { storageType: '存储类型', rag: 'RAG存储', ragDesc: '基于向量检索,适合文档问答和语义搜索', - neo4j: '图谱存储', + neo4j: '图存储', neo4jDesc: '基于知识图谱,适合关系推理和路径查询', - llmModel: 'LLM 模型', - embeddingModel: 'Embedding 模型', - rerankModel: 'Rerank 模型' }, memoryExtractionEngine: { title: '记忆引擎模块配置中心', @@ -1293,8 +1287,6 @@ export const zh = { startANewConversation: '开始新对话', normalReply: '正常回复', quickReply: '快速回复', - memoryConversationAnalysisEmpty: '当前没有可用的对话分析内容', - memoryConversationAnalysisEmptySubTitle: '输入用户ID后,单击“发送”查看对话记忆' }, login: { title: '红熊记忆科学', @@ -1365,24 +1357,6 @@ export const zh = { websocketDemoCard: 'WebSocket 演示', sseDemoCard: 'SSE演示' }, - workflow: { - title: '工作流编辑器', - description: '拖拽节点创建连接,构建您的工作流程。点击节点可进行配置。', - addNode: '添加节点', - deleteNode: '删除选中', - saveWorkflow: '保存工作流', - startNode: '触发节点', - conditionNode: '条件判断', - actionNode: '执行动作', - endNode: '结束节点', - newNode: '新节点', - node: '节点', - nodesCreated: '已创建节点', - loadingNodes: '正在加载节点 {{progress}}%', - loadingFailed: '加载节点失败', - create5kNodes: '创建5000节点', - create10kNodes: '创建10000节点' - }, notFound: { title: '页面未找到', description: '请求的页面不存在。', @@ -1413,5 +1387,339 @@ export const zh = { active: '活跃', inactive: '过期' }, + tool: { + mcp: 'MCP 服务', + inner: '内置工具', + custom: '自定义工具', + mcpSearchPlaceholder: '搜索MCP服务...', + addService: '添加MCP服务', + addServiceSuccess: '服务添加成功', + serviceAddress: '服务地址', + lastConnection: '最后连接', + responseTime: '响应时间', + status: { + running: '运行中', + stopped: '已停止', + abnormal: '异常', + unknown: '未知' + }, + serviceEndpoint: '服务端点 URL', + serviceEndpointPlaceholder: '服务端点的 URL', + serviceEndpointExtra: 'MCP服务的完整访问地址', + nameAndIcon: '名称和图标', + namePlaceholder: '命名你的 MCP 服务', + serverIdentifier: '服务器标识符', + serverIdentifierPlaceholder: '服务器唯一标识,例如 my-mcp-server', + serverIdentifierLength: '最多 24 个字符', + serverIdentifierPattern: '支持小写字母、数字、下划线和连字符', + description: '描述信息', + auth: '认证', + requestHeader: '请求头', + config: '配置', + authType: '认证方式', + noAuth: '无需认证', + apiKey: 'API Key', + basicAuth: 'Basic Auth', + bearerToken: 'Bearer Token', + username: '用户名', + password: '密码', + requestHeaderDesc: '发送到 MCP 服务器的额外 HTTP 请求头', + addRequestHeader: '添加请求头', + editRequestHeader: '编辑请求头', + requestHeaderName: '请求头名称', + requestHeaderValue: '请求头值', + timeout: '超时时间(秒)', + sseReadTimeout: 'SSE 读取超时时间(秒)', + saveAndTest: '保存并测试', + + innerSearchPlaceholder: '搜索内置工具', + + timeFormat: '时间格式化', + timeZoneConversion: '时区转换', + timestampConversion: '时间戳转换', + timeCalculation: '时间计算', + time_desc: '日期时间处理', + time_features: '提供时间格式转换、时区转换、时间戳计算等功能', + currentTime: '当前时间', + timestamp: '时间戳', + localTime: '本地时间', + utcTime: 'UTC时间', + secondsTimestamp: '时间戳(秒)', + millisecondsTimestamp: '时间戳(毫秒)', + enterTimestamp: '输入时间戳', + conversion: '转换', + conversionResult: '转换结果', + chooseFormatType: '选择格式', + + json_desc: '数据格式转换', + json_features: 'JSON格式化、压缩、验证和转换功能', + jsonFormat: 'JSON格式化', + jsonGzip: 'JSON压缩', + jsonCheck: 'JSON验证', + jsonConversion: '格式转换', + jsonEg: '示例JSON', + enterJson: '输入JSON', + jsonPlaceholder: '输入JSON数据,例如:{"name": "测试", "value": 123}', + clear: '清空', + parse: '粘贴', + format: '格式化', + gzip: '压缩', + check: '验证', + escape: '转义', + outputResult: '输出结果', + validJosn: 'JSON格式正确,验证通过!', + + baidu_desc: '搜索引擎服务', + baidu_features: '集成百度搜索API,提供网页搜索、新闻搜索等功能', + webSearch: '网页搜索', + newsSearch: '新闻搜索', + imageSearch: '图片搜索', + realTimeResults: '实时结果', + configStatus: '配置状态', + hasApiKey: 'API 已配置并启用', + needApiKey: '需要配置API Key', + + minerU_desc: 'PDF解析工具', + minerU_features: '高精度PDF文档解析工具,支持文字、表格、图片提取', + pdfParser: 'PDF解析', + tableExtraction: '表格提取', + imageRecognition: '图片识别', + textExtraction: '文本提取', + + textIn_desc: 'OCR文字识别', + textIn_features: '智能OCR文字识别服务,支持多语言、手写体识别', + universalOCR: '通用OCR', + handwritingRecognition: '手写识别', + multilingualSupport: '多语言支持', + highPrecisionRecognition: '高精度识别', + + configDesc: '配置说明', + baidu_config_desc: '使用百度搜索API需要先在百度开放平台申请API Key和Secret Key。', + minerU_config_desc: 'MinerU是高精度PDF文档解析工具,需要API Key才能使用。', + textIn_config_desc: 'TextIn提供智能OCR文字识别服务,支持多语言识别。', + link: '申请地址', + api_key: 'API Key', + baidu_api_key_desc: '从百度开放平台获取的API Key', + minerU_api_key_desc: '从MinerU平台获取的API Key', + secret_key: 'Secret Key', + baidu_secret_key_desc: '从百度开放平台获取的Secret Key', + textIn_secret_key_desc: '从TextIn平台获取的Secret Key', + search_type: '搜索类型', + pagesize: '每页结果数', + pagesize_desc: '每次搜索返回的结果数量(1-50)', + baidu_enable: '启用百度搜索', + baidu_safe_enable: '启用安全搜索', + baidu_safe_enable_desc: '过滤不适宜内容', + api_address: 'API地址', + minerU_api_address_desc: '默认使用官方API地址,如有私有部署可修改', + textIn_api_address_desc: '默认使用官方API地址', + parsing_mode: '解析模式', + auto_recognition: '自动识别', + pure_text_mode: '纯文本模式', + table_priority: '表格优先', + image_priority: '图片优先', + minerU_timeout_desc: 'PDF解析超时时间(10-300秒)', + minerU_enable: '启用MinerU', + minerU_extract_images_enable: '提取图片', + minerU_extract_images_enable_desc: '是否提取PDF中的图片内容', + app_id: 'APP ID', + textIn_app_id_desc: '从TextIn平台获取的App ID', + language_identification: '识别语言', + automatic_detection: '自动检测', + simplified_chinese: '简体中文', + traditional_chinese: '繁体中文', + english: '英文', + japanese: '日文', + korean_language: '韩文', + pattern_recognition: '识别模式', + universal_identification: '通用识别', + high_precision_identification: '高精度识别', + handwriting_recognition: '手写体识别', + formula_recognition: '公式识别', + textIn_enable: '启用TextIn', + return_text_position_enable: '返回文本位置信息', + return_text_position_enable_desc: '是否返回识别文字的坐标位置', + + addCustom: '添加自定义工具', + editCustom: '编辑自定义工具', + schema: 'Schema', + schemaPlaceholder: '在此处输入您的 OpenAPI schema', + authentication: '鉴权方式', + tag: '标签', + created_at: '创建时间', + headerName: 'Header 名称', + null: '无', + tagDesc: '多个标签用逗号分隔', + availableTools: '可用工具', + name: '名称', + desc: '描述', + method: '方法', + path: '路径', + viewDetail: '查看详情' + }, + workflow: { + coreNode: '核心节点', + start: '开始(Start)', + end: '结束(End)', + answer: '回复(Answer)', + aiAndCognitiveProcessing: 'AI与认知处理', + llm: '大语言模型 (LLM)', + model_selection: '多模型选择', + model_voting: '多模型投票', + rag: '知识检索 (RAG)', + classification: '智能分类', + parameter_extraction: '参数提取', + flowControl: '流程控制', + condition: '条件分支', + iteration: '迭代 (Iteration)', + loop: '循环 (Loop)', + parallel: '并行执行', + aggregator: '聚合器', + externalInteraction: '外部交互', + http_request: 'HTTP请求', + tools: '工具 (Tools)', + code_execution: '代码执行', + template_rendering: '模板渲染', + cognitiveUpgrading: '认知升级(创新)', + task_planning: '任务规划', + reasoning_control: '推理控制', + self_reflection: '自我反思', + memory_enhancement: '记忆增强', + agentCollaborationNode: 'Agent 协作节点', + agent_scheduling: 'Agent 调度', + agent_collaboration: 'Agent 协同', + agent_arbitration: 'Agent 仲裁', + safetyAndCompliance: '安全与合规', + sensitive_detection: '敏感识别', + output_audit: '输出审计', + evolutionAndGovernance: '演化与治理', + self_optimization: '自我优化', + process_evolution: '流程演化', + + clickToConfigure: '点击配置节点参数', + nodeProperties: '节点属性', + empty: "Emmm…盒子是空的,这里什么都没有~", + nodeName: '节点名称', + + + config: { + llm: { + model_id: '模型', + temperature: '温度', + max_tokens: '最大令牌数', + }, + start: { + variables: '输入字段', + + string: '文本', + number: '数字', + boolean: '复选框', + array: '下拉选项', + object: '对象', + + addVariable: '添加变量', + editVariable: '编辑变量', + variableType: '变量类型', + variableName: '变量名称', + description: '显示名称', + default: '默认值', + required: '必填', + max_length: '最大长度', + defaultChecked: '选中', + notDefaultChecked: '不选中', + options: '选项', + }, + end: { + output: '回复' + } + }, + + clear: '清空', + run: '运行', + save: '保存', + export: '导出', + variableConfig: '变量配置' + }, + emotionEngine: { + emotionEngineConfig: '情感引擎配置', + + emotion_enabled: '启用情感引擎', + emotion_enabled_desc: '自动分析对话中的情感倾向', + + emotion_model_id: '情感分析模型', + emotion_model_id_desc: '不同模型在准确度和速度上有所差异', + + emotion_extract_keywords: '情绪关键词提取', + emotion_extract_keywords_subTitle: '自动提取对话中的情绪相关关键词', + emotion_extract_keywords_desc: '提取如"开心"、"失望"、"期待"等情绪关键词,帮助更好地理解用户情绪', + emotion_min_intensity: '置信度阈值', + emotion_min_intensity_desc: '置信度越高,识别越准确,但可能遗漏部分信息', + + emotion_enable_subject: '情绪主体分类 ', + emotion_enable_subject_subTitle: '识别情绪归属(自己/他人/物体)', + emotion_enable_subject_desc: '区分情绪主体: self (我感到开心)、other (他很生气)、object (这个产品很棒)', + + currentValue: '当前值', + emotion_min_intensity_description: '置信度阈值说明', + question: '什么是置信度阈值?', + answer: '置信度阈值是情感引擎判断情绪时的"确定程度"标准。当 AI 分析出的情感置信度低于设定阈值时,该情感将不会被记录。', + differentTitle: '不同阈值的影响', + advantage: '优点', + shortcoming: '缺点', + scene: '适用场景', + low_title: '低阈值 (0.0 - 0.4)', + low_tag: '灵敏', + low_advantage: '能捕捉到更多细微的情感变化,不会遗漏潜在的情绪信号', + low_shortcoming: '可能产生误判,将中性或不明确的表达识别为特定情感', + low_scene: '需要全面了解用户情绪波动,对准确度要求不高的场景', + middle_title: '中阈值 (0.5 - 0.7)', + middle_tag: '推荐', + middle_advantage: '平衡准确度和覆盖率,既能识别明显情感,也不会过度敏感', + middle_shortcoming: '可能遗漏一些不太明显的情感表达', + middle_scene: '大多数日常对话场景,适合一般性情感分析需求', + high_title: '高阈值 (0.8 - 1.0)', + high_tag: '精准', + high_advantage: '只记录非常明确的情感表达,准确度极高,误判率低', + high_shortcoming: '会遗漏大量不够明显的情感信息,数据覆盖率低', + high_scene: '对准确度要求极高的场景,如情感危机预警、重要决策参考', + + configSuggest: '配置建议', + first: '初次使用', + first_desc: '建议从中等阈值(0.6-0.7)开始,观察一段时间后根据实际效果调整', + customer_service: '客服场景', + customer_service_desc: '建议使用较低阈值(0.4-0.6),及时捕捉用户的不满情绪', + data_analysis: '数据分析', + data_analysis_desc: '建议使用中等阈值(0.6-0.7),保证数据质量的同时有足够样本量', + risk_warning: '风险预警', + risk_warning_desc: '建议使用较高阈值(0.7-0.8),确保预警的准确性', + + actual_case: '实际案例', + user_input: '用户输入', + user_input_message: '"这个功能还行吧,不过有点小问题"', + neutral_emotion: '中性情感', + neutral_emotion_tag: '所有阈值都会记录', + minor_dissatisfaction: '轻微不满', + minor_dissatisfaction_tag: '仅低/中阈值会记录', + expect_improvement: '期待改进', + expect_improvement_tag: '仅低阈值会记录', + confidence: '置信度' + }, + emotionDetail: { + wordCloud: '情感分布分析', + pieces: '条', + emotionTags: '高频情绪关键词', + joy: '喜悦', + anger: '愤怒', + sadness: '悲伤', + fear: '恐惧', + neutral: '中性', + surprise: '惊讶', + + health: '情绪健康指数', + positivity_rate: '积极率', + stability: '稳定性', + resilience: '恢复力', + suggestions: '个性化建议', + } }, } \ No newline at end of file diff --git a/web/src/routes/index.tsx b/web/src/routes/index.tsx index bdcf7d78..fb4c0760 100644 --- a/web/src/routes/index.tsx +++ b/web/src/routes/index.tsx @@ -10,19 +10,19 @@ import routesConfig from './routes.json'; // 递归收集所有路由中的element function collectElements(routes: RouteConfig[]): Set { const elements = new Set(); - + function traverse(routeList: RouteConfig[]) { routeList.forEach(route => { // 添加当前路由的element elements.add(route.element); - + // 递归处理子路由 if (route.children && route.children.length > 0) { traverse(route.children); } }); } - + traverse(routes); return elements; } @@ -55,10 +55,13 @@ const componentMap: Record>> = ModelManagement: lazy(() => import('@/views/ModelManagement')), SpaceManagement: lazy(() => import('@/views/SpaceManagement')), ApiKeyManagement: lazy(() => import('@/views/ApiKeyManagement')), + ToolManagement: lazy(() => import('@/views/ToolManagement')), + EmotionEngine: lazy(() => import('@/views/EmotionEngine')), + EmotionDetail: lazy(() => import('@/views/UserMemoryDetail/pages/EmotionDetail')), Login: lazy(() => import('@/views/Login')), InviteRegister: lazy(() => import('@/views/InviteRegister')), NoPermission: lazy(() => import('@/views/NoPermission')), - NotFound: lazy(() => import('@/views/NotFound')), + NotFound: lazy(() => import('@/views/NotFound')) }; // 检查并报告缺失的组件 @@ -88,12 +91,12 @@ const generateRoutes = (routes: RouteConfig[]): ReactNode => { // 获取组件 const componentKey = route.element as keyof typeof componentMap; const Component = componentMap[componentKey]; - + if (!Component) { console.error(`Component ${route.element} not found in componentMap`); return null; } - + // 如果有子路由 if (route.children) { return ( @@ -102,12 +105,12 @@ const generateRoutes = (routes: RouteConfig[]): ReactNode => { ); } - + // 如果有path属性,则为普通路由 if (route.path) { return } />; } - + return null; }); }; diff --git a/web/src/routes/routes.json b/web/src/routes/routes.json index 0b87e192..e7d9fc5c 100644 --- a/web/src/routes/routes.json +++ b/web/src/routes/routes.json @@ -5,6 +5,7 @@ { "path": "/user-management", "element": "UserManagement" }, { "path": "/model", "element": "ModelManagement" }, { "path": "/space", "element": "SpaceManagement" }, + { "path": "/tool", "element": "ToolManagement" }, { "path": "/no-permission", "element": "NoPermission" } ] }, @@ -26,6 +27,9 @@ { "path": "/knowledge-base/:knowledgeBaseId/create-dataset", "element": "CreateDataset" }, { "path": "/knowledge-base/:knowledgeBaseId/DocumentDetails", "element": "DocumentDetails" }, { "path": "/api-key", "element": "ApiKeyManagement" }, + { "path": "/tool", "element": "ToolManagement" }, + { "path": "/emotion-engine/:id", "element": "EmotionEngine" }, + { "path": "/user-memory/emotion/:id", "element": "EmotionDetail" }, { "path": "/no-permission", "element": "NoPermission" }, { "path": "/*", "element": "NotFound" } ] diff --git a/web/src/store/menu.json b/web/src/store/menu.json index cda4a6b0..c8895c37 100644 --- a/web/src/store/menu.json +++ b/web/src/store/menu.json @@ -26,6 +26,19 @@ "sort": 0, "subs": [] }, + { + "id": 4, + "parent": 0, + "code": "tool", + "label": "工具管理", + "i18nKey": "menu.toolManagement", + "path": "/tool", + "enable": true, + "display": true, + "level": 1, + "sort": 1, + "subs": [] + }, { "id": 3, "parent": 0, @@ -183,6 +196,19 @@ "level": 1, "sort": 0, "subs": null + }, + { + "id": 72, + "parent": 7, + "code": "emotionEngine", + "label": "情感引擎", + "i18nKey": "menu.emotionEngine", + "path": "/emotion-engine/:id", + "enable": true, + "display": false, + "level": 1, + "sort": 0, + "subs": null } ] }, @@ -210,7 +236,21 @@ "display": false, "level": 2, "sort": 0, - "subs": null + "subs": [ + { + "id": 81, + "parent": 8, + "code": "emotionDetail", + "label": "记忆详情", + "i18nKey": "menu.emotionDetail", + "path": "/user-memory/emotion/:id", + "enable": true, + "display": false, + "level": 2, + "sort": 0, + "subs": null + } + ] } ] }, diff --git a/web/src/views/EmotionEngine/index.tsx b/web/src/views/EmotionEngine/index.tsx new file mode 100644 index 00000000..ed0ac43d --- /dev/null +++ b/web/src/views/EmotionEngine/index.tsx @@ -0,0 +1,252 @@ +import React, { useState, useEffect } from 'react'; +import { Row, Col, Form, Slider, Button, Alert, message, Switch, Space } from 'antd'; +import { useParams } from 'react-router-dom'; +import { useTranslation } from 'react-i18next'; +import RbCard from '@/components/RbCard/Card'; +import strategyImpactSimulator from '@/assets/images/memory/strategyImpactSimulator.svg' +import { getMemoryEmotionConfig, updateMemoryEmotionConfig } from '@/api/memory' +import type { ConfigForm } from './types' +import CustomSelect from '@/components/CustomSelect'; +import { getModelListUrl } from '@/api/models' +import Tag from '@/components/Tag' + +const configList = [ + { + key: 'emotion_enabled', + type: 'switch', + }, + { + key: 'emotion_model_id', + type: 'customSelect', + url: getModelListUrl, + params: { type: 'chat', page: 1, pagesize: 100 }, // chat,llm + }, + { + key: 'emotion_min_intensity', + type: 'slider', + min: 0, + max: 1, + step: 0.05 + }, + { + key: 'emotion_extract_keywords', + type: 'switch', + hasSubTitle: true + }, + { + key: 'emotion_enable_subject', + type: 'switch', + hasSubTitle: true + }, +] + +const ForgettingEngine: React.FC = () => { + const { t } = useTranslation(); + const { id } = useParams(); + const [configData, setConfigData] = useState({} as ConfigForm); + const [form] = Form.useForm(); + const [messageApi, contextHolder] = message.useMessage(); + const [loading, setLoading] = useState(false) + + const values = Form.useWatch([], form); + + useEffect(() => { + getConfigData() + }, [id]) + + const getConfigData = () => { + if (!id) { + return + } + getMemoryEmotionConfig(id) + .then((res) => { + const response = res as ConfigForm + const initialValues = { + ...response, + } + setConfigData(initialValues); + form.setFieldsValue(initialValues); + }) + .catch(() => { + console.error('Failed to load data'); + }) + } + const handleReset = () => { + form.setFieldsValue(configData); + } + const handleSave = () => { + if (!id) { + return + } + setLoading(true) + updateMemoryEmotionConfig({ + ...values, + config_id: id + }) + .then(() => { + messageApi.success(t('common.saveSuccess')) + setConfigData({...(values || {})}) + }) + .finally(() => { + setLoading(false) + }) + } + + return ( + +
+ + + {t('emotionEngine.emotionEngineConfig')} + + } + > +
+ {configList.map(config => { + if (config.type === 'slider') { + return ( +
+
+ {t(`emotionEngine.${config.key}`)} +
+
+ {t(`emotionEngine.${config.key}_desc`)} +
+ + + +
+ + <>{t('emotionEngine.currentValue')}: {values?.[config.key as keyof ConfigForm] || 0} +
+
+ ) + } + if (config.type === 'customSelect') { + return ( +
+
+ {t(`emotionEngine.${config.key}`)} +
+ + + +
+ ) + } + + return ( +
+
+ {t(`emotionEngine.${config.key}`)} + {config.hasSubTitle &&
{t(`emotionEngine.${config.key}_subTitle`)}
} +
{t(`emotionEngine.${config.key}_desc`)}
+
+ + + +
+ ) + })} + +
+ + + + + + + + + + + +
{t('emotionEngine.question')}
+
{t('emotionEngine.answer')}
+
{t('emotionEngine.differentTitle')}
+ + + {['low', 'middle', 'high'].map((key, index) => ( + +
+ {t(`emotionEngine.${key}_title`)} + {t(`emotionEngine.${key}_tag`)} +
+ +
{t('emotionEngine.advantage')}: {t(`emotionEngine.${key}_advantage`)}
+
{t('emotionEngine.shortcoming')}: {t(`emotionEngine.${key}_shortcoming`)}
+
{t('emotionEngine.scene')}: {t(`emotionEngine.${key}_scene`)}
+
+ + } + /> + ))} +
+ +
{t('emotionEngine.configSuggest')}
+ + {['first', 'customer_service', 'data_analysis', 'risk_warning'].map(key => ( +
{t(`emotionEngine.${key}`)}: {t(`emotionEngine.${key}_desc`)}
+ ))} +
+ +
{t('emotionEngine.actual_case')}
+ +
+ {t('emotionEngine.user_input')}: + {t('emotionEngine.user_input_message')} +
+ {['neutral_emotion', 'minor_dissatisfaction', 'expect_improvement'].map((key, index) => ( +
+
+ {t(`emotionEngine.${key}`)} + {t('emotionEngine.confidence')}: {key === 'neutral_emotion' ? 0.85 : key === 'minor_dissatisfaction' ? 0.45 : 0.32} +
+ + {t(`emotionEngine.${key}_tag`)} +
+ ))} +
+
+ + {contextHolder} + + ); +}; + +export default ForgettingEngine; diff --git a/web/src/views/EmotionEngine/types.ts b/web/src/views/EmotionEngine/types.ts new file mode 100644 index 00000000..a7a45779 --- /dev/null +++ b/web/src/views/EmotionEngine/types.ts @@ -0,0 +1,48 @@ +// 标签表单数据类型 +export interface TagFormData { + tagName: string; + type: string; + color: string; + description?: string; + applicableScope?: string[]; + semanticExpansion?: string; + isActive?: boolean; + // 扩展字段用于区分编辑和新增操作 + isEditing?: boolean; + tagId?: string; +} + +// 记忆总览数据类型 +export interface MemoryOverviewRecord { + id: number; + memoryID: string, + contentSummary: string; + type: string; + createTime: string; + lastCallTime: string; + retentionDegree: string; + status: string; +} +// 定义组件暴露的方法接口 +export interface MemoryOverviewFormRef { + handleOpen: (memoryOverview?: MemoryOverviewRecord | null) => void; +} + +// 遗忘曲线数据类型 +export interface CurveRecord { + memoryID: string; + type: string; + currentRetentionRate: string; + finallyActivated: string; + expectedForgettingTime: string; + reinforcementCount: string; +} + +export interface ConfigForm { + config_id: number | string; + emotion_enabled: boolean; + emotion_model_id: string; + emotion_extract_keywords: boolean; + emotion_min_intensity: number; + emotion_enable_subject: boolean; +} \ No newline at end of file diff --git a/web/src/views/MemoryManagement/index.tsx b/web/src/views/MemoryManagement/index.tsx index 6424e483..b2cc4221 100644 --- a/web/src/views/MemoryManagement/index.tsx +++ b/web/src/views/MemoryManagement/index.tsx @@ -1,11 +1,11 @@ import React, { useState, useEffect, useRef } from 'react'; -import { List, Button, Space, App } from 'antd'; +import { List, Button, Space, App, Tooltip } from 'antd'; import { useTranslation } from 'react-i18next'; import { useNavigate } from 'react-router-dom'; import MemoryForm from './components/MemoryForm'; import type { Memory, MemoryFormRef } from '@/views/MemoryManagement/types' import RbCard from '@/components/RbCard/Card' -import StatusTag from '@/components/StatusTag' +// import StatusTag from '@/components/StatusTag' import { getMemoryConfigList, deleteMemoryConfig } from '@/api/memory' import BodyWrapper from '@/components/Empty/BodyWrapper' import { formatDateTime } from '@/utils/format'; @@ -67,12 +67,14 @@ const MemoryManagement: React.FC = () => { case 'forgottenEngine': navigate(`/forgetting-engine/${id}`) break + case 'emotionEngine': + navigate(`/emotion-engine/${id}`) } } return ( <> -
+
@@ -80,7 +82,7 @@ const MemoryManagement: React.FC = () => { ( @@ -88,32 +90,37 @@ const MemoryManagement: React.FC = () => { -
{item.config_desc}
- {['memoryExtractionEngine', 'forgottenEngine'].map((key) => ( -
handleClick(item.config_id, key)} - > - {t(`memory.${key}`)} - - {/* */} -
-
-
- ))} -
+
{item.config_desc}
+ + +
+ {['memoryExtractionEngine', 'forgottenEngine', 'emotionEngine', 'selfReflexionEngine'].map((key) => ( +
handleClick(item.config_id, key)} + > + {t(`memory.${key}`)} + + {/* */} +
+
+
+ ))} +
+
{formatDateTime(item.updated_at, 'YYYY-MM-DD HH:mm:ss')}
handleEdit(item)} >
handleDelete(item)} >
diff --git a/web/src/views/UserMemoryDetail/Neo4j.tsx b/web/src/views/UserMemoryDetail/Neo4j.tsx index 91dc7581..21a3de6e 100644 --- a/web/src/views/UserMemoryDetail/Neo4j.tsx +++ b/web/src/views/UserMemoryDetail/Neo4j.tsx @@ -18,6 +18,11 @@ import RelationshipNetwork from './components/RelationshipNetwork' import MemoryInsight from './components/MemoryInsight' import Empty from '@/components/Empty' +import WordCloud from './components/WordCloud' +import EmotionTags from './components/EmotionTags' +import Health from './components/Health' +import Suggestions from './components/Suggestions' + const tagColors = ['21, 94, 239', '156, 111, 255', '255, 93, 52', '54, 159, 33'] interface TitleProps { @@ -102,77 +107,85 @@ const Neo4j: FC = () => { const name = loading.detail ? '' : data?.name && data?.name !== '' ? data.name : id return ( - +
- -
-
{name?.[0]}
-
- {name}
-
{data?.tags?.join(' | ')}
-
-
-
- {data?.hot_tags?.map((tag, tagIndex) => ( - - {tag.name}({tag.frequency}) - - ))} -
+ +
+ +
+
{name?.[0]}
+
+ {name}
+
{data?.tags?.join(' | ')}
+
+
- {/* 记忆总量 */} -
- {t('userMemory.totalNumOfMemories')} -
{memory || 0}
-
+
+ {data?.hot_tags?.map((tag, tagIndex) => ( + + {tag.name}({tag.frequency}) + + ))} +
- {/* 关于我 */} - <> - - {expanded.includes('aboutUs') && ( + {/* 记忆总量 */} + <div className="rb:font-regular rb:text-[12px] rb:text-[#5B6167] rb:leading-[16px] rb:mb-[25px]"> + {t('userMemory.totalNumOfMemories')} + <div className="rb:font-extrabold rb:text-[24px] rb:text-[#212332] rb:leading-[30px] rb:mt-[8px]">{memory || 0}</div> + </div> + + {/* 关于我 */} <> - {loading.summary - ? <Skeleton className="rb:mt-[16px]" /> - : summary - ? <div className="rb:font-regular rb:leading-[22px] rb:pt-[16px]"> - {summary || '-'} - </div> - : <Empty size={88} className="rb:mt-[48px] rb:mb-[81px]" /> - } + <Title + type="aboutUs" + title={t('userMemory.aboutMe')} + icon={aboutUs} + t={t} + expanded={expanded.includes('aboutUs')} + onClick={handleTitleClick} + /> + {expanded.includes('aboutUs') && ( + <> + {loading.summary + ? <Skeleton className="rb:mt-[16px]" /> + : summary + ? <div className="rb:font-regular rb:leading-[22px] rb:pt-[16px]"> + {summary || '-'} + </div> + : <Empty size={88} className="rb:mt-[48px] rb:mb-[81px]" /> + } + </> + )} </> - )} - </> - {/* 兴趣分布 */} - <> - <Title - type="interestDistribution" - title={t('userMemory.interestDistribution')} - icon={interestDistribution} - t={t} - expanded={expanded.includes('interestDistribution')} - onClick={handleTitleClick} - /> + {/* 兴趣分布 */} + <> + <Title + type="interestDistribution" + title={t('userMemory.interestDistribution')} + icon={interestDistribution} + t={t} + expanded={expanded.includes('interestDistribution')} + onClick={handleTitleClick} + /> - {expanded.includes('interestDistribution') && ( - <PieCard /> - )} - </> - </RbCard> + {expanded.includes('interestDistribution') && ( + <PieCard /> + )} + </> + </RbCard> + </Col> + <Col span={24}> + <EmotionTags /> + </Col> + </Row> </Col> <Col span={16}> <Row gutter={[16, 16]}> @@ -182,6 +195,15 @@ const Neo4j: FC = () => { </Col> {/* 关系网络 + 记忆详情 */} <RelationshipNetwork /> + <Col span={12}> + <WordCloud /> + </Col> + <Col span={12}> + <Health /> + </Col> + <Col span={24}> + <Suggestions /> + </Col> </Row> </Col> </Row> diff --git a/web/src/views/UserMemoryDetail/components/EmotionTags.tsx b/web/src/views/UserMemoryDetail/components/EmotionTags.tsx new file mode 100644 index 00000000..80c95499 --- /dev/null +++ b/web/src/views/UserMemoryDetail/components/EmotionTags.tsx @@ -0,0 +1,111 @@ +import { type FC, useEffect, useState } from 'react' +import { useTranslation } from 'react-i18next' +import { useParams } from 'react-router-dom' + +import Empty from '@/components/Empty' +import RbCard from '@/components/RbCard/Card' +import { getWordCloud } from '@/api/memory' + +interface TagList { + keywords: Array<{ keyword: string; frequency: number; emotion_type: string; avg_intensity: number; }>; + total_keywords: number; +} +const EmotionTags: FC = () => { + const { t } = useTranslation() + const { id } = useParams() + const [tagList, setTagList] = useState<TagList | null>(null) + + useEffect(() => { + getEmotionTagData() + }, [id]) + + const getEmotionTagData = () => { + if (!id) { + return + } + getWordCloud(id) + .then((res) => { + setTagList(res as TagList) + }) + } + + const [visibleCount, setVisibleCount] = useState(0) + + useEffect(() => { + if (!tagList || tagList?.keywords.length === 0) return + + const timer = setInterval(() => { + setVisibleCount(prev => { + if (prev >= tagList?.keywords.length) { + clearInterval(timer) + return prev + } + return prev + 1 + }) + }, 200) + + return () => clearInterval(timer) + }, [tagList?.keywords.length]) + + const getEmotionColor = (emotionType: string) => { + const colors: Record<string, string> = { + joy: '#52c41a', + anger: '#ff4d4f', + sadness: '#1890ff', + fear: '#fa8c16', + neutral: '#8c8c8c', + surprise: '#722ed1' + } + return colors[emotionType] || '#8c8c8c' + } + + const emotionStats = tagList?.keywords.reduce((acc, item) => { + acc[item.emotion_type] = (acc[item.emotion_type] || 0) + item.frequency + return acc + }, {} as Record<string, number>) ?? {} + + return ( + <RbCard + title={t('emotionDetail.emotionTags')} + headerType="borderless" + headerClassName="rb:text-[18px]! rb:leading-[24px]" + bodyClassName='rb:p-0! rb:relative' + > + {tagList + ? <> + <div className="rb:flex rb:flex-wrap rb:items-center rb:gap-6 rb:text-sm rb:mt-3 rb:p-3 rb:bg-[#F0F3F8]"> + {Object.entries(emotionStats).map(([type, count]) => { + console.log(type) + return ( + <div key={type} className="rb:flex rb:items-center rb:gap-2"> + <div className="rb:w-3 rb:h-3 rb:rounded-full" style={{ backgroundColor: getEmotionColor(type) }}></div> + <span className="rb:text-gray-600">{t(`emotionDetail.${type || 'neutral'}`)} ({count}个)</span> + </div> + ) + })} + </div> + <div className="rb:mt-6 rb:flex rb:items-center rb:flex-wrap rb:gap-3 rb:mb-3 rb:px-6"> + {tagList.keywords.slice(0, visibleCount).map((item, index) => ( + <div + key={index} + className="rb:flex rb:items-center rb:justify-center rb:animate-fadeIn rb:px-4 rb:py-2 rb:rounded-full rb:text-white rb:font-medium" + style={{ + backgroundColor: getEmotionColor(item.emotion_type), + fontSize: `${12 + item.avg_intensity * 8}px`, + animationDelay: `${index * 200}ms`, + height: `${20 + item.avg_intensity * 20}px`, + transition: 'all 0.3s ease-in-out' + }} + > + {item.keyword} + </div> + ))} + </div> + </> + : <Empty /> + } + </RbCard> + ) +} + +export default EmotionTags \ No newline at end of file diff --git a/web/src/views/UserMemoryDetail/components/Health.tsx b/web/src/views/UserMemoryDetail/components/Health.tsx new file mode 100644 index 00000000..2f870b90 --- /dev/null +++ b/web/src/views/UserMemoryDetail/components/Health.tsx @@ -0,0 +1,100 @@ +import { type FC, useEffect, useState } from 'react' +import { useTranslation } from 'react-i18next' +import { useParams } from 'react-router-dom' +import { Progress } from 'antd' + +import Empty from '@/components/Empty' +import RbCard from '@/components/RbCard/Card' +import { getEmotionHealth } from '@/api/memory' +interface Health { + health_score: number; + level: string; + dimensions: { + positivity_rate: { + score: number; + positive_count: number; + negative_count: number; + neutral_count: number; + }; + stability: { + score: number; + std_deviation: number; + }; + resilience: { + score: number; + recovery_rate: number; + }; + }; + emotion_distribution: { + joy: number; + sadness: number; + anger: number; + fear: number; + surprise: number; + neutral: number; + }; + time_range: string; +} +const Health: FC = () => { + const { t } = useTranslation() + const { id } = useParams() + const [health, setHealth] = useState<Health | null>(null) + + useEffect(() => { + getWordCloudData() + }, [id]) + + const getWordCloudData = () => { + if (!id) { + return + } + getEmotionHealth(id) + .then((res) => { + setHealth(res as Health) + }) + } + + return ( + <RbCard + title={t('emotionDetail.health')} + headerType="borderless" + headerClassName="rb:text-[18px]! rb:leading-[24px]" + height="100%" + > + {health + ? <> + <div className="rb:flex rb:justify-center rb:items-center"> + <Progress + size={250} + type="circle" + strokeColor={{ + '0%': '#108ee9', + '100%': '#87d068', + }} + percent={health.health_score} + format={(percent) => `${percent}(${health.level})`} + /> + </div> + + {health.dimensions && <> + <div className="rb:flex rb:items-center rb:justify-between rb:mt-6"> + <div className="rb:w-40 rb:mr-3">{t('emotionDetail.positivity_rate')}</div> + <Progress className="rb:w-[calc(100%-180px)]" percent={health.dimensions.positivity_rate.score} /> + </div> + <div className="rb:flex rb:items-center rb:gap-3 rb:mt-3"> + <div className="rb:w-40 rb:mr-3">{t('emotionDetail.stability')}</div> + <Progress className="rb:w-[calc(100%-180px)]" percent={health.dimensions.stability.score} /> + </div> + <div className="rb:flex rb:items-center rb:gap-3 rb:mt-3"> + <div className="rb:w-40 rb:mr-3">{t('emotionDetail.resilience')}</div> + <Progress className="rb:w-[calc(100%-180px)]" percent={health.dimensions.resilience.score} /> + </div> + </>} + </> + : <Empty /> + } + </RbCard> + ) +} + +export default Health \ No newline at end of file diff --git a/web/src/views/UserMemoryDetail/components/Suggestions.tsx b/web/src/views/UserMemoryDetail/components/Suggestions.tsx new file mode 100644 index 00000000..1c1792fb --- /dev/null +++ b/web/src/views/UserMemoryDetail/components/Suggestions.tsx @@ -0,0 +1,63 @@ +import { type FC, useEffect, useState } from 'react' +import { useTranslation } from 'react-i18next' +import { useParams } from 'react-router-dom' + +import Empty from '@/components/Empty' +import RbCard from '@/components/RbCard/Card' +import { getEmotionSuggestions } from '@/api/memory' +import RbAlert from '@/components/RbAlert' + + +interface Suggestions { + health_summary: string; + suggestions: Array<{ + type: string; + title: string; + content: string; + priority: string; + actionable_steps: string[]; + }>; +} +const Suggestions: FC = () => { + const { t } = useTranslation() + const { id } = useParams() + const [suggestions, setSuggestions] = useState<Suggestions | null>(null) + + useEffect(() => { + getSuggestionData() + }, [id]) + + const getSuggestionData = () => { + if (!id) { + return + } + getEmotionSuggestions(id) + .then((res) => { + setSuggestions(res as Suggestions) + }) + } + + return ( + <RbCard + title={t('emotionDetail.suggestions')} + headerType="borderless" + headerClassName="rb:text-[18px]! rb:leading-[24px]" + > + {suggestions + ? <> + <RbAlert className="rb:mb-3">{suggestions.health_summary}</RbAlert> + {suggestions.suggestions.map((item, index) => ( + <div key={index} className="rb:mb-3"> + <div className="rb:font-medium">{index + 1}. {item.title}</div> + <div className="rb:text-[12px] rb:text-[#5B6167] rb:mt-1 rb:mb-2">{item.content}</div> + {item.actionable_steps.map((vo, idx) => <div key={idx} className="rb:ml-6 rb:text-[12px] rb:text-[#5B6167] rb:mt-1">- {vo}</div>)} + </div> + ))} + </> + : <Empty /> + } + </RbCard> + ) +} + +export default Suggestions \ No newline at end of file diff --git a/web/src/views/UserMemoryDetail/components/WordCloud.tsx b/web/src/views/UserMemoryDetail/components/WordCloud.tsx new file mode 100644 index 00000000..7d59763b --- /dev/null +++ b/web/src/views/UserMemoryDetail/components/WordCloud.tsx @@ -0,0 +1,131 @@ +import { type FC, useEffect, useState, useMemo, useRef } from 'react' +import { useTranslation } from 'react-i18next' +import { useParams } from 'react-router-dom' +import ReactEcharts from 'echarts-for-react' +import { Progress } from 'antd' + +import Empty from '@/components/Empty' +import RbCard from '@/components/RbCard/Card' +import { getEmotionTags } from '@/api/memory' + +interface WordCloud { + tags: Array<{ + emotion_type: string; + count: number; + percentage: number; + avg_intensity: number; + }>; + total_count: number; +} +const WordCloud: FC = () => { + const { t } = useTranslation() + const { id } = useParams() + const chartRef = useRef<ReactEcharts>(null); + const resizeScheduledRef = useRef(false) + const [wordCloud, setWordCloud] = useState<WordCloud | null>(null) + + useEffect(() => { + getWordCloudData() + }, [id]) + + useEffect(() => { + const handleResize = () => { + if (chartRef.current && !resizeScheduledRef.current) { + resizeScheduledRef.current = true + requestAnimationFrame(() => { + chartRef.current?.getEchartsInstance().resize(); + resizeScheduledRef.current = false + }); + } + } + + const resizeObserver = new ResizeObserver(handleResize) + const chartElement = chartRef.current?.getEchartsInstance().getDom().parentElement + if (chartElement) { + resizeObserver.observe(chartElement) + } + + return () => { + resizeObserver.disconnect() + } + }, [wordCloud]) + + const getWordCloudData = () => { + if (!id) { + return + } + getEmotionTags(id) + .then((res) => { + setWordCloud(res as WordCloud) + }) + } + const radarOption = useMemo(() => { + if (!wordCloud?.tags.length) return {} + + // 将avg_intensity转换为1-100范围 + const radarData = wordCloud.tags.map(item => ({ + name: item.emotion_type, + value: Math.round(item.avg_intensity * 100), + count: item.count, + percentage: item.percentage + })) + + return { + tooltip: { + trigger: 'item', + formatter: (params: any) => { + const dataIndex = params.dataIndex + const item = radarData[dataIndex] + return `${item.name}<br/>${item.percentage.toFixed(1)}%` + } + }, + radar: { + indicator: radarData.map(item => ({ + name: t(`emotionDetail.${item.name}`), + max: 100, + min: 1 + })) + }, + series: [{ + type: 'radar', + name: 'Emotion Intensity', + data: [{ + value: radarData.map(item => item.value), + name: 'Emotion Intensity' + }] + }] + } + }, [wordCloud]) + + return ( + <RbCard + title={t('emotionDetail.wordCloud')} + headerType="borderless" + headerClassName="rb:text-[18px]! rb:leading-[24px]" + height="100%" + > + {wordCloud + ? <div className="rb:flex rb:h-100"> + <ReactEcharts ref={chartRef} option={radarOption} style={{ width: '50%', height: '100%' }} /> + <div className="rb:w-[50%] rb:pl-4 rb:flex rb:flex-col rb:justify-center"> + <div className="rb:text-[18px] rb:font-medium rb:mb-4">样本数:{wordCloud.total_count}</div> + <div className="rb:space-y-3"> + {wordCloud.tags.map(item => ( + <div key={item.emotion_type}> + <div className="rb:flex rb:items-center rb:justify-between rb:font-medium"> + {t(`emotionDetail.${item.emotion_type}`)} + <div className="rb:text-[12px] rb:text-[#5B6167] rb:font-regular">{item.count}{t('emotionDetail.pieces')}</div> + </div> + <Progress size="small" percent={item.percentage} /> + </div> + ))} + </div> + </div> + </div> + : <Empty /> + } + </RbCard> + ) +} + +export default WordCloud \ No newline at end of file diff --git a/web/src/views/UserMemoryDetail/pages/EmotionDetail.tsx b/web/src/views/UserMemoryDetail/pages/EmotionDetail.tsx new file mode 100644 index 00000000..987c7a3f --- /dev/null +++ b/web/src/views/UserMemoryDetail/pages/EmotionDetail.tsx @@ -0,0 +1,29 @@ +import { type FC } from 'react' +import { Row, Col } from 'antd'; + +import WordCloud from '../components/WordCloud' +import EmotionTags from '../components/EmotionTags' +import Health from '../components/Health' +import Suggestions from '../components/Suggestions' + + +const EmotionDetail: FC = () => { + return ( + <Row gutter={[16, 16]}> + <Col span={12}> + <WordCloud /> + </Col> + <Col span={12}> + <EmotionTags /> + </Col> + <Col span={12}> + <Health /> + </Col> + <Col span={12}> + <Suggestions /> + </Col> + </Row> + ) +} + +export default EmotionDetail \ No newline at end of file From 62071ff96f2d7ab2eb2ad0bde7c6afe8c1067e67 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Fri, 19 Dec 2025 18:51:07 +0800 Subject: [PATCH 23/92] feat(web): Add Reflection Engine --- web/src/i18n/en.ts | 59 ++- web/src/i18n/zh.ts | 59 ++- web/src/routes/index.tsx | 2 +- web/src/routes/routes.json | 3 +- web/src/store/menu.json | 13 + web/src/views/EmotionEngine/index.tsx | 6 +- .../views/MemoryExtractionEngine/constant.ts | 2 +- web/src/views/MemoryManagement/index.tsx | 6 +- web/src/views/SelfReflectionEngine/index.tsx | 365 ++++++++++++++++++ web/src/views/SelfReflectionEngine/types.ts | 72 ++++ 10 files changed, 573 insertions(+), 14 deletions(-) create mode 100644 web/src/views/SelfReflectionEngine/index.tsx create mode 100644 web/src/views/SelfReflectionEngine/types.ts diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 134b18ff..9d6c2f04 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -36,7 +36,8 @@ export const en = { apiKeyManagement: 'API KEY Management', toolManagement: 'Tool Management', emotionEngine: 'Emotion Engine', - emotionDetail: 'Emotion Memory' + emotionDetail: 'Emotion Memory', + selfReflectionEngine: 'Self Reflection Engine', }, dashboard: { totalMemoryCapacity: 'Total Memory Capacity', @@ -648,7 +649,7 @@ export const en = { inactive: 'Inactive', configurationName: 'Configuration Name', emotionEngine: 'Emotion Engine', - selfReflexionEngine: 'Self-Reflection Engine' + reflectionEngine: 'Self-Reflection Engine' }, member: { username: 'Username', @@ -1117,7 +1118,7 @@ export const en = { intelligentSemanticPruningSceneDesc: 'Select intelligent semantic pruning scene (education, online_service, outbound).', intelligentSemanticPruningThreshold: 'Intelligent Semantic Pruning Threshold', intelligentSemanticPruningThresholdDesc: 'Set intelligent semantic pruning threshold (0-0.9).', - selfReflexionEngine: 'Self-Reflexion Engine', + reflectionEngine: 'Self-Reflexion Engine', selfReflexionEngineSubTitle: 'Through reflection and refinement, transform episodic memory into deeper semantic memory.', enableSelfReflexion: 'Enable self-reflexion', iterationPeriod: 'Iteration Period', @@ -1631,6 +1632,58 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re stability: 'Stability', resilience: 'Resilience', suggestions: 'Personalized Suggestions', + }, + reflectionEngine: { + reflectionEngineConfig: 'Reflection Engine Configuration', + reflection_enabled: 'Enable Reflection Engine', + reflection_enabled_desc: 'Transform episodic memory into semantic memory, forming long-term cognition', + reflection_model_id: 'Reflection Model', + reflection_model_id_desc: 'Different models vary in accuracy and speed', + reflection_period_in_hours: 'Iteration Period', + reflection_period_in_hours_desc: 'Determines how often the system performs memory reflection and refinement', + reflexion_range: 'Reflection Range', + partial: 'Partial Reflection (New memories only)', + all: 'Full Reflection (All historical memories)', + reflexion_range_desc: '', + baseline: 'Reflection Baseline', + baseline_desc: '', + TIME: 'Time-based (Temporal relationships)', + FACT: 'Fact-based (Knowledge points)', + HYBRID: 'Fact + Time (Comprehensive dimension)', + quality_assessment: 'Enable Quality Assessment', + quality_assessment_desc: 'Automatically evaluate memory accuracy, completeness and timeliness', + memory_verify: 'Enable Memory Verification', + memory_verify_desc: 'Detect sensitive information and filter inappropriate content', + oneHour: 'Every 1 hour', + threeHours: 'Every 3 hours', + sixHours: 'Every 6 hours', + twelveHours: 'Every 12 hours', + daily: 'Daily', + run: 'Run Debug', + example: 'Raw Data', + exampleText: 'My sister was born in 2025, oh wait, I remembered wrong, she was actually born in 2024. By the way, my ID number is 33252218293749845X.', + runTitle: 'Reflection Test Run', + status: 'Status', + message: 'Message', + + conflictDetection: 'Conflict Detection', + reason: 'Conflict Reason', + solution: 'Solution', + + qualityAssessment: 'Quality Assessment', + qualityAssessmentObj: { + score: 'Quality Score', + summary: 'Assessment Summary', + }, + + privacyAudit: 'Privacy Audit', + privacyAuditObj: { + true: 'Yes', + false: 'No', + has_privacy: 'Contains Privacy Information', + privacy_types: 'Privacy Types', + summary: 'Audit Summary', + } } }, }; diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 48d50135..84dbd47c 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -36,7 +36,8 @@ export const zh = { userMemoryDetail: '用户记忆详情', toolManagement: '工具管理', emotionEngine: '情感引擎', - emotionDetail: '情绪记忆' + emotionDetail: '情绪记忆', + selfReflectionEngine: '反思引擎', }, knowledgeBase: { home: '首页', @@ -997,7 +998,7 @@ export const zh = { inactive: '不活跃', configurationName: '配置名称', emotionEngine: '情感引擎', - selfReflexionEngine: '反思引擎' + reflectionEngine: '反思引擎' }, member: { username: '用户名', @@ -1191,7 +1192,7 @@ export const zh = { intelligentSemanticPruningSceneDesc: '选择智能语义修剪场景(education、online_service、outbound)。', intelligentSemanticPruningThreshold: '智能语义修剪阈值', intelligentSemanticPruningThresholdDesc: '设置智能语义修剪阈值(0-0.9)。', - selfReflexionEngine: '自我反思引擎', + reflectionEngine: '自我反思引擎', selfReflexionEngineSubTitle: '通过反思和精炼,将情节记忆转化为更深层的语义记忆。', enableSelfReflexion: '启用自我反思', iterationPeriod: '迭代周期', @@ -1720,6 +1721,58 @@ export const zh = { stability: '稳定性', resilience: '恢复力', suggestions: '个性化建议', + }, + reflectionEngine: { + reflectionEngineConfig: '反思引擎配置', + reflection_enabled: '启用反思引擎', + reflection_enabled_desc: '将情节记忆转化为语义记忆,形成长期认知', + reflection_model_id: '反思模型', + reflection_model_id_desc: '不同模型在准确度和速度上有所差异', + reflection_period_in_hours: '迭代周期', + reflection_period_in_hours_desc: '决定系统多久进行一次记忆反思和提炼', + reflexion_range: '反思范围', + partial: '部分反思 (仅新增记忆)', + all: '全部反思 (所有历史记忆)', + reflexion_range_desc: '', + baseline: '反思基线', + baseline_desc: '', + TIME: '基于时间(时序关系)', + FACT: '基于事实(知识点)', + HYBRID: '事实+时间(综合维度)', + quality_assessment: '启用质量评估', + quality_assessment_desc: '自动评估记忆的准确性、完整性和时效性', + memory_verify: '启用记忆审核', + memory_verify_desc: '检测敏感信息并过滤违规内容', + oneHour: '每1个小时', + threeHours: '每3个小时', + sixHours: '每6个小时', + twelveHours: '每12个小时', + daily: '每天', + run: '运行调试', + example: '原始数据', + exampleText: '我妹妹是2025年出生的,哦不对,我记错了,她其实是2024年出生的。对了,我的身份证号码是33252218293749845X。', + runTitle: '反思试运行', + status: '状态', + message: '消息', + + conflictDetection: '冲突检测', + reason: '冲突原因', + solution: '解决方案', + + qualityAssessment: '质量评估', + qualityAssessmentObj: { + score: '质量评分', + summary: '评估摘要', + }, + + privacyAudit: '隐私审核', + privacyAuditObj: { + true: '是', + false: '否', + has_privacy: '包含隐私信息', + privacy_types: '隐私类型', + summary: '审核摘要', + } } }, } \ No newline at end of file diff --git a/web/src/routes/index.tsx b/web/src/routes/index.tsx index fb4c0760..f5296aab 100644 --- a/web/src/routes/index.tsx +++ b/web/src/routes/index.tsx @@ -55,9 +55,9 @@ const componentMap: Record<string, LazyExoticComponent<ComponentType<object>>> = ModelManagement: lazy(() => import('@/views/ModelManagement')), SpaceManagement: lazy(() => import('@/views/SpaceManagement')), ApiKeyManagement: lazy(() => import('@/views/ApiKeyManagement')), - ToolManagement: lazy(() => import('@/views/ToolManagement')), EmotionEngine: lazy(() => import('@/views/EmotionEngine')), EmotionDetail: lazy(() => import('@/views/UserMemoryDetail/pages/EmotionDetail')), + SelfReflectionEngine: lazy(() => import('@/views/SelfReflectionEngine')), Login: lazy(() => import('@/views/Login')), InviteRegister: lazy(() => import('@/views/InviteRegister')), NoPermission: lazy(() => import('@/views/NoPermission')), diff --git a/web/src/routes/routes.json b/web/src/routes/routes.json index e7d9fc5c..1a192770 100644 --- a/web/src/routes/routes.json +++ b/web/src/routes/routes.json @@ -5,7 +5,6 @@ { "path": "/user-management", "element": "UserManagement" }, { "path": "/model", "element": "ModelManagement" }, { "path": "/space", "element": "SpaceManagement" }, - { "path": "/tool", "element": "ToolManagement" }, { "path": "/no-permission", "element": "NoPermission" } ] }, @@ -27,8 +26,8 @@ { "path": "/knowledge-base/:knowledgeBaseId/create-dataset", "element": "CreateDataset" }, { "path": "/knowledge-base/:knowledgeBaseId/DocumentDetails", "element": "DocumentDetails" }, { "path": "/api-key", "element": "ApiKeyManagement" }, - { "path": "/tool", "element": "ToolManagement" }, { "path": "/emotion-engine/:id", "element": "EmotionEngine" }, + { "path": "/reflection-engine/:id", "element": "SelfReflectionEngine" }, { "path": "/user-memory/emotion/:id", "element": "EmotionDetail" }, { "path": "/no-permission", "element": "NoPermission" }, { "path": "/*", "element": "NotFound" } diff --git a/web/src/store/menu.json b/web/src/store/menu.json index c8895c37..7845815f 100644 --- a/web/src/store/menu.json +++ b/web/src/store/menu.json @@ -209,6 +209,19 @@ "level": 1, "sort": 0, "subs": null + }, + { + "id": 72, + "parent": 7, + "code": "selfReflectionEngine", + "label": "反思引擎", + "i18nKey": "menu.selfReflectionEngine", + "path": "/reflection-engine/:id", + "enable": true, + "display": false, + "level": 1, + "sort": 0, + "subs": null } ] }, diff --git a/web/src/views/EmotionEngine/index.tsx b/web/src/views/EmotionEngine/index.tsx index ed0ac43d..ae1cd4c6 100644 --- a/web/src/views/EmotionEngine/index.tsx +++ b/web/src/views/EmotionEngine/index.tsx @@ -19,7 +19,7 @@ const configList = [ key: 'emotion_model_id', type: 'customSelect', url: getModelListUrl, - params: { type: 'chat', page: 1, pagesize: 100 }, // chat,llm + params: { type: 'chat,llm', page: 1, pagesize: 100 }, // chat,llm }, { key: 'emotion_min_intensity', @@ -40,7 +40,7 @@ const configList = [ }, ] -const ForgettingEngine: React.FC = () => { +const EmotionEngine: React.FC = () => { const { t } = useTranslation(); const { id } = useParams(); const [configData, setConfigData] = useState<ConfigForm>({} as ConfigForm); @@ -249,4 +249,4 @@ const ForgettingEngine: React.FC = () => { ); }; -export default ForgettingEngine; +export default EmotionEngine; diff --git a/web/src/views/MemoryExtractionEngine/constant.ts b/web/src/views/MemoryExtractionEngine/constant.ts index 9337b372..d1b7b757 100644 --- a/web/src/views/MemoryExtractionEngine/constant.ts +++ b/web/src/views/MemoryExtractionEngine/constant.ts @@ -152,7 +152,7 @@ export const configList: ConfigVo[] = [ }, // 自我反思引擎 // { - // title: 'selfReflexionEngine', + // title: 'reflectionEngine', // list: [ // // 是否启用反思引擎 // { diff --git a/web/src/views/MemoryManagement/index.tsx b/web/src/views/MemoryManagement/index.tsx index b2cc4221..42ef8afb 100644 --- a/web/src/views/MemoryManagement/index.tsx +++ b/web/src/views/MemoryManagement/index.tsx @@ -69,6 +69,10 @@ const MemoryManagement: React.FC = () => { break case 'emotionEngine': navigate(`/emotion-engine/${id}`) + break; + case 'reflectionEngine': + navigate(`/reflection-engine/${id}`) + break; } } @@ -95,7 +99,7 @@ const MemoryManagement: React.FC = () => { </Tooltip> <div className="rb:grid rb:grid-cols-2 rb:gap-4 rb:mt-3"> - {['memoryExtractionEngine', 'forgottenEngine', 'emotionEngine', 'selfReflexionEngine'].map((key) => ( + {['memoryExtractionEngine', 'forgottenEngine', 'emotionEngine', 'reflectionEngine'].map((key) => ( <div key={key} className="rb:group rb:cursor-pointer rb:bg-[#F0F3F8] rb:h-10 rb:rounded-md rb:flex rb:items-center rb:justify-between rb:p-[0_8px_0_12px] rb:mt-3 rb:text-[#5B6167] rb:font-medium" onClick={() => handleClick(item.config_id, key)} > diff --git a/web/src/views/SelfReflectionEngine/index.tsx b/web/src/views/SelfReflectionEngine/index.tsx new file mode 100644 index 00000000..a1cf33e8 --- /dev/null +++ b/web/src/views/SelfReflectionEngine/index.tsx @@ -0,0 +1,365 @@ +import React, { useState, useEffect } from 'react'; +import { Row, Col, Form, App, Button, Switch, Space, Select } from 'antd'; +import { useParams } from 'react-router-dom'; +import { useTranslation } from 'react-i18next'; +import RbCard from '@/components/RbCard/Card'; +import strategyImpactSimulator from '@/assets/images/memory/strategyImpactSimulator.svg' +import { getMemoryReflectionConfig, updateMemoryReflectionConfig, pilotRunMemoryReflectionConfig } from '@/api/memory' +import type { ConfigForm, Result, ReflexionData, MemoryVerify, QualityAssessment } from './types' +import CustomSelect from '@/components/CustomSelect'; +import { getModelListUrl } from '@/api/models' +import Tag from '@/components/Tag' + +const configList = [ + // 启用反思引擎 + { + key: 'reflection_enabled', + type: 'switch', + }, + // 反思模型 + { + key: 'reflection_model_id', + type: 'customSelect', + url: getModelListUrl, + params: { type: 'chat,llm', page: 1, pagesize: 100 }, // chat,llm + }, + // 迭代周期 + { + key: 'reflection_period_in_hours', + type: 'select', + options: [ + { label: 'oneHour', value: '1' }, + { label: 'threeHours', value: '3' }, + { label: 'sixHours', value: '6' }, + { label: 'twelveHours', value: '12' }, + { label: 'daily', value: '24' }, + ], + }, + // 反思范围 + { + key: 'reflexion_range', + type: 'select', + hiddenDesc: true, + options: [ + { label: 'partial', value: 'partial' }, + { label: 'all', value: 'all' }, + ], + }, + // 反思基线 + { + key: 'baseline', + type: 'select', + hiddenDesc: true, + options: [ + { label: 'TIME', value: 'TIME' }, + { label: 'FACT', value: 'FACT' }, + { label: 'HYBRID', value: 'HYBRID' }, + ], + }, + // 质量评估 + { + key: 'quality_assessment', + type: 'switch', + }, + // 质量评估 + { + key: 'memory_verify', + type: 'switch', + }, +] + +const SelfReflectionEngine: React.FC = () => { + const { t } = useTranslation(); + const { id } = useParams(); + const [configData, setConfigData] = useState<ConfigForm>({} as ConfigForm); + const [form] = Form.useForm<ConfigForm>(); + const { message } = App.useApp(); + const [loading, setLoading] = useState(false) + const [runLoading, setRunLoading] = useState(false) + const [result, setResult] = useState<Result>({ + "baseline": "TIME", + "source_data": "我是 2023 年春天去北京工作的,后来基本一直都在北京上班,也没怎么换过城市。不过后来公司调整,2024 年上半年我被调到上海待了差不多半年,那段时间每天都是在上海办公室打卡。当时入职资料用的还是我之前的身份信息,身份证号是 11010119950308123X,银行卡是 6222023847595898,这些一直没变。对了,其实我 从 2023 年开始就一直在北京生活,从来没有长期离开过北京,上海那段更多算是远程配合", + "quality_assessments": [ + { + "score": 80, + "summary": "数据整体质量良好,实体和关系描述清晰,时间字段完整。但存在少量语义冲突:关于用户长期在北京生活的陈述与2024年上半年被调至上海工作半年的事实存在空间互斥重叠冲突。此外,'在上海期间算远程配合'的主观认知与'每天在上海办公室打卡'的客观行为可能存在逻辑不一致,需进一步验证。无明显格式错误或缺失字段。" + } + ], + "memory_verifies": [ + { + "has_privacy": true, + "privacy_types": [ + "身份证信息", + "银行信息" + ], + "summary": "检测到2类隐私信息:1个身份证号码(11010119950308123X)和1个银行卡号(6222023847595898),共涉及2条记录" + } + ], + "reflexion_data": [ + { + "reason": "检测到时间冲突:用户从2023年起一直在北京生活工作的陈述与2024年上半年被调至上海工作半年的事实在时间线上存在重叠和矛盾。", + "solution": "保留‘用户于2024年上半年被调至上海工作半年’这一更具体且可验证的时间事实,将‘用户从未长期离开北京’等绝对化陈述设为失效。同时对涉及的隐私信息进行脱敏处理。" + }, + { + "reason": "检测到混合冲突:用户‘每天在上海办公室打卡’是客观行为,而‘认为更多算是远程配合’是主观认知,两者在逻辑上构成事实与感知的不一致,属于混合型冲突(HYBRID)。", + "solution": "保留两种记录以反映客观行为与主观认知的差异,无需修改数据状态。但在输出中应对可能涉及的隐私信息进行脱敏处理。" + }, + { + "reason": "检测到隐私信息:身份证号(11010119950308123X)和银行卡号(6222023847595898)属于敏感个人信息,需按规则脱敏。", + "solution": "对身份证号和银行卡号进行脱敏处理,保留前三位和后四位,中间用*代替。" + } + ] + }) + + const values = Form.useWatch([], form); + + useEffect(() => { + getConfigData() + }, [id]) + + const getConfigData = () => { + if (!id) { + return + } + getMemoryReflectionConfig(id) + .then((res) => { + const response = res as ConfigForm + const initialValues = { + ...response, + } + console.log('initialValues', initialValues) + setConfigData(initialValues); + form.setFieldsValue(initialValues); + }) + .catch(() => { + console.error('Failed to load data'); + }) + } + const handleReset = () => { + form.setFieldsValue(configData); + } + const handleSave = () => { + if (!id) { + return + } + setLoading(true) + updateMemoryReflectionConfig({ + ...values, + config_id: id + }) + .then(() => { + message.success(t('common.saveSuccess')) + setConfigData({...(values || {})}) + }) + .finally(() => { + setLoading(false) + }) + } + const handleRun = () => { + if (!id) { + return + } + setRunLoading(true) + pilotRunMemoryReflectionConfig({ + config_id: id, + dialogue_text: t('reflectionEngine.exampleText') + }) + .then((res) => { + setResult(res as Result) + }) + .finally(() => { + setRunLoading(false) + }) + } + + return ( + <Row gutter={[16, 16]}> + <Col span={12}> + <RbCard + title={ + <div className="rb:flex rb:items-center"> + <img src={strategyImpactSimulator} className="rb:w-5 rb:h-5 rb:mr-2" /> + {t('reflectionEngine.reflectionEngineConfig')} + </div> + } + > + <Form + form={form} + layout="vertical" + initialValues={{ + offset: 0, + lambda_time: 0.03, + lambda_mem: 0.03, + }} + > + {configList.map(config => { + if (config.type === 'customSelect') { + return ( + <div key={config.key}> + <div className="rb:text-[14px] rb:font-medium rb:leading-5 rb:mb-2"> + {t(`reflectionEngine.${config.key}`)} + </div> + <Form.Item + name={config.key} + extra={t(`reflectionEngine.${config.key}_desc`)} + > + <CustomSelect + url={config.url as string} + params={config.params} + valueKey='id' + labelKey='name' + hasAll={false} + placeholder={t('common.pleaseSelect')} + disabled={!values?.reflection_enabled && config.key !== 'reflection_enabled'} + /> + </Form.Item> + </div> + ) + } + if (config.type === 'select') { + return ( + <div key={config.key}> + <div className="rb:text-[14px] rb:font-medium rb:leading-5 rb:mb-2"> + {t(`reflectionEngine.${config.key}`)} + </div> + <Form.Item + name={config.key} + extra={t(`reflectionEngine.${config.key}_desc`)} + > + <Select + options={config.options?.map(vo => ({ + ...vo, + label: t(`reflectionEngine.${vo.label}`), + }))} + placeholder={t('common.pleaseSelect')} + disabled={!values?.reflection_enabled && config.key !== 'reflection_enabled'} + /> + </Form.Item> + </div> + ) + } + + return ( + <div className="rb:flex rb:items-center rb:justify-between rb:mb-6"> + <div> + <span className="rb:text-[14px] rb:font-medium rb:leading-5">{t(`reflectionEngine.${config.key}`)}</span> + {(config as any).hasSubTitle && <div className="rb:mt-1 rb:text-[12px] rb:text-[#5B6167] rb:font-regular rb:leading-4">{t(`reflectionEngine.${config.key}_subTitle`)}</div>} + <div className="rb:mt-1 rb:text-[12px] rb:text-[#5B6167] rb:font-regular rb:leading-4">{t(`reflectionEngine.${config.key}_desc`)}</div> + </div> + <Form.Item + name={config.key} + valuePropName="checked" + className="rb:ml-2 rb:mb-0!" + > + <Switch + disabled={!values?.reflection_enabled && config.key !== 'reflection_enabled'} /> + </Form.Item> + </div> + ) + })} + <Row gutter={16} className="rb:mt-3"> + <Col span={12}> + <Button block onClick={handleReset}>{t('common.reset')}</Button> + </Col> + <Col span={12}> + <Button type="primary" loading={loading} block onClick={handleSave}>{t('common.save')}</Button> + </Col> + </Row> + </Form> + </RbCard> + </Col> + <Col span={12}> + <Space size={16} direction="vertical" className="rb:w-full"> + <RbCard + title={t('memoryExtractionEngine.example')} + > + <div className="rb:text-[14px] rb:text-[#5B6167] rb:font-regular rb:leading-5 rb:mb-6"> + {t('reflectionEngine.exampleText')} + </div> + + <Button type="primary" block loading={runLoading} onClick={handleRun}>{t('reflectionEngine.run')}</Button> + </RbCard> + {result && <> + <RbCard + title={t('reflectionEngine.runTitle')} + > + <div + className="rb:flex rb:gap-4 rb:justify-start rb:text-[#5B6167] rb:text-[14px] rb:leading-5 rb:mb-3" + > + <div className="rb:whitespace-nowrap rb:w-20 rb:font-medium">{t(`reflectionEngine.baseline`)}</div> + <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> + {result.baseline} + </div> + </div> + </RbCard> + <RbCard + title={t('reflectionEngine.conflictDetection')} + > + <Space size={12} direction="vertical" className="rb:w-full"> + {result.reflexion_data.map((item, index) => ( + <div key={index} className="rb:bg-[#F0F3F8] rb:px-3 rb:py-2.5 rb:rounded-md rb:text-[12px]"> + {['reason', 'solution'].map(key => ( + <div + key={key} + className="rb:flex rb:gap-4 rb:justify-start rb:text-[14px] rb:leading-5 rb:mb-3" + > + <div className="rb:whitespace-nowrap rb:w-20 rb:font-medium">{t(`reflectionEngine.${key}`)}</div> + <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> + {item[key as keyof ReflexionData]} + </div> + </div> + ))} + </div> + ))} + </Space> + </RbCard> + <RbCard + title={t('reflectionEngine.qualityAssessment')} + > + {result.quality_assessments.map((item, index) => ( + <div key={index} className="rb:bg-[#F0F3F8] rb:px-3 rb:py-2.5 rb:rounded-md rb:text-[12px]"> + {['score', 'summary'].map(key => ( + <div + key={key} + className="rb:flex rb:gap-4 rb:justify-start rb:text-[14px] rb:leading-5 rb:mb-3" + > + <div className="rb:whitespace-nowrap rb:w-20 rb:font-medium">{t(`reflectionEngine.qualityAssessmentObj.${key}`)}</div> + <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> + {item[key as keyof QualityAssessment]} + </div> + </div> + ))} + </div> + ))} + </RbCard> + <RbCard + title={t('reflectionEngine.privacyAudit')} + > + {result.memory_verifies.map((item, index) => ( + <div key={index} className="rb:bg-[#F0F3F8] rb:px-3 rb:py-2.5 rb:rounded-md rb:text-[12px]"> + {['has_privacy', 'privacy_types', 'summary'].map(key => ( + <div + key={key} + className="rb:flex rb:gap-4 rb:justify-start rb:text-[14px] rb:leading-5 rb:mb-3" + > + <div className="rb:whitespace-nowrap rb:w-20 rb:font-medium">{t(`reflectionEngine.privacyAuditObj.${key}`)}</div> + <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> + {key === 'has_privacy' + ? <Tag color={item[key as keyof MemoryVerify] ? 'success' : 'error'}>{t(`reflectionEngine.privacyAuditObj.${item[key as keyof MemoryVerify]}`)}</Tag> + : key === 'privacy_types' ? (item[key as keyof MemoryVerify] as string[]).join('、') + : item[key as keyof MemoryVerify] + } + </div> + </div> + ))} + </div> + ))} + </RbCard> + </>} + </Space> + </Col> + </Row> + ); +}; + +export default SelfReflectionEngine; diff --git a/web/src/views/SelfReflectionEngine/types.ts b/web/src/views/SelfReflectionEngine/types.ts new file mode 100644 index 00000000..ae05329e --- /dev/null +++ b/web/src/views/SelfReflectionEngine/types.ts @@ -0,0 +1,72 @@ +// 标签表单数据类型 +export interface TagFormData { + tagName: string; + type: string; + color: string; + description?: string; + applicableScope?: string[]; + semanticExpansion?: string; + isActive?: boolean; + // 扩展字段用于区分编辑和新增操作 + isEditing?: boolean; + tagId?: string; +} + +// 记忆总览数据类型 +export interface MemoryOverviewRecord { + id: number; + memoryID: string, + contentSummary: string; + type: string; + createTime: string; + lastCallTime: string; + retentionDegree: string; + status: string; +} +// 定义组件暴露的方法接口 +export interface MemoryOverviewFormRef { + handleOpen: (memoryOverview?: MemoryOverviewRecord | null) => void; +} + +// 遗忘曲线数据类型 +export interface CurveRecord { + memoryID: string; + type: string; + currentRetentionRate: string; + finallyActivated: string; + expectedForgettingTime: string; + reinforcementCount: string; +} + +export interface ConfigForm { + config_id: number | string; + reflection_enabled: boolean; + reflection_period_in_hours: string; + reflexion_range: string; + baseline: string; + reflection_model_id: string; + memory_verify: boolean; + quality_assessment: boolean; +} + +export interface QualityAssessment { + score: number; + summary: string; +} +export interface MemoryVerify { + has_privacy: boolean; + privacy_types: string[]; + summary: string; +} +export interface ReflexionData { + reason: string; + solution: string; +} + +export interface Result { + baseline: string; + source_data: string; + quality_assessments: QualityAssessment[]; + memory_verifies: MemoryVerify[]; + reflexion_data: ReflexionData[] +} \ No newline at end of file From 1027213fc7b39fe35ce7506537a7e8a8f34c0572 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Fri, 19 Dec 2025 18:52:33 +0800 Subject: [PATCH 24/92] feat(web): Add Reflection Engine API --- web/src/api/memory.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/web/src/api/memory.ts b/web/src/api/memory.ts index d6811c06..cce52944 100644 --- a/web/src/api/memory.ts +++ b/web/src/api/memory.ts @@ -11,6 +11,9 @@ import type { import type { ConfigForm as EmotionConfig } from '@/views/EmotionEngine/types' +import type { + ConfigForm as SelfReflectionEngineConfig +} from '@/views/SelfReflectionEngine/types' import type { TestParams } from '@/views/MemoryConversation' import { handleSSE, type SSEMessage } from '@/utils/stream' @@ -164,6 +167,18 @@ export const getMemoryEmotionConfig = (config_id: number | string) => { export const updateMemoryEmotionConfig = (values: EmotionConfig) => { return request.post('/memory/emotion/updated_config', values) } +// 反思引擎-获取配置 +export const getMemoryReflectionConfig = (config_id: number | string) => { + return request.get('/memory/reflection/configs', { config_id: config_id }) +} +// 反思引擎-更新配置 +export const updateMemoryReflectionConfig = (values: SelfReflectionEngineConfig) => { + return request.post('/memory/reflection/save', values) +} +// 反思引擎-试运行 +export const pilotRunMemoryReflectionConfig = (values: { config_id: number | string; dialogue_text: string; }) => { + return request.get('/memory/reflection/run', values) +} /*************** end 记忆管理 相关接口 ******************************/ From eaa47ad9f1b3b1776605f23e026f9228f41cca87 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Fri, 19 Dec 2025 18:54:00 +0800 Subject: [PATCH 25/92] feat(web): remove mock data --- web/src/views/SelfReflectionEngine/index.tsx | 35 +------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/web/src/views/SelfReflectionEngine/index.tsx b/web/src/views/SelfReflectionEngine/index.tsx index a1cf33e8..449ad9bb 100644 --- a/web/src/views/SelfReflectionEngine/index.tsx +++ b/web/src/views/SelfReflectionEngine/index.tsx @@ -76,40 +76,7 @@ const SelfReflectionEngine: React.FC = () => { const { message } = App.useApp(); const [loading, setLoading] = useState(false) const [runLoading, setRunLoading] = useState(false) - const [result, setResult] = useState<Result>({ - "baseline": "TIME", - "source_data": "我是 2023 年春天去北京工作的,后来基本一直都在北京上班,也没怎么换过城市。不过后来公司调整,2024 年上半年我被调到上海待了差不多半年,那段时间每天都是在上海办公室打卡。当时入职资料用的还是我之前的身份信息,身份证号是 11010119950308123X,银行卡是 6222023847595898,这些一直没变。对了,其实我 从 2023 年开始就一直在北京生活,从来没有长期离开过北京,上海那段更多算是远程配合", - "quality_assessments": [ - { - "score": 80, - "summary": "数据整体质量良好,实体和关系描述清晰,时间字段完整。但存在少量语义冲突:关于用户长期在北京生活的陈述与2024年上半年被调至上海工作半年的事实存在空间互斥重叠冲突。此外,'在上海期间算远程配合'的主观认知与'每天在上海办公室打卡'的客观行为可能存在逻辑不一致,需进一步验证。无明显格式错误或缺失字段。" - } - ], - "memory_verifies": [ - { - "has_privacy": true, - "privacy_types": [ - "身份证信息", - "银行信息" - ], - "summary": "检测到2类隐私信息:1个身份证号码(11010119950308123X)和1个银行卡号(6222023847595898),共涉及2条记录" - } - ], - "reflexion_data": [ - { - "reason": "检测到时间冲突:用户从2023年起一直在北京生活工作的陈述与2024年上半年被调至上海工作半年的事实在时间线上存在重叠和矛盾。", - "solution": "保留‘用户于2024年上半年被调至上海工作半年’这一更具体且可验证的时间事实,将‘用户从未长期离开北京’等绝对化陈述设为失效。同时对涉及的隐私信息进行脱敏处理。" - }, - { - "reason": "检测到混合冲突:用户‘每天在上海办公室打卡’是客观行为,而‘认为更多算是远程配合’是主观认知,两者在逻辑上构成事实与感知的不一致,属于混合型冲突(HYBRID)。", - "solution": "保留两种记录以反映客观行为与主观认知的差异,无需修改数据状态。但在输出中应对可能涉及的隐私信息进行脱敏处理。" - }, - { - "reason": "检测到隐私信息:身份证号(11010119950308123X)和银行卡号(6222023847595898)属于敏感个人信息,需按规则脱敏。", - "solution": "对身份证号和银行卡号进行脱敏处理,保留前三位和后四位,中间用*代替。" - } - ] - }) + const [result, setResult] = useState<Result | null>(null) const values = Form.useWatch([], form); From 6d91f84e331a2136dcbea7f60728ed12b9f02b84 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Fri, 19 Dec 2025 19:08:08 +0800 Subject: [PATCH 26/92] style: UI update --- web/src/views/SelfReflectionEngine/index.tsx | 60 ++++++++++++++++---- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/web/src/views/SelfReflectionEngine/index.tsx b/web/src/views/SelfReflectionEngine/index.tsx index 449ad9bb..1beb877a 100644 --- a/web/src/views/SelfReflectionEngine/index.tsx +++ b/web/src/views/SelfReflectionEngine/index.tsx @@ -76,7 +76,36 @@ const SelfReflectionEngine: React.FC = () => { const { message } = App.useApp(); const [loading, setLoading] = useState(false) const [runLoading, setRunLoading] = useState(false) - const [result, setResult] = useState<Result | null>(null) + const [result, setResult] = useState<Result | null>({ + "baseline": "TIME", + "source_data": "我是 2023 年春天去北京工作的,后来基本一直都在北京上班,也没怎么换过城市。不过后来公司调整,2024 年上半年我被调到上海待了差不多半年,那段时间每天都是在上海办公室打卡。当时入职资料用的还是我之前的身份信息,身份证号是 11010119950308123X,银行卡是 6222023847595898,这些一直没变。对了,其实我 从 2023 年开始就一直在北京生活,从来没有长期离开过北京,上海那段更多算是远程配合", + "quality_assessments": [ + { + "score": 75, + "summary": "数据整体质量良好,实体关系清晰且时间戳完整。但存在少量语义冲突:关于用户是否长期在北京存在矛盾(调往上海半年 vs 从未长期离开)。部分描述如'基本一直'、'认为是远程'等表述模糊,影响精确性。无格式错误或空值问题。" + } + ], + "memory_verifies": [ + { + "has_privacy": true, + "privacy_types": [ + "身份证信息", + "银行信息" + ], + "summary": "检测到2类隐私信息:1个身份证号码(11010119950308123X)和1个银行卡号(6222023847595898),共2条记录包含敏感信息" + } + ], + "reflexion_data": [ + { + "reason": "检测到时间冲突:用户从2023年开始一直在北京生活(statement_id: e612a44da4db483993c350df7c97a1a1)且从未长期离开(statement_id: b3c787a2e33c49f7981accabbbb4538a),但另一条记录显示其在2024年上半年被调往上海近半年(statement_id: 64cde4230cb24a4da726e7db9e7aa616),存在时间重叠与事实矛盾。同时用户主观认为该段时间为远程配合(statement_id: 150af89d2c154e6eb41ff1a91e37f962),进一步加剧语义冲突。", + "solution": "保留‘被调往上海’这一客观行为记录的有效性,因有打卡记录支持;将‘从未长期离开北京’设为失效。对于‘基本一直在北京上班’等模糊描述,结合上下文更新描述以体现阶段性变动。所有隐私信息按规则脱敏。" + }, + { + "reason": "检测到两类隐私信息:身份证号码和银行卡号,均属于需脱敏处理的敏感数据。", + "solution": "对身份证号和银行卡号进行数字类隐私信息脱敏处理,保留前三位和后四位,中间用*代替。" + } + ] + }) const values = Form.useWatch([], form); @@ -127,15 +156,24 @@ const SelfReflectionEngine: React.FC = () => { return } setRunLoading(true) - pilotRunMemoryReflectionConfig({ - config_id: id, - dialogue_text: t('reflectionEngine.exampleText') + updateMemoryReflectionConfig({ + ...values, + config_id: id }) - .then((res) => { - setResult(res as Result) + .then(() => { + pilotRunMemoryReflectionConfig({ + config_id: id, + dialogue_text: t('reflectionEngine.exampleText') + }) + .then((res) => { + setResult(res as Result) + }) + .finally(() => { + setRunLoading(false) + }) }) .finally(() => { - setRunLoading(false) + setLoading(false) }) } @@ -253,7 +291,7 @@ const SelfReflectionEngine: React.FC = () => { <div className="rb:flex rb:gap-4 rb:justify-start rb:text-[#5B6167] rb:text-[14px] rb:leading-5 rb:mb-3" > - <div className="rb:whitespace-nowrap rb:w-20 rb:font-medium">{t(`reflectionEngine.baseline`)}</div> + <div className="rb:whitespace-nowrap rb:w-45 rb:font-medium">{t(`reflectionEngine.baseline`)}</div> <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> {result.baseline} </div> @@ -270,7 +308,7 @@ const SelfReflectionEngine: React.FC = () => { key={key} className="rb:flex rb:gap-4 rb:justify-start rb:text-[14px] rb:leading-5 rb:mb-3" > - <div className="rb:whitespace-nowrap rb:w-20 rb:font-medium">{t(`reflectionEngine.${key}`)}</div> + <div className="rb:whitespace-nowrap rb:w-45 rb:font-medium">{t(`reflectionEngine.${key}`)}</div> <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> {item[key as keyof ReflexionData]} </div> @@ -290,7 +328,7 @@ const SelfReflectionEngine: React.FC = () => { key={key} className="rb:flex rb:gap-4 rb:justify-start rb:text-[14px] rb:leading-5 rb:mb-3" > - <div className="rb:whitespace-nowrap rb:w-20 rb:font-medium">{t(`reflectionEngine.qualityAssessmentObj.${key}`)}</div> + <div className="rb:whitespace-nowrap rb:w-45 rb:font-medium">{t(`reflectionEngine.qualityAssessmentObj.${key}`)}</div> <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> {item[key as keyof QualityAssessment]} </div> @@ -309,7 +347,7 @@ const SelfReflectionEngine: React.FC = () => { key={key} className="rb:flex rb:gap-4 rb:justify-start rb:text-[14px] rb:leading-5 rb:mb-3" > - <div className="rb:whitespace-nowrap rb:w-20 rb:font-medium">{t(`reflectionEngine.privacyAuditObj.${key}`)}</div> + <div className="rb:whitespace-nowrap rb:w-45 rb:font-medium">{t(`reflectionEngine.privacyAuditObj.${key}`)}</div> <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> {key === 'has_privacy' ? <Tag color={item[key as keyof MemoryVerify] ? 'success' : 'error'}>{t(`reflectionEngine.privacyAuditObj.${item[key as keyof MemoryVerify]}`)}</Tag> From e1bccff79bfa27e1942c44b40dc16f01b804b6d0 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Fri, 19 Dec 2025 19:10:06 +0800 Subject: [PATCH 27/92] feat(web): remove mock data --- web/src/views/SelfReflectionEngine/index.tsx | 31 +------------------- 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/web/src/views/SelfReflectionEngine/index.tsx b/web/src/views/SelfReflectionEngine/index.tsx index 1beb877a..f7505b4b 100644 --- a/web/src/views/SelfReflectionEngine/index.tsx +++ b/web/src/views/SelfReflectionEngine/index.tsx @@ -76,36 +76,7 @@ const SelfReflectionEngine: React.FC = () => { const { message } = App.useApp(); const [loading, setLoading] = useState(false) const [runLoading, setRunLoading] = useState(false) - const [result, setResult] = useState<Result | null>({ - "baseline": "TIME", - "source_data": "我是 2023 年春天去北京工作的,后来基本一直都在北京上班,也没怎么换过城市。不过后来公司调整,2024 年上半年我被调到上海待了差不多半年,那段时间每天都是在上海办公室打卡。当时入职资料用的还是我之前的身份信息,身份证号是 11010119950308123X,银行卡是 6222023847595898,这些一直没变。对了,其实我 从 2023 年开始就一直在北京生活,从来没有长期离开过北京,上海那段更多算是远程配合", - "quality_assessments": [ - { - "score": 75, - "summary": "数据整体质量良好,实体关系清晰且时间戳完整。但存在少量语义冲突:关于用户是否长期在北京存在矛盾(调往上海半年 vs 从未长期离开)。部分描述如'基本一直'、'认为是远程'等表述模糊,影响精确性。无格式错误或空值问题。" - } - ], - "memory_verifies": [ - { - "has_privacy": true, - "privacy_types": [ - "身份证信息", - "银行信息" - ], - "summary": "检测到2类隐私信息:1个身份证号码(11010119950308123X)和1个银行卡号(6222023847595898),共2条记录包含敏感信息" - } - ], - "reflexion_data": [ - { - "reason": "检测到时间冲突:用户从2023年开始一直在北京生活(statement_id: e612a44da4db483993c350df7c97a1a1)且从未长期离开(statement_id: b3c787a2e33c49f7981accabbbb4538a),但另一条记录显示其在2024年上半年被调往上海近半年(statement_id: 64cde4230cb24a4da726e7db9e7aa616),存在时间重叠与事实矛盾。同时用户主观认为该段时间为远程配合(statement_id: 150af89d2c154e6eb41ff1a91e37f962),进一步加剧语义冲突。", - "solution": "保留‘被调往上海’这一客观行为记录的有效性,因有打卡记录支持;将‘从未长期离开北京’设为失效。对于‘基本一直在北京上班’等模糊描述,结合上下文更新描述以体现阶段性变动。所有隐私信息按规则脱敏。" - }, - { - "reason": "检测到两类隐私信息:身份证号码和银行卡号,均属于需脱敏处理的敏感数据。", - "solution": "对身份证号和银行卡号进行数字类隐私信息脱敏处理,保留前三位和后四位,中间用*代替。" - } - ] - }) + const [result, setResult] = useState<Result | null>(null) const values = Form.useWatch([], form); From ad2f47029d826d13bb98997c36d873875d8d3c9a Mon Sep 17 00:00:00 2001 From: yujiangping <yujiangping@taofen8.com> Date: Mon, 22 Dec 2025 10:10:07 +0800 Subject: [PATCH 28/92] feat(knowledgeBase): Refactor document list API and improve polling logic - Update getDocumentList API to accept kb_id as separate parameter instead of extracting from query object - Fix parameter name from auto_question to auto_questions in parser config - Add progress field initialization in document update params - Improve polling logic to handle both auto-return and manual stay scenarios with proper loading state management - Add console logging for debugging polling status and document processing - Reduce polling interval from 5000ms to 3000ms for faster status updates - Enhance cleanup logic with route change detection to prevent memory leaks - Add record parameter to progress render function for better data access - Refactor confirm dialog callbacks to properly manage loading state timing - Ensure loading indicator displays correctly when user chooses to stay on page --- web/src/api/knowledgeBase.ts | 4 +- .../[knowledgeBaseId]/CreateDataset.tsx | 101 +++++++++++------- .../[knowledgeBaseId]/DocumentDetails.tsx | 6 +- .../components/CreateFolderModal.tsx | 1 + .../components/RecallTestResult.tsx | 32 +++++- web/src/views/KnowledgeBase/index.tsx | 74 ++++++++++--- 6 files changed, 164 insertions(+), 54 deletions(-) diff --git a/web/src/api/knowledgeBase.ts b/web/src/api/knowledgeBase.ts index 60f374a2..3c1433a1 100644 --- a/web/src/api/knowledgeBase.ts +++ b/web/src/api/knowledgeBase.ts @@ -199,8 +199,8 @@ export const deleteFile = async (id: string) => { }; // 获取文档列表 -export const getDocumentList = async (query: PathQuery) => { - const response = await request.get(`${apiPrefix}/documents/${query.kb_id}/documents`, query); +export const getDocumentList = async (kb_id:string, query: PathQuery) => { + const response = await request.get(`${apiPrefix}/documents/${kb_id}/documents`, query); return response as KnowledgeBaseDocumentData[]; }; // 文档详情 diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx index d4a9084f..c1e42fc8 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx @@ -111,15 +111,17 @@ const CreateDataset = () => { // 从参数设置进入确认上传时的处理 if(current === 1 && nextStep === 2) { + // debugger // handlePreview(data[0],0) - if(parameterSettings === 'customSettings'){ + if(parameterSettings === 'customSettings' || processingMethod === 'qaExtract'){ rechunkFileIds.map((id) => { const params = { + progress: 0, parser_config: { layout_recognize:'DeepDOC', delimiter: delimiter, chunk_token_num: blockSize, - auto_question: processingMethod === 'directBlock' ? 0 : 1, + auto_questions: processingMethod === 'directBlock' ? 0 : 1, } } updateDocument(id, params) @@ -144,7 +146,6 @@ const CreateDataset = () => { }); return; } - // 显示确认弹框 confirm({ @@ -153,12 +154,18 @@ const CreateDataset = () => { okText: t('knowledgeBase.returnToList') || '返回列表页', cancelText: t('knowledgeBase.stayOnPage') || '停留在此页', onOk: () => { - // 用户选择返回列表页 + // 用户选择返回列表页 - 不显示 loading,直接跳转 startProcessing(true); }, onCancel: () => { - // 用户选择停留在当前页 - startProcessing(false); + // 用户选择停留在当前页 - 显示 loading 并开始轮询 + console.log('用户选择停留,开始显示 loading'); + setPollingLoading(true); + + // 延迟一点时间让用户看到 loading 效果,然后开始处理 + setTimeout(() => { + startProcessing(false); + }, 100); }, }); }; @@ -170,15 +177,12 @@ const CreateDataset = () => { parseDocument(id, {}); }); - // 开启 loading - setPollingLoading(true); - if (autoReturnToList) { - // 用户选择立即返回,直接跳转 + // 用户选择立即返回,直接跳转(不显示 loading) console.log('用户选择立即返回列表页'); handleBack(); } else { - // 用户选择停留,启动轮询查看进度 + // 用户选择停留,启动轮询查看进度(loading 已在 onCancel 中设置) console.log('用户选择停留查看进度'); // 立即执行一次轮询(启用自动返回) @@ -187,7 +191,7 @@ const CreateDataset = () => { // 然后每3秒执行一次(启用自动返回) pollingTimerRef.current = setInterval(() => { pollDocumentStatus(true); - }, 5000); + }, 3000); } }; const handleDelete = (record: AnyObject) => { @@ -222,7 +226,7 @@ const CreateDataset = () => { title: t('knowledgeBase.status'), dataIndex: 'progress', key: 'progress', - render: (value: number) => { + render: (value: number, record: any) => { return ( <span className="rb:text-xs rb:border rb:border-[#DFE4ED] rb:bg-[#FBFDFF] rb:rounded rb:items-center rb:text-[#212332] rb:py-1 rb:px-2"> <span className="rb:inline-block rb:w-[5px] rb:h-[5px] rb:mr-2 rb:rounded-full" style={{ backgroundColor: value === 1 ? '#369F21' : '#FF8A4C' }}></span> @@ -280,44 +284,59 @@ const CreateDataset = () => { // 轮询检查文档处理状态 // autoReturn: 是否在所有文档完成时自动返回列表页 const pollDocumentStatus = (autoReturn: boolean = false) => { + console.log('开始轮询文档状态,当前 pollingLoading:', pollingLoading); + if (!knowledgeBaseId || !parentId || rechunkFileIds.length === 0) { + console.log('轮询条件不满足,退出'); return; } - // 刷新 Table 组件的数据(仅在 confirmUpload 步骤) - if (current === 2) { - tableRef.current?.loadData(); - } - - // 同时获取文档列表检查是否全部完成 - getDocumentList({ - kb_id: knowledgeBaseId, - parent_id: parentId, + // 获取文档列表检查是否全部完成,并刷新表格数据 + getDocumentList(knowledgeBaseId, { document_ids: rechunkFileIds.join(','), }) .then((res: any) => { const documents = res.items || []; setData(documents); + // 只在 confirmUpload 步骤刷新表格数据 + if (current === 2) { + tableRef.current?.loadData(); + } + + console.log('documents', documents); // 检查是否所有文档的 progress 都为 1 const allCompleted = documents.every((doc: KnowledgeBaseDocumentData) => doc.progress === 1); - console.log('轮询状态:', documents.map((d: KnowledgeBaseDocumentData) => ({ name: d.file_name, progress: d.progress }))); + console.log('轮询状态:', allCompleted); - // 只有在 autoReturn 为 true 且所有文档完成时才自动返回 - if (allCompleted && autoReturn) { - // 所有文档处理完成,清除定时器和 loading + // 检查是否所有文档都完成了 + // debugger + if (allCompleted) { + // 清除定时器和 loading 状态 if (pollingTimerRef.current) { clearInterval(pollingTimerRef.current); pollingTimerRef.current = null; } - setPollingLoading(false); - // 延迟 2 秒后跳转,让用户看到完成状态 - console.log('所有文档处理完成,2秒后返回列表页'); + // 延迟清除 loading,让用户看到完成状态 setTimeout(() => { - handleBack(); - }, 2000); + setPollingLoading(false); + }, 1000); + + // 只有在 autoReturn 为 true 时才自动返回 + if (autoReturn) { + // 延迟 2 秒后跳转,让用户看到完成状态 + console.log('所有文档处理完成,2秒后返回列表页'); + setTimeout(() => { + handleBack(); + }, 2000); + } else { + console.log('所有文档处理完成,用户可手动操作'); + } + } else { + // 如果还有文档在处理中,确保 loading 状态保持 + console.log('还有文档在处理中,保持 loading 状态'); } }) .catch((error) => { @@ -349,9 +368,7 @@ const CreateDataset = () => { useEffect(() => { if (initialFileIds.length > 0 && initialStepKey !== 'selectFile' && knowledgeBaseId && parentId) { // 加载文档列表数据 - getDocumentList({ - kb_id: knowledgeBaseId, - parent_id: parentId, + getDocumentList(knowledgeBaseId,{ document_ids: initialFileIds.join(','), }) .then((res: any) => { @@ -364,7 +381,7 @@ const CreateDataset = () => { } }, []); - // 清理函数:组件卸载时清除定时器 + // 清理函数:组件卸载时清除定时器和 loading 状态 useEffect(() => { return () => { if (pollingTimerRef.current) { @@ -375,6 +392,18 @@ const CreateDataset = () => { }; }, []); + // 监听路由变化,确保在页面切换时清理状态 + useEffect(() => { + return () => { + // 页面卸载时清理状态 + if (pollingTimerRef.current) { + clearInterval(pollingTimerRef.current); + pollingTimerRef.current = null; + } + setPollingLoading(false); + }; + }, [location.pathname]); + return ( <> {contextHolder} @@ -553,7 +582,7 @@ const CreateDataset = () => { <Table ref={tableRef} apiUrl={`/documents/${knowledgeBaseId}/documents`} - apiParams={{ + apiParams={{ document_ids: rechunkFileIds.join(','), }} columns={columns} diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx index b96dff75..2127bec4 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/DocumentDetails.tsx @@ -4,7 +4,7 @@ * @Author: yujiangping * @Date: 2025-11-15 16:13:47 * @LastEditors: yujiangping - * @LastEditTime: 2025-12-12 20:02:05 + * @LastEditTime: 2025-12-19 20:19:59 */ import { useEffect, useState, useRef, type FC } from 'react'; import { useNavigate, useParams, useLocation } from 'react-router-dom'; @@ -47,6 +47,7 @@ const DocumentDetails: FC = () => { const [chunkLoading, setChunkLoading] = useState(false); const [keywords, setKeywords] = useState(''); const [fileUrl, setFileUrl] = useState(''); + const [parserMode, setParserMode] = useState(0); const insertModalRef = useRef<InsertModalRef>(null); const isManualRefreshRef = useRef(false); @@ -127,6 +128,7 @@ const DocumentDetails: FC = () => { setInfoItems(formatDocumentInfo(response)); const url = `${imagePath}/api/files/${response.file_id}` setFileUrl(url); + setParserMode(response?.parser_config?.auto_questions || 0) // ChunkList 会在 useEffect 中根据 document.progress 自动调用 } catch (error) { console.error('获取文档详情失败:', error); @@ -388,6 +390,7 @@ const DocumentDetails: FC = () => { {t('knowledgeBase.chunkList') || '分块列表'} </h2> <RecallTestResult + data={chunkList} showEmpty={false} hasMore={hasMore} @@ -396,6 +399,7 @@ const DocumentDetails: FC = () => { scrollableTarget="chunkScrollableDiv" editable={true} onItemClick={handleChunkClick} + parserMode={parserMode} /> </div> </div> diff --git a/web/src/views/KnowledgeBase/components/CreateFolderModal.tsx b/web/src/views/KnowledgeBase/components/CreateFolderModal.tsx index 906c1f77..578288d9 100644 --- a/web/src/views/KnowledgeBase/components/CreateFolderModal.tsx +++ b/web/src/views/KnowledgeBase/components/CreateFolderModal.tsx @@ -22,6 +22,7 @@ const CreateFolderModal = forwardRef<CreateFolderModalRef,CreateFolderModalRefPr }; const handleOpen = (folder?: FolderFormData | null) => { + debugger if (folder) { setFolder(folder); // 设置表单值 diff --git a/web/src/views/KnowledgeBase/components/RecallTestResult.tsx b/web/src/views/KnowledgeBase/components/RecallTestResult.tsx index 1475d790..70583249 100644 --- a/web/src/views/KnowledgeBase/components/RecallTestResult.tsx +++ b/web/src/views/KnowledgeBase/components/RecallTestResult.tsx @@ -24,6 +24,7 @@ interface RecallTestResultProps { scrollableTarget?: string; editable?: boolean; // 是否可编辑 onItemClick?: (item: RecallTestData, index: number) => void; // 点击项的回调 + parserMode?: number; // 解析模式,1 表示 QA 格式 } const RecallTestResult = ({ @@ -35,9 +36,31 @@ const RecallTestResult = ({ scrollableTarget, editable = false, onItemClick, + parserMode = 0, }: RecallTestResultProps) => { const { t } = useTranslation(); + // 解析 QA 格式内容 + const parseQAContent = (content: string) => { + if (!content || parserMode !== 1) return null; + + const qaRegex = /question:\s*(.*?)\s*answer:\s*(.*?)$/s; + const match = content.match(qaRegex); + + if (match) { + const question = match[1]?.trim() || ''; + const answer = match[2]?.trim() || ''; + return { question, answer }; + } + + return null; + }; + + // 格式化 QA 内容为显示格式 + const formatQAContent = (question: string, answer: string) => { + return `**问题:** ${question}\n\n**答案:** ${answer}`; + }; + const handleItemClick = (e: React.MouseEvent, item: RecallTestData, index: number) => { // 检查点击的是否是图片或图片相关元素 const target = e.target as HTMLElement; @@ -126,7 +149,14 @@ const RecallTestResult = ({ </div> <div className='rb:flex rb:text-left rb:px-4 rb:py-3 rb:bg-[#F0F3F8] rb:rounded-lg rb:mt-2'> <div className='rb:text-gray-800 rb:text-sm rb:whitespace-pre-wrap rb:break-words rb:w-full'> - <RbMarkdown content={item.page_content} showHtmlComments={true} /> + {(() => { + const qaContent = parseQAContent(item.page_content); + if (qaContent) { + const formattedContent = formatQAContent(qaContent.question, qaContent.answer); + return <RbMarkdown content={formattedContent} showHtmlComments={true} />; + } + return <RbMarkdown content={item.page_content} showHtmlComments={true} />; + })()} </div> </div> {item.metadata?.file_created_at && ( diff --git a/web/src/views/KnowledgeBase/index.tsx b/web/src/views/KnowledgeBase/index.tsx index ca438f66..caed669c 100644 --- a/web/src/views/KnowledgeBase/index.tsx +++ b/web/src/views/KnowledgeBase/index.tsx @@ -74,7 +74,8 @@ const KnowledgeBaseManagement: FC = () => { const items: NonNullable<MenuProps['items']> = []; // 当权限为 share 时,不显示编辑按钮 - if (item.permission_id !== 'share') { + const permissionId = (item.permission_id || '').toLowerCase(); + if (permissionId !== 'share') { items.push({ key: '1', label: t('knowledgeBase.edit'), @@ -131,7 +132,7 @@ const KnowledgeBaseManagement: FC = () => { }; // 处理创建 - const handleCreate = (type?: string) => { + const handleCreate = useCallback((type?: string) => { // 如果在文件夹内,使用 folderPath 的最后一项作为 parent_id // 这样更可靠,因为 folderPath 是直接管理的状态 const currentParentId = folderPath.length > 0 @@ -142,8 +143,17 @@ const KnowledgeBaseManagement: FC = () => { parent_id: currentParentId as string, } as KnowledgeBaseListItem : null; + console.log('handleCreate called:', { + type, + folderPath, + folderPathLength: folderPath.length, + queryParentId: query.parent_id, + currentParentId, + record + }); + modalRef?.current?.handleOpen(record, type) - } + }, [folderPath, query.parent_id]) // 动态生成 createItems const createItems: MenuProps['items'] = useMemo(() => { @@ -155,7 +165,7 @@ const KnowledgeBaseManagement: FC = () => { handleCreate(type); }, })); - }, [knowledgeBaseTypes, t]); + }, [knowledgeBaseTypes, t, handleCreate]); const typeToFieldKey = (type: string) => { const normalized = (type || '').toLowerCase(); switch (normalized) { @@ -180,7 +190,7 @@ const KnowledgeBaseManagement: FC = () => { key, label: t(`knowledgeBase.${key}`), children: key === 'permission_id' - ? (data[key] === 'Private' || data[key] === 'private' ? t('knowledgeBase.private') : t('knowledgeBase.share')) + ? ((data[key] || '').toLowerCase() === 'private' ? t('knowledgeBase.private') : t('knowledgeBase.share')) : String(data[key] || '-'), })) } @@ -283,7 +293,15 @@ const KnowledgeBaseManagement: FC = () => { const fetchData = async (pageNum: number = 1, isLoadMore: boolean = false) => { if (!modelTypes.length) return; if (loading) return; - console.log('fetchData called, pageNum:', pageNum, 'isLoadMore:', isLoadMore); + + console.log('fetchData called:', { + pageNum, + isLoadMore, + currentQuery: query, + currentFolderPath: folderPath, + folderPathLastId: folderPath.length > 0 ? folderPath[folderPath.length - 1].id : 'none' + }); + setLoading(true); try { const params = { @@ -293,6 +311,8 @@ const KnowledgeBaseManagement: FC = () => { orderby:'created_at', desc:true, } + + console.log('API params:', params); const res = await getKnowledgeBaseList(undefined, params); const response = res as KnowledgeBaseListResponse & { items?: KnowledgeBaseListItem[] }; console.log('API response:', response); @@ -373,10 +393,21 @@ const KnowledgeBaseManagement: FC = () => { }); }; // 处理跳转详情 - const handleToDetail = (knowledgeBase: KnowledgeBaseListItem) => { + const handleToDetail = useCallback((knowledgeBase: KnowledgeBaseListItem) => { + // 统一处理类型判断,忽略大小写 + const itemType = (knowledgeBase.type || '').toLowerCase(); + + console.log('handleToDetail called with:', { + id: knowledgeBase.id, + name: knowledgeBase.name, + type: itemType, + currentFolderPath: folderPath, + currentQuery: query + }); + // 如果是 Folder 类型,刷新当前页面,显示该文件夹下的知识库列表 - if (knowledgeBase.type === 'Folder' || knowledgeBase.type === 'folder') { - // 添加到文件夹路径 + if (itemType === 'folder') { + // 计算新的文件夹路径 const newFolderPath = [ ...folderPath, { @@ -384,15 +415,33 @@ const KnowledgeBaseManagement: FC = () => { name: knowledgeBase.name, }, ]; - setFolderPath(newFolderPath); + console.log('Folder clicked:', { + folderId: knowledgeBase.id, + folderName: knowledgeBase.name, + currentFolderPath: folderPath, + newFolderPath: newFolderPath + }); + + // 同步更新状态,保持与面包屑逻辑一致 + setFolderPath(newFolderPath); setQuery((prev) => ({ ...prev, parent_id: knowledgeBase.id, })); + return; } + + // 统一处理权限判断,忽略大小写 + const permissionId = (knowledgeBase.permission_id || '').toLowerCase(); + const isPrivate = permissionId === 'private'; + // 根据权限类型跳转到不同的详情页 + const targetPath = isPrivate + ? `/knowledge-base/${knowledgeBase.id}/private` + : `/knowledge-base/${knowledgeBase.id}/share`; + // 跳转时传递当前的文件夹路径信息 const navigationState = { fromKnowledgeBaseList: true, @@ -400,9 +449,6 @@ const KnowledgeBaseManagement: FC = () => { parentId: query.parent_id, timestamp: Date.now(), // 添加时间戳确保每次跳转状态都不同 }; - const targetPath = knowledgeBase.permission_id === 'Private' || knowledgeBase.permission_id === 'private' - ? `/knowledge-base/${knowledgeBase.id}/private` - : `/knowledge-base/${knowledgeBase.id}/share`; // 检查是否是相同路径跳转 const currentPath = location.pathname; @@ -417,7 +463,7 @@ const KnowledgeBaseManagement: FC = () => { // 不同路径,正常跳转 navigate(targetPath, { state: navigationState }); } - } + }, [folderPath, query, location.pathname, navigate]) // 更新面包屑 useEffect(() => { updateBreadcrumbs({ From 281aec23e379c733a737b5cfd5107460de4d0361 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Mon, 22 Dec 2025 10:46:19 +0800 Subject: [PATCH 29/92] feat(web): Add Workflow --- web/package.json | 8 +- web/src/api/application.ts | 17 +- web/src/assets/images/menu/apiKey.png | Bin 0 -> 1315 bytes web/src/assets/images/menu/apiKey_active.png | Bin 0 -> 1301 bytes .../{space_acitve.svg => space_active.svg} | 0 web/src/assets/images/menu/tool.png | Bin 0 -> 1783 bytes web/src/assets/images/menu/tool_active.png | Bin 0 -> 1775 bytes ...emory_acitve.svg => userMemory_active.svg} | 0 .../images/workflow/agent_arbitration.png | Bin 0 -> 835 bytes .../images/workflow/agent_collaboration.png | Bin 0 -> 1171 bytes .../images/workflow/agent_scheduling.png | Bin 0 -> 785 bytes web/src/assets/images/workflow/aggregator.png | Bin 0 -> 668 bytes web/src/assets/images/workflow/answer.png | Bin 0 -> 753 bytes web/src/assets/images/workflow/arrow.png | Bin 0 -> 775 bytes .../assets/images/workflow/classification.png | Bin 0 -> 849 bytes .../assets/images/workflow/code_execution.png | Bin 0 -> 684 bytes web/src/assets/images/workflow/condition.png | Bin 0 -> 343 bytes web/src/assets/images/workflow/empty.png | Bin 0 -> 76462 bytes web/src/assets/images/workflow/end.png | Bin 0 -> 792 bytes .../assets/images/workflow/http_request.png | Bin 0 -> 745 bytes web/src/assets/images/workflow/iteration.png | Bin 0 -> 612 bytes web/src/assets/images/workflow/llm.png | Bin 0 -> 591 bytes web/src/assets/images/workflow/loop.png | Bin 0 -> 815 bytes .../images/workflow/memory_enhancement.png | Bin 0 -> 810 bytes .../images/workflow/model_selection.png | Bin 0 -> 908 bytes .../assets/images/workflow/model_voting.png | Bin 0 -> 769 bytes .../assets/images/workflow/output_audit.png | Bin 0 -> 624 bytes web/src/assets/images/workflow/parallel.png | Bin 0 -> 979 bytes .../images/workflow/parameter_extraction.png | Bin 0 -> 699 bytes .../images/workflow/process_evolution.png | Bin 0 -> 516 bytes web/src/assets/images/workflow/rag.png | Bin 0 -> 741 bytes .../images/workflow/reasoning_control.png | Bin 0 -> 815 bytes .../images/workflow/robot-2-line@2x.png | Bin 0 -> 471 bytes .../images/workflow/self_optimization.png | Bin 0 -> 922 bytes .../images/workflow/self_reflection.png | Bin 0 -> 1562 bytes .../images/workflow/sensitive_detection.png | Bin 0 -> 803 bytes web/src/assets/images/workflow/start.png | Bin 0 -> 567 bytes .../assets/images/workflow/task_planning.png | Bin 0 -> 648 bytes .../images/workflow/template_rendering.png | Bin 0 -> 408 bytes web/src/assets/images/workflow/tools.png | Bin 0 -> 869 bytes web/src/components/Chat/ChatInput.tsx | 10 +- web/src/components/SiderMenu/index.tsx | 12 +- web/src/styles/index.css | 6 + web/src/views/ApplicationConfig/Cluster.tsx | 13 +- .../components/ConfigHeader.tsx | 48 +- web/src/views/ApplicationConfig/index.tsx | 19 +- web/src/views/ApplicationConfig/types.ts | 10 + .../Workflow/components/CanvasToolbar.tsx | 203 +++++ .../views/Workflow/components/Chat/Chat.tsx | 174 ++++ .../components/Chat/VariableConfigModal.tsx | 98 +++ .../views/Workflow/components/NodeLibrary.tsx | 48 ++ .../Workflow/components/Nodes/AddNode.tsx | 19 + .../components/Nodes/ConditionNode.tsx | 155 ++++ .../components/Nodes/GroupStartNode.tsx | 19 + .../components/Nodes/IterationNode.tsx | 98 +++ .../Workflow/components/Nodes/LoopNode.tsx | 98 +++ .../Workflow/components/Nodes/NormalNode.tsx | 31 + .../components/Properties/MessageEditor.tsx | 89 +++ .../Properties/VariableEditModal.tsx | 180 +++++ .../Workflow/components/Properties/index.tsx | 231 ++++++ web/src/views/Workflow/constant.ts | 339 ++++++++ .../views/Workflow/hooks/useWorkflowGraph.ts | 741 ++++++++++++++++++ web/src/views/Workflow/index.tsx | 110 +++ web/src/views/Workflow/types.ts | 95 +++ web/tsconfig.app.json | 3 +- 65 files changed, 2843 insertions(+), 31 deletions(-) create mode 100644 web/src/assets/images/menu/apiKey.png create mode 100644 web/src/assets/images/menu/apiKey_active.png rename web/src/assets/images/menu/{space_acitve.svg => space_active.svg} (100%) create mode 100644 web/src/assets/images/menu/tool.png create mode 100644 web/src/assets/images/menu/tool_active.png rename web/src/assets/images/menu/{userMemory_acitve.svg => userMemory_active.svg} (100%) create mode 100644 web/src/assets/images/workflow/agent_arbitration.png create mode 100644 web/src/assets/images/workflow/agent_collaboration.png create mode 100644 web/src/assets/images/workflow/agent_scheduling.png create mode 100644 web/src/assets/images/workflow/aggregator.png create mode 100644 web/src/assets/images/workflow/answer.png create mode 100644 web/src/assets/images/workflow/arrow.png create mode 100644 web/src/assets/images/workflow/classification.png create mode 100644 web/src/assets/images/workflow/code_execution.png create mode 100644 web/src/assets/images/workflow/condition.png create mode 100644 web/src/assets/images/workflow/empty.png create mode 100644 web/src/assets/images/workflow/end.png create mode 100644 web/src/assets/images/workflow/http_request.png create mode 100644 web/src/assets/images/workflow/iteration.png create mode 100644 web/src/assets/images/workflow/llm.png create mode 100644 web/src/assets/images/workflow/loop.png create mode 100644 web/src/assets/images/workflow/memory_enhancement.png create mode 100644 web/src/assets/images/workflow/model_selection.png create mode 100644 web/src/assets/images/workflow/model_voting.png create mode 100644 web/src/assets/images/workflow/output_audit.png create mode 100644 web/src/assets/images/workflow/parallel.png create mode 100644 web/src/assets/images/workflow/parameter_extraction.png create mode 100644 web/src/assets/images/workflow/process_evolution.png create mode 100644 web/src/assets/images/workflow/rag.png create mode 100644 web/src/assets/images/workflow/reasoning_control.png create mode 100644 web/src/assets/images/workflow/robot-2-line@2x.png create mode 100644 web/src/assets/images/workflow/self_optimization.png create mode 100644 web/src/assets/images/workflow/self_reflection.png create mode 100644 web/src/assets/images/workflow/sensitive_detection.png create mode 100644 web/src/assets/images/workflow/start.png create mode 100644 web/src/assets/images/workflow/task_planning.png create mode 100644 web/src/assets/images/workflow/template_rendering.png create mode 100644 web/src/assets/images/workflow/tools.png create mode 100644 web/src/views/Workflow/components/CanvasToolbar.tsx create mode 100644 web/src/views/Workflow/components/Chat/Chat.tsx create mode 100644 web/src/views/Workflow/components/Chat/VariableConfigModal.tsx create mode 100644 web/src/views/Workflow/components/NodeLibrary.tsx create mode 100644 web/src/views/Workflow/components/Nodes/AddNode.tsx create mode 100644 web/src/views/Workflow/components/Nodes/ConditionNode.tsx create mode 100644 web/src/views/Workflow/components/Nodes/GroupStartNode.tsx create mode 100644 web/src/views/Workflow/components/Nodes/IterationNode.tsx create mode 100644 web/src/views/Workflow/components/Nodes/LoopNode.tsx create mode 100644 web/src/views/Workflow/components/Nodes/NormalNode.tsx create mode 100644 web/src/views/Workflow/components/Properties/MessageEditor.tsx create mode 100644 web/src/views/Workflow/components/Properties/VariableEditModal.tsx create mode 100644 web/src/views/Workflow/components/Properties/index.tsx create mode 100644 web/src/views/Workflow/constant.ts create mode 100644 web/src/views/Workflow/hooks/useWorkflowGraph.ts create mode 100644 web/src/views/Workflow/index.tsx create mode 100644 web/src/views/Workflow/types.ts diff --git a/web/package.json b/web/package.json index d2c254ec..d6642ac8 100644 --- a/web/package.json +++ b/web/package.json @@ -10,10 +10,14 @@ "preview": "vite preview" }, "dependencies": { + "@antv/layout": "^1.2.14-beta.8", + "@antv/x6": "^3.0.1", + "@antv/x6-react-shape": "^3.0.1", "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", + "@lexical/react": "^0.39.0", "antd": "^5.27.4", "axios": "^1.12.2", "clsx": "^2.1.1", @@ -23,6 +27,8 @@ "echarts": "^5.6.0", "echarts-for-react": "^3.0.2", "i18next": "^25.6.0", + "js-yaml": "^4.1.1", + "lexical": "^0.39.0", "mermaid": "^11.12.1", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -31,7 +37,6 @@ "react-markdown": "^10.1.0", "react-router-dom": "^6.22.0", "react-syntax-highlighter": "^16.1.0", - "reactflow": "^11.11.4", "rehype-katex": "^7.0.1", "rehype-raw": "^7.0.0", "remark-breaks": "^4.0.0", @@ -46,6 +51,7 @@ "@tailwindcss/typography": "^0.5.19", "@tailwindcss/vite": "^4.1.14", "@types/crypto-js": "^4.2.2", + "@types/js-yaml": "^4.0.9", "@types/node": "^24.6.0", "@types/react": "^18.2.0", "@types/react-dom": "^18.2.0", diff --git a/web/src/api/application.ts b/web/src/api/application.ts index 72521d92..69d27d44 100644 --- a/web/src/api/application.ts +++ b/web/src/api/application.ts @@ -1,8 +1,9 @@ import { request } from '@/utils/request' -import type { Application } from '@/views/ApplicationManagement/types' +import type { ApplicationModalData } from '@/views/ApplicationManagement/types' import type { Config } from '@/views/ApplicationConfig/types' import { handleSSE, type SSEMessage } from '@/utils/stream' import type { QueryParams } from '@/views/Conversation/types' +import type { WorkflowConfig } from '@/views/Workflow/types' // 应用列表 export const getApplicationListUrl = '/apps' @@ -13,20 +14,24 @@ export const getApplicationList = (data: Record<string, unknown>) => { export const getApplicationConfig = (id: string) => { return request.get(`/apps/${id}/config`) } -// 获取集群应配置 +// 获取集群应用配置 export const getMultiAgentConfig = (id: string) => { return request.get(`/apps/${id}/multi-agent`) } +// 获取 workflow应用配置 +export const getWorkflowConfig = (id: string) => { + return request.get(`/apps/${id}/workflow`) +} // 应用详情 export const getApplication = (id: string) => { return request.get(`/apps/${id}`) } // 更新应用 -export const updateApplication = (id: string, values: Application) => { +export const updateApplication = (id: string, values: ApplicationModalData) => { return request.put(`/apps/${id}`, values) } // 创建应用 -export const addApplication = (values: Application) => { +export const addApplication = (values: ApplicationModalData) => { return request.post('/apps', values) } // 保存Agent配置 @@ -37,6 +42,10 @@ export const saveAgentConfig = (app_id: string, values: Config) => { export const saveMultiAgentConfig = (app_id: string, values: Config) => { return request.put(`/apps/${app_id}/multi-agent`, values) } +// 保存workflow配置 +export const saveWorkflowConfig = (app_id: string, values: WorkflowConfig) => { + return request.put(`/apps/${app_id}/workflow`, values) +} // 模型比对试运行 export const runCompare = (app_id: string, values: Record<string, unknown>, onMessage?: (data: SSEMessage[]) => void) => { return handleSSE(`/apps/${app_id}/draft/run/compare`, values, onMessage) diff --git a/web/src/assets/images/menu/apiKey.png b/web/src/assets/images/menu/apiKey.png new file mode 100644 index 0000000000000000000000000000000000000000..53d19428abeb09d284b710c8af9325253ed14c30 GIT binary patch literal 1315 zcmV+;1>E|HP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp) z=>Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91AfN*P1ONa40RR91AOHXW0IY^$^8f$@jY&j7R9Fe^S6^sbRTw|tNt$#x zK^+6vp&i1eGEsz~;82|C)0~15+0t5*)Fx?*Z~mQgMxDAMPGQg`l_oJwf+M&wbw%{S zfxd`}3O=Y~4<fCgvjZ(gZ<2HTott~y>Ag2=V;}Xx&H4WPzCY(X=Y02svH$u*|E2(u zczk_`h2xCLgd|2JS&=tsdS)j3bGQDwN+3F%x{U-&Bgp-DL#|*A@W)6}wp`4fa_Ks< z%O((u#V)ZZGz1_5)3uJL7Wi2qSr+qeF_LLiVHb1(NB=GOtgv{gT0L^EV{|AwCJ-G? z-^2tQGqxMJHEkzyUP?YKh`;exVe&`Q@z79uqX@DQDdoeEZ*+8ZCfQL=GCNb4`qad0 z+LJ&umb#A<+b0>j(E&*~`4D_=e$$3`PGvGpZR|HjB9TD&qDyy4Mx&VCUBK8e@be`q zcA#3!9W(7b2@J$jbpU$to<-n7Q_9@YH>b{+MuV}@TN#PRq-5KaoQQqSB!8t`Jo2%L zizY^|BH2n2<8jPlJ#>Fo3OT2mZKPiUm@H$~;zGDqt66Q>`QO1<a<3#h0EydHkd)7q zi&HP1N4F_dB@|kF*<Xr70!!?;8?1T1;OZ1O!5f(Ulhh;o)T?ONHKBXKu8wx%jDEf} zB&dm%j9josQ65Z`?Z;Y97&a5wJ8CHos-=N^$x;|N581H-9wY>M&3Q<c+<Gn37`MI? z-&F#goUBIPRRZ>IM>Jv4kUOZBX^dOniSKF;sH288-iaX3t2NhUSHYD`<z{0#Me~t& zRe|<7r~U8~M8JcxLG$WWv@Nrb;nH5<6LX2Es|1u~rI3A*B)=Vp`CY@)drIcl0}PBW z>6d^|$Ye6v<7)w-szkYvy9cC=-Q2(7UUwHXZ6jl2YaQOx*gOf~^Zu&>*IWE*)5&V+ z-g<MZWAC{ycoIO*{zidCOI*L2pr&n$=mv-X!jvo8dkRRNWRiBEtqwz9bsM;NyRV=A z;incpVzvr`SuD>^1E+3GkF<Gt+>qO(rvg@QFbB<9IJzU6NbYbOEXSi0+8;BGLt+nr zz7GD*%=PzGv|Nvnd!K=L`f)T~)$31N%-UWn6n^od7=!Z`<Q$tYkjZ514Qb-`#FE!= zqE8@Ohl<9l`E1eDE80^5CA1dT9LAt-Fq?Z=Xx7-pO1+{dIy~Nw;2!|I4!5MYw_JI7 z$<NR?fm-dgy6BO2<Hq|vO0+FhZ+$ixAGyWt0J@X76}<17Jw+3#B#GwNz+Zv)qjMLB z2V9tcT=_16*6xm_HwC#kAtk93fg6>aZ1C2zwdv^vjWNdu<H?%^<A<<(cCu>b)Ceak zmBYW8IFr6$0t%=a(xS!o64BFORdZTEBG1kD_f6{iVf*SOUWQI>IQ7h7CyrMOxf5-+ z^Y5|=Xwy9pjcnyS@H%F9rz88$PD+aHxPXpBrv4}3J}D1{sX39)=YQ9>7aCWbfOdit zg1sSM#o6AXWf<`lWTk+heWg-%&X6xlcAbFosFvjqi^i}?p91?8zJ^bf^EtKY{(riz Zz~B0&oN&^C@jw6o002ovPDHLkV1m}XV_5(I literal 0 HcmV?d00001 diff --git a/web/src/assets/images/menu/apiKey_active.png b/web/src/assets/images/menu/apiKey_active.png new file mode 100644 index 0000000000000000000000000000000000000000..4f8d1cfa7f672ae7f61e1db5160214851b273372 GIT binary patch literal 1301 zcmV+w1?u{VP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp) z=>Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91AfN*P1ONa40RR91AOHXW0IY^$^8f$@e@R3^R9Fe^R$FLXMHrqrXS16Y zm160OwdvXHCMqkYyBifOiWPlo`=Tg<P)NN+i*MFTZ=%*q5Q`v`1Syt)f)7@_1<?ls zRiw1L+o}Q6?q-*o_Cb52Vw2tMncwd}IcJ%iJ*S&Bk2)|r|K<BH=bwLOM~MIWkpHFt z$z*y}o#X(Fw+bOK#6d}O2TG-%|7h1=TM5K_()W-u2Bn~f5Gd*kHV6I?Nn^NDJT~sr zg|aOZu&i|}glTR;&_Q^)#r0$h5@S*r!^%*$L1K`E*bJTN=%x6LlpI#|+UV)izg%=} z0+-MP;_?1F$W()p#G|lW=31W>f({rW@<FL|^mpCkjlF%Vqsn{|i9La2R=c_x1o%W5 za=3CTcSOf~bW;M|-I)hTid_JtT@b<PcL0ubbzS$x`1p9;GY(!KHm$_eW=Zsnkm3Pg zych+1%-*S~{2|@WQ#NGrL}ms|C+0cK4^1gYip5;10RRz?XYPjE?U?<JoWwCC`A)f< zKdj@rdT;NJ*!I(?$N=Q4FlWo9yjM*J8k7L=LM-pB#wI2vY7R>Ki6=8V5Nt0*ep>~} z?s75zrUrM&R4Ns{G8?Nhg9H}X8Gf+G2L{I}aD&eg(Mzf>Z{W!^?CQ|H?o`Kf;;uoy zJV?YN7PZ>)d3+_dm-bYq3PYOBkky^$8{uu}w?n>QD>Pga8CroRBn#X<C)*hH>l-q! zFZ_TIzP$uOoGeA$UIN_h7}8W*{6QNs7vtB5@$K~hjvBUMBlh|=-gB?)9GqncqWCz5 z1q+h5RRQ;$?}4KTH=Gfnvpk*VgAB>-_TL3TL3LSM39uo~@f-Ngd-0`THXM=oie*7} zKm!v(EVvXHgPYLCVqCvMMsv9w|HFk24~wMuPe_FUaS>gEi|8-tYrw{ITu=qhGvLxC zd6N!Y3jKGjGc|87o8Aje37{muG8mW5ZA%HN+e$@!E}zroOgEhZ67p+=-=HKt4*kb| z10U~fp}Q513V)qrl~Q4&hGWcg%;QhyGfnQ0O%+()IXeQ)IauAdHj&-nH)zH4O|4_B zMCK9jw?bI5)?E9Mu4CHy0>2POFF?U}{V7w@`eL#0rys+7t0uIp?9I}o9{^p61O_Ul z{6V(UM^gn@S+B<4N4@w3(_@ny<1W^X7DLD5>9q*{EwC%`nV%x~XpmiC0@Kq!&2&WM zCKTu-jQX!sV@DH-b$2y6Ac1}n-(c!TP@*zV2}7QMd<`o3y(um~=EH!UAAwuoDe)k+ zq-lH(o=*e^**{l}y@CWUco==Pda`#4Mf>1%K3ROZDLS?mi$^Z&IGw&~0u0P%vmNIz z(hj`+cY^Iek6j=#UPVLg_uhy6^fGPxE$F%7xUtSCskT*$$2s|{j+O~{*2!dF$|mzY z@b|m2NxV#U;vKdg$!&uyiplTEebLCWp~=Y~`Q~dm7M+0S39sf&B;~s})xDk!tAeA^ znrZKvK6&DdCT~f$odA2B-xl$#l<H*^{5bag#d5j8P51w3y8{0JFD!%3ue~r?00000 LNkvXXu0mjf*~n5) literal 0 HcmV?d00001 diff --git a/web/src/assets/images/menu/space_acitve.svg b/web/src/assets/images/menu/space_active.svg similarity index 100% rename from web/src/assets/images/menu/space_acitve.svg rename to web/src/assets/images/menu/space_active.svg diff --git a/web/src/assets/images/menu/tool.png b/web/src/assets/images/menu/tool.png new file mode 100644 index 0000000000000000000000000000000000000000..669238e8394985c9f8ea17398b4ec1ba5bcba64c GIT binary patch literal 1783 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 Z_y>g6VPxWgAE*ET002ovPDHLkV1h92JI(+A literal 0 HcmV?d00001 diff --git a/web/src/assets/images/menu/tool_active.png b/web/src/assets/images/menu/tool_active.png new file mode 100644 index 0000000000000000000000000000000000000000..252cd702f3b49637dce11e76dc0f4c48f22b84f9 GIT binary patch literal 1775 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 Ru|xm>002ovPDHLkV1kW}Fe?B6 literal 0 HcmV?d00001 diff --git a/web/src/assets/images/menu/userMemory_acitve.svg b/web/src/assets/images/menu/userMemory_active.svg similarity index 100% rename from web/src/assets/images/menu/userMemory_acitve.svg rename to web/src/assets/images/menu/userMemory_active.svg diff --git a/web/src/assets/images/workflow/agent_arbitration.png b/web/src/assets/images/workflow/agent_arbitration.png new file mode 100644 index 0000000000000000000000000000000000000000..d555e3e22436cdcf949eac757bf1d5ad6c16d623 GIT binary patch literal 835 zcmXYueN55`9L9g>Ds4K~vX?WRroG@xt~=cobDY_rB!vvkTXCh<EtcM#<#Fq-5;cp+ z%t#4~X-;#N5pdSbJoPZi;EWa+<y$A#oth>ED47ON*xEkd=h^4q=POKNZTDX6x0oOZ zZ$><g?P~J;dAPgsub}uef*^$^C8p3_3Ly(Z280PXmxyBKd<wrXuZi>e6()*VC`m%e zE?i)vG#RBS5dDa<Jt*fuybqW6Ly`tbIwTpWH~{G(NV%xW#I;{gosBvk8cyIAAF=}6 zE`a<L6h-(`fV(BQUyc?rS}V|Y6>U=dT?y4SbX23W7V7Khx`9VGp_SnuIl2|-R^qV| zx;uD!4~7=>w8Geq7ai#BM1L0sG#J#vq{pxx|Mz0FA7g_UAHu{i%p<Uj!!iNu1Z;0% zo5YkE)9+!oVrB|6)A(q|><7%wVD2M6&B8GUrvpwW-~wl*;cC}d-oLV0$%LOjD=S;t z)MvGQavX6oJzZ<IGH7uro4ZTI$2p`p-!6f=CUjqUWN=GxSW8-xf%$<<x8%V`|5*8( z*WrI-N8a{1sPD{Cxli_N-P;)R(-}dSb!DWWQqxFjoAUX+^84adM|(&|eXb0?_XxNl z8g3ej^$$5+uVX?i<=2;GYP9x;x7`1jRO^qg7;761iljcJdxa*bpWi2z9PoT2io2d0 zbEYQbO|+0lbry~o*Dh7P$TIbDsbbX{n}#!V?1@2_XHti=hhkSR_1ZMfIW{#-N^Y*@ zK49ms*c`BdaXBF8m3LM&IfBysOr|qb{M<*ncceQtL)+oTB8xXLa~jSsTVAx*Jw&%R zzwT0<r`fcPmaSDK_*)YjqdV3|6l)?z^Miii()>D4x#gv|^DGxOD$ni+=cpuZ%P;zV zTlgKH_l?ND+SfN{nUT!5QSFrG(z&37+TF5-fiik+vqVwz-|K2cQD&Z^cS{pD@R5PH ze<OvT73iQ;8G8<%JQu7K2?eqmkB3pK3fhfP$_JsAv4Sdj>Po_INA6^51<`H}(-~jN z7o~RklPCMB#Jc*Jt0@cf?eY3RcK^Yh{EOqIha4FS+uY0ob$EH~K&I)0>%jzr&Z5b; HrWbw&by?e< literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/agent_collaboration.png b/web/src/assets/images/workflow/agent_collaboration.png new file mode 100644 index 0000000000000000000000000000000000000000..7a92aecf70f1ff416fac80f9338c6a35c5e637c2 GIT binary patch literal 1171 zcmXZae>~K890%}ksPM>I>&KR?d2DUd+Gc1Tttm}TtaG~%kvn&k)a4%8T$F7t5!RT} zDiqbj&~<mXbMD-ca~zkSF+%xq>vvs_L+OXS_O<qTJU_3``~CU*l}@K^v9Y$bCJ4gD z$J^77d>v-5r8$`@d+#uUFtedk11RK5D~3-Y$fOp-msB!~_Ful4|If>_pR~*Pfg}L^ zGUx(qBVB=?0RBR37a~xIAQ5(m5iCYXDMCxZC<C($ta7j=2$vv&B*iW%c1saifk+wl z$PgvN-b(DN1V@hjm57!jS^=&C2dZ#Di5Mk*QXy6a9;q4!YY<n1_-e%0;P6!(u0=vE zekQ5$OD%p?BT)^09gdJRNYdb_2FdkEX+SDTi!?3LwfL<O8BNI0A+rgYI{cwSRx?gC z<K#7*Y{uC(<h0>j2hO+Sd<XJL*HLgC7dvsO6NP`Hs0YQ}C?WOW$_)s6QQC{LK1li@ zy@`sOPz*pZh^hfp4MH`9t9sN9L#>DUA82l)UJvaZG~Pke9kkv@JLw_19-;d&x((<t zpx1yt1Nxuf)(CDHF))GwBL+t?G>Ty(hRGa*ehl}<ac=_m$MIkS4<_+&0uLwgXc8mO zV4T9}6vm#z^c)i}F!>TsU*g#-OufSMX}p-m%h#AD&EWM6W=NPlrJ*t=SqPh0Kbk*b zYe(a7^D6ttC#GM=%=lW7jdAet{4QW!O9YEge6sA|TVFEQs<n0Png;%Y_xcrwVhFCQ zSMvHu8q<xRy}T&%&(wDv_3V_~Et}q_f80m)qA`>Bi|^80nI94>z6w>OZ_~9ksFOB- z?^r5p4O`H@o6Sm<Qljgfr4r}ZI=eH$h8x12#*T&AyY}e$PTRZAh|QBIr|mNXMwOLW zPrlwNVoU56l*MO@gXM)6?cLpXe$e1@t~MY$s63Ie*3ES}OQ@5zm{aua^a5Gq)>gLB zHcVj|%I;K#Z%hudkoJnA3Z&emc}1FhUb-$n@H1vL_mFgvW0A(lvvR2Wh`U%XR3E3X z_vI`M@ou&<h5M(?ySsQraoiGH)^^?Kso)bA=CL_zMU0x*d&)-}`<5ubusAm5x#n$u z$^OA<R_}$=JeS{{mgYK!_~*FAFpgVfMa$#M=j#Tn41P{akCo<q-odF3U#Vkc@~R~E z<t55>)RZ}#J$Y7M!W>b?V4P*jdg%?{)nR4gfU{X1%&EPcUXdVZ^J$so)5c|)xie1r z&JK;Mga++Oy;;;Vt;kS+iN4{lO8F}4JHhNB<vxW+{E>)Z6}K&ycSUe&(PQd;;qjxN zhVBTwo?F5FQJC0ulK0K+P5A<OLD;6|ZXUySOh~kZUNc0Rxy(uIlV~q^S6EOU+~h?E zrnSy(5$_!|=>z=xN308}->OszE#arKBx^e75}g!lQ_7M~?Ml<!)h3FIDP@CG&wL_5 Vpt5JVo9W0h5k3@}r`Us)^e;NY!=?ZL literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/agent_scheduling.png b/web/src/assets/images/workflow/agent_scheduling.png new file mode 100644 index 0000000000000000000000000000000000000000..97028422933dbd14476fb49b9474192e17e92d26 GIT binary patch literal 785 zcmV+s1Md8ZP)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0003*P)t-s0000x zogFuuBsicUH=rRkpddD&Avc~PHlHCjpCLA&AvT{OHlHCjpCLD&A~>KUIG`jsp(Hz@ zCOo1iJfbK)qA5V6EJLL)MW!-Fr!q&UGfJp8N~t(YsX0-sKUc3tS+Gc5u}ojHPGPiB zWVKUewpC`fR%f<XZMj}<x?gX)U~sx&a=c@BziNBHZF|6Of5LKx#d?azeT~V2j>&_P z%ZHcEjGWMtozRn?(UqUkmY~s=q0*P8)Sai*ov78Gs@9>g+NrnQu(;i^x!tn5-m<#h zv%ulG!s5Kc;=RP<zRBgo%;(3==f}_J%FyV`)9TLF>(bcm)Y<LT+U?cb?$_Mz*xm2i z-|*Yt@Z9C|;^*_^>h<UB_UiBV?(+HZ^!oGl`t<hu_4oVs`TY3#{Q3O-{Qds?{r>&_ z{{8;{{{R2~d)9K>0000DbW%=J02&-lYi^si+4A%J{c-+H2><{AZ%IT!R5;6xl~-57 zKoCY32&AzfiX9a@C}Quum)Ltj1sj_0|G&FIIV9Ntdml2%oO>pFcCr&f{_sn(qEQ!` zB1?W^#~0FR74(p=;ssP%12s_gf?-;daPYrg9gmr%nm(1*MYYx$q5_22zUU&N?k5rz zLL#zPdOkPi%E(0Fwa5lgoN(q8!u5?tH}MUalg@4u&Wmm1{TN%oj3aFm6PZkcg|>&n z&@RTO%>9U`*s%x3PCKPteUyoGq|vit^F8thhk4w^ttU%#Q5F|*)ydv|gM~WcB?hc8 zhzpz8>LC`;VudDrR>bby950?DUD`vK6){`HGAGXBG3gd*_6zH7vEdBGTf;B_b}^n| z-5bXB4_4j#7+?8-7f*a=V#!o04Ku|!!IBk5Pw_U)i=_|8zQ*_wUi+zlIE|NHDk4VL zdZ>`-Y@sG5YObSDRaCqW7mqA{T!jaK@JJCKQo>_Te2|KdX7OP!^85G&nj(g5|7ZH2 P00000NkvXXu0mjfLMD}m literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/aggregator.png b/web/src/assets/images/workflow/aggregator.png new file mode 100644 index 0000000000000000000000000000000000000000..6253733ac5157045736f45d05bd50812b2dba6af GIT binary patch literal 668 zcmXw$dn^<H9LJ9%v99!7bnT?tGFBv<Gsf-2iKC0^a-Ioc$KklGv7@}E>D*0;PSQM< zN49nyr5s%}VyRT}ew{FnWJ=-NwPySMKA-P?|NZvO@nN}<42%s31Okca&R}bN?B8xB zYWUp5JxHS=A5ULbjd9Tm{&wJ=LV#wh5ooiS|6ev4Xp10QgxDjLh6rawF~DOY)&sF; z5a$WL7ZSW7VB;DG8R5u@fjANQ0!We}6{0vDvKuJLKuIR<XQ4D36=GE8qe_D6+o-t% zMLC)uqpblQO?an5&uhGI$A>rg+=Y=Z82yUz0Za^HVhEE%m>R+KIHo5stH#_n%+Fw9 z7EAM3{*GTO_`QlhtJqivP*|^*sritU$Yz}*7?WAiyyB;QOF!1u`5RvP1cFvDli}h^ z?W`?mk8gE0WMq+xEtFwWa&}uAHN;u90m@QKg&|!@9#F_q%4-Mj@^aQX=14lP>dna8 zgoB|4os<?M*R?w0l>TTsy~J@UcdV@JW%EM7sHn<~q1xN(m%%k1%c7_5OlA;I4~#jQ zRhSnnGkeUn{EznbOZo#l&Tn^Lj64{9yzy`{*Y>j80T=rj|Eu)8+%Uc;%foGOPp7HF zkq8@+PLy?gp*-f2vNe5{w@b;>GwBORI2)(EJ0VqFTRAyw?@bk5kqq||FUTYo4kCe5 zGhdo!W!aUM_BNApqQ*f)S{a|y+ix!68VQ?nfA+;~(F#`PhuowRM7gC*qGjX;rHV%T z)S%#2q^M5{oL)RCsq~CbsunJ)?giNu?JKJvc_!7dlxe#sb(3_(Pi}F#Y2h<1a?S&} zg5Jr~l{bD&^3xO1*vp5?^BhyeGY>hGm7?MH9eF#1KGzlMUQG!ErYnn4M-NW_3q@OD A#sB~S literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/answer.png b/web/src/assets/images/workflow/answer.png new file mode 100644 index 0000000000000000000000000000000000000000..57f9c94de44927ccdf2b4239fb724ca6b403b447 GIT binary patch literal 753 zcmXYuYfKUV6opadG|SeKO=o3kPH8<f?X{eh4wg(HLQPywnKKG0wULEum7}cT6Q8AM z`7YOT7Lhtl7^#(-=Cm|l=`yBK8k!j>oS?OR_k26MzwWMt#XRm{?_y6N5FBX16t>x9 z%h(ak*|IG-#w<OH9!51A5+)=xNJ5ZKM+U=^l7Cn#-BSO<uxv9~kcL4Tj@$_3MWQeY zMbWs+#l2XRoPmr7*;$nF@!&iv5>X{Y^(E9^#zPV6Z$h39c?J|&Xv{@(0b1^&wHR%s zP?kY;AMMrXs6|&j`V{DILVq(psxYL+@GA_rW26(~-I(aX=U#jnz}I2SjACXCv*XZC zLOX@IY0PP$o5g|_OF!}F7xcfOUxr~BD|)ONU|fO82$Kmg1C5%|Za&`O5}O%HaM{ch zB*<QTT3B2)UNkY*5C~Q!G)iFDq3*0gevJ6ohE81&X^7G-58WO*us&m*f<B<$sMDLa zdbTDd2QH^PUFGTJ{{H@cc51eX%Sq4MLaj-9@BMy3;;WPHG8~B77WA9Ekt3{d{`8o0 zPBCHC>**vgxKEe63y)IOZvELAJ;bi-ZcPFCbu%}0qVfpe(ZxVFx@=ZM+R2dd4GfNy z{5VcEI4G_pg}u9VvND=xotzlH_Q}}D8wEGKZj|(BiFc}O;z>f}V96$*3*~LsQV(Z7 zUpq_@93=1F7wO}-U)aL!E#)~kSZ8I)Z`%{Uu_9S%y{SYJry<pfm|f9OF5XKtP2ID} z-!p0FB%E*2*A&mkyPj4~b-Ip{z2EtcxZbJTt?6?1bh^6UDW)mS>&#@PRAg(6bwByN z%5mB5P>QN5fOl0DXZ`D0bi}!NgYOLwm+joaV3AjcW4yqdoxs<4%z5p}sZV(6IJCpY zvG22rt~_$0xkwxuHGi3Ujjz1l@wGtv);M1GBW7vo%WFkc^CrTTkf}uW*o7Qr?m{Ea d#OqsJ`D3f~7YRC!$A2)tk3gd`DfK~I@n4uTrTPE> literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/arrow.png b/web/src/assets/images/workflow/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..67ce7b48efc0c619885e4b72f6fccc694c529013 GIT binary patch literal 775 zcmeAS@N?(olHy`uVBq!ia0vp^8bBPt!3-p00*`-YU|=)~@Ck7RavK^NX3m`1uxeFb z->U9KJEu-v)jxlI-<(x5XKtQ4b?fx$o2Sm(FnRW-Y4f&Bnz?@BjLnl~Y?wG_%e2`W zr_NeGarXMDvo=kcxnatT%~NM?nlfYK#F-m`il@xpIC<8FNi#Q2nYCduP{FK?lV)$4 zJQHXRP<F$lSsQ^`fFww2Hb}uFpwuj&0<e0J8jzVl5@-lW9H<>=EKog20Za`@J5VJ^ z1gs3q1z7}QOad7TW`NX#ES&;22P_CQ9Ap%b4b}_R2-XFX1u;N2LJ&d$Ohk;s(-|0Q zsU<;v!3<2SY@FOY0zx7Z(z1$5%BosAdIrX(=9V^gj!v%b-hsgpkx?;;NhzsW*|~Wo zwRKG`t?k`?6Q)d`Id}eoh09j0UcYhkmhHRt>^*S!=&>{BuU@-x_ul=7&z`?{_2%un z_a8rf{{8pg*_#_~0i#Ra)5S4FLh|jw)F>uK29^tk0XiFY@7~?Ib$2mi^vvJ!j&{%f zpJRMtJLOOINrl<ostKx2VlAE)nqsU5r}jloX}#!C*=*>svvH$`=iwWR&m7*d{EKqb zQU0ZT7o#-f4cs)R8-!^_8}w;hHkhY*w<B!o@*{$4n}rU|STg6(jRk8CTP*H5d?M(U z;M%rH{fbfiPX&+ZJQX-*mMVEnG*#l5_EO1X>PzL0$u8wTW|zu$OemH67{^m4H*Hn+ z#h<1NwSRPZ*;ME=vuUGSWV@lGW#dK9%Emz7lgATUrkF`QpJFI6dy1%p@f2o>y;ImF zwoaK}Bq2XVP2&0#MG5OEtP-E6#7ZzviI(7<QZA7iuXE~v=VpzD$sCaaYKf}NK6-Z> dCjEcKpWC!1v{6m*88B`bJYD@<);T3K0Ra1&eHZ`$ literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/classification.png b/web/src/assets/images/workflow/classification.png new file mode 100644 index 0000000000000000000000000000000000000000..87d34bb85e9f5cafe8516fbb4bb1688693e39f7c GIT binary patch literal 849 zcmV-X1FrmuP)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0003UP)t-s00000 z00000fB*nh002NhKtMAyGbAJ=7Z)xnDnKVEJ0v7GA|f*&ATS;tJRBT38yhwxBrzi+ zE+Zp4At5&)AT=K!GaMW_Oqu3LkJm_-=Rk+mJ#VHxbg?{Xn>lElPNMcrpz}tK*+h%j zO{Mxup!7|p`bnDVMU&u1m*-5T{7a<zOQ7^ipYTnm{!OR+Or-crqV`Rv{!OR-O{V=# zrTR^%|4pa<O{o7&ru|H({!FL+O{o7(sQ*o<|4ym@P^te>s{d1~|5vU5SgrqAuK!xD z|6H&CU$OsSvHxPS|7NuRX}14wx&MK||AE5)tk(as+5f%Y|HR_|&*%Tp=>Oa9|K{`m z?)Lxg_y70%|M~p?`u+d@{{R2~|8|iC^Z)<=K6Fw}Qvm`30|W#G2MY`h4i69!5)%~` z78e*98y+AaBrYy9Hd0exVQz78cYS@GpQNX^xxByH+uYvr^Yird_5A(2miz?(00E^* zL_t(I%gvP8R>D9GhEsvEV_9SqMcD;G*#%(~Q4tWq1t=(a|Hp9ZvCv{^d+C4C`E%xL zrpfdK0D##u7{iG|>56RWs#HjXjfOo21Tl=k7|gcF4z;pDqk*9)#n_V?QBm!Lr6^D? z)h4QHrzi;~_EdwT<SA<cHdG^;s)blE=ZFsF%y8J!1GWw!xofZYAdQl6A==J_M=E~O z5u&Fl;`{vuynwQ3C-|!g4f=Cje&K9GmZ2$H9$$oIj6BUZ$Jyh6KDy#=6V~q_Zr15f zGMe^ny{!oLaQP_M;p+2N6@0+2fnZ0tyio<oJI?!rJTLH7;b<Pm>tgO_I3JD{_;IHI z%GyK86-qe?C~tW8?Q{7m;UwU;Zf|5E5S>y!TK*X-#mEZ#+n&u`OTB8trT!m)O{Ke* zdhy4t=xa{}F7-A164Lr^Fbzlg2EY+;=X$_%4)!B;ZLS{K2bVjhJ@#U57dScJnbsgZ z^KnkFyW9uyh8ow1AGlq1usS%8|2V&U*yoS^9?oF}i_OV-{eftvSiRncuB*jNG~oAg bPMhT$*k6XwW<`Fa00000NkvXXu0mjfJ}#Yl literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/code_execution.png b/web/src/assets/images/workflow/code_execution.png new file mode 100644 index 0000000000000000000000000000000000000000..7f802b3ce81ab40855851760c14b26128a1fc1ca GIT binary patch literal 684 zcmV;d0#p5oP)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0002?P)t-s00000 zvDg5u(F3v70<P2ouGIpr)B&&60<YBquhjyt)dH{80<YBquhj&w)djHC2eH-+veyo? z*AKJT5VO}8w%8lD*&n#tBe~ioy4x+h+%CP`FumO}zTGpv-9N(LK*HZb!{9{3;7P{e zOvm9<$>Unf<Xg++T+HNM%;aUx<!8_4Y|-a<)aiTG>3r7dgV^ec+Utwj?2p{+mfr4| z-tL;;?xo`JrsMFa<MFWO^0Mdhv*+@?>h#C$_Q>w`(((A%^ZD8H`Q!Hb=J)&P`1|Vk z{OkGr?D_ol{QdX*{`md=`ThR;{{H;_|NZ{|{{R2~|NnvjMtA@K01b3fPE!CH98PO) zo3`2V^ZfmB{!Ix000CG@L_t(I%Z-(5TY^9kg$G0d@u*Q^cPq2B#O$6$7Yj>`g8Bb{ zrVkbHP^^1C?d5%T8D{1z(YI7hH_FJUZ0MRwX(=TOIkHMh!WB#iWEOt8Vg*7~ia+Nq z;DAbjh)6N9P^LmeB}k}5q*^kdrIH3IX{0BUmgjRyzSm0jbTZ=cAmWU|LA+^DoVT4Q zaGmsRjvIvWnPrOCJ$ADn=CT)$6VPWT3p(uo12X@OHMN!nmjK}WsR~;Rc0UdQd;V7I ze)dG*`YhN24)_Y&!E7TRw8z{BaLao@pT~ACc*7$A%k$S7fDvEkf-l?w(B(@2=<stc z*p8-6;Es0zG^bHJKbRpu)>qyqHK6{$LqXKldp_#%1%P9|uZsR-<8*a@vI$`AtRc>f zL<*&gVo{mJh1&|ng`2d(NhoXu>E@DdS7`%~wiJ1jlD0j0BbB#id9#;!KE41TjDIwu S4e1U50000<MNUMnLSTYW0c-#O literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/condition.png b/web/src/assets/images/workflow/condition.png new file mode 100644 index 0000000000000000000000000000000000000000..a0bf9160cc74d99426db52627004bc8475aea951 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU3?z3ec*FxKn*g5>S0K%>@dm@%i_9CZGOfG9 zv<^fvuD{BJfyB4nSpDSV*5{wMz4(0P(~tlE{~zhF0-3{G666=mASL6Moi}^i%}<~I z{4M<F%L$a&>*?YcVsU!z)SE)h3OugLN~<S^{r?}IUAS15XS;3xOydQHJB4yJa$_Ip zH*Jmz^h{T}FW_5Vxi_8hzWhCdO(!hgJU88Q^-Ox%yxBj#7fZ1jWXCHhxw+0#G`X2& zt2^^~<c23Ig_hiXhwi3cj_GP-$=7pHJ2;!cu=<Xe`Fh=Va?4e^+rKk5#wqHFi@ui^ z-1qDI^n<sX&1L?#{0Im+#v>O~A$sI#mB?w<_1ZEF1xp?%vL2U{TT)^2II;haUEFhF VU!f<{R(pa%$kWx&Wt~$(6987Akb(dJ literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/empty.png b/web/src/assets/images/workflow/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..58dd77b250258575fb6f28760d93a1e2c28902cf GIT binary patch literal 76462 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 F{s&{Dtl0nn literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/end.png b/web/src/assets/images/workflow/end.png new file mode 100644 index 0000000000000000000000000000000000000000..7f4628c6d4fb30d5bcb47f800ff940b82488d42a GIT binary patch literal 792 zcmX|;eNf8*7{`B=-j>d}TYA0D+mXU?*wuNbX>)5<R=POl2<5DDIMRu{q**VAyd@54 zHNB3lU!f+cRaEQNo6_qpNwrlZ*7o&_JI{Td@AEw0Kfg~RkLzPgbD|LhVasND`%}|x zrmf5<eKnsILJ%hFc^p2II=N!7GeIdw3}1@u8MuG--~Qj>=3rM2cscNsz+ZxZTm<G~ zPagIbV1E%pif}-RgD(*F5{F;nhz!Syah!yJL}Uq0zeY?M;uN^>78fZhaOoYcRwAJi z!YYWWk*q|D5~($~Rg2pnaQ7qbeZ>8Gq}L;(0goE-ScNP##A;+yG~;;-@>@~RhQc;T z+ad3Oyc1>JDDT1BUR3m=vJcf7G<-qhAXI};52587TEC%f7@ec|tVNd=Jv#L2&^HFn zIKE6^@H>WnU}O@yDU3~F;un7EF*S|f2Ivi#Ho{<pkpeR{$8{=*iqH0>KX*6b<ib5B zNSC*dPfQ!4jlR}YzHw~tt$feAq_iV@D^}63*w8=u3+?ER?m}mKp^#kaCSdZT_<ml1 zz17hL;fpk}5rXce;iH~*mqWam?8%6EXT#VhX_+pr0eT-vwQ69Wuw|>TPSd$5?`iC4 zxuG=bl(a;=T~)d>JXY+}pDKQ6pJvI=h(DS#RJw5q?M8-2+HmG#r98;Nsv};yrFBK4 zh2^>I2%4rgPUjUFzwE(}n_3pH!OUifr}0XkVsq#`r99;!gBN;f%$=dE<CtFO=p2gQ zsPj^EN>lyp4^3Ya&mR<-)c33it?BnV?a<?%pKIOy-rB5ldslFU-M%%7kw8YUZ&9+1 z1u1$WQzR%?D`rK^wF%mBKdqX^2p5=MlPYG59BRz9(Y3jpLeWCiDx-_!-EbD`_0zS7 zR&Fz&&t#alle;Z8P4*{=Sp(*><;|qpO|*eHQ&tiyF)3ij&<A^)?u<6_!#oZ-uIwPI zZhV!M`02?L&P4GuT{^vZWXyS4`MQbpjSbp<%X`KcA5zw}j`|V7W^%prw}r<40Xi+t Ai2wiq literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/http_request.png b/web/src/assets/images/workflow/http_request.png new file mode 100644 index 0000000000000000000000000000000000000000..64e55d365c0639857dd51538d3060d8886097789 GIT binary patch literal 745 zcmV<F0v7#=P)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0002+P)t-s0000K zV(SuH?G#_{6<zKXU+)!O?-gF~6<+TZUhfrN?-gF}6<+TZUhg1g@F8aKD{b*DZt*X0 z@i=zzK6>##d+|Vf@<M&`Lw@o~gY!#+^HPZOQ;G9fjPzZP^k|p$ccS)qqV{>C_IjiC zdZhMzrS^ZP_JFANfvEO@srG`Y_JynWi?8>RwfLL5_?)}=qrmy9#rdws`LD?Nwaogq z%=*01`o7cq!PNW0)%wNP`^nn-%G&$N+xyGg`_bS0+~@u2@c!!X{_FAn?DGEc_5Shp z{`2?#^!NVv`TqF(|NH#^{Qdv^{{Q~||NsC0Rj*Vo0000DbW%=J02&-lYi^si+4A%J z{c-+H2><{An@L1LR5;6}mFZH#FcgK$zNShM7Z$-H;(`Sf0)jwMl*N|w{%>Pia0sM8 zW;{R6<fh*wZF29eqO9Z(Mxt@Dqj)qD^eeo4;RM;EMA*0C0x@zxvA`b}N|J+0hSuvH z;TY+z>5Gx0iaGBYCK3v>b4kd63BMBDp3!coIh&dEN!y+eDiJ<RH7u-UHB$VOh!W+Z z>nVP)I8)Wkf(@qE+@q+%-CNm4>mF@q*uq^4cA2|Pg<H?ItE7&qGk!pwRBfAEa|5QP z4l_i~333<`QpGgo0X8ux6bj!cGA|VI#e9IK2x>MwWNQLg!kALp!<@RBqsM%Vk^oW^ znO|bG3P-qLUIZ0D6KUpI^jBdYS>|b&0yu-pJdf@w>>|%x#Y_%7@c?(We#h0GttmQ& zVZ7qga5cdT^Nz>Il;A1xcr?qZ>3U^pm35}FwXEoR&9cM;Ck?ciPjKp9JU-kUYWycD zw$kho#%`K<CvICzT(J}~s(S8G3ev^3TducmxxPIM<tp6(q+5!7lag+G@{Lr!HOn`9 bncv4Ra^s8&O$(zX00000NkvXXu0mjfXF7?N literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/iteration.png b/web/src/assets/images/workflow/iteration.png new file mode 100644 index 0000000000000000000000000000000000000000..dd73767b3fb6c9c3384bd6a7e3eed323f7072903 GIT binary patch literal 612 zcmV-q0-ODbP)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0002DP)t-s0000K zV(SuH?G#_{6<zKXU+)!O?-gF~6<+TZUhfrN?-gF}6<+TZUhf=Z@E&CFA!hI;Y49g& z@F;8WEpG8RcJV%X@;`g>LVfa0h4W8_^HPZOVUqM{m-T6w^>?E7c%$}tqxO8I_J61L zfT;F?srHSr_m;Q#n7H_xy7;Tb`LN0Qvda3s()z#C`^MP&-RS+^>HXsC{p0KX<Lv$B z?)~ZT{_61l?ehNk`u_X;|Nj2}|Ns9*7prvu000eiQchC<8XQh*Zkx8*^7H)tasEvS z0003`Nkl<ZILnQd>w1DP42BCLM~k@OhNmgI=~Q$I9uRW>*EJ4~mOWDQ{pds5w}G@t zAf%M6Xu3)N$<#GPCcGroq7AZCiE%B13S_kYxORsM)oI`TJ>fF4@F^Mesf_$PRf>?B zor{G5Etx13C533r@PZIHg@MP`G@@6}(*)9(QwqtnTGUB(Z(efq9sX^Oe@iN#CaLBF z@EO#f+u7(tP|YwfN;!Wk*k`1Zh7Ul9^RYYp$ThnZWDHH<;LM_)2*BPIcHg<yCpf+c zz%gt~V+jYB3cv+?md0q4bIsuU&s*){nuB2~_6R_CGb+t5ScpLP0L#+c!dL*l9^teu z&SwYLo&cP%<30~W!PtAa%!)f4b{nG(^Q6eg6_;oalcG#Bd){YYEzQu0i!Oy)aYcM_ yMfKuBmn*sfpj!&QNuk>wzLDZvGrrklejmS&;c+VQ-irAE0000<MNUMnLSTYZ^*YS} literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/llm.png b/web/src/assets/images/workflow/llm.png new file mode 100644 index 0000000000000000000000000000000000000000..5d9e74651597d92ec2fa9953242d5daed895e038 GIT binary patch literal 591 zcmV-V0<iswP)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk00027P)t-s0001D zcI#wz?PYT4WOC|cbn0Yt>SJ^1WOM0cbLnJr>11>1WOM0cbLnMt>1})JZhY!-f9rID z>ve+bc7yDChwOWZ?0ksqev0jYjO~e(?u?i3kelz8pzxTY@R_6WpsDest@5R=@}{ox zw7c}Ry!5xe^|-(F#LD-`&iBgC_s!Ax*W3Bn-1*tu`rqRF<mUV2=lkgD{O<7m@9_Qd z^ZoSo{rda<{r&&`{{R2~|3D6fM*si-4RlgYQvezqPHS$Pw%PLY{QYtMO$h)10YFJa zK~y-)ot5cwf-n?Dqav#pic4`{T5VNasq6Rt4^|L61Ok%j`NMGMOy-j0elQkORW#kC z45qFrRmM|MEh@lLD~VS#=mkdY&#O1+C5`%Xy%H}pA8S?&D#eKUR7nCg+!sqmw5m)Y zDHNs&wfE!E6N(zsh1wVJEfjSooEr^+kx(?5*p3UhVl^$g&5$0@i=J+wI5{E3X_7DY z@5pfP=ZZ^g+HV}~4VJm$79Z*UKe5dfcbKKc8Fr%R`>i~&<@*^C=*FTQzuU3c1q#IJ zb?*>4`|GqsJUq^C1RP4l1<p;P<{66;kvu1Qb-bb;gP@c5)tw;t?>?4`$;Dk`W%HiB z!kW9d$taA0%MZr|7;~e*4cGjZzGb&LKV1B{x`QFdz)g*-bO1<4ihM{($DVwU%15(& d*vtGregP_?YsHtE6#@VN002ovPDHLkV1j*=H?aT! literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/loop.png b/web/src/assets/images/workflow/loop.png new file mode 100644 index 0000000000000000000000000000000000000000..a4313229c82028f0f3c68f30fc78a98b53a5549d GIT binary patch literal 815 zcmV+~1JL}5P)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0003UP)t-s0000x zogFuuBsicUH=rRkpddD&Avc~PHlHCjpCLA&AvT{OHlHCjpCLG)BRHTWJfbK)qA5S5 zD?y|!L!~c6r7%XPGDoK~N2fGMs5MEbHcF{DOsY9ltwL9?Mp>{(TCho9vrb^MPhqoA zVYE?XwNq`nUU0i%bG&7Ay=Hm8YkI$Id%$gh!*qnicZ$b-jmUwG$%2~Cke$$zp3sw^ z(Uzdnm!Z;^q|=(H)t<50sj=Frv)Ze^;J3o!yTs$Z$mPPy=EcnC#?I);(CEw1>CDsW z&eZGB*zD8Y@7mt)+TZZp;PBnz@!#a~;pOw<=JVt0_UY~R>+bjL^ZD}h`t$bs_4oVs z`26?z{Q3I*`uqL+{Qdm>{{8>|{~UUeg8%>k4RlgYQvezqPHS$Pw%PLY{QYtMO$h)1 z0kla(K~y-)jg{A0!ax*+4@HVFSfXGrU`0VhQ4|zZY$*1q2$}bP3@<Fi{WiG&-Jbl} zi|o!s<O_c=92tbdU?d#$iyL1k1`lE(U(X9f(T8Z@#~X;FFY$rz{r>TQctAwN7sbCs zeIgQq0U;58%tVa&B?u#e5>`jEM~{z3v+6V~5oNOcPLl7-$~Yp*xg}bxPES|aN+_o( z%A0e%8v=&zIHx>N#Nk8M0ie#q;eO)G75Op+OxfhsjJKG2VC#(c+uQd%Yw;oFDW33R zEO}0n=gF}Po_LAte3}Fjn+FG*31IS>>mK4Mx7>Sd@l-F4cRwt*Xnl0Ywc-*l|9+86 zE@{Oz9{&}Oxuz9Y_+~e<KdWrRe&dQx9JwJ$mcCXclH|>ZM%-sJW98b;A^@bFcFxK) zxu+4EOamyh2mnQv0c3cs5p7xk@~i+rg?RuLZH?Gq4nU0s04T5qAjd{e{JppvY?t#j zIy>{DqYJwZYx#1U+1|zNMWN)7?C_foNvGtBf-79<Vx=&#TD^UJy{)cJ6e`6<cesq> tYFq%um115}#<gc&q~_IZUiK!xk5BzZfWy|?vjG4A002ovPDHLkV1iPuoc90# literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/memory_enhancement.png b/web/src/assets/images/workflow/memory_enhancement.png new file mode 100644 index 0000000000000000000000000000000000000000..998c02fe53123eddef06dc592cfbc5137da7b972 GIT binary patch literal 810 zcmV+_1J(SAP)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0003RP)t-s0001D zcI#wz?PYT4WOC|cbn0Yt>SJ^1WOM0cbLnJr>11>1WOM0cbLnMt>1K85XLjjmcIs(& z>S=iDYkBHxdg^R?>TP@KZhY!-f9rFA>vMtYc7yD9gzR^P?0JUleTwaVitT}o?Szo+ zg^})ulJ1O`?~j@9kDBk0o9~gF@0OwPou~1hr}3bv@}sQsr?2v;u=A_4^Rl}1w7c}U zzxBDm^}50JyTbLn!}h_)_QJ^a#mo1`%lFF9_sh`u(A4<Q)%erb`PA6?)Y<vg+WFVp z`P$z4+~E4&;rij^`{L#M<mdb4=lka9`|Iue?Ct#S@cr=d{qyww^!5Gq_Wt+y{`mO* z`1$_(`~Lj={`~y^{{H{}|NjFwkQD#`01b3fPE!CH98PO)o3`2V^ZfmB{!Ix000FW| zL_t(I%Z-)iR>D9Kg#%KBrKmI;RYjwK1;L5}3W}&f6cF$GzlKSG!@yYf{<*VfzU<kv zJ2O#~k*qeSYf;Q;(dD#R6)KCvBYu&`VVQCZZt;iQ3lq-n6@SWWAMf`Mr<3NM7Pt6U zZsVK|At8r;FCH1tV^wT)9XV@%G;=;*uKCeEi_nZsagx=#21AvKY1%qTITaUK)zL_W z)i>Zx4W}BYlaxy#@3w|+R5uk+b&GbfN?ubTUu97<YzbI0yoM}EPQk#jhDS33OnZcO z9N?h80d$KLJnaGvKLd~Oni+><P>9Scju`lW9Wf7z9Xv3whY$xt=rOR3Ee>wsiGe4h zyO{-RIALHBHypf0k%7-hb1;o(2KKSS!4>ow*upLcchO>C0iEr6aJz#71A|rIa27lS zszF{9!7H54f)}_9{!l$)4^`7QfekaLPLHjF)548?4U&eJfwJMr!B>nFE@_1_G&LG8 z;d6*mJgRCVe$oo0xt8zDrW)=a49(zfnKl<~S6}}A{pC6#MB@78{XXxTX;<k1AU#s# ohm`c#lOLq=qgj5~%ltmR0m+7i4^2I#{{R3007*qoM6N<$f|nGv+5i9m literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/model_selection.png b/web/src/assets/images/workflow/model_selection.png new file mode 100644 index 0000000000000000000000000000000000000000..e3e93962d19f11d55225be2c4c65862a05973bcc GIT binary patch literal 908 zcmV;719SX|P)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk00048P)t-s00000 zvDg5u(F3v70<P2ouGIpr)B&&60<YBquhjyt)dH{80<YBquhj#u)daBB1+dizvDOK( z)(WxK3bNJ<vepi>*AcYW613P8wAdH6*c-RmB)Z!sy4xwc+bq1?Exg<@zTG##-Z;SC zK*HZd#Nb85;6}yZNygz($l_AS;#0}vRLSF2$>Uti<Xz0<Ud-fQ&E#m$=4sI8YS89v zy4Y;d=WV*!bkpd0)#-lL>VMbjfyCZ{*Xo7X>xRbPhuQ0h+3Szo?3&Nyn&0lA;qRp4 z@TJw~rsMFZ<M6HJ@vi0Zu;%iz=km1N>$K<cwdnG<=<~np^uX)&$L;mU?e@y<_RjG4 z(((Ay@%Y^I`Q7yS;Pv|A_WI`c`{?-l>G=EV`1|Vk{OtMs?fLxf`uy<v{qg$!^85Ys z`~CI&{rCL-`2GI+{r>#@{`~&`{r>;{{{Q~}|NsC02jmbE0000DbW%=J02&-lYi^si z+4A%J{c-+H2><{A(n&-?R5;6xmFZWKK^%pLMHb<zq$0VdxRj-qw7KJgdzzVB8Y!Bk zxFFB}e@-7rk@p38@3-Hb=ggUNX6_wh3UYh>fm&Hq8}NJG=CNG9kSZwTa}_yHP){i6 zx#w!adQ#z<|NB+pq_D>rV_ZR1RnTRO@yUUF#<)XHz>wQ`tzIOVPA4N)*K7P%YYJe> z>iSK<;xwEvGsAI%#SR$Dz4aZy{5%}=S#HymjP2`i3UCVR?IlZ(!RYK27h{bHc;7g7 z!PRWEJQ&+0pK6nor%q~1<=Ksu1((_Hk?ujMXP@P=V1^D!iY9MwlTk_PAX661(j;jx zO+HV0P*M}w%HWF}JMs7qxvnbUFq?H!-6q3Tz!4TDX_1jC;JbV9?bG0^pInYNH;-R( z__6{RTZ6CP;SU@g!C(0H1=eCVFvZOs9Dj`T?!jK~v(LZb?uL{NJmbS8zoL@r2L|dT zJwIXc6K6K?kfjZ>L&ZZ4W!YHbhYd^sz;<_G?A|WSi3jlE;l5d2=^xFITWFP97jk4q z`&U+97awkE6k6u4IiH?B=X$Qi5(R6xI=29}I&I;y#Z~c%iMZ@>bzA_BE5&(9Ij%kD iMe4kootM3n@8cgbZJ>j%l69v50000<MNUMnLSTXwVF!)? literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/model_voting.png b/web/src/assets/images/workflow/model_voting.png new file mode 100644 index 0000000000000000000000000000000000000000..8324541e69b4c36ae0a5f8e2593427535928e735 GIT binary patch literal 769 zcmX|;eNf8*7{`AOM^TQFaoti}c{!bqGAf$3v!R)qb5<7DMR|#obr(4yk(XZNjJWc0 zy{uQe>Xw$4(zVTclb6MMTS{+AA+_K7`o*2+KF{}gp6{RE=Q^La!@_)-IYAH>Tn@{Z znyaRJ?o3L{mvaIMV#aFzZULJ*d0F5-1EssO;6sr;4ezi1+y6WK9Pp*sD}}EVe!1{3 zL_i@97C}^m!!iUH<47?=OL43eVRD>RK&(KN0?{vVt`Zlk5Lb<BuaQuT+jU5+Ly`)~ zDx|1!M~zep4J2CJ*WytF(i@S{geT3&e2dH$WWPh+dlY`ea~)(l$Uj4_M|m46+ELko zSDmOeK-CTP7ifB*?LmDn8o#2s4=w$8KY$MdXdS|*A#{wOa|B)AG58DL#xXpOk#USp zU~B?ECNXZrZzCp1OqyUcfuxwi6a}WMIisP33d<tWm*+<;v*jHRODollj*+JDDIYT` z&1f!*DPU-By$g+~@}eofv%8ChK7Bq51p9L1=|X9|Z?QDGkDERW`xi_H8Fvuu+ClP2 zoN6mGB<Y?NYpH(<J9f+=f-b7ET&+0TeSVRcJK9%or!1IFR+}6d4#soQD?MDe<$LHG zYVLr2I5uHPxSQtFE#YTbjeV@R*J}$c&?+g!@Y2uddBZySgu!inn~bwm=Pq=ZlclP3 zJ<5n2OY@_pdo?Yz)HiR)>*`qia5Gc8&Q|MOsnkan5q38$*B1;$&ClPTEv<>kcQ;Aq zF=`m(EdFCX%_HvETtk^K^s3lV;=GM~6~r;p6jwyK%r#k|lFJu1u~JMo&sd-EcC*=4 zVU-gzEXoVCX|<l!Sg`ig=|C5K`=Ps6lgXb>%7&B4sflvse2H4_<ysb$Dmb|Ou37(r zuqA@loJLoAfN9mn$D$0W_gjYfWM_g{naOKm1k{FGIEix>bvA_u(}_1L;$k>1iJrfh h>a7oS@t&FigPqgPlmkyo@=5AF1eeWY6>L9r=?_9ezkdJ# literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/output_audit.png b/web/src/assets/images/workflow/output_audit.png new file mode 100644 index 0000000000000000000000000000000000000000..50128f82466a4829112c75d87763cf7ff6d65ba6 GIT binary patch literal 624 zcmV-$0+0QPP)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0002$P)t-s00000 zvDg5u(F3v70<P2ouGIpr)B&&60<YBquhjyt)dH{80<YBquhj#u)daBB1+diyu+|H* z)(o=O4zt$~v)2){*B`jrA-UQjx!NPS+9bN$CA!-uyW1$c+cUo1JHg&a#o<!O;#0}v zS<B;E%j8_l<X+6=WzOYi&*o^)=4#O9Y|-a_*6Nhq?Uvr|pW*MW<?*oQ^0epjwdeD^ z>h!+q^uX)%$?o>d@AuR3_|)?F)$;h(^7z>E`P}sR-u3$5_4?rT`r-Ea==l5W`TX(w z{qy_%^!)wy{Qmg;{`vj>{r>;||NmG^Qu6=+01b3fPE!CH98PO)o3`2V^ZfmB{!Ix0 z00AgTL_t(I%iYyUQ^G(L1mKs2>`$VCii&_>TyPY35y2&HX!`&E9S;hzG|M~Nx2gFm zm#OX$eML8I$Kzk|9NX0CXEe*_ocNZOI>Y6HxW>#?0xnEY`TkysV-5@=BF*K}xEc{z zEQm#<`x5BuWU?qG**Q1M7YXpZJv-Xu<iH&~O(w}`c67+gfd@Ebeu?L=Ni2i>7ly5N zyR|5QmjH0JPzqNO4+f7|D}|dlWj;Z(0EV^Nk_7hN09@D0;Y~6e#@H=~53kI9^#2FE z`%vl(`wfhhy2ZvG&Xsz<&wxh&Fx{$-0AL(8rvPxA0jr%T>a8=^yHV6#VQ%!Is8da$ zC+m!tR$-Evv<mZbAv0;Y#B~)9fOt~mBPE_a`H;$|Sw8lX-^V8;5`N>5(i*}50000< KMNUMnLSTYnVNvh^ literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/parallel.png b/web/src/assets/images/workflow/parallel.png new file mode 100644 index 0000000000000000000000000000000000000000..e77d79d8ada21fbdc3740a5211d89c6ad4ac3318 GIT binary patch literal 979 zcmXBReNfYN90%}UMi?VNyJm!Sa4Cq{Sw~j_<`pz+kW6G7aAq*%lA)Xg5~(2(K@*Hq zQUpbrAPfW?Y{ugNC9y*u1d*W0lQ4$BHrRL=jE%kflHYrM-=ELt?{}I%>nj_Y1C636 z8y_YkfK1o5|LV&mWlqdcih3#Ee;;QrIa$T<DFn%V#qc9a*0BE17yFC!FU5gU1eAhZ z22L5c<p?ZC&}{_Y#z8T@slXwk5+Q^HJPE?2I4ni@9Yj<ilBmYfYDCrG`#QwbA+{bT z2pQsJ_(6vF2K?B7lZ`mtgoL|DyoaBgk#ZlY_wgIif<M}Du?^XsxZZ`lZrtcbNiWL! zP~H!5KcsT}Ie@AG)DEI{2=zmd4WnTgjU#9p!M$f_9!1L-9w^W{j)zLLDbX>3&Ixoq zNB1NiPoZZDz0>GZp<j)E)sSoORD%Ix27@ygB4#l>i)VxuqgssVpwMA_4$3(^pU30^ zrievMFF>P*W(hNT%q(Gc30h(qx@F86FmJ#Dv4X`F=m{g1j950oV8RNq3gaqFW~`cF zCb0Gb8@INSl5FAvSZvDSZPu~lxz+NydDCi)+0Tl!*z3da;<&eGWEpm^^RiE>`J#BE zl*xG%n{{EwuDV%c2c4!86}i5rHvjW9ZAd8(8+JT$M0iFhzY;xRyzJ!Gnsqe8*5qA$ zV23ir{)(^NhDoklGn?P+$fu8l1b(u7QC(hPFzb3;uCYb0pg`GoYn^>bPt0S*+0!2R z7QwDoRa#zTtb>2S)o!igvLZM|>cp^V7UpL7UKdtc+scw|db#^0JJyG<-xRSmahr>J zG}OA_TvN2_<S84?=X%~|*X#}R{lT7@_FaPCJ92Ax+A+`G;KxVHx+q^kLenk#6AbfU z2Gc^cDae-k^|f}L+AE!_>Q!1=wT4yH2oi-}kNBdTGSzvj+^q1ZvTLgJq81UqQoJYe zO`5mcJDN+h{R`DidmKKqi%Cd}sCxZyzR=^0DOeC%9l!LKbB^;aw!|mZ#hQ{U7xi}@ zdTjCh^g*XME=BOs=&5N&y7LobvBHuUvS|2nB&X=mC1#!^GkZKKbGN6WE%vSc&4n$N zD}|CRF%p%)g7*`5J3Y_+yT$Ib^}3H`k#vT6?5Z96mk+;|A7gON?G#_2&G6oD;CqXb zUF)Kb2W|AMt9(M2QM~LoOz)<CtJhj@PmKKg1HJp*^ZU8EMWyZ1gLG0n<+GQ?5PS2I F{{t4&S%Uxo literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/parameter_extraction.png b/web/src/assets/images/workflow/parameter_extraction.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b50ee092e7d8779cc9338801e00c3f8783c4ae GIT binary patch literal 699 zcmXAldn^<H9LLYJiCi?s2njnTne|7S#x8l>?cBwkk}!{nqKw6+>sA)Vonc-*9J*Df z&g!J%&JmZ+q$~5NWaY|{M{(r+xbyAQ_W6B(`~3UihBAVQCblL70)a@S1TgjAZRd6y z>bK325=$T$><bME57aBT3~;I7(!dKr5q)R5|Jc!x9sN%c1I1w|VWKn~Wf3TkL}e7J zqEQtC{(10|QIm|i6bLRukcRsisL#e@HbmDT;-G<pCpi%3qA?Fmg=i^-qzuvuv{ph^ zg|^#hzk^rR=-{KH2J(A&Er8-76hicfpnQhDW(>;ksS}^&`0@tddZBuc?|m2>fO-() zLzo%G?=j4(F*gp)PiQ8wFpZ@-EYD+Q0jrBx)3b#2Wo)cqV-*`~*xG=06WT54wAj{R zdmGS$=RHlH`Y6OqCWA$=wPU2F@mod~m$bT!ZMw0(S_n1ZMEEgfan+Q6mzR0Y5Yxxa zNNVjUP|G9Ji?STW?&^jK-2ug|l<JgonyujpWiwSH&fE2tSD*aD%qE7F*ySuDDdHNK z(?U~<oT6jTc(|0)q1Zomb<(RoQBE<%@zZ1hdnzFzfJHJ9gcg$O+(sH}iJC}fSwDYn z$Us<}PIjGDxgRc}vBS@1)FzdUlHyY}7xRwD?S)g9d@Pk#1@u#{zm`X;tqb=hv9Eu$ zPjd;%%U>N@@p0j{(*L}>k?^55h+E<PGKOMhri!&%+A>o)$iDV(uG=N-QJma7W2|5} zhb1=pDIXkVWj#u7>zi{bEwGnfY37;d9*VZ$bzflGl@510JZ&Jin+xw+@H{eT0}5Z8 zD2L^0TD+P^ix<xakB-w0c1Y7CPTl#Q5t)W$i6y7PU*gMg?v^BRUi4`FIt+|@v!}fG Rj*Ilc3DiJFfY?9o=3gC8k&plY literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/process_evolution.png b/web/src/assets/images/workflow/process_evolution.png new file mode 100644 index 0000000000000000000000000000000000000000..8262c00d5027d73456b1546841c02f7547e31ef1 GIT binary patch literal 516 zcmV+f0{i`mP)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0001xP)t-s0000x zogFuuBsicUH=rRkpddD&Avc~PHlHCjpCLA&AvT{OHlHCjpCLG)BRrxgQ>{T*uSRUS zTz9@{c)x0SziWWPbAiKjhsJw|#(bI1j+xGnn$M7%&yc0moTk*Bui2)!-Lbjdvb^85 z$>qb+>dw>Z&eiMC-0s=k@7mz--Rbn^^7-)l{rmp^{{R2~@|dIn0000DbW%=J02&-l zYi^si+4A%J{c-+H2><{A7D+@wR5;6xmD^&1FbsynK`4i8I9HvzO=i`pbIbd`ofiz+ zZYkuugMO5jG(P|xahj_V|4^ztjlm_#DhyC%k@b=SM<|lso7Ff<J^P(+!b7YR0D!2# zNs0&nG8B*j#Fa#>Vn|U$3b}XPoXO#P|IiQQpggf9pQnC6!BDrRHO73=(s|5~9;yk$ z-Agyeh8NL_L|W@3?X=}Y&#Z`uTYrf^^N{$sH4YyO42fYlas46_--uqv#2fwRwqnE; zYck@1^J-^<jOc7;LPQ)FnUBqjO!;`xcn9K>-n9;i+F9O}h=|TsECb?!j>fc&J-BMR z4Z2pa&DC52jny@mxLw5oAdVDyNQq-l9;EVUmWRFM_i+a^e`u806D3Lj0000<MNUMn GLSTX~KK4`q literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/rag.png b/web/src/assets/images/workflow/rag.png new file mode 100644 index 0000000000000000000000000000000000000000..3749dbfa0f4180cf993c848a19292db2a650c3ce GIT binary patch literal 741 zcmV<B0vi2^P)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0003gP)t-s0000x zogFuuBsicUH=rRkpddD&Avc~PHlHCjpCLA&AvT{OHlHCjpCLD&B0ZuhKBFo>q$@$B zElQ|2QmsH$u0vk3O<}ZAVzg3awpC`fR%f<XXSY{rw_0tvUT?Z!aJpf0ykv8{Wp%x0 zcfM(OziN8FY<$6Pf5LKs!*qhfb%VrqhQ)b?#d?Rvdx^(<iN}45$bXE;fRxOMmCTBk z&5M`KjG4}koY0b<(UhmvovPNMtJkBh*rl)8r?A<mvD&G!+N!kMthU^*xZSb2-Lkvi zw7%fCzTmjP;km-%yu;$X#pJ)p<-*J6#?9x*&gjX|=*!XR&DQJE*zD8b@ZIC_;N<e* z==A36_UY~R>+bjM@AvNZ`}Ozx_WJ$${r>&_|Nj5~{|WG`TL1t64RlgYQvezqPHS$P zw%PLY{QYtMO$h)10bWT&K~y-)t(9qCf<O?)S4B=YD>{^JyYGX{jP5(SPoqd-zW;|v zwA=-MxckEA)iC^7*qNONgqlhUlC0v0R9O;|h*m<>aEvrDLAaEHJ4i|WbLkB3s7(5A zJqA}N8*3&M%#;#*r-(Tu*6X72fLam>kyPJ+F}qnlzJ2|y?ow$1Nv*hN>HO*A2Z-J% zP(pGmE;sI0D=*jkrPac4Aq2{Z^z9qA#s>RamqQ^?MI;6&t*tCCF3iu(OixXYufuze zJcdJHn<_Ej-ofF?>Dk5Q)s203|M2(>5CcZ5*Co)f9mh7<V9^hD;T2inh+i{x-K=>A z1GK>mViRlz=zt!?Iyl_|xnFH~!DhBSf0R|89k1EuBff%fRH4k*!ile31XN>s-5buR z)F`-+51)xVxYQ_+;j-Efu0;(O8P}}khB4R5Qsc^P0Nj?sZ&KX0$8V(k*357AJim`$ XP$ZWM3f5-E00000NkvXXu0mjfwN8R6 literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/reasoning_control.png b/web/src/assets/images/workflow/reasoning_control.png new file mode 100644 index 0000000000000000000000000000000000000000..649e165cdd3922ef767c43d708b7090bc7e59115 GIT binary patch literal 815 zcmV+~1JL}5P)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0003^P)t-s0000x zogFuuBsicUH=rRkpddD&Avc~PHlHCjpCLA&AvT{OHlHCjpCLD&A~>KUIG`jsp(Hz@ zCOo1iKBFo>qbowCE<>d+L!~fBr!+~ZHcF^BPpdsttwL9?Mq#s1Vzg3Yv{PobR%o|a zX}4NxxLR$wUU0f$bG&48yk&L0XLh}4dcSOYz-@iOZ+^jWf5LKr!gGPcbcV%xh{k-1 z$9;^*fQ`t3jmd(J$%B!~g_X^Una+-!(2=0gmY~v?q|=(D)SIT%ou}2EtJkBf*QBo4 zrLWnhvf8S%+N-qNthU^*x!tn7-?hHrx4+@I!s5Ha;=IP>z{ljl$>qbz<;2bB$Ia)+ z(CEw5>(JWm*4ysa;PBny@!sR|;pOw<=kw&~^ycgJ=<D|B?e^>L_wDic@ACQa_WSkt z{P+3%`ThR<{r>&_|Nj5~|DuuHOaK4?4RlgYQvezqPHS$Pw%PLY{QYtMO$h)10fb3J zK~y-)jg?nd0x=MU2UuWP7)9*Zuy<@&K|!%1EOx<$9Z|gh|Ir7Uv`y~QoXMA*WRkfd zD#)zZRgG(;sdmLo|7Ef{xrv-MQ-!lQ*gy_TiL<)cP%dk6Jpsq;vJerO94wT>L_{{0 zkd4UflmVS)QtGqGkL!qk&|Q^N$X*Wu0FX-`27Dc*oSoE0;8ZA?0RZIV#hgl7BaoT7 zdvr5)UkI65qtfW{Ln1io{Rh^BRK2nHi}2il2waZdW(&9gWM=N4-9CQ-c=cqw#Skoo zDd2IfRRrof54{2y5rI7`sbAo2$72Y3X7q31>vY0xxX0mxPvGZjvD5g}V^09?w)$99 zo?QTY%(^ZD+t;6gX_hH?n}5HTftR!G*?yUV0|2r&(IpW$Fdx2rufFysSIErloeU-( zj?17{9=(fgjCR$`sn}4t72<gSKqeWQY6Pm4=IZbTj?%fB_sEszs%}^J;6mj3BUukB t@&+JnDe@*IZF}-YDsRp5W-s%7`~fngo{a|~t;+xa002ovPDHLkV1mgrsM7!d literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/robot-2-line@2x.png b/web/src/assets/images/workflow/robot-2-line@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f1dc247e32ef5d184476e268fa1d8232b7b5365d GIT binary patch literal 471 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy69RlfT!Hle!33r;NPYmiNxvk> zFPMRePf%1^MovXdT}#i_$-^@!G%O-1D?6v9wWDj^(&cOR?LTn((&d|vpS*he{m(z` zEeqU$T913WIEGl9zIypOUz39f%LUfVOCq8nAytB!pa0jVA9T^vwR^Q^!b#hk8+ISK z@jrED>MI=!#^;e6nASupFdTZ~Q{%$^<$3XnGFFc+*}2lZRhc|YdK^z()r&f~83n(U zoMcwIlx!hl(P6L3vBXe;_26!XDDEBGighnE$Zc5NlHTL5Rn4?yeet%25~dwHI(s_J zcL+DE{ImH})_>VgF_O1iCq2JE@38rS_T#12&kw36a8J4J=at|*-R9btZLc3cXg0b& fcg7+8zuDyskCcsnDCy+@y~N<@>gTe~DWM4fx|k9w literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/self_optimization.png b/web/src/assets/images/workflow/self_optimization.png new file mode 100644 index 0000000000000000000000000000000000000000..08ed85980d2ac2d043be376d27f007b0ecbed0fd GIT binary patch literal 922 zcmV;L17-Y)P)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0004WP)t-s0001D zcI#wz?PYT4WOC|cbn0Yt>SJ^1WOM0cbLnJr>11>1WOM0cbLnMt>1K85XLjjmcIs$% z>S=fCYIy2vdFpF=>TG)IZF}l&eCls~>v4bUbb;%1g6npJ?01Chd4}wMi|v1l?SYN$ zf{yKkknM$$?uL@?h?MS%mhOv|?~Ir4k(}?6o$!;L@ROeKl%DXGpzxNV@R*|TnWOQV zr16}l@tvpfo~QAisPUhu@t~>kp{nwutn#F-@};iwrmym+ukxp`^Qp1(s<QK|v-7O9 z^Rl}1w7c}Ry!5xe^|-(FyTbLn!u7$&_QcBf#me`_%=gF4_sP!p%+UDI)%elY`PA6? z*W3Bn-1*wx`rF_7+~4}#;QHa@`{L#M<mUV2=lkX7`{wBT=IQ+B>HO#F{Oaud>+SsP z?)>iX{qOPp@$&ui^!@Yo{q*(y_4fYv_x||!{`mR+`T73(`u_U+{`>p>`~3d>{r~>{ z|NsC0cc`|&0000DbW%=J02&-lYi^si+4A%J{c-+H2><{A$Vo&&R5;6x)oEALKo|w! zw{2+C<)(ljiwJ6g3L>&pR47|SRF<-oRRy&yE(HV>rQAQyhvMm^XG-UON@kvulXKq8 zjYu(mD`ZDdmWUm){G!GejG{uKL0`!Q!nh^jz<*a0!>x(c+&r&}17ZOY5nmWp6ZVNn z5C#c~_@gE;>KChQsX4vzy>Pm>G#K|RTN3iRiDTa6+pxMG5?j5k%aS`UAJn!aX7<QT zZE43A&)imc;X1`jCw;+XWtyV87rg8OnkH9QN8>=(Imb(TDy+|Q7U(`A$xm<ZVTdO! zS~$SZ4w{d+-k&-kp8;FSBUPB;3^2iU01IRvFv3kO+~yNtg?#|x$>|25gFkdIQ7E(n z$v1TXkm4v%&wm=|>~Iml*q`l30M<AFv@x%NY37>%ydzy;jK5ofetyuv0}cbg)EW8n z7nuT(<*Wvt@^SGMULEslzZXE_>atw}GvwF%McUQ~0Ii3d*G;Bj?k^vz1Kr?mqke=r zFWhAkdiaq&Uf5XyzGv?F(;lZfy!(YDUsr(YhkM7(=D4VZ5${m|+zQYxKU^-AbgGBT wGJ}?R0T@?`c}W@9o_Ud)SF?H9oBTem0XEl~<v4NX;s5{u07*qoM6N<$g5RMMMF0Q* literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/self_reflection.png b/web/src/assets/images/workflow/self_reflection.png new file mode 100644 index 0000000000000000000000000000000000000000..099aac60fd0b6cd1470cceee6b544d372fa48004 GIT binary patch literal 1562 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 M07*qoM6N<$f?DJHCjbBd literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/sensitive_detection.png b/web/src/assets/images/workflow/sensitive_detection.png new file mode 100644 index 0000000000000000000000000000000000000000..637a4f13b2e9ddcc14ca900410489d0ae5449d2c GIT binary patch literal 803 zcmXw$eK6Aj9L9e|-R6v|Q+H8USN@<vFKglCn0c9(r6DSkcO9)ajb2b*b1H-)btdO> zC6t;j*Fv1~(&i;KTdHMhq8Gy|o2Q@a+<m^!^Zh=5KHnT)jyui3)PNue8ry@#CEa3v zD0-wet@8*ah(-H+z5QLu6G2;XU?+m<2qD>ygF6=X|H*=q`9TIk83?mOm_5Sn5#fL+ zN5nWImWjhIh;u_ci92{~9QDLeFYx`57=Wa`I1_~AU?hhiJp$>G$cREt9CD8!mxsI) zxSEKfBov)SNeW6*QJRYKY*b#toqXIYM$L89-9TL#>TjZ<9FGKed>fA|(R3H0T0E~s za~)b9pyeStpP`FHgzjdDTOob{NgI0G(bs{2R~YQV+aA0l5ko40tPk>jynln?H~1vQ zry(e0_$<fBdnkvY{D9Gq_^QB|5))rBp~80+evIMgI3|BU{R>l*m{CJB1<f>m&)~NP z+P~20Fh?>6pwq8LM3zfS;Bx#3)76|fUYSrjsn+U_&-qZv_T$+sXMfwS`^A9=TDO>F z`B~i3UuG5HRK;tzGLoMin3oH-ldy?zacE~Ut+l)xC;u{L&n*#H7~6OnB(Muu!+M_W z)Q#pID{QmXo%!pfxpw7ixk`<0CNQ(%CA0jd;XO~`7fYw5)Im}8X2IAZhsfo|EIGa4 zzPV9hrlhTcVlHPDJ7u^~EsTO31%-Z2nUNY_pFbVEEplRd%EfHJR3+di2vm18R;Og8 z6sq^oH%Ve|4dY35Udoz|W3Oo|qiUvVqpgKmZ|#F^=F)y8Rpa~Y=$QJH`MaSN>(V9~ z#a`KK`+FXg%BSW15ys05%T(%d4yE;cj`i-r%8`on0{#8<W|s7ov^}Ggu*E&HJSv?N z(v7s4QN}90SZO^ylj|09L`iGBvWb7Kr$Sp+l~^Pec`p|~O^HaYV<kV5xjfCw*D1DL zU;OL|<CY@aIxt%AkkEu*7%tq!-w@Rp&2NbLldL7GE?(viDkK5qLkPAjhgHiwl=cto C-ObJb literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/start.png b/web/src/assets/images/workflow/start.png new file mode 100644 index 0000000000000000000000000000000000000000..f68289882cc32ae5c14396495e30429c8bb25140 GIT binary patch literal 567 zcmV-70?7S|P)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0001}P)t-s0000K zV(SuH?G#_{6<zKXU+)!O?-gF~6<+TZUhfrN?-gF}6<+TZUhf-X?;&RJC28;}Z15~@ z@hxugFmUlPa`88H@jQ9*Lw@p6hx1yE^k9<oX_xhEn)Pj)^>Ll`d877vqxO=t_?^4> zsKfcH#QCkq`L4(Lw#@ps&HByV{L<k3*yQ})=>6g9{o?EW=<ogO@&54j{`2?#^!NVu z`TqI)|NsC0nh`610000DbW%=J02&-lYi^si+4A%J{c-+H2><{AF-b&0R5;7cmD!Sl zFc3upB8!-)xbKQGBQA*R{r^83(6I;sO=_OzJcZ^|NG0hDAy0I}vTIbJW?P0%cr??c zZ*Wa5^C}MgfKz#S)jIu1z4|+!#7oS_oSH+WIO#e~s(_j7i>o5KIx(mc2C)jY_Hx-S z6fI(lrTGoG&BdxsgmY_r17Qe!HH6b7`RBm_*9oPQD-MJFo4mNVW7kUuy&dk0w_<Yx ztk`qRR=}oNE_xBp<Lq&KM&y->A+}xqW8E#nQt^ULe*GO>N<~22JihXG(F=~J(=qU5 zBHQD^o=L<ZqJFE@k1&*oQ>@eR8dHfldx^7uBxV;k#wZm7mJp=k2r+kYvsUm?z~@>a zYcA%;c`f!C*Idf&svH2yk)j?_%CV;&r0UVE9`-7~j~|p_W$YvqEI9xG002ovPDHLk FV1ktEADsXI literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/task_planning.png b/web/src/assets/images/workflow/task_planning.png new file mode 100644 index 0000000000000000000000000000000000000000..33f322fd02eb2bd17d3121e00d8f408ca32f0a21 GIT binary patch literal 648 zcmV;30(bq1P)<h;3K|Lk000e1NJLTq001Ze001Zm0{{R3yC6tk0002wP)t-s0000^ zr~gT$|4yg>OsD@%r~gf;|4pd>PN@G)sQ*o<|4pd>O{o7(sQ*r=|4ym@P^te@tN&N6 z|5>j8TCV?Hu>Wkg|82PcaJm0+y8m;!|8>0oc)kC8zyE!}|9`;$fx-WS!vBZF|A@u^ zipKwp$N!DT|B=c6n9cv6(Ep;+|D)3XrPKeb*8i{A|FYTtv)cc--T%7X|GVD*z~KMH z;{VF!|IX+C&*%Tp=>OR4|Jm*T+wK3{?*HcV|LOGq?Dqfe_y6<x|MdF*_4@z${Qvv? z|NQ;`{Qm#_{{Q~||NsC0{99*g0000DbW%=J02&-lYi^si+4A%J{c-+H2><{AMoC0L zR5;6xmFZT4Fc5_Ur7Wd`c5$go73+cvYF(=0QmaL!^ZxH+Xd!UQNi+8kN%+n%lT0p* zEu<Tk-GC)EY|GGDS(@pBM6Rh7T+M+Ma%wqOZ^BA7>sdSn$H{q2%>kvHG*1%<GWou^ z6wuX~AtqiB#aL1t1)g|mFiUVFtY{=ii`n@wz=_`~f3D?EFvur16XzD8znqzmkvL5z zR%6WKb&Hr7i*W%WE}m!KyOp&Hcyk5EGoIK^KUG%>_7Z&f#S4JfdCh%!#FGRu<m21t zRNHb8PN&!9vgIInKm>sZZVsQq4guWz;l++SYVaNJ4&Hd(`-4;)QgA()wc!X~)cg2} z0~q2xgpaAV<ls5t6#sha9M>+t@Z(TXb=GF>a_g4cjNG{7t3bY7<m*Z{0J5dfO^R%L ibR(r(Gu`YdzmI=>q=0a2d$Y0t0000<MNUMnLSTZh+;6)8 literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/template_rendering.png b/web/src/assets/images/workflow/template_rendering.png new file mode 100644 index 0000000000000000000000000000000000000000..064caeb6d6cf0bf1ea9f5a4181cb0f0433d0835f GIT binary patch literal 408 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU3?z3ec*Fy#@Bp6>S0J5K_By5PZEDerl%iKD zC9hJ7UnLj6Ou<0Kjj!vv-*!%U*ERLsnk}E#ZTqr*`<IP7zg)Qb<LUF?A3py5^!e}a zKmY#y`ws-m?2P1rM)Q^g`2{mb$@pdG&E9tN)8{{b3;+3Y0wo@Mx;TbdoPIm?wpf#b zfa^!Dt{I6+r~dpepEkXLqcpB6dw<6U@l7SqJWjaH3J&XTn03)c)z0(eQN}$!bEbzr zYSF5$c2)Mv?5f?*{XTVFwc6AjOQOz2a<M#py|<v}MDQeT5zB?|mIX`MY<YD@O7%=% zH8bO~?cF^$-j|tg&iT81Ymr&m`B^tAS&eLFu%sUMyK<o|iQ7tv>CQfejxNJRk9HUw zG>PIn^3~{o!l9k}e{dJ-bH(?FAB{`f_aiWETfy$N1#=}t)@8RIuhd>JoBQs%7Yq*W qTy{$?Y;5Nbsxf(dSnl)h3Z~utq4zA9Th;@;%i!ti=d#Wzp$Pz18N%!U literal 0 HcmV?d00001 diff --git a/web/src/assets/images/workflow/tools.png b/web/src/assets/images/workflow/tools.png new file mode 100644 index 0000000000000000000000000000000000000000..49ff2fa46e92cdbedc1fd586285a87071452140c GIT binary patch literal 869 zcmX|;eNfW{7{`CJYwGSsivvWYsDp%%CJ-lh7q!(Ccj%9IFd8}#(mN}HKng_#RNx|C zIAI;*#Unrjh8s-Wn1U#8YXL?=4soP7KmlnR@;dhIN8R<@=lMR*^ZoPr<^_`hOoju4 zAP6RZ4=<FOZfm{aHA+?Q>^Vpfw7B5C;k&4lyb69LDBXJ%`zUJGAph0>_WvF78iKAN zxE3L`2(3j}9m4AnQIE)aL`m>@1EL!sxDJ67F;X0m;h+q$jX2bV_$C~=fv;{NQGuiu zB)8x@3KddR$ZSW}U1Z<InR_^U59d0N(}CPh<agtzZd~ZWB{eQ<P^dxCZ}_<v#eER> zp|l_6_fau`>OWBZ05yZC8$$gMu0MoKi$*Qv!%&PsrNiw}wEczlC+HeO_cN&V_*IYI zar95%_el&+;o&s2GZ>!1$V)t?n8oNUo*FP_z%wJpO_(rY>J_HvF*A>s6bty9ViCqA zn3gcNj91H8SizzhOJ*#uVr3QPRah*rV6DdX#}80nW~PLaVT6MtdGs4`v({)buO?ac zZKPtT;`6xSewx9;sHibd*4a{)wd<3C<CCc(vL<l0G{&yTIz5N5VkvMcfjjMZKCjbx zp);+1wx?kCheLATA2MkEXWn2ur<F$qin^V;Tp26=J4CiT`s+=hf@4<R?yf5tA8#Tr zCX+#|21fDJ+-KaAN$gl#&*{Mv$HKi&+H1?|3M{$RyCq)bc2e_&qu$AVytd6QE(#%& z?&F^ze%p=PI=Ajk9WBHn<HR%>o7FcI8`;KN8zdv^qrVp(4hvM$b)r$JAuIKGenrj~ z9RI`_=6>ON#08ufaVr`3d2z%h_O#ea=;V9<)|OA6ciBv2+CMUg+Z^xM>GZdiryS{D z?#$k@!|$~6a7p3T<zkzFo$pupZF`H8Qjq=BU<&c@a?X|g$)k0gi!{b?1TwlJ{)1M+ zq2Joa?lC9n%GREQG^w0b^^5zJrMO8|=DPu&{7WwR->O>`EzGh;rY&6)t82_#_n<3& zel)P1&Gt}d4SRhpl7GZ*{&AZ`pow%^lt*mONb^uHrl&?L-F*ptQH8GZ@}shJ=ZM7K e7rh7c3kD~Nvev%sy?!p0B*EWB@)|xBX8i+OHTnzy literal 0 HcmV?d00001 diff --git a/web/src/components/Chat/ChatInput.tsx b/web/src/components/Chat/ChatInput.tsx index 8dd19410..be9fc48d 100644 --- a/web/src/components/Chat/ChatInput.tsx +++ b/web/src/components/Chat/ChatInput.tsx @@ -2,7 +2,7 @@ * @Author: ZhaoYing * @Date: 2025-12-10 16:46:14 * @Last Modified by: ZhaoYing - * @Last Modified time: 2025-12-10 16:49:13 + * @Last Modified time: 2025-12-20 15:38:40 */ import { useEffect } from 'react' import { Flex, Input, Form } from 'antd' @@ -40,7 +40,7 @@ const ChatInput = ({ message, onChange, onSend, loading, children }: ChatInputPr return ( <div className="rb:absolute rb:bottom-3 rb:left-0 rb:right-0"> - <Flex vertical justify="space-between" className="rb:border rb:border-[#DFE4ED] rb:rounded-xl rb:min-h-[120px]"> + <Flex vertical justify="space-between" className="rb:border rb:border-[#DFE4ED] rb:rounded-xl rb:min-h-30"> {/* 消息输入表单 */} <Form form={form} layout="vertical"> <Form.Item name="message" noStyle> @@ -66,10 +66,10 @@ const ChatInput = ({ message, onChange, onSend, loading, children }: ChatInputPr {children} {/* 发送按钮 - 根据状态显示不同图标 */} {loading - ? <img src={LoadingIcon} className="rb:w-[22px] rb:h-[22px] rb:cursor-pointer" /> + ? <img src={LoadingIcon} className="rb:w-5.5 rb:h-5.5 rb:cursor-pointer" /> : !values || !values?.message || values?.message?.trim() === '' - ? <img src={SendDisabledIcon} className="rb:w-[22px] rb:h-[22px] rb:cursor-pointer" /> - : <img src={SendIcon} className="rb:w-[22px] rb:h-[22px] rb:cursor-pointer" onClick={onSend} /> + ? <img src={SendDisabledIcon} className="rb:w-5.5 rb:h-5.5 rb:cursor-pointer" /> + : <img src={SendIcon} className="rb:w-5.5 rb:h-5.5 rb:cursor-pointer" onClick={onSend} /> } </Flex> </Flex> diff --git a/web/src/components/SiderMenu/index.tsx b/web/src/components/SiderMenu/index.tsx index d148a346..91d3d0f1 100644 --- a/web/src/components/SiderMenu/index.tsx +++ b/web/src/components/SiderMenu/index.tsx @@ -21,11 +21,11 @@ import modelActiveIcon from '@/assets/images/menu/model_active.svg'; import memoryIcon from '@/assets/images/menu/memory.svg'; import memoryActiveIcon from '@/assets/images/menu/memory_active.svg'; import spaceIcon from '@/assets/images/menu/space.svg'; -import spaceActiveIcon from '@/assets/images/menu/space_acitve.svg'; +import spaceActiveIcon from '@/assets/images/menu/space_active.svg'; import userIcon from '@/assets/images/menu/user.svg'; import userActiveIcon from '@/assets/images/menu/user_active.svg'; import userMemoryIcon from '@/assets/images/menu/userMemory.svg'; -import userMemoryActiveIcon from '@/assets/images/menu/userMemory_acitve.svg'; +import userMemoryActiveIcon from '@/assets/images/menu/userMemory_active.svg'; import applicationIcon from '@/assets/images/menu/application.svg'; import applicationActiveIcon from '@/assets/images/menu/application_active.svg'; import knowledgeIcon from '@/assets/images/menu/knowledge.svg'; @@ -34,6 +34,10 @@ import memoryConversationIcon from '@/assets/images/menu/memoryConversation.svg' import memoryConversationActiveIcon from '@/assets/images/menu/memoryConversation_active.svg'; import memberIcon from '@/assets/images/menu/member.svg'; import memberActiveIcon from '@/assets/images/menu/member_active.svg'; +import toolIcon from '@/assets/images/menu/tool.png'; +import toolActiveIcon from '@/assets/images/menu/tool_active.png'; +import apiKeyIcon from '@/assets/images/menu/apiKey.png'; +import apiKeyActiveIcon from '@/assets/images/menu/apiKey_active.png'; // 图标路径映射表 const iconPathMap: Record<string, string> = { @@ -57,6 +61,10 @@ const iconPathMap: Record<string, string> = { 'memoryConversationActive': memoryConversationActiveIcon, 'member': memberIcon, 'memberActive': memberActiveIcon, + 'tool': toolIcon, + 'toolActive': toolActiveIcon, + 'apiKey': apiKeyIcon, + 'apiKeyActive': apiKeyActiveIcon, }; const { Sider } = Layout; diff --git a/web/src/styles/index.css b/web/src/styles/index.css index eecd99f5..bbbe9cd9 100644 --- a/web/src/styles/index.css +++ b/web/src/styles/index.css @@ -174,4 +174,10 @@ body { } .ant-breadcrumb a:hover { background-color: transparent; +} + +/* X6 节点样式 */ +.x6-node foreignObject > body { + min-height: 100%; + max-height: 100%; } \ No newline at end of file diff --git a/web/src/views/ApplicationConfig/Cluster.tsx b/web/src/views/ApplicationConfig/Cluster.tsx index 7541e938..4330cd60 100644 --- a/web/src/views/ApplicationConfig/Cluster.tsx +++ b/web/src/views/ApplicationConfig/Cluster.tsx @@ -1,4 +1,4 @@ -import { type FC, useEffect, useState, useRef, type Key } from 'react' +import { type FC, useEffect, useState, useRef, forwardRef, useImperativeHandle, type Key } from 'react' import { useTranslation } from 'react-i18next' import { useParams } from 'react-router-dom'; import Card from './components/Card' @@ -11,17 +11,19 @@ import type { Config, SubAgentModalRef, ChatData, - SubAgentItem + SubAgentItem, + ClusterRef } from './types' import Chat from './components/Chat' import RbCard from '@/components/RbCard/Card' import SubAgentModal from './components/SubAgentModal' import Empty from '@/components/Empty' +import type { Application } from '@/views/ApplicationManagement/types' const tagColors = ['processing', 'warning', 'default'] const MAX_LENGTH = 5; -const Cluster: FC<{application: SubAgentItem}> = ({application}) => { +const Cluster = forwardRef<ClusterRef, { application: Application }>(({application}, ref) => { const { t } = useTranslation() const { message } = App.useApp() const [form] = Form.useForm() @@ -113,6 +115,9 @@ const Cluster: FC<{application: SubAgentItem}> = ({application}) => { form.setFieldsValue({ master_agent_name: option.children }) } } + useImperativeHandle(ref, () => ({ + handleSave + })) return ( <Row className="rb:h-[calc(100vh-64px)]"> @@ -210,6 +215,6 @@ const Cluster: FC<{application: SubAgentItem}> = ({application}) => { /> </Row> ) -} +}) export default Cluster \ No newline at end of file diff --git a/web/src/views/ApplicationConfig/components/ConfigHeader.tsx b/web/src/views/ApplicationConfig/components/ConfigHeader.tsx index 34d85aa0..ec899a32 100644 --- a/web/src/views/ApplicationConfig/components/ConfigHeader.tsx +++ b/web/src/views/ApplicationConfig/components/ConfigHeader.tsx @@ -1,6 +1,6 @@ -import { type FC, useRef } from 'react'; +import { type FC, useEffect, useRef } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; -import { Layout, Tabs, Dropdown } from 'antd'; +import { Layout, Tabs, Dropdown, Button } from 'antd'; import type { MenuProps } from 'antd'; import { useTranslation } from 'react-i18next'; import styles from '../index.module.css' @@ -11,7 +11,7 @@ import exportIcon from '@/assets/images/export_hover.svg' import deleteIcon from '@/assets/images/delete_hover.svg' import type { Application, ApplicationModalRef } from '@/views/ApplicationManagement/types'; import ApplicationModal from '@/views/ApplicationManagement/components/ApplicationModal' -import type { CopyModalRef } from '../types' +import type { CopyModalRef, WorkflowRef } from '../types' import { deleteApplication } from '@/api/application' import CopyModal from './CopyModal' @@ -29,8 +29,12 @@ interface ConfigHeaderProps { activeTab: string; handleChangeTab: (key: string) => void; refresh: () => void; + workflowRef: React.RefObject<WorkflowRef> } -const ConfigHeader: FC<ConfigHeaderProps> = ({ application, activeTab, handleChangeTab, refresh }) => { +const ConfigHeader: FC<ConfigHeaderProps> = ({ + application, activeTab, handleChangeTab, refresh, + workflowRef +}) => { const { t } = useTranslation(); const navigate = useNavigate(); const { id } = useParams(); @@ -46,7 +50,7 @@ const ConfigHeader: FC<ConfigHeaderProps> = ({ application, activeTab, handleCha const formatMenuItems = () => { const items = ['edit', 'copy', 'delete'].map(key => ({ key, - icon: <img src={menuIcons[key]} className="rb:w-[16px] rb:h-[16px] rb:mr-[8px]" />, + icon: <img src={menuIcons[key]} className="rb:w-4 rb:h-4 rb:mr-2" />, label: t(`common.${key}`), })) return { @@ -85,12 +89,23 @@ const ConfigHeader: FC<ConfigHeaderProps> = ({ application, activeTab, handleCha const goToApplication = () => { navigate('/application', { replace: true }) } - + const save = () => { + workflowRef.current?.handleSave() + } + const run = () => { + workflowRef.current?.handleSave(false) + .then(() => { + workflowRef.current?.handleRun() + }) + } + const clear = () => { + workflowRef?.current?.graphRef?.current?.clearCells() + } return ( <> - <Header className="rb:w-full rb:h-[64px] rb:grid rb:grid-cols-3 rb:p-[16px_16px_16px_24px]! rb:border-b rb:border-[#EAECEE] rb:leading-[32px]"> - <div className="rb:h-[32px] rb:flex rb:items-center rb:font-medium"> - <div className="rb:w-[32px] rb:h-[32px] rb:rounded-[8px] rb:mr-[13px] rb:bg-[#155eef] rb:flex rb:items-center rb:justify-center rb:text-[24px] rb:text-[#ffffff]"> + <Header className="rb:w-full rb:h-16 rb:grid rb:grid-cols-3 rb:p-[16px_16px_16px_24px]! rb:border-b rb:border-[#EAECEE] rb:leading-8"> + <div className="rb:h-8 rb:flex rb:items-center rb:font-medium"> + <div className="rb:w-8 rb:h-8 rb:rounded-lg rb:mr-3.25 rb:bg-[#155eef] rb:flex rb:items-center rb:justify-center rb:text-[24px] rb:text-[#ffffff]"> {application?.name[0]} </div> @@ -101,7 +116,7 @@ const ConfigHeader: FC<ConfigHeaderProps> = ({ application, activeTab, handleCha placement="bottomRight" > <div - className="rb:w-[20px] rb:h-[20px] rb:cursor-pointer rb:bg-cover rb:bg-[url('@/assets/images/edit.svg')] rb:hover:bg-[url('@/assets/images/edit_hover.svg')]" + className="rb:w-5 rb:h-5 rb:cursor-pointer rb:bg-cover rb:bg-[url('@/assets/images/edit.svg')] rb:hover:bg-[url('@/assets/images/edit_hover.svg')]" ></div> </Dropdown> </div> @@ -114,10 +129,19 @@ const ConfigHeader: FC<ConfigHeaderProps> = ({ application, activeTab, handleCha className={styles.tabs} /> </div> - <div className="rb:h-[32px] rb:flex rb:items-center rb:justify-end rb:text-[12px] rb:text-[#5B6167] rb:font-regular rb:cursor-pointer" onClick={goToApplication}> - <img src={logoutIcon} className="rb:mr-[8px]" /> + {application?.type === 'workflow' + ? <div className="rb:h-8 rb:flex rb:items-center rb:justify-end rb:gap-2.5"> + <Button onClick={clear}>{t('workflow.clear')}</Button> + <Button onClick={run}>{t('workflow.run')}</Button> + <Button type="primary" onClick={save}>{t('workflow.save')}</Button> + {/* <Button type="primary">{t('workflow.export')}</Button> */} + <img src={logoutIcon} className="rb:w-4 rb:h-4 rb:cursor-pointer" onClick={goToApplication} /> + </div> + : <div className="rb:h-8 rb:flex rb:items-center rb:justify-end rb:text-[12px] rb:text-[#5B6167] rb:font-regular rb:cursor-pointer" onClick={goToApplication}> + <img src={logoutIcon} className="rb:mr-2 rb:w-4 rb:h-4" /> {t('application.returnToApplicationList')} </div> + } </Header> <ApplicationModal ref={applicationModalRef} diff --git a/web/src/views/ApplicationConfig/index.tsx b/web/src/views/ApplicationConfig/index.tsx index 4fbba8b4..23f3e434 100644 --- a/web/src/views/ApplicationConfig/index.tsx +++ b/web/src/views/ApplicationConfig/index.tsx @@ -1,17 +1,20 @@ import React, { useEffect, useState, useRef } from 'react'; import { useParams } from 'react-router-dom'; import ConfigHeader from './components/ConfigHeader' -import type { AgentRef } from './types' +import type { AgentRef, ClusterRef, WorkflowRef } from './types' import type { Application } from '@/views/ApplicationManagement/types' import Agent from './Agent' import Api from './Api' import ReleasePage from './ReleasePage' import Cluster from './Cluster' import { getApplication } from '@/api/application' +import Workflow from '@/views/Workflow'; const ApplicationConfig: React.FC = () => { const { id } = useParams(); const agentRef = useRef<AgentRef>(null) + const clusterRef = useRef<ClusterRef>(null) + const workflowRef = useRef<WorkflowRef>(null) const [application, setApplication] = useState<Application | null>(null); const [activeTab, setActiveTab] = useState('arrangement'); @@ -21,6 +24,16 @@ const ApplicationConfig: React.FC = () => { .then(() => { setActiveTab(key) }) + } else if (activeTab === 'arrangement' && application?.type === 'multi_agent' && clusterRef.current) { + clusterRef.current.handleSave(false) + .then(() => { + setActiveTab(key) + }) + } else if (activeTab === 'arrangement' && application?.type === 'workflow' && workflowRef.current) { + workflowRef.current.handleSave(false) + .then(() => { + setActiveTab(key) + }) } else { setActiveTab(key) } @@ -47,9 +60,11 @@ const ApplicationConfig: React.FC = () => { handleChangeTab={handleChangeTab} application={application as Application} refresh={getApplicationInfo} + workflowRef={workflowRef} /> {activeTab === 'arrangement' && application?.type === 'agent' && <Agent ref={agentRef} />} - {activeTab === 'arrangement' && application?.type === 'multi_agent' && <Cluster application={application as Application} />} + {activeTab === 'arrangement' && application?.type === 'multi_agent' && <Cluster ref={clusterRef} application={application as Application} />} + {activeTab === 'arrangement' && application?.type === 'workflow' && <Workflow ref={workflowRef} />} {activeTab === 'api' && <Api application={application} />} {activeTab === 'release' && <ReleasePage data={application as Application} refresh={getApplicationInfo} />} </> diff --git a/web/src/views/ApplicationConfig/types.ts b/web/src/views/ApplicationConfig/types.ts index c5cda44e..c085328b 100644 --- a/web/src/views/ApplicationConfig/types.ts +++ b/web/src/views/ApplicationConfig/types.ts @@ -1,5 +1,7 @@ import type { KnowledgeBaseListItem } from '@/views/KnowledgeBase/types' import type { ChatItem } from '@/components/Chat/types' +import type { GraphRef } from '@/views/Workflow/types'; +import type { ApiKey } from '@/views/ApiKeyManagement/types' export interface ModelConfig { label?: string; @@ -116,6 +118,14 @@ export interface ApplicationModalData { export interface AgentRef { handleSave: (flag?: boolean) => Promise<any>; } +export interface ClusterRef { + handleSave: (flag?: boolean) => Promise<any>; +} +export interface WorkflowRef { + handleSave: (flag?: boolean) => Promise<any>; + handleRun: () => void; + graphRef: GraphRef +} export interface ApplicationModalRef { handleOpen: (application?: Config) => void; } diff --git a/web/src/views/Workflow/components/CanvasToolbar.tsx b/web/src/views/Workflow/components/CanvasToolbar.tsx new file mode 100644 index 00000000..ac1b1130 --- /dev/null +++ b/web/src/views/Workflow/components/CanvasToolbar.tsx @@ -0,0 +1,203 @@ +import type { FC } from 'react'; +import { Select, Button } from 'antd'; +import { Node } from '@antv/x6'; +import type { GraphRef } from '../types' + +interface CanvasToolbarProps { + miniMapRef: React.RefObject<HTMLDivElement>; + graphRef: GraphRef; + isHandMode: boolean; + setIsHandMode: React.Dispatch<React.SetStateAction<boolean>>; + zoomLevel: number; + canUndo: boolean; + canRedo: boolean; + onUndo: () => void; + onRedo: () => void; +} + +const CanvasToolbar: FC<CanvasToolbarProps> = ({ + miniMapRef, + graphRef, + isHandMode, + setIsHandMode, + zoomLevel, + canUndo, + canRedo, + onUndo, + onRedo, +}) => { + // 整理布局函数 + const handleLayout = () => { + if (!graphRef.current) return; + const nodes = graphRef.current.getNodes(); + const edges = graphRef.current.getEdges(); + + // 如果没有连线,使用垂直布局避免节点重叠 + if (edges.length === 0) { + nodes.forEach((node, index) => { + const nodeData = node.getData(); + const isSpecialNode = nodeData?.isGroup || nodeData?.type === 'condition'; + const nodeHeight = isSpecialNode ? 220 : 50; + const xPosition = 100; + const yPosition = index * (nodeHeight + 100) + 100; + node.setPosition(xPosition, yPosition); + }); + return; + } + + // 简单的树布局算法 + const nodeMap = new Map<string, Node>(); + const children = new Map<string, string[]>(); + const roots: string[] = []; + + // 初始化节点映射 + nodes.forEach(node => { + nodeMap.set(node.id, node); + children.set(node.id, []); + }); + + // 构建父子关系 + edges.forEach(edge => { + const sourceId = edge.getSourceCellId(); + const targetId = edge.getTargetCellId(); + if (sourceId && targetId) { + children.get(sourceId)?.push(targetId); + } + }); + + // 找到根节点 + const hasParent = new Set<string>(); + edges.forEach(edge => { + const targetId = edge.getTargetCellId(); + if (targetId) hasParent.add(targetId); + }); + + nodes.forEach(node => { + if (!hasParent.has(node.id)) { + roots.push(node.id); + } + }); + + // 布局参数 + const levelWidths: number[] = []; + const baseNodeSpacing = 120; + let currentY = 100; + + // 计算每层的最大宽度 + const calculateLevelWidths = (nodeId: string, level: number) => { + const node = nodeMap.get(nodeId); + if (!node) return; + + const nodeData = node.getData(); + const isSpecialNode = nodeData?.isGroup || nodeData?.type === 'condition'; + const nodeWidth = isSpecialNode ? 400 : 160; + const gap = isSpecialNode ? 150 : 100; + + levelWidths[level] = Math.max(levelWidths[level] || 0, nodeWidth + gap); + + const childIds = children.get(nodeId) || []; + childIds.forEach((childId: string) => calculateLevelWidths(childId, level + 1)); + }; + + roots.forEach(rootId => calculateLevelWidths(rootId, 0)); + + // 递归布局函数 + const layoutNode = (nodeId: string, level: number, parentY: number): number => { + const node = nodeMap.get(nodeId); + if (!node) return parentY; + + const nodeData = node.getData(); + const isSpecialNode = nodeData?.isGroup || nodeData?.type === 'condition'; + const nodeHeight = isSpecialNode ? 220 : 50; + const verticalGap = isSpecialNode ? 80 : 40; + const spacing = baseNodeSpacing + nodeHeight + verticalGap; + + const xPosition = levelWidths.slice(0, level).reduce((sum, width) => sum + width, 100); + + const childIds = children.get(nodeId) || []; + + if (childIds.length === 0) { + // 叶子节点 + node.setPosition(xPosition, currentY); + currentY += spacing; + return currentY - spacing; + } else { + // 非叶子节点,先布局子节点 + const childPositions: number[] = []; + childIds.forEach((childId: string) => { + const childY = layoutNode(childId, level + 1, currentY); + childPositions.push(childY); + }); + + // 父节点居中,确保有足够间隙 + const minY = Math.min(...childPositions); + const maxY = Math.max(...childPositions); + const centerY = (minY + maxY) / 2; + node.setPosition(xPosition, centerY); + return centerY; + } + }; + + // 布局所有根节点 + roots.forEach(rootId => { + layoutNode(rootId, 0, currentY); + currentY += 300; // 不同树之间的间距 + }); + }; + + return ( + <> + {/* 小地图 */} + <div ref={miniMapRef} className="rb:absolute rb:bottom-17 rb:left-5 rb:z-1000"></div> + {/* 缩放控制按钮 */} + <div className="rb:absolute rb:bottom-5 rb:left-5 rb:flex rb:flex-row rb:gap-2 rb:z-1000"> + <Button + type={isHandMode ? 'primary' : 'default'} + onClick={() => { + const newHandMode = !isHandMode; + setIsHandMode(newHandMode); + if (newHandMode) { + graphRef.current?.enablePanning(); + } else { + graphRef.current?.disablePanning(); + } + }} + > + {isHandMode ? '✋' : '👆'} + </Button> + <Button onClick={() => graphRef.current?.zoom(0.1)}>+</Button> + <Select + value={Math.round(zoomLevel * 100)} + onChange={(value: number | string) => { + if (value === 'fit') { + graphRef.current?.zoomToFit({ padding: 20 }); + } else { + graphRef.current?.zoomTo((value as number) / 100); + } + }} + labelRender={(props) => { + console.log('props', props) + return `${props.value}%` + }} + className="rb:w-20" + options={[ + { label: '25%', value: 25 }, + { label: '50%', value: 50 }, + { label: '75%', value: 75 }, + { label: '100%', value: 100 }, + { label: '125%', value: 125 }, + { label: '150%', value: 150 }, + { label: '200%', value: 200 }, + { label: '自适应', value: 'fit' }, + ]} + /> + <Button onClick={() => graphRef.current?.zoom(-0.1)}>-</Button> + <Button disabled={!canUndo} onClick={onUndo}>撤销</Button> + <Button disabled={!canRedo} onClick={onRedo}>重做</Button> + <Button onClick={handleLayout}>整理</Button> + </div> + </> + ); +}; + +export default CanvasToolbar; diff --git a/web/src/views/Workflow/components/Chat/Chat.tsx b/web/src/views/Workflow/components/Chat/Chat.tsx new file mode 100644 index 00000000..d907fdfc --- /dev/null +++ b/web/src/views/Workflow/components/Chat/Chat.tsx @@ -0,0 +1,174 @@ +import { forwardRef, useImperativeHandle, useState, useRef } from 'react' +import { useTranslation } from 'react-i18next' +import clsx from 'clsx' +import { Input, Form } from 'antd' +import { Space, Button } from 'antd' + +import ChatIcon from '@/assets/images/application/chat.png' +import RbDrawer from '@/components/RbDrawer'; +import VariableConfigModal from './VariableConfigModal' +import { draftRun } from '@/api/application'; +import Empty from '@/components/Empty' +import ChatContent from '@/components/Chat/ChatContent' +import type { ChatItem } from '@/components/Chat/types' +import ChatSendIcon from '@/assets/images/application/chatSend.svg' +import dayjs from 'dayjs' +import type { ChatRef, VariableEditModalRef, StartVariableItem, GraphRef } from '../../types' +import { type SSEMessage } from '@/utils/stream' + +const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId, graphRef }, ref) => { + const { t } = useTranslation() + const [form] = Form.useForm<{ message: string }>() + const variableConfigModalRef = useRef<VariableEditModalRef>(null) + const [open, setOpen] = useState(false) + const [loading, setLoading] = useState(false) + const [chatList, setChatList] = useState<ChatItem[]>([]) + const [variables, setVariables] = useState<StartVariableItem[]>([]) + const [streamLoading, setStreamLoading] = useState(false) + + const handleOpen = () => { + setOpen(true) + getVariables() + } + const getVariables = () => { + const nodes = graphRef.current?.getNodes() + const list = nodes?.map(node => node.getData()) || [] + const startNodes = list.filter(vo => vo.type === 'start') + if (startNodes.length) { + const curVariables = startNodes[0].config.variables?.defaultValue + + const initialValue: Record<string, any> = {} + + curVariables.forEach((vo: StartVariableItem) => { + if (vo.default) { + initialValue[vo.name] = vo.default + } + }) + setVariables(curVariables) + form.setFieldsValue(initialValue) + } + } + const handleClose = () => { + setOpen(false) + setChatList([]) + } + const handleEditVariables = () => { + variableConfigModalRef.current?.handleOpen() + } + const handleSave = (values: StartVariableItem[]) => { + setVariables([...values]) + } + const handleClusterSend = () => { + if (loading || !appId) return + + setLoading(true) + const message = form.getFieldValue('message') + setChatList(prev => [...prev, { + role: 'user', + content: message, + created_at: Date.now(), + }]) + setChatList(prev => [...prev, { + role: 'assistant', + content: message, + created_at: Date.now(), + }]) + + const handleStreamMessage = (data: SSEMessage[]) => { + setStreamLoading(false) + + data.map(item => { + const { chunk } = item.data as { chunk: string; }; + + switch(item.event) { + case 'message': + setChatList(prev => { + const lastChat = { ...prev[prev.length - 1] } + lastChat.content = lastChat.content + chunk + + return [ + ...prev.slice(0, prev.length - 1), + lastChat + ] + }) + break + case 'workflow_end': + setStreamLoading(false); + break; + } + }) + }; + const params: Record<string, any> = {} + if (variables.length > 0) { + variables.forEach(vo => { + params[vo.name] = vo.value ?? vo.defaultValue + }) + } + form.setFieldValue('message', undefined) + draftRun(appId, { + message: message, + variables: params, + stream: true + }, handleStreamMessage) + .finally(() => { + setLoading(false) + }) + } + // 暴露给父组件的方法 + useImperativeHandle(ref, () => ({ + handleOpen, + handleClose + })); + + return ( + <RbDrawer + title={<div className="rb:flex rb:items-center rb:gap-2.5"> + {t('workflow.run')} + {variables.length > 0 && <Space> + <Button size="small" onClick={handleEditVariables}>变量</Button> + </Space>} + </div>} + classNames={{ + body: 'rb:p-0!' + }} + open={open} + onClose={handleClose} + > + <ChatContent + classNames={{ + 'rb:mx-[16px] rb:pt-[24px] rb:h-[calc(100%-76px)]': true, + + }} + contentClassNames="rb:max-w-[400px]!'" + empty={<Empty url={ChatIcon} title={t('application.chatEmpty')} isNeedSubTitle={false} size={[240, 200]} className="rb:h-full" />} + data={chatList} + streamLoading={streamLoading} + labelPosition="bottom" + labelFormat={(item) => dayjs(item.created_at).locale('en').format('MMMM D, YYYY [at] h:mm A')} + errorDesc={t('application.ReplyException')} + /> + <div className="rb:flex rb:items-center rb:gap-2.5 rb:p-4"> + <Form form={form} style={{width: 'calc(100% - 54px)'}}> + <Form.Item name="message" className="rb:mb-0!"> + <Input + className="rb:h-11 rb:shadow-[0px_2px_8px_0px_rgba(33,35,50,0.1)]" + placeholder={t('application.chatPlaceholder')} + onPressEnter={handleClusterSend} + /> + </Form.Item> + </Form> + <img src={ChatSendIcon} className={clsx("rb:w-11 rb:h-11 rb:cursor-pointer", { + 'rb:opacity-50': loading, + })} onClick={handleClusterSend} /> + </div> + + <VariableConfigModal + ref={variableConfigModalRef} + refresh={handleSave} + variables={variables} + /> + </RbDrawer> + ) +}) + +export default Chat diff --git a/web/src/views/Workflow/components/Chat/VariableConfigModal.tsx b/web/src/views/Workflow/components/Chat/VariableConfigModal.tsx new file mode 100644 index 00000000..22fe8f1b --- /dev/null +++ b/web/src/views/Workflow/components/Chat/VariableConfigModal.tsx @@ -0,0 +1,98 @@ +import { forwardRef, useImperativeHandle, useState } from 'react'; +import { Form, Input, InputNumber, Checkbox } from 'antd'; +import { useTranslation } from 'react-i18next'; + +import type { StartVariableItem, VariableEditModalRef } from '../../types' +import RbModal from '@/components/RbModal' + +interface VariableEditModalProps { + refresh: (values: StartVariableItem[]) => void; + variables: StartVariableItem[] +} + +const VariableConfigModal = forwardRef<VariableEditModalRef, VariableEditModalProps>(({ + refresh, + variables +}, ref) => { + const { t } = useTranslation(); + const [visible, setVisible] = useState(false); + const [form] = Form.useForm<{variables: StartVariableItem[]}>(); + const [loading, setLoading] = useState(false) + + // 封装取消方法,添加关闭弹窗逻辑 + const handleClose = () => { + setVisible(false); + form.resetFields(); + setLoading(false) + }; + + const handleOpen = () => { + + setVisible(true); + }; + // 封装保存方法,添加提交逻辑 + const handleSave = () => { + form.validateFields().then((values) => { + refresh([ + ...(values?.variables ?? []), + ]) + handleClose() + }) + } + + // 暴露给父组件的方法 + useImperativeHandle(ref, () => ({ + handleOpen, + handleClose + })); + + return ( + <RbModal + title={t('workflow.variableConfig')} + open={visible} + onCancel={handleClose} + okText={t('common.save')} + onOk={handleSave} + confirmLoading={loading} + > + <Form + form={form} + layout="horizontal" + scrollToFirstError={{ behavior: 'instant', block: 'end', focus: true }} + initialValues={{ variables: variables }} + > + <Form.List name="variables"> + {(fields) => ( + <> + {fields.map(({ name }, index) => { + const field = variables[index] + return ( + <Form.Item + key={name} + name={[name, 'value']} + label={field.type === 'boolean' ? undefined : `${field.name}·${field.description}`} + rules={[ + { required: field.required, message: field.type === 'boolean' ? t('common.pleaseSelect') : t('common.pleaseEnter') }, + ]} + > + { + field.type === 'string' && <Input placeholder={t('common.pleaseEnter')} /> + } + { + field.type === 'number' && <InputNumber placeholder={t('common.pleaseEnter')} style={{ width: '100%' }} /> + } + { + field.type === 'boolean' && <Checkbox>{`${field.name}·${field.description}`}</Checkbox> + } + </Form.Item> + ) + })} + </> + )} + </Form.List> + </Form> + </RbModal> + ); +}); + +export default VariableConfigModal; \ No newline at end of file diff --git a/web/src/views/Workflow/components/NodeLibrary.tsx b/web/src/views/Workflow/components/NodeLibrary.tsx new file mode 100644 index 00000000..20ef8937 --- /dev/null +++ b/web/src/views/Workflow/components/NodeLibrary.tsx @@ -0,0 +1,48 @@ +import { type FC } from 'react'; +import { useTranslation } from 'react-i18next' +import { Card, Space } from 'antd' + +import { nodeLibrary } from '../constant'; + +const NodeLibrary: FC = () => { + const { t } = useTranslation() + + console.log('nodeLibrary', nodeLibrary) + + return ( + <div className="rb:w-80 rb:fixed rb:h-screen rb:left-0 rb:py-5 rb:px-5.5 rb:overflow-y-auto"> + <Space size={12} direction="vertical" className="rb:w-full"> + {nodeLibrary.map(category => ( + <Card + key={category.category} + type="inner" + title={t(`workflow.${category.category}`)} + classNames={{ + body: "rb:p-[10px]!", + header: "rb:bg-[#F6F8FC]!" + }} + > + <Space size={8} direction="vertical" className="rb:w-full"> + {category.nodes.map((node, nodeIndex) => ( + <div + key={nodeIndex} + className="rb:bg-white rb:rounded-lg rb:p-2 rb:border rb:border-[#DFE4ED] rb:cursor-pointer rb:flex rb:items-center rb:gap-2 rb:hover:border-[#155EEF] rb:hover:shadow-[0px_2px_4px_0px_rgba(33,35,50,0.15)]" + draggable + onDragStart={(e) => { + e.dataTransfer.setData('application/reactflow', node.type); + e.dataTransfer.setData('application/json', JSON.stringify(node)); + }} + > + <img src={node.icon} className="rb:w-5 rb:h-5" /> + <span className="rb:font-medium rb:text-[12px]">{t(`workflow.${node.type}`)}</span> + </div> + ))} + </Space> + </Card> + ))} + </Space> + </div> + ); +}; + +export default NodeLibrary; \ No newline at end of file diff --git a/web/src/views/Workflow/components/Nodes/AddNode.tsx b/web/src/views/Workflow/components/Nodes/AddNode.tsx new file mode 100644 index 00000000..5a84fdfa --- /dev/null +++ b/web/src/views/Workflow/components/Nodes/AddNode.tsx @@ -0,0 +1,19 @@ +import clsx from 'clsx'; +import type { ReactShapeConfig } from '@antv/x6-react-shape'; + +const AddNode: ReactShapeConfig['component'] = ({ node }) => { + const data = node?.getData() || {} + + return ( + <div className={clsx('rb:group rb:relative rb:h-10 rb:w-30 rb:border rb:rounded-xl rb:flex rb:items-center rb:justify-center rb:text-[12px] rb:p-1 rb:box-border', { + 'rb:border-orange-500 rb:border-[3px] rb:bg-white rb:text-gray-700': data.isSelected, + 'rb:border-[#d1d5db] rb:bg-white rb:text-[#374151]': !data.isSelected + })}> + <span className="rb:overflow-hidden rb:whitespace-nowrap rb:text-ellipsis"> + {data.icon} {data.label} + </span> + </div> + ); +}; + +export default AddNode; \ No newline at end of file diff --git a/web/src/views/Workflow/components/Nodes/ConditionNode.tsx b/web/src/views/Workflow/components/Nodes/ConditionNode.tsx new file mode 100644 index 00000000..f1a48f91 --- /dev/null +++ b/web/src/views/Workflow/components/Nodes/ConditionNode.tsx @@ -0,0 +1,155 @@ +import React from 'react'; +import clsx from 'clsx'; +import { Button } from 'antd' +import type { ReactShapeConfig } from '@antv/x6-react-shape'; + +const ConditionNode: ReactShapeConfig['component'] = ({ node }) => { + const data = node?.getData() || {}; + + const addPort = (e: React.MouseEvent) => { + if (!node || !node.addPort) return; + e.stopPropagation(); + + const currentPorts = node.getPorts(); + const totalPorts = currentPorts.length; + + // 如果没有端口,添加第一个端口和ELSE端口 + if (totalPorts === 0) { + // 添加第一个ELIF端口 + node.addPort({ + id: 'elif_1', + group: 'right', + attrs: { + text: { + text: 'ELIF 1', + }, + }, + }); + // 添加ELSE端口 + node.addPort({ + id: 'else', + group: 'right', + attrs: { + text: { + text: 'ELSE', + }, + }, + }); + return; + } + + // 如果只有一个端口,确保它是ELSE,然后在之前添加ELIF + if (totalPorts === 1) { + const existingPort = currentPorts[0]; + + // 如果现有端口不是ELSE,先移除它 + if (node.removePort && existingPort.id !== 'else') { + node.removePort(existingPort.id as string); + + // 添加ELIF端口 + node.addPort({ + id: 'elif_1', + group: 'right', + attrs: { + text: { + text: 'ELIF 1', + }, + }, + }); + } + + // 添加或确保存在ELSE端口 + if (existingPort.id !== 'else') { + node.addPort({ + id: 'else', + group: 'right', + attrs: { + text: { + text: 'ELSE', + }, + }, + }); + } + return; + } + + // 获取最后一个端口,确保它是ELSE + let lastPort = currentPorts[totalPorts - 1]; + + // 如果最后一个端口不是ELSE,先移除它 + if (node.removePort && lastPort.id !== 'else') { + node.removePort(lastPort.id as string); + + // 添加ELSE端口作为最后一个 + node.addPort({ + id: 'else', + group: 'right', + attrs: { + text: { + text: 'ELSE', + }, + }, + }); + + // 更新currentPorts和totalPorts + const updatedPorts = node.getPorts(); + const updatedTotal = updatedPorts.length; + lastPort = updatedPorts[updatedTotal - 1]; + } + + // 计算新的ELIF端口数量(最后一个是ELSE,不算在内) + const elifCount = totalPorts - 1; + const newElifCount = elifCount + 1; + + // 如果有removePort方法,先移除最后一个端口(ELSE),添加新的ELIF端口,再添加回ELSE端口 + if (node.removePort) { + // 移除最后一个端口(ELSE) + node.removePort(lastPort.id as string); + + // 添加新的ELIF端口在倒数第二个位置 + node.addPort({ + id: `elif_${newElifCount}`, + group: 'right', + attrs: { + text: { + text: `ELIF ${newElifCount}`, + }, + }, + }); + + // 添加回ELSE端口 + node.addPort({ + id: 'else', + group: 'right', + attrs: { + text: { + text: 'ELSE', + }, + }, + }); + } + }; + + // const removeElif = (e: React.MouseEvent) => { + // e.stopPropagation(); + // }; + + return ( + <div className={clsx(`rb:border rb:rounded-[12px] rb:relative rb:min-w-[200px] rb:min-h-[120px] rb:p-2`, { + 'rb:border-orange-500 rb:border-[3px] rb:bg-orange-50 rb:text-gray-700': data.isSelected, + 'rb:border-[#d1d5db] rb:bg-[#FFFFFF] rb:text-[#374151]': !data.isSelected + })}> + + <Button onClick={addPort}>+ 添加 ELIF</Button> + {/* 标题区域 */} + <div className="rb:absolute rb:-top-3 rb:left-2 rb:bg-blue-500 rb:rounded-2xl rb:px-3 rb:py-1 rb:flex rb:items-center rb:gap-1.5 rb:text-white rb:text-xs rb:font-bold rb:z-10"> + <div className="rb:w-4 rb:h-4 rb:bg-white rb:rounded rb:flex rb:items-center rb:justify-center rb:text-blue-500 rb:text-[10px]"> + 🔀 + </div> + 条件分支 + </div> + </div> + ); +}; + +export default ConditionNode; \ No newline at end of file diff --git a/web/src/views/Workflow/components/Nodes/GroupStartNode.tsx b/web/src/views/Workflow/components/Nodes/GroupStartNode.tsx new file mode 100644 index 00000000..cd8a9c50 --- /dev/null +++ b/web/src/views/Workflow/components/Nodes/GroupStartNode.tsx @@ -0,0 +1,19 @@ +import clsx from 'clsx'; +import type { ReactShapeConfig } from '@antv/x6-react-shape'; + +const GroupStartNode: ReactShapeConfig['component'] = ({ node }) => { + const data = node?.getData() || {} + + return ( + <div className={clsx('rb:group rb:relative rb:h-10 rb:w-20 rb:border rb:rounded-xl rb:flex rb:items-center rb:justify-center rb:text-[12px] rb:p-1 rb:box-border', { + 'rb:border-orange-500 rb:border-[3px] rb:bg-white rb:text-gray-700': data.isSelected, + 'rb:border-[#d1d5db] rb:bg-white rb:text-[#374151]': !data.isSelected + })}> + <span className="rb:overflow-hidden rb:whitespace-nowrap rb:text-ellipsis"> + {data.icon} {data.label} + </span> + </div> + ); +}; + +export default GroupStartNode; \ No newline at end of file diff --git a/web/src/views/Workflow/components/Nodes/IterationNode.tsx b/web/src/views/Workflow/components/Nodes/IterationNode.tsx new file mode 100644 index 00000000..a6c55138 --- /dev/null +++ b/web/src/views/Workflow/components/Nodes/IterationNode.tsx @@ -0,0 +1,98 @@ +import { useEffect } from 'react'; +import clsx from 'clsx'; +import { Dropdown } from 'antd'; +import { SmallDashOutlined } from '@ant-design/icons'; +import type { ReactShapeConfig } from '@antv/x6-react-shape'; +import { graphNodeLibrary } from '../../constant'; + +interface NodeData { + isSelected?: boolean; + type?: string; + label?: string; + icon?: string; + parentId?: string; + isGroup?: boolean; +} + +const IterationNode: ReactShapeConfig['component'] = ({ node, graph }) => { + const data = node.getData() as NodeData; + + useEffect(() => { + initNodes() + }, []) + + const initNodes = () => { + // 添加默认子节点 + const parentBBox = node.getBBox(); + const centerX = parentBBox.x + 24; // 默认节点宽度的一半 + const centerY = parentBBox.y + 50; // 默认节点高度的一半 + + const childNode1 = graph.addNode({ + ...graphNodeLibrary.groupStart, + x: centerX, + y: centerY, + data: { + type: 'default', + label: '开始', + // icon: '📌', + parentId: node.id, + isDefault: true // 标记为默认节点,不可删除 + }, + }); + const childNode2 = graph.addNode({ + ...graphNodeLibrary.addStart, + x: centerX + 150, + y: centerY, + data: { + type: 'default', + label: '添加节点', + icon: '+', + parentId: node.id, + }, + }); + node.addChild(childNode1) + node.addChild(childNode2) + } + + return ( + <div className={clsx('rb:group rb:border-2 rb:border-dashed rb:rounded-xl rb:relative rb:min-w-75 rb:min-h-50 rb:p-4', { + 'rb:border-orange-500 rb:border-[3px] rb:bg-white rb:text-gray-700': data?.isSelected, + 'rb:border-[#d1d5db] rb:bg-white rb:text-[#374151]': !data?.isSelected + })}> + {/* 标题区域 */} + <div className="rb:absolute rb:-top-3 rb:left-4 rb:bg-[#10b981] rb:rounded-[20px] rb:p-[8px_16px] rb:flex rb:items-center rb:gap-2 rb:text-white rb:text-[14px] rb:font-bold rb:z-10"> + <div className="rb:w-5 rb:h-5 rb:bg-[#FFFFFF] rb:rounded-sm rb:flex rb:items-center rb:justify-center rb:text-[12px] rb:text-[#10b981]"> + 🔁 + </div> + 迭代 + </div> + <Dropdown + menu={{items: [ + { + key: '1', + label: '删除', + }, + { + key: '2', + label: '复制', + }, + { + key: '3', + label: '删除', + } + ]}} + > + <SmallDashOutlined + className={clsx("rb:cursor-pointer rb:right-1 rb:top-1 rb:invisible rb:absolute rb:group-hover:visible", { + 'rb:visible': data.isSelected + })} + /> + </Dropdown> + + {/* 画布内容区域 */} + <div className="rb:mt-6 rb:min-h-37.5 rb:w-full rb:bg-[radial-gradient(circle,#e5e7eb_1px,transparent_1px)] rb:bg-size-[12px_12px]"></div> + </div> + ); +}; + +export default IterationNode; diff --git a/web/src/views/Workflow/components/Nodes/LoopNode.tsx b/web/src/views/Workflow/components/Nodes/LoopNode.tsx new file mode 100644 index 00000000..86e1ee5b --- /dev/null +++ b/web/src/views/Workflow/components/Nodes/LoopNode.tsx @@ -0,0 +1,98 @@ +import { useEffect } from 'react'; +import clsx from 'clsx'; +import { Dropdown } from 'antd'; +import { SmallDashOutlined } from '@ant-design/icons'; +import type { ReactShapeConfig } from '@antv/x6-react-shape'; +import { graphNodeLibrary } from '../../constant'; + +interface NodeData { + isSelected?: boolean; + type?: string; + label?: string; + icon?: string; + parentId?: string; + isGroup?: boolean; +} + +const LoopNode: ReactShapeConfig['component'] = ({ node, graph }) => { + const data = node.getData() as NodeData; + + useEffect(() => { + initNodes() + }, []) + + const initNodes = () => { + // 添加默认子节点 + const parentBBox = node.getBBox(); + const centerX = parentBBox.x + 24; // 默认节点宽度的一半 + const centerY = parentBBox.y + 50; // 默认节点高度的一半 + + const childNode1 = graph.addNode({ + ...graphNodeLibrary.groupStart, + x: centerX, + y: centerY, + data: { + type: 'default', + label: '开始', + // icon: '📌', + parentId: node.id, + isDefault: true // 标记为默认节点,不可删除 + }, + }); + const childNode2 = graph.addNode({ + ...graphNodeLibrary.addStart, + x: centerX + 150, + y: centerY, + data: { + type: 'default', + label: '添加节点', + icon: '+', + parentId: node.id, + }, + }); + node.addChild(childNode1) + node.addChild(childNode2) + } + + return ( + <div className={clsx('rb:group rb:border-2 rb:border-dashed rb:rounded-[12px] rb:relative rb:min-w-[300px] rb:min-h-[200px] rb:p-4', { + 'rb:border-orange-500 rb:border-[3px] rb:bg-white rb:text-gray-700': data?.isSelected, + 'rb:border-[#d1d5db] rb:bg-white rb:text-[#374151]': !data?.isSelected + })}> + {/* 标题区域 */} + <div className="rb:absolute rb:-top-3 rb:left-4 rb:bg-[#10b981] rb:rounded-[20px] rb:p-[8px_16px] rb:flex rb:items-center rb:gap-2 rb:text-white rb:text-[14px] rb:font-bold rb:z-10"> + <div className="rb:w-5 rb:h-5 rb:bg-[#FFFFFF] rb:rounded-sm rb:flex rb:items-center rb:justify-center rb:text-[12px] rb:text-[#10b981]"> + ♻️ + </div> + 循环 + </div> + <Dropdown + menu={{items: [ + { + key: '1', + label: '删除', + }, + { + key: '2', + label: '复制', + }, + { + key: '3', + label: '删除', + } + ]}} + > + <SmallDashOutlined + className={clsx("rb:cursor-pointer rb:right-1 rb:top-1 rb:invisible rb:absolute rb:group-hover:visible", { + 'rb:visible': data.isSelected + })} + /> + </Dropdown> + + {/* 画布内容区域 */} + <div className="rb:mt-6 rb:min-h-[150px] rb:w-full rb:bg-[radial-gradient(circle,#e5e7eb_1px,transparent_1px)] rb:bg-size-[12px_12px]"></div> + </div> + ); +}; + +export default LoopNode; diff --git a/web/src/views/Workflow/components/Nodes/NormalNode.tsx b/web/src/views/Workflow/components/Nodes/NormalNode.tsx new file mode 100644 index 00000000..80eae888 --- /dev/null +++ b/web/src/views/Workflow/components/Nodes/NormalNode.tsx @@ -0,0 +1,31 @@ +import clsx from 'clsx'; +import { useTranslation } from 'react-i18next' +import type { ReactShapeConfig } from '@antv/x6-react-shape'; + +const NormalNode: ReactShapeConfig['component'] = ({ node }) => { + const data = node?.getData() || {} + const { t } = useTranslation() + + return ( + <div className={clsx('rb:cursor-pointer rb:group rb:relative rb:h-16 rb:w-60 rb:p-2.5 rb:border rb:rounded-xl rb:bg-white rb:hover:shadow-[0px_2px_6px_0px_rgba(33,35,50,0.12)]', { + 'rb:border-[#155EEF]': data.isSelected, + 'rb:border-[#DFE4ED]': !data.isSelected + })}> + <div className="rb:flex rb:items-center rb:justify-between"> + <div className="rb:flex rb:items-center rb:gap-2 rb:flex-1"> + <img src={data.icon} className="rb:w-5 rb:h-5" /> + <div className="rb:wrap-break-word rb:line-clamp-1">{data.name ?? t(`workflow.${data.type}`)}</div> + </div> + + <div + className="rb:w-5 rb:h-5 rb:cursor-pointer rb:bg-cover rb:bg-[url('@/assets/images/deleteBorder.svg')] rb:hover:bg-[url('@/assets/images/deleteBg.svg')]" + onClick={() => {}} + ></div> + </div> + + <div className="rb:text-[#5B6167] rb:text-[12px] rb:leading-4 rb:mt-1.5">{t('workflow.clickToConfigure')}</div> + </div> + ); +}; + +export default NormalNode; \ No newline at end of file diff --git a/web/src/views/Workflow/components/Properties/MessageEditor.tsx b/web/src/views/Workflow/components/Properties/MessageEditor.tsx new file mode 100644 index 00000000..2714e45f --- /dev/null +++ b/web/src/views/Workflow/components/Properties/MessageEditor.tsx @@ -0,0 +1,89 @@ +import { type FC } from 'react'; +import { Input, Form, Space, Button, Row, Col, Select, type FormListOperation } from 'antd'; +import { MinusCircleOutlined, PlusOutlined } from '@ant-design/icons'; + +interface TextareaProps { + parentName?: string; + label?: string; + placeholder?: string; + value?: string; + onChange?: (value?: string) => void; +} +const roleOptions = [ + // { label: 'SYSTEM', value: 'SYSTEM' }, + { label: 'USER', value: 'USER' }, + { label: 'ASSISTANT', value: 'ASSISTANT' }, +] +const MessageEditor: FC<TextareaProps> = ({ + parentName = 'messages', + placeholder, +}) => { + const form = Form.useFormInstance(); + const values = form.getFieldsValue() + + const handleAdd = (add: FormListOperation['add']) => { + const list = values[parentName]; + const lastRole = list[list.length - 1].role + + add({ + role: lastRole === 'USER' ? 'ASSISTANT' : 'USER', + content: undefined + }) + } + + return ( + <div> + <Form.List name={parentName}> + {(fields, { add, remove }) => ( + <> + {fields.map(({ key, name, ...restField }) => { + const currentRole = values[parentName]?.[key].role || 'USER' + + return ( + <Space key={key} direction="vertical" className="rb:w-full rb:border rb:border-[#DFE4ED] rb:rounded-md rb:px-2 rb:py-1.5"> + <Row> + <Col span={12}> + <Form.Item + {...restField} + name={[name, 'role']} + noStyle + > + {currentRole === 'SYSTEM' + ? <Input disabled /> + : + <Select + options={roleOptions} + disabled={currentRole === 'SYSTEM'} + /> + } + </Form.Item> + </Col> + {currentRole !== 'SYSTEM' && <Col span={12}> + <div className="rb:h-full rb:flex rb:justify-end rb:items-center"> + <MinusCircleOutlined onClick={() => remove(name)} /> + </div> + </Col>} + </Row> + <Form.Item + {...restField} + name={[name, 'content']} + noStyle + > + <Input.TextArea placeholder={placeholder} /> + </Form.Item> + </Space> + ) + })} + <Form.Item className="rb:mt-3!"> + <Button type="dashed" onClick={() => handleAdd(add)} block icon={<PlusOutlined />}> + Add field + </Button> + </Form.Item> + </> + )} + </Form.List> + </div> + ); +}; + +export default MessageEditor; \ No newline at end of file diff --git a/web/src/views/Workflow/components/Properties/VariableEditModal.tsx b/web/src/views/Workflow/components/Properties/VariableEditModal.tsx new file mode 100644 index 00000000..92c31140 --- /dev/null +++ b/web/src/views/Workflow/components/Properties/VariableEditModal.tsx @@ -0,0 +1,180 @@ +import { forwardRef, useImperativeHandle, useState } from 'react'; +import { Form, Input, Select, InputNumber, Checkbox, Tag } from 'antd'; +import { useTranslation } from 'react-i18next'; + +import type { StartVariableItem, VariableEditModalRef } from '../../types' +import RbModal from '@/components/RbModal' +import SortableList from '@/components/SortableList' + +const FormItem = Form.Item; + +interface VariableEditModalProps { + refresh: (values: StartVariableItem) => void; +} + +const types = [ + 'string', + 'number', + 'boolean', + // 'array', + // 'object' +] +const variableType = { + string: 'string', + number: 'number', + boolean: 'boolean', + // array: 'array', + // object: 'object', +} + +const VariableEditModal = forwardRef<VariableEditModalRef, VariableEditModalProps>(({ + refresh +}, ref) => { + const { t } = useTranslation(); + const [visible, setVisible] = useState(false); + const [form] = Form.useForm<StartVariableItem>(); + const [loading, setLoading] = useState(false) + const [editVo, setEditVo] = useState<StartVariableItem | null>(null) + + const values = Form.useWatch([], form); + + // 封装取消方法,添加关闭弹窗逻辑 + const handleClose = () => { + setVisible(false); + form.resetFields(); + setLoading(false) + setEditVo(null) + }; + + const handleOpen = (variable?: StartVariableItem) => { + setVisible(true); + if (variable) { + setEditVo(variable || null) + form.setFieldsValue(variable) + } else { + form.resetFields(); + } + }; + // 封装保存方法,添加提交逻辑 + const handleSave = () => { + form.validateFields().then((values) => { + refresh({ + ...(editVo || {}), + ...values, + }) + handleClose() + }) + } + + // 暴露给父组件的方法 + useImperativeHandle(ref, () => ({ + handleOpen, + handleClose + })); + // 变量类型改变时,更新初始化其他字段值 + const handleChangeType = (value: StartVariableItem['type']) => { + if (value) { + form.setFieldsValue({ + type: value, + name: undefined, + description: undefined, + max_length: undefined, + default: undefined + }) + } + } + + return ( + <RbModal + title={editVo ? t('workflow.config.start.editVariable') : t('workflow.config.start.addVariable')} + open={visible} + onCancel={handleClose} + okText={t('common.save')} + onOk={handleSave} + confirmLoading={loading} + > + <Form + form={form} + layout="vertical" + scrollToFirstError={{ behavior: 'instant', block: 'end', focus: true }} + > + {/* 变量类型 */} + <FormItem + name="type" + label={t('workflow.config.start.variableType')} + rules={[{ required: true, message: t('common.pleaseSelect') }]} + > + <Select + placeholder={t('common.pleaseSelect')} + options={types.map(key => ({ + value: key, + label: t(`workflow.config.start.${key}`), + }))} + onChange={handleChangeType} + labelRender={(props) => <div className="rb:flex rb:justify-between rb:items-center">{props.label} <Tag color="blue">{variableType[props.value as keyof typeof variableType]}</Tag></div>} + optionRender={(props) => <div className="rb:flex rb:justify-between rb:items-center">{props.label} <Tag color="blue">{variableType[props.value as keyof typeof variableType]}</Tag></div>} + /> + </FormItem> + {/* 变量名称 */} + <FormItem + name="name" + label={t('workflow.config.start.variableName')} + rules={[ + { required: true, message: t('common.pleaseEnter') }, + { pattern: /^[a-zA-Z_][a-zA-Z0-9_]*$/, message: t('workflow.config.start.invalidVariableName') }, + ]} + > + <Input placeholder={t('common.enter')} /> + </FormItem> + + {/* 显示名称 */} + <FormItem + name="description" + label={t('workflow.config.start.description')} + rules={[{ required: true, message: t('common.pleaseEnter') }]} + > + <Input placeholder={t('common.enter')} /> + </FormItem> + + {/* 最大长度 */} + {['string'].includes(values?.type) && ( + <FormItem + name="max_length" + label={t('workflow.config.start.max_length')} + > + <InputNumber placeholder={t('common.enter')} style={{ width: '100%' }} /> + </FormItem> + )} + {/* 默认值 */} + {['string', 'number', 'boolean'].includes(values?.type) && ( + <FormItem + name="default" + label={t('workflow.config.start.default')} + > + {['string'].includes(values.type) && <Input placeholder={t('common.enter')} />} + {['number'].includes(values.type) && <InputNumber placeholder={t('common.enter')} style={{ width: '100%' }} />} + {['boolean'].includes(values.type) && <Select placeholder={t('common.pleaseSelect')} options={[{ value: true, label: t('workflow.config.start.defaultChecked') }, { value: false, label: t('workflow.config.start.notDefaultChecked') }]} />} + </FormItem> + )} + {/* 选项 */} + {['array'].includes(values?.type) && ( + <FormItem + name="options" + label={t('workflow.config.start.options')} + > + <SortableList /> + </FormItem> + )} + {/* 是否必填 */} + <FormItem + name="required" + valuePropName="checked" + > + <Checkbox>{t('workflow.config.start.required')}</Checkbox> + </FormItem> + </Form> + </RbModal> + ); +}); + +export default VariableEditModal; \ No newline at end of file diff --git a/web/src/views/Workflow/components/Properties/index.tsx b/web/src/views/Workflow/components/Properties/index.tsx new file mode 100644 index 00000000..97b6a6e4 --- /dev/null +++ b/web/src/views/Workflow/components/Properties/index.tsx @@ -0,0 +1,231 @@ +import { type FC, useEffect, useState, useRef } from "react"; +import { useTranslation } from 'react-i18next' +import { Graph, Node } from '@antv/x6'; +import { Form, Input, Button, Select, InputNumber, Slider, Space, Divider, App } from 'antd' + +import type { NodeConfig, NodeProperties, StartVariableItem, VariableEditModalRef } from '../../types' +import Empty from '@/components/Empty'; +import emptyIcon from '@/assets/images/workflow/empty.png' +import CustomSelect from "@/components/CustomSelect"; +import VariableEditModal from './VariableEditModal'; +import MessageEditor from './MessageEditor' + +interface PropertiesProps { + selectedNode?: Node | null; + setSelectedNode: (node: Node | null) => void; + graphRef: React.MutableRefObject<Graph | undefined>; + blankClick: () => void; + deleteEvent: () => void; + copyEvent: () => void; + parseEvent: () => void; +} +const Properties: FC<PropertiesProps> = ({ + selectedNode, +}) => { + const { t } = useTranslation() + const { modal } = App.useApp() + const [form] = Form.useForm<NodeConfig>(); + const [configs, setConfigs] = useState<Record<string,NodeConfig>>({} as Record<string,NodeConfig>) + const values = Form.useWatch([], form); + const variableModalRef = useRef<VariableEditModalRef>(null) + const [editIndex, setEditIndex] = useState<number | null>(null) + + useEffect(() => { + if (selectedNode && form) { + const { type = 'default', name = '', config } = selectedNode.getData() || {} + const initialValue: Record<string, any> = {} + Object.keys(config || {}).forEach(key => { + if (config && config[key] && 'defaultValue' in config[key]) { + initialValue[key] = config[key].defaultValue + } + }) + + form.setFieldsValue({ + type, + id: selectedNode.id, + name, + ...initialValue, + }) + setConfigs(config || {}) + } + }, [selectedNode, form]) + + const updateNodeLabel = (newLabel: string) => { + if (selectedNode && form) { + const nodeData = selectedNode.data as NodeProperties; + selectedNode.setAttrByPath('text/text', `${nodeData.icon} ${newLabel}`); + selectedNode.setData({ ...selectedNode.data, name: newLabel }); + } + }; + + useEffect(() => { + if (values && selectedNode) { + const { id, ...rest } = values + + Object.keys(values).forEach(key => { + if (selectedNode.data.config[key]) { + selectedNode.data.config[key].defaultValue = values[key] + } + }) + + selectedNode?.setData({ ...selectedNode.data, ...rest }) + } + }, [values, selectedNode]) + + const handleAddVariable = () => { + variableModalRef.current?.handleOpen() + } + const handleEditVariable = (index: number, vo: StartVariableItem) => { + variableModalRef.current?.handleOpen(vo) + setEditIndex(index) + } + const handleRefreshVariable = (value: StartVariableItem) => { + if (!selectedNode) return + if (editIndex !== null) { + const defaultValue = selectedNode.data.config.variables.defaultValue ?? [] + defaultValue[editIndex] = value + selectedNode.data.config.variables.defaultValue = [...defaultValue] + } else { + const defaultValue = selectedNode.data.config.variables.defaultValue ?? [] + selectedNode.data.config.variables.defaultValue = [...defaultValue, value] + } + selectedNode?.setData({ ...selectedNode.data}) + + setConfigs({ ...selectedNode.data.config}) + } + const handleDeleteVariable = (index: number, vo: StartVariableItem) => { + if (!selectedNode) return + + modal.confirm({ + title: t('common.confirmDeleteDesc', { name: vo.name }), + okText: t('common.delete'), + okType: 'danger', + onOk: () => { + const defaultValue = selectedNode.data.config.variables.defaultValue ?? [] + defaultValue.splice(index, 1) + selectedNode.data.config.variables.defaultValue = [...defaultValue] + + selectedNode?.setData({ ...selectedNode.data }) + + setConfigs({ ...selectedNode.data.config }) + } + }) + } + + return ( + <div className="rb:w-75 rb:fixed rb:right-0 rb:top-16 rb:bottom-0 rb:p-3"> + <div className="rb:font-medium rb:leading-5 rb:mb-3">{t('workflow.nodeProperties')}</div> + {!selectedNode + ? <Empty url={emptyIcon} size={140} className="rb:h-full rb:mx-15" title={t('workflow.empty')} /> + : <Form form={form} layout="vertical" className="rb:h-[calc(100%-20px)] rb:overflow-y-auto"> + <Form.Item name="name" label={t('workflow.nodeName')}> + <Input + placeholder={t('common.pleaseEnter')} + onChange={(e) => { + updateNodeLabel(e.target.value); + }} + /> + </Form.Item> + {configs && Object.keys(configs).length > 0 && Object.keys(configs).map((key) => { + const config = configs[key] || {} + + if (selectedNode.data.type === 'start' && key === 'variables' && config.type === 'define') { + return ( + <div key={key}> + <div className="rb:flex rb:items-center rb:justify-between rb:mb-2.75"> + <div className="rb:leading-5"> + {t(`workflow.config.${selectedNode.data.type}.${key}`)} + </div> + <Button style={{padding: '0 8px', height: '24px'}} onClick={handleAddVariable}>+{t('application.addVariables')}</Button> + </div> + + <Space size={4} direction="vertical" className="rb:w-full"> + {Array.isArray(config.defaultValue) && config.defaultValue?.map((vo, index) => + <div key={`${vo.name}}-${index}`} className="rb:p-[4px_8px] rb:text-[12px] rb:text-[#5B6167] rb:flex rb:items-center rb:justify-between rb:border rb:border-[#DFE4ED] rb:rounded-md rb:group rb:cursor-pointer"> + <span>{vo.name}·{vo.description}</span> + + <div className="rb:group-hover:hidden rb:flex rb:items-center rb:gap-1"> + {vo.required && <span>{t('workflow.config.start.required')}</span>} + {vo.type} + </div> + <Space className="rb:hidden! rb:group-hover:flex!"> + <div + className="rb:w-4.5 rb:h-4.5 rb:cursor-pointer rb:bg-cover rb:bg-[url('@/assets/images/editBorder.svg')] rb:hover:bg-[url('@/assets/images/editBg.svg')]" + onClick={() => handleEditVariable(index, vo)} + ></div> + <div + className="rb:w-4.5 rb:h-4.5 rb:cursor-pointer rb:bg-cover rb:bg-[url('@/assets/images/deleteBorder.svg')] rb:hover:bg-[url('@/assets/images/deleteBg.svg')]" + onClick={() => handleDeleteVariable(index, vo)} + ></div> + </Space> + </div> + )} + <Divider size="small" /> + {config.sys?.map((vo, index) => + <div key={index} className="rb:p-[4px_8px] rb:text-[12px] rb:text-[#5B6167] rb:flex rb:items-center rb:justify-between rb:border rb:border-[#DFE4ED] rb:rounded-md"> + <div> + <span>sys.{vo.name}</span> + </div> + {vo.type} + </div> + )} + </Space> + </div> + ) + } + + if (selectedNode.data.type === 'llm' && key === 'messages' && config.type === 'define') { + return ( + <Form.Item key={key} name={key}> + <MessageEditor /> + </Form.Item> + ) + } + + if (config.type === 'define') { + return null + } + + return ( + <Form.Item + key={key} + name={key} + label={t(`workflow.config.${selectedNode.data.type}.${key}`)} + > + {config.type === 'input' + ? <Input placeholder={t('common.pleaseEnter')} /> + : config.type === 'textarea' + ? <Input.TextArea placeholder={t('common.pleaseEnter')} /> + : config.type === 'select' + ? <Select + options={config.options} + placeholder={t('common.pleaseSelect')} + /> + : config.type === 'inputNumber' + ? <InputNumber /> + : config.type === 'slider' + ? <Slider min={config.min} max={config.max} step={config.step} /> + : config.type === 'customSelect' + ? <CustomSelect + url={config.url as string} + params={config.params} + hasAll={false} + valueKey={config.valueKey} + labelKey={config.labelKey} + /> + : null + } + </Form.Item> + ) + })} + </Form> + } + + <VariableEditModal + ref={variableModalRef} + refresh={handleRefreshVariable} + /> + </div> + ); +}; +export default Properties; \ No newline at end of file diff --git a/web/src/views/Workflow/constant.ts b/web/src/views/Workflow/constant.ts new file mode 100644 index 00000000..96fd89fc --- /dev/null +++ b/web/src/views/Workflow/constant.ts @@ -0,0 +1,339 @@ +import LoopNode from './components/Nodes/LoopNode'; +import IterationNode from './components/Nodes/IterationNode'; +import NormalNode from './components/Nodes/NormalNode'; +import ConditionNode from './components/Nodes/ConditionNode'; +import GroupStartNode from './components/Nodes/GroupStartNode'; +import AddNode from './components/Nodes/AddNode' +import type { PortMetadata, GroupMetadata } from '@antv/x6/lib/model/port'; +import type { ReactShapeConfig } from '@antv/x6-react-shape'; + +// Import workflow icons +import startIcon from '@/assets/images/workflow/start.png'; +import endIcon from '@/assets/images/workflow/end.png'; +import answerIcon from '@/assets/images/workflow/answer.png'; +import llmIcon from '@/assets/images/workflow/llm.png'; +import modelSelectionIcon from '@/assets/images/workflow/model_selection.png'; +import modelVotingIcon from '@/assets/images/workflow/model_voting.png'; +import ragIcon from '@/assets/images/workflow/rag.png'; +import classificationIcon from '@/assets/images/workflow/classification.png'; +import parameterExtractionIcon from '@/assets/images/workflow/parameter_extraction.png'; +import taskPlanningIcon from '@/assets/images/workflow/task_planning.png'; +import reasoningControlIcon from '@/assets/images/workflow/reasoning_control.png'; +import selfReflectionIcon from '@/assets/images/workflow/self_reflection.png'; +import memoryEnhancementIcon from '@/assets/images/workflow/memory_enhancement.png'; +import agentSchedulingIcon from '@/assets/images/workflow/agent_scheduling.png'; +import agentCollaborationIcon from '@/assets/images/workflow/agent_collaboration.png'; +import agentArbitrationIcon from '@/assets/images/workflow/agent_arbitration.png'; +import conditionIcon from '@/assets/images/workflow/condition.png'; +import iterationIcon from '@/assets/images/workflow/iteration.png'; +import loopIcon from '@/assets/images/workflow/loop.png'; +import parallelIcon from '@/assets/images/workflow/parallel.png'; +import aggregatorIcon from '@/assets/images/workflow/aggregator.png'; +import httpRequestIcon from '@/assets/images/workflow/http_request.png'; +import toolsIcon from '@/assets/images/workflow/tools.png'; +import codeExecutionIcon from '@/assets/images/workflow/code_execution.png'; +import templateRenderingIcon from '@/assets/images/workflow/template_rendering.png'; +import sensitiveDetectionIcon from '@/assets/images/workflow/sensitive_detection.png'; +import outputAuditIcon from '@/assets/images/workflow/output_audit.png'; +import selfOptimizationIcon from '@/assets/images/workflow/self_optimization.png'; +import processEvolutionIcon from '@/assets/images/workflow/process_evolution.png'; + +import { getModelListUrl } from '@/api/models' +import type { NodeLibrary } from './types' + +export const nodeLibrary: NodeLibrary[] = [ + { + category: "coreNode", + nodes: [ + { type: "start", icon: startIcon, + config: { + variables: { + type: 'define', + sys: [ + { + name: "message", + type: "string", + readonly: true + }, + { + name: "conversation_id", + type: "string", + readonly: true + }, + { + name: "execution_id", + type: "string", + readonly: true + }, + { + name: "workspace_id", + type: "string", + readonly: true + }, + { + name: "user_id", + type: "string", + readonly: true + }, + ], + defaultValue: [] + } + } + }, + { + type: "end", icon: endIcon, + config: { + output: { + type: 'textarea' + } + } + }, + // { type: "answer", icon: answerIcon }, + ] + }, + { + category: "aiAndCognitiveProcessing", + nodes: [ + { type: "llm", icon: llmIcon, + config: { + model_id: { + type: 'customSelect', + url: getModelListUrl, + params: { type: 'llm,chat' }, // llm/chat + valueKey: 'id', + labelKey: 'name', + }, + temperature: { + type: 'slider', + max: 2, + min: 0, + step: 0.1, + defaultValue: 0.7 + }, + max_tokens: { + type: 'slider', + max: 32000, + min: 256, + step: 1, + defaultValue: 2000 + }, + messages: { + type: 'define', + defaultValue: [ + { + role: 'SYSTEM', + content: undefined, + readonly: true + }, + ] + } + } + }, + // { type: "model_selection", icon: modelSelectionIcon }, + // { type: "model_voting", icon: modelVotingIcon }, + // { type: "rag", icon: ragIcon }, + // { type: "classification", icon: classificationIcon }, + // { type: "parameter_extraction", icon: parameterExtractionIcon } + ] + }, + /* + { + category: "cognitiveUpgrading", + nodes: [ + { type: "task_planning", icon: taskPlanningIcon }, + { type: "reasoning_control", icon: reasoningControlIcon }, + { type: "self_reflection", icon: selfReflectionIcon }, + { type: "memory_enhancement", icon: memoryEnhancementIcon } + ] + }, + { + category: "agentCollaborationNode", + nodes: [ + { type: "agent_scheduling", icon: agentSchedulingIcon }, + { type: "agent_collaboration", icon: agentCollaborationIcon }, + { type: "agent_arbitration", icon: agentArbitrationIcon } + ] + }, + { + category: "flowControl", + nodes: [ + { type: "condition", icon: conditionIcon }, + { type: "iteration", icon: iterationIcon }, + { type: "loop", icon: loopIcon }, + { type: "parallel", icon: parallelIcon }, + { type: "aggregator", icon: aggregatorIcon } + ] + }, + { + category: "externalInteraction", + nodes: [ + { type: "http_request", icon: httpRequestIcon }, + { type: "tools", icon: toolsIcon }, + { type: "code_execution", icon: codeExecutionIcon }, + { type: "template_rendering", icon: templateRenderingIcon } + ] + }, + { + category: "safetyAndCompliance", + nodes: [ + { type: "sensitive_detection", icon: sensitiveDetectionIcon }, + { type: "output_audit", icon: outputAuditIcon } + ] + }, + { + category: "evolutionAndGovernance", + nodes: [ + { type: "self_optimization", icon: selfOptimizationIcon }, + { type: "process_evolution", icon: processEvolutionIcon } + ] + }, + */ +]; + +// 节点注册库 +export const nodeRegisterLibrary: ReactShapeConfig[] = [ + { + shape: 'loop-node', + width: 200, + height: 200, + component: LoopNode, + }, + { + shape: 'iteration-node', + width: 200, + height: 200, + component: IterationNode, + }, + { + shape: 'normal-node', + width: 120, + height: 40, + component: NormalNode, + }, + { + shape: 'condition-node', + width: 200, + height: 100, + component: ConditionNode, + }, + { + shape: 'group-start-node', + width: 120, + height: 40, + component: GroupStartNode, + }, + { + shape: 'add-node', + width: 120, + height: 40, + component: AddNode, + }, +]; + +interface PortsConfig { + groups?: GroupMetadata; + items?: PortMetadata[]; +} + +interface NodeConfig { + width: number; + height: number; + shape: string; + ports?: PortsConfig; +} + +const portAttrs = { + circle: { + r: 4, magnet: true, stroke: '#155EEF', strokeWidth: 2, fill: '#155EEF', + }, +} +const defaultPortGroups = { + // top: { position: 'top', attrs: portAttrs }, + right: { position: 'right', attrs: portAttrs }, + // bottom: { position: 'bottom', attrs: portAttrs }, + left: { position: 'left', attrs: portAttrs }, +} +const defaultPortItems = [ + // { group: 'top' }, + { group: 'right' }, + // { group: 'bottom' }, + { group: 'left' } +]; +export const graphNodeLibrary: Record<string, NodeConfig> = { + iteration: { + width: 240, + height: 200, + shape: 'iteration-node', + ports: { + groups: defaultPortGroups, + items: defaultPortItems, + }, + }, + loop: { + width: 240, + height: 200, + shape: 'loop-node', + ports: { + groups: defaultPortGroups, + items: defaultPortItems, + }, + }, + condition: { + width: 240, + height: 200, + shape: 'condition-node', + ports: { + groups: defaultPortGroups, + items: [ + { group: 'left' }, + { group: 'right', id: 'if_1', attrs: {text: { text: 'IF' }} }, + { group: 'right', id: 'else_2', attrs: {text: { text: 'ELSE' }} } + ], + }, + }, + start: { + width: 240, + height: 64, + shape: 'normal-node', + ports: { + groups: {right: { position: 'right', attrs: portAttrs }}, + items: [{ group: 'right' }], + }, + }, + end: { + width: 240, + height: 64, + shape: 'normal-node', + ports: { + groups: {left: { position: 'left', attrs: portAttrs }}, + items: [{ group: 'left' }], + }, + }, + default: { + width: 240, + height: 64, + shape: 'normal-node', + ports: { + groups: defaultPortGroups, + items: defaultPortItems, + }, + }, + groupStart: { + width: 80, + height: 40, + shape: 'group-start-node', + ports: { + groups: {right: { position: 'right', attrs: portAttrs }}, + items: [{ group: 'right' }], + }, + }, + addStart: { + width: 80, + height: 40, + shape: 'add-node', + ports: { + groups: {left: { position: 'left', attrs: portAttrs }}, + items: [{ group: 'left' }], + }, + } +} \ No newline at end of file diff --git a/web/src/views/Workflow/hooks/useWorkflowGraph.ts b/web/src/views/Workflow/hooks/useWorkflowGraph.ts new file mode 100644 index 00000000..26b1eacc --- /dev/null +++ b/web/src/views/Workflow/hooks/useWorkflowGraph.ts @@ -0,0 +1,741 @@ +import { useRef, useEffect, useState } from 'react'; +import { useParams } from 'react-router-dom'; +import { useTranslation } from 'react-i18next'; +import { App } from 'antd' +import { Graph, Node, MiniMap, Snapline, Clipboard, Keyboard, type Edge } from '@antv/x6'; +import { register } from '@antv/x6-react-shape'; + +import { nodeRegisterLibrary, graphNodeLibrary, nodeLibrary } from '../constant'; +import type { WorkflowConfig, NodeProperties } from '../types'; +import { getWorkflowConfig, saveWorkflowConfig } from '@/api/application' + +export interface UseWorkflowGraphProps { + containerRef: React.RefObject<HTMLDivElement>; + miniMapRef: React.RefObject<HTMLDivElement>; +} + +export interface UseWorkflowGraphReturn { + config: WorkflowConfig | null; + graphRef: React.MutableRefObject<Graph | undefined>; + selectedNode: Node | null; + setSelectedNode: React.Dispatch<React.SetStateAction<Node | null>>; + zoomLevel: number; + setZoomLevel: React.Dispatch<React.SetStateAction<number>>; + canUndo: boolean; + canRedo: boolean; + isHandMode: boolean; + setIsHandMode: React.Dispatch<React.SetStateAction<boolean>>; + onUndo: () => void; + onRedo: () => void; + onDrop: (event: React.DragEvent) => void; + blankClick: () => void; + deleteEvent: () => boolean | void; + copyEvent: () => boolean | void; + parseEvent: () => boolean | void; + handleSave: (flag?: boolean) => Promise<any>; +} + +const edge_color = '#155EEF'; +const edge_selected_color = '#4DA8FF' + +export const useWorkflowGraph = ({ + containerRef, + miniMapRef, +}: UseWorkflowGraphProps): UseWorkflowGraphReturn => { + const { id } = useParams(); + const { message } = App.useApp(); + const { t } = useTranslation() + const graphRef = useRef<Graph>(); + const [selectedNode, setSelectedNode] = useState<Node | null>(null); + const [zoomLevel, setZoomLevel] = useState(1); + const historyRef = useRef<{ undoStack: string[], redoStack: string[] }>({ undoStack: [], redoStack: [] }); + const [canUndo, setCanUndo] = useState(false); + const [canRedo, setCanRedo] = useState(false); + const [isHandMode, setIsHandMode] = useState(false); + const [config, setConfig] = useState<WorkflowConfig | null>(null); + + useEffect(() => { + getConfig() + }, [id]) + const getConfig = () => { + if (!id) return + getWorkflowConfig(id) + .then(res => { + setConfig(res as WorkflowConfig) + }) + } + + useEffect(() => { + initWorkflow() + }, [config, graphRef.current]) + + const initWorkflow = () => { + if (!config || !graphRef.current) return + const { nodes, edges } = config + + if (nodes.length) { + const nodeList = nodes.map(node => { + const { id, type, name, position, config } = node + let nodeLibraryConfig = [...nodeLibrary] + .flatMap(category => category.nodes) + .find(n => n.type === type) + nodeLibraryConfig = JSON.parse(JSON.stringify({ config: {}, ...nodeLibraryConfig })) as NodeProperties + + if (nodeLibraryConfig?.config) { + Object.keys(nodeLibraryConfig.config).forEach(key => { + if (nodeLibraryConfig.config && nodeLibraryConfig.config[key]) { + nodeLibraryConfig.config[key].defaultValue = config[key] + } + }) + } + const nodeConfig = { + ...(graphNodeLibrary[type] ?? graphNodeLibrary.default), + id, + type, + name, + data: { ...node, ...nodeLibraryConfig}, + ...position, + } + return nodeConfig + }) + graphRef.current?.addNodes(nodeList) + } + if (edges.length) { + const edgeList = edges.map(edge => { + const { source, target } = edge + const sourceCell = graphRef.current?.getCellById(source) + const targetCell = graphRef.current?.getCellById(target) + + if (sourceCell && targetCell) { + const sourcePorts = (sourceCell as Node).getPorts() + const targetPorts = (targetCell as Node).getPorts() + + const edgeConfig = { + source: { + cell: sourceCell.id, + port: sourcePorts.find((port: any) => port.group === 'right')?.id || 'right' + }, + target: { + cell: targetCell.id, + port: targetPorts.find((port: any) => port.group === 'left')?.id || 'left' + }, + // label, + attrs: { + line: { + stroke: edge_color, + strokeWidth: 1, + targetMarker: { + name: 'block', + size: 8, + }, + }, + }, + } + + return edgeConfig + } + return null + }) + graphRef.current.addEdges(edgeList.filter(vo => vo !== null)) + } + } + + const saveState = () => { + if (!graphRef.current) return; + const state = JSON.stringify(graphRef.current.toJSON()); + historyRef.current.undoStack.push(state); + historyRef.current.redoStack = []; + if (historyRef.current.undoStack.length > 50) { + historyRef.current.undoStack.shift(); + } + updateHistoryState(); + }; + + const updateHistoryState = () => { + setCanUndo(historyRef.current.undoStack.length > 1); + setCanRedo(historyRef.current.redoStack.length > 0); + }; + + // 撤销 + const onUndo = () => { + if (!graphRef.current || historyRef.current.undoStack.length === 0) return; + const { undoStack = [], redoStack = [] } = historyRef.current + + const currentState = JSON.stringify(graphRef.current.toJSON()); + const prevState = undoStack[undoStack.length - 2]; + + historyRef.current.redoStack = [...redoStack, currentState] + historyRef.current.undoStack = undoStack.slice(0, undoStack.length - 1) + graphRef.current.fromJSON(JSON.parse(prevState)); + updateHistoryState(); + }; + // 重做 + const onRedo = () => { + if (!graphRef.current || historyRef.current.redoStack.length === 0) return; + const { undoStack = [], redoStack = [] } = historyRef.current + + const nextState = redoStack[redoStack.length - 1]; + + historyRef.current.undoStack = [...undoStack, nextState] + historyRef.current.redoStack = redoStack.slice(0, redoStack.length - 1) + graphRef.current.fromJSON(JSON.parse(nextState)); + updateHistoryState(); + }; + // 使用插件 + const setupPlugins = () => { + if (!graphRef.current || !miniMapRef.current) return; + // 添加小地图 + graphRef.current.use( + new MiniMap({ + container: miniMapRef.current, + width: 100, + height: 80, + padding: 5, + }), + ); + graphRef.current.use( + new Snapline({ + enabled: true, + }), + ); + graphRef.current.use( + new Clipboard({ + enabled: true, + useLocalStorage: true, + }), + ); + graphRef.current.use( + new Keyboard({ + enabled: true, + global: true, + }), + ); + }; + // 显示/隐藏连接桩 + const showPorts = (show: boolean) => { + const container = containerRef.current!; + const ports = container.querySelectorAll('.x6-port-body') as NodeListOf<SVGElement>; + for (let i = 0, len = ports.length; i < len; i += 1) { + ports[i].style.visibility = show ? 'visible' : 'hidden'; + } + }; + // 节点选择事件 + const nodeClick = ({ node }: { node: Node }) => { + const nodes = graphRef.current?.getNodes(); + + nodes?.forEach(vo => { + const data = vo.getData(); + if (data.isSelected) { + vo.setData({ + ...data, + isSelected: false, + }); + } + }); + node.setData({ + ...node.getData(), + isSelected: true, + }); + setSelectedNode(node); + }; + // 连线选择事件 + const edgeClick = ({ edge }: { edge: Edge }) => { + edge.setAttrByPath('line/stroke', edge_selected_color); + clearNodeSelect(); + }; + // 清空选中节点 + const clearNodeSelect = () => { + const nodes = graphRef.current?.getNodes(); + + nodes?.forEach(node => { + const data = node.getData(); + if (data.isSelected) { + node.setData({ + ...data, + isSelected: false, + }); + } + }); + setSelectedNode(null); + }; + // 清空选中连线 + const clearEdgeSelect = () => { + graphRef.current?.getEdges().forEach(e => { + e.setAttrByPath('line/stroke', edge_color); + e.setAttrByPath('line/strokeWidth', 1); + }); + }; + // 画布点击事件,取消选择 + const blankClick = () => { + clearNodeSelect(); + clearEdgeSelect(); + graphRef.current?.cleanSelection(); + }; + // 画布缩放事件 + const scaleEvent = ({ sx }: { sx: number }) => { + setZoomLevel(sx); + }; + // 节点移动事件 + const nodeMoved = ({ node }: { node: Node }) => { + const parentId = node.getData()?.parentId; + if (parentId) { + const parentNode = graphRef.current!.getNodes().find(n => n.id === parentId); + if (parentNode?.getData()?.isGroup) { + // 获取父节点和子节点的边界框 + const parentBBox = parentNode.getBBox(); + const childBBox = node.getBBox(); + + // 计算父节点的内边距 + const padding = 24; + const headerHeight = 50; + + // 计算子节点允许的最小和最大位置 + const minX = parentBBox.x + padding; + const minY = parentBBox.y + padding + headerHeight; + const maxX = parentBBox.x + parentBBox.width - padding - childBBox.width; + const maxY = parentBBox.y + parentBBox.height - padding - childBBox.height; + + // 限制子节点在父节点内移动 + let newX = childBBox.x; + let newY = childBBox.y; + + if (newX < minX) newX = minX; + if (newY < minY) newY = minY; + if (newX > maxX) newX = maxX; + if (newY > maxY) newY = maxY; + + // 如果子节点位置被限制,更新其位置 + if (newX !== childBBox.x || newY !== childBBox.y) { + node.setPosition(newX, newY); + } + } + } + }; + // 复制快捷键事件 + const copyEvent = () => { + if (!graphRef.current) return false; + const selectedNodes = graphRef.current.getNodes().filter(node => node.getData()?.isSelected); + if (selectedNodes.length) { + graphRef.current.copy(selectedNodes); + } + return false; + }; + // 粘贴快捷键事件 + const parseEvent = () => { + if (!graphRef.current?.isClipboardEmpty()) { + graphRef.current?.paste({ offset: 32 }); + blankClick(); + } + return false; + }; + // 撤销快捷键事件 + const undoEvent = () => { + if (canUndo) { + onUndo(); + } + return false; + }; + // 重做快捷键事件 + const redoEvent = () => { + if (canRedo) { + onRedo(); + } + return false; + }; + // 删除选中的节点和连线事件 + const deleteEvent = () => { + if (!graphRef.current) return; + const nodes = graphRef.current?.getNodes(); + const edges = graphRef.current?.getEdges(); + const cells: (Node | Edge)[] = []; + const nodesToDelete: Node[] = []; + const parentNodesToUpdate: Node[] = []; + + // 首先收集所有选中的节点,但排除默认子节点 + nodes?.forEach(node => { + const data = node.getData(); + // 如果节点是默认子节点,不允许单独删除 + if (data.isSelected && !data.isDefault) { + nodesToDelete.push(node); + } + }); + + // 收集与选中节点相关的连线 + edges?.forEach(edge => { + const attrs = edge.getAttrs() + if (attrs.line.stroke === edge_selected_color) { + cells.push(edge) + } + const sourceId = edge.getSourceCellId(); + const targetId = edge.getTargetCellId(); + if (sourceId && targetId) { + const sourceNode = nodes?.find(n => n.id === sourceId); + const targetNode = nodes?.find(n => n.id === targetId); + if (sourceNode?.getData()?.isSelected || targetNode?.getData()?.isSelected) { + cells.push(edge); + } + } + }) + + // 对于每个选中的节点 + if (nodesToDelete.length > 0) { + nodesToDelete.forEach(nodeToDelete => { + // 检查是否为子节点 + const nodeData = nodeToDelete.getData(); + if (nodeData.parentId) { + // 找到对应的父节点 + const parentNode = nodes?.find(n => n.id === nodeData.parentId); + if (parentNode) { + // 使用removeChild方法删除子节点 + parentNode.removeChild(nodeToDelete); + parentNodesToUpdate.push(parentNode); + } + } + // 检查是否为 LoopNode、IterationNode 或 SubGraphNode + else if (nodeToDelete.shape === 'loop-node' || nodeToDelete.shape === 'iteration-node' || nodeToDelete.shape === 'subgraph-node') { + // 查找所有 parentId 为当前节点 id 的子节点 + nodes?.forEach(node => { + const data = node.getData(); + if (data.parentId === nodeToDelete.id) { + cells.push(node); + } + }); + // 添加父节点到删除列表 + cells.push(nodeToDelete); + } + // 普通节点 + else { + cells.push(nodeToDelete); + } + }); + blankClick(); + } + + // 删除所有收集的节点和连线 + if (cells.length > 0) { + graphRef.current?.removeCells(cells); + } + return false; + }; + + // 调整画布大小 + const handleResize = () => { + if (containerRef.current && graphRef.current) { + graphRef.current.resize(containerRef.current.offsetWidth, containerRef.current.offsetHeight); + } + }; + + // 初始化 + const init = () => { + if (!containerRef.current || !miniMapRef.current) return; + + // 注册React形状 + nodeRegisterLibrary.forEach((item) => { + register(item); + }); + + const container = containerRef.current; + graphRef.current = new Graph({ + container, + background: { + color: '#F0F3F8', + }, + // width: container.clientWidth || 800, + // height: container.clientHeight || 600, + autoResize: true, + grid: { + visible: true, + type: 'dot', + size: 10, + args: { + color: '#939AB1', // 网点颜色 + thickness: 1, // 网点大小 + } + }, + panning: false, + mousewheel: { + enabled: true, + modifiers: ['ctrl', 'meta'], + }, + connecting: { + // router: 'orth', + // router: 'manhattan', + connector: { + name: 'rounded', + args: { + radius: 8, + }, + }, + anchor: 'center', + connectionPoint: 'anchor', + allowBlank: false, + allowNode: false, + allowEdge: false, + highlight: true, + snap: { + radius: 20, + }, + createEdge() { + return graphRef.current?.createEdge({ + attrs: { + line: { + stroke: edge_color, + strokeWidth: 1, + }, + }, + zIndex: 0, + }); + }, + validateConnection({ sourceCell, targetCell, targetMagnet }) { + if (!targetMagnet) return false; + + const sourceType = sourceCell?.getData()?.type; + const targetType = targetCell?.getData()?.type; + + // 开始节点不能作为连线的终点 + if (targetType === 'start') return false; + + // 结束节点不能作为连线的起点 + if (sourceType === 'end') return false; + + // 获取源节点和目标节点的父节点ID + const sourceParentId = sourceCell?.getData()?.parentId; + const targetParentId = targetCell?.getData()?.parentId; + + // 验证父子节点关系: + // 1. 如果两个节点都有父节点ID,必须相同才能连线 + // 2. 如果一个有父节点ID,另一个没有,不能连线 + // 3. 如果两个都没有父节点ID,可以正常连线 + if (sourceParentId && targetParentId) { + // 同一父节点下的子节点可以互相连线 + return sourceParentId === targetParentId; + } else if (sourceParentId || targetParentId) { + // 一个有父节点,一个没有,不能连线 + return false; + } + + return true; + }, + }, + embedding: { + enabled: true, + validate (this, { parent }) { + const parentData = parent.getData() + return parentData.type === 'iteration' || parentData.type === 'loop' + } + }, + translating: { + restrict(view) { + if (!view) return null + const cell = view.cell + if (cell.isNode()) { + const parent = cell.getParent() + if (parent) { + return parent.getBBox() + } + } + + return null + }, + }, + }); + // 使用插件 + setupPlugins(); + // 监听连线mouseleave事件 + graphRef.current.on('edge:mouseleave', ({ edge }: { edge: Edge }) => { + if (edge.getAttrByPath('line/stroke') !== edge_selected_color) { + edge.setAttrByPath('line/stroke', edge_color); + edge.setAttrByPath('line/strokeWidth', 1); + } + }); + // 监听节点选择事件 + graphRef.current.on('node:click', nodeClick); + // 监听连线选择事件 + graphRef.current.on('edge:click', edgeClick); + // 监听画布点击事件,取消选择 + graphRef.current.on('blank:click', blankClick); + // 监听缩放事件 + graphRef.current.on('scale', scaleEvent); + // 监听节点移动事件 + graphRef.current.on('node:moved', nodeMoved); + + // 监听画布变化事件 + const events = [ + 'node:added', + 'node:removed', + 'edge:added', + 'edge:removed', + ]; + events.forEach(event => { + graphRef.current!.on(event, () => { + console.log('event', event); + setTimeout(() => saveState(), 50); + }); + }); + + // 监听撤销键盘事件 + graphRef.current.bindKey(['ctrl+z', 'cmd+z'], undoEvent); + // 监听重做键盘事件 + graphRef.current.bindKey(['ctrl+shift+z', 'cmd+shift+z', 'ctrl+y', 'cmd+y'], redoEvent); + // 监听复制键盘事件 + graphRef.current.bindKey(['ctrl+c', 'cmd+c'], copyEvent); + // 监听粘贴键盘事件 + graphRef.current.bindKey(['ctrl+v', 'cmd+v'], parseEvent); + // 删除选中的节点和连线 + graphRef.current.bindKey(['ctrl+d', 'cmd+d', 'delete', 'backspace'], deleteEvent); + + // 保存初始状态 + setTimeout(() => saveState(), 100); + // init window hook + (window as Window & { __x6_instances__?: Graph[] }).__x6_instances__ = []; + (window as Window & { __x6_instances__?: Graph[] }).__x6_instances__?.push(graphRef.current); + }; + + useEffect(() => { + if (!containerRef.current || !miniMapRef.current) return; + init(); + + window.addEventListener('resize', handleResize); + return () => { + window.removeEventListener('resize', handleResize); + graphRef.current?.dispose(); + }; + }, []); + + const onDrop = (event: React.DragEvent) => { + if (!graphRef.current) return; + event.preventDefault(); + const dragData = JSON.parse(event.dataTransfer.getData('application/json')); + const graph = graphRef.current; + if (!graph) return; + + const point = graphRef.current.clientToLocal(event.clientX, event.clientY); + + // 获取节点库中的原始配置,避免config数据串联 + let nodeLibraryConfig = [...nodeLibrary] + .flatMap(category => category.nodes) + .find(n => n.type === dragData.type); + nodeLibraryConfig = { config: {}, ...nodeLibraryConfig } as NodeProperties; + + // 创建干净的节点数据,只保留必要的字段 + const cleanNodeData = { + id: `${dragData.type}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`, + name: t(`workflow.${dragData.type}`), + ...nodeLibraryConfig + }; + + if (dragData.type === 'loop' || dragData.type === 'iteration') { + graphRef.current.addNode({ + ...graphNodeLibrary[dragData.type], + x: point.x - 150, + y: point.y - 100, + data: { ...cleanNodeData, isGroup: true }, + }); + } else if (dragData.type === 'condition') { + // 创建条件节点 + graphRef.current.addNode({ + ...graphNodeLibrary[dragData.type], + x: point.x - 100, + y: point.y - 60, + data: { ...cleanNodeData, elifCount: 0 }, + }); + } else { + // 检查是否放置在群组内 + const groups = graphRef.current.getNodes().filter(node => { + const shape = node.shape; + return shape === 'loop-node' || shape === 'iteration-node' || shape === 'subgraph-node'; + }); + let parentGroup = null; + + for (const group of groups) { + const bbox = group.getBBox(); + if (point.x >= bbox.x && point.x <= bbox.x + bbox.width && + point.y >= bbox.y && point.y <= bbox.y + bbox.height) { + parentGroup = group; + break; + } + } + + const childNode = graphRef.current.addNode({ + ...(graphNodeLibrary[dragData.type] || graphNodeLibrary.default), + x: point.x - 60, + y: point.y - 20, + data: { ...cleanNodeData, parentId: parentGroup?.id }, + }); + parentGroup?.addChild(childNode); + } + }; + // 保存workflow配置 + const handleSave = (flag = true) => { + if (!graphRef.current || !config) return Promise.resolve() + return new Promise((resolve, reject) => { + const nodes = graphRef.current?.getNodes() || []; + const edges = graphRef.current?.getEdges() || [] + + const params = { + ...config, + nodes: nodes.map((node: Node) => { + const data = node.getData(); + const position = node.getPosition(); + const config: Record<string, any> = {} + + if (data.config) { + Object.keys(data.config).forEach(key => { + if (data.config[key] && 'defaultValue' in data.config[key]) { + config[key] = data.config[key].defaultValue + } + }) + } + + return { + id: data.id || node.id, + type: data.type, + name: data.name, + position: { + x: position.x, + y: position.y, + }, + config: config + }; + }), + edges: edges.map((edge: Edge) => { + return { + source: edge.getSourceCellId(), + target: edge.getTargetCellId(), + // label: edge.getAttrs()?.label?.text, + }; + }), + } + saveWorkflowConfig(config.app_id, params as WorkflowConfig) + .then(() => { + if (flag) { + message.success(t('common.saveSuccess')) + } + resolve(true) + }).catch(error => { + reject(error) + }) + }) + } + + return { + config, + graphRef, + selectedNode, + setSelectedNode, + zoomLevel, + setZoomLevel, + canUndo, + canRedo, + isHandMode, + setIsHandMode, + onUndo, + onRedo, + onDrop, + blankClick, + deleteEvent, + copyEvent, + parseEvent, + handleSave + }; +}; diff --git a/web/src/views/Workflow/index.tsx b/web/src/views/Workflow/index.tsx new file mode 100644 index 00000000..3bb6fa49 --- /dev/null +++ b/web/src/views/Workflow/index.tsx @@ -0,0 +1,110 @@ +import { forwardRef, useRef, useImperativeHandle, useState } from 'react'; +import clsx from 'clsx'; + +import NodeLibrary from './components/NodeLibrary' +import Properties from './components/Properties'; +import CanvasToolbar from './components/CanvasToolbar'; +import { useWorkflowGraph } from './hooks/useWorkflowGraph'; +import type { WorkflowRef } from '@/views/ApplicationConfig/types' +import Chat from './components/Chat/Chat'; +import type { ChatRef } from './types' +import arrowIcon from '@/assets/images/workflow/arrow.png' + +const Workflow = forwardRef<WorkflowRef>((_props, ref) => { + const containerRef = useRef<HTMLDivElement>(null); + const miniMapRef = useRef<HTMLDivElement>(null); + const chatRef = useRef<ChatRef>(null) + const [collapsed, setCollapsed] = useState(false) + // 使用自定义Hook初始化工作流图 + const { + config, + graphRef, + selectedNode, + setSelectedNode, + zoomLevel, + canUndo, + canRedo, + isHandMode, + setIsHandMode, + onUndo, + onRedo, + onDrop, + blankClick, + deleteEvent, + copyEvent, + parseEvent, + handleSave + } = useWorkflowGraph({ containerRef, miniMapRef }); + + const onDragOver = (event: React.DragEvent) => { + event.preventDefault(); + }; + const handleRun = () => { + chatRef.current?.handleOpen() + } + const handleToggle = () => { + setCollapsed(prev => !prev) + } + + useImperativeHandle(ref, () => ({ + handleSave, + handleRun, + graphRef + })) + return ( + <div className="rb:h-[calc(100vh-64px)] rb:relative"> + {/* 左侧节点面板 */} + {!collapsed && <NodeLibrary />} + <img + src={arrowIcon} + className={clsx('rb:cursor-pointer rb:w-5 rb:h-10 rb:absolute rb:top-[50%] rb:z-100', { + 'rb:left-0 rb:rotate-180': collapsed, + 'rb:left-80': !collapsed + })} + onClick={handleToggle} + /> + + {/* 右侧画布区域 */} + <div + className={clsx(`rb:fixed rb:top-16 rb:bottom-0 rb:right-75 rb:flex-1 rb:border-x rb:border-[#DFE4ED] rb:transition-all`, { + 'rb:left-80': !collapsed, + 'rb:left-0': collapsed + })} + onDrop={onDrop} + onDragOver={onDragOver} + > + <div ref={containerRef} className="rb:w-full rb:h-full" /> + {/* 地图工具栏 */} + <CanvasToolbar + miniMapRef={miniMapRef} + graphRef={graphRef} + isHandMode={isHandMode} + setIsHandMode={setIsHandMode} + zoomLevel={zoomLevel} + canUndo={canUndo} + canRedo={canRedo} + onUndo={onUndo} + onRedo={onRedo} + /> + </div> + + {/* 右侧属性面板 */} + <Properties + selectedNode={selectedNode} + setSelectedNode={setSelectedNode} + graphRef={graphRef} + blankClick={blankClick} + deleteEvent={deleteEvent} + copyEvent={copyEvent} + parseEvent={parseEvent} + /> + <Chat + ref={chatRef} + graphRef={graphRef} + appId={config?.app_id as string} + /> + </div> + ); +}); + +export default Workflow; \ No newline at end of file diff --git a/web/src/views/Workflow/types.ts b/web/src/views/Workflow/types.ts new file mode 100644 index 00000000..c9e76dad --- /dev/null +++ b/web/src/views/Workflow/types.ts @@ -0,0 +1,95 @@ + +import { Graph } from '@antv/x6'; +export interface NodeConfig { + type: 'input' | 'textarea' | 'select' | 'inputNumber' | 'slider' | 'customSelect' | 'define'; + options?: { label: string; value: string }[]; + + max?: number; + min?: number; + step?: number; + + url?: string; + params?: { [key: string]: unknown; } + valueKey?: string; + labelKey?: string; + + defaultValue?: any | StartVariableItem[]; + + sys?: Array<{ + name: string; + type: string; + readonly: boolean; + }> + [key: string]: unknown; +} + +export interface NodeProperties { + type: string; + icon: string; + config?: Record<string, NodeConfig>; +} + +export interface NodeLibrary { + category: string; + nodes: NodeProperties[]; +} + + +export interface NodeItem { + id: string; + type: string; + name: string; + position: { + x: number; + y: number; + }; + config: { + [key: string]: unknown; + }; +} +export interface EdgesItem { + source: string; + target: string; + label: string; +} +export interface WorkflowConfig { + id: string; + app_id: string; + nodes: NodeItem[], + edges: EdgesItem[], + variables: Array<{ + name: string; + type: string; + required: boolean; + description: string; + default: string; + }>, + execution_config: { + max_execution_time: number; + max_iterations: number; + } + triggers: any[]; + is_active: boolean; + created_at: number; + updated_at: number; +} + +export interface VariableEditModalRef { + handleOpen: (values?: StartVariableItem) => void; +} +export interface StartVariableItem { + name: string; + type: string; + required: boolean; + description: string; + max_length?: number; + default?: string; + readonly?: boolean; + defaultValue?: any; + value?: any; +} + +export interface ChatRef { + handleOpen: () => void; +} +export type GraphRef = React.MutableRefObject<Graph | undefined> \ No newline at end of file diff --git a/web/tsconfig.app.json b/web/tsconfig.app.json index b91f0eef..c2d5ef64 100644 --- a/web/tsconfig.app.json +++ b/web/tsconfig.app.json @@ -7,6 +7,7 @@ "module": "ESNext", "types": ["vite/client"], "skipLibCheck": true, + "ignoreDeprecations": "6.0", "baseUrl": ".", "paths": { "@/*": ["src/*"] @@ -28,6 +29,6 @@ "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true }, - "include": ["src"], + "include": ["src", "src/views/Workflow/components/Properties/.tsx"], "exclude": ["**/*copy*"] } From ad0a7ebcb990e8bc9589f215599564f447908fd7 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Mon, 22 Dec 2025 11:33:08 +0800 Subject: [PATCH 30/92] feat(web): Workflow --- web/src/views/Workflow/hooks/useWorkflowGraph.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/views/Workflow/hooks/useWorkflowGraph.ts b/web/src/views/Workflow/hooks/useWorkflowGraph.ts index 26b1eacc..3ec141dc 100644 --- a/web/src/views/Workflow/hooks/useWorkflowGraph.ts +++ b/web/src/views/Workflow/hooks/useWorkflowGraph.ts @@ -75,7 +75,7 @@ export const useWorkflowGraph = ({ if (nodes.length) { const nodeList = nodes.map(node => { - const { id, type, name, position, config } = node + const { id, type, name, position, config = {} } = node let nodeLibraryConfig = [...nodeLibrary] .flatMap(category => category.nodes) .find(n => n.type === type) @@ -84,7 +84,7 @@ export const useWorkflowGraph = ({ if (nodeLibraryConfig?.config) { Object.keys(nodeLibraryConfig.config).forEach(key => { if (nodeLibraryConfig.config && nodeLibraryConfig.config[key]) { - nodeLibraryConfig.config[key].defaultValue = config[key] + nodeLibraryConfig.config[key].defaultValue = config[key] || {} } }) } From b1e69e154ba066d44092c148845f5baaefb38fa7 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Mon, 22 Dec 2025 14:29:53 +0800 Subject: [PATCH 31/92] feat(web): node show id; update reflection engine example --- web/src/i18n/en.ts | 94 +++++++++---------- web/src/i18n/zh.ts | 82 ++++++++-------- .../views/Workflow/components/Chat/Chat.tsx | 29 ++++-- .../Workflow/components/Properties/index.tsx | 6 +- 4 files changed, 115 insertions(+), 96 deletions(-) diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 9d6c2f04..f9f85d1a 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -1304,20 +1304,21 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re inner: 'Built-in Tools', custom: 'Custom Tools', mcpSearchPlaceholder: 'Search MCP services...', + innerSearchPlaceholder: 'Search tools...', + customSearchPlaceholder: 'Search custom tools...', addService: 'Add MCP Service', addServiceSuccess: 'Service added successfully', - serviceAddress: 'Service Address', + server_url: 'Service URL', lastConnection: 'Last Connection', responseTime: 'Response Time', status: { - running: 'Running', - stopped: 'Stopped', - abnormal: 'Abnormal', - unknown: 'Unknown' + active: 'Active', + inactive: 'Inactive', }, + testConnectionSuccess: 'Connection test successful', serviceEndpoint: 'Service Endpoint URL', - serviceEndpointPlaceholder: 'Service endpoint URL', - serviceEndpointExtra: 'Complete access address for MCP service', + serviceEndpointPlaceholder: 'URL of the service endpoint', + serviceEndpointExtra: 'Complete access address of the MCP service', nameAndIcon: 'Name and Icon', namePlaceholder: 'Name your MCP service', serverIdentifier: 'Server Identifier', @@ -1344,27 +1345,25 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re sseReadTimeout: 'SSE Read Timeout (seconds)', saveAndTest: 'Save and Test', - innerSearchPlaceholder: 'Search built-in tools', - timeFormat: 'Time Formatting', timeZoneConversion: 'Time Zone Conversion', timestampConversion: 'Timestamp Conversion', timeCalculation: 'Time Calculation', - time_desc: 'Date and time processing', - time_features: 'Provides time format conversion, time zone conversion, timestamp calculation and other functions', + time_desc: 'Date and Time Processing', + DateTimeTool_features: 'Provides time format conversion, time zone conversion, timestamp calculation and other functions', currentTime: 'Current Time', timestamp: 'Timestamp', localTime: 'Local Time', utcTime: 'UTC Time', secondsTimestamp: 'Timestamp (seconds)', millisecondsTimestamp: 'Timestamp (milliseconds)', - enterTimestamp: 'Enter timestamp', + enterTimestamp: 'Enter Timestamp', conversion: 'Conversion', conversionResult: 'Conversion Result', chooseFormatType: 'Choose Format', - json_desc: 'Data format conversion', - json_features: 'JSON formatting, compression, validation and conversion functions', + JsonTool_desc: 'Data Format Conversion', + JsonTool_features: 'JSON formatting, compression, validation and conversion functions', jsonFormat: 'JSON Formatting', jsonGzip: 'JSON Compression', jsonCheck: 'JSON Validation', @@ -1375,14 +1374,14 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re clear: 'Clear', parse: 'Paste', format: 'Format', - gzip: 'Compress', - check: 'Validate', - escape: 'Escape', + minify: 'Minify', + validate: 'Validate', + convert: 'Escape', outputResult: 'Output Result', validJosn: 'JSON format is correct, validation passed!', - baidu_desc: 'Search engine service', - baidu_features: 'Integrated Baidu Search API, providing web search, news search and other functions', + BaiduSearchTool_desc: 'Search Engine Service', + BaiduSearchTool_features: 'Integrated Baidu Search API, providing web search, news search and other functions', webSearch: 'Web Search', newsSearch: 'News Search', imageSearch: 'Image Search', @@ -1391,51 +1390,51 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re hasApiKey: 'API configured and enabled', needApiKey: 'Need to configure API Key', - minerU_desc: 'PDF parsing tool', - minerU_features: 'High-precision PDF document parsing tool, supports text, table, and image extraction', + MinerUTool_desc: 'PDF Parsing Tool', + MinerUTool_features: 'High-precision PDF document parsing tool, supports text, table, and image extraction', pdfParser: 'PDF Parser', tableExtraction: 'Table Extraction', imageRecognition: 'Image Recognition', textExtraction: 'Text Extraction', - textIn_desc: 'OCR text recognition', - textIn_features: 'Intelligent OCR text recognition service, supports multilingual and handwriting recognition', + TextInTool_desc: 'OCR Text Recognition', + TextInTool_features: 'Intelligent OCR text recognition service, supports multi-language and handwriting recognition', universalOCR: 'Universal OCR', handwritingRecognition: 'Handwriting Recognition', - multilingualSupport: 'Multilingual Support', + multilingualSupport: 'Multi-language Support', highPrecisionRecognition: 'High Precision Recognition', configDesc: 'Configuration Description', - baidu_config_desc: 'To use Baidu Search API, you need to apply for API Key and Secret Key on Baidu Open Platform first.', - minerU_config_desc: 'MinerU is a high-precision PDF document parsing tool that requires an API Key to use.', - textIn_config_desc: 'TextIn provides intelligent OCR text recognition service with multilingual support.', - link: 'Application Link', + BaiduSearchTool_config_desc: 'To use Baidu Search API, you need to apply for API Key and Secret Key on Baidu Open Platform first.', + MinerUTool_config_desc: 'MinerU is a high-precision PDF document parsing tool that requires an API Key to use.', + TextInTool_config_desc: 'TextIn provides intelligent OCR text recognition service with multi-language support.', + link: 'Application URL', api_key: 'API Key', - baidu_api_key_desc: 'API Key obtained from Baidu Open Platform', - minerU_api_key_desc: 'API Key obtained from MinerU platform', + BaiduSearchTool_api_key_desc: 'API Key obtained from Baidu Open Platform', + MinerUTool_api_key_desc: 'API Key obtained from MinerU platform', secret_key: 'Secret Key', - baidu_secret_key_desc: 'Secret Key obtained from Baidu Open Platform', - textIn_secret_key_desc: 'Secret Key obtained from TextIn platform', - search_type: 'Search Type', + BaiduSearchTool_secret_key_desc: 'Secret Key obtained from Baidu Open Platform', + TextInTool_secret_key_desc: 'Secret Key obtained from TextIn platform', + type: 'Search Type', pagesize: 'Results Per Page', - pagesize_desc: 'Number of results returned per search (1-50)', - baidu_enable: 'Enable Baidu Search', - baidu_safe_enable: 'Enable Safe Search', - baidu_safe_enable_desc: 'Filter inappropriate content', + pagesize_desc: 'Number of results returned per search ({{count1}}-{{count2}})', + BaiduSearchTool_enable: 'Enable Baidu Search', + BaiduSearchTool_safe_enable: 'Enable Safe Search', + BaiduSearchTool_safe_enable_desc: 'Filter inappropriate content', api_address: 'API Address', - minerU_api_address_desc: 'Default uses official API address, can be modified for private deployment', - textIn_api_address_desc: 'Default uses official API address', + MinerUTool_api_address_desc: 'Uses official API address by default, can be modified if privately deployed', + TextInTool_api_address_desc: 'Uses official API address by default', parsing_mode: 'Parsing Mode', auto_recognition: 'Auto Recognition', pure_text_mode: 'Pure Text Mode', table_priority: 'Table Priority', image_priority: 'Image Priority', - minerU_timeout_desc: 'PDF parsing timeout (10-300 seconds)', - minerU_enable: 'Enable MinerU', - minerU_extract_images_enable: 'Extract Images', - minerU_extract_images_enable_desc: 'Whether to extract image content from PDF', + MinerUTool_timeout_desc: 'PDF parsing timeout (10-300 seconds)', + MinerUTool_enable: 'Enable MinerU', + MinerUTool_extract_images_enable: 'Extract Images', + MinerUTool_extract_images_enable_desc: 'Whether to extract image content from PDF', app_id: 'APP ID', - textIn_app_id_desc: 'App ID obtained from TextIn platform', + TextInTool_app_id_desc: 'App ID obtained from TextIn platform', language_identification: 'Recognition Language', automatic_detection: 'Automatic Detection', simplified_chinese: 'Simplified Chinese', @@ -1448,7 +1447,7 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re high_precision_identification: 'High Precision Recognition', handwriting_recognition: 'Handwriting Recognition', formula_recognition: 'Formula Recognition', - textIn_enable: 'Enable TextIn', + TextInTool_enable: 'Enable TextIn', return_text_position_enable: 'Return Text Position Info', return_text_position_enable_desc: 'Whether to return coordinate positions of recognized text', @@ -1550,7 +1549,8 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re run: 'Run', save: 'Save', export: 'Export', - variableConfig: 'Variable Configuration' + variableConfig: 'Variable Configuration', + variableRequired: 'required', }, emotionEngine: { emotionEngineConfig: 'Emotion Engine Configuration', @@ -1661,7 +1661,7 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re daily: 'Daily', run: 'Run Debug', example: 'Raw Data', - exampleText: 'My sister was born in 2025, oh wait, I remembered wrong, she was actually born in 2024. By the way, my ID number is 33252218293749845X.', + exampleText: 'I went to Beijing for work in the spring of 2023, and have basically been working in Beijing ever since, without changing cities much. However, due to company restructuring, I was transferred to Shanghai for about half a year in the first half of 2024, during which time I checked in at the Shanghai office every day. At that time, my employment records still used my previous identity information, with ID number 11010119950308123X and bank card 6222023847595898, which have never changed. By the way, I have actually been living in Beijing since 2023 and have never left Beijing for long periods. The Shanghai period was more like remote collaboration.', runTitle: 'Reflection Test Run', status: 'Status', message: 'Message', diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 84dbd47c..6aa6cd50 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -1393,17 +1393,18 @@ export const zh = { inner: '内置工具', custom: '自定义工具', mcpSearchPlaceholder: '搜索MCP服务...', + innerSearchPlaceholder: '搜索工具...', + customSearchPlaceholder: '搜索自定义工具...', addService: '添加MCP服务', addServiceSuccess: '服务添加成功', - serviceAddress: '服务地址', + server_url: '服务地址', lastConnection: '最后连接', responseTime: '响应时间', status: { - running: '运行中', - stopped: '已停止', - abnormal: '异常', - unknown: '未知' + active: '活跃', + inactive: '不活跃', }, + testConnectionSuccess: '测试连接成功', serviceEndpoint: '服务端点 URL', serviceEndpointPlaceholder: '服务端点的 URL', serviceEndpointExtra: 'MCP服务的完整访问地址', @@ -1432,15 +1433,13 @@ export const zh = { timeout: '超时时间(秒)', sseReadTimeout: 'SSE 读取超时时间(秒)', saveAndTest: '保存并测试', - - innerSearchPlaceholder: '搜索内置工具', timeFormat: '时间格式化', timeZoneConversion: '时区转换', timestampConversion: '时间戳转换', timeCalculation: '时间计算', time_desc: '日期时间处理', - time_features: '提供时间格式转换、时区转换、时间戳计算等功能', + DateTimeTool_features: '提供时间格式转换、时区转换、时间戳计算等功能', currentTime: '当前时间', timestamp: '时间戳', localTime: '本地时间', @@ -1452,8 +1451,8 @@ export const zh = { conversionResult: '转换结果', chooseFormatType: '选择格式', - json_desc: '数据格式转换', - json_features: 'JSON格式化、压缩、验证和转换功能', + JsonTool_desc: '数据格式转换', + JsonTool_features: 'JSON格式化、压缩、验证和转换功能', jsonFormat: 'JSON格式化', jsonGzip: 'JSON压缩', jsonCheck: 'JSON验证', @@ -1464,14 +1463,14 @@ export const zh = { clear: '清空', parse: '粘贴', format: '格式化', - gzip: '压缩', - check: '验证', - escape: '转义', + minify: '压缩', + validate: '验证', + convert: '转义', outputResult: '输出结果', validJosn: 'JSON格式正确,验证通过!', - baidu_desc: '搜索引擎服务', - baidu_features: '集成百度搜索API,提供网页搜索、新闻搜索等功能', + BaiduSearchTool_desc: '搜索引擎服务', + BaiduSearchTool_features: '集成百度搜索API,提供网页搜索、新闻搜索等功能', webSearch: '网页搜索', newsSearch: '新闻搜索', imageSearch: '图片搜索', @@ -1480,51 +1479,51 @@ export const zh = { hasApiKey: 'API 已配置并启用', needApiKey: '需要配置API Key', - minerU_desc: 'PDF解析工具', - minerU_features: '高精度PDF文档解析工具,支持文字、表格、图片提取', + MinerUTool_desc: 'PDF解析工具', + MinerUTool_features: '高精度PDF文档解析工具,支持文字、表格、图片提取', pdfParser: 'PDF解析', tableExtraction: '表格提取', imageRecognition: '图片识别', textExtraction: '文本提取', - textIn_desc: 'OCR文字识别', - textIn_features: '智能OCR文字识别服务,支持多语言、手写体识别', + TextInTool_desc: 'OCR文字识别', + TextInTool_features: '智能OCR文字识别服务,支持多语言、手写体识别', universalOCR: '通用OCR', handwritingRecognition: '手写识别', multilingualSupport: '多语言支持', highPrecisionRecognition: '高精度识别', configDesc: '配置说明', - baidu_config_desc: '使用百度搜索API需要先在百度开放平台申请API Key和Secret Key。', - minerU_config_desc: 'MinerU是高精度PDF文档解析工具,需要API Key才能使用。', - textIn_config_desc: 'TextIn提供智能OCR文字识别服务,支持多语言识别。', + BaiduSearchTool_config_desc: '使用百度搜索API需要先在百度开放平台申请API Key和Secret Key。', + MinerUTool_config_desc: 'MinerU是高精度PDF文档解析工具,需要API Key才能使用。', + TextInTool_config_desc: 'TextIn提供智能OCR文字识别服务,支持多语言识别。', link: '申请地址', api_key: 'API Key', - baidu_api_key_desc: '从百度开放平台获取的API Key', - minerU_api_key_desc: '从MinerU平台获取的API Key', + BaiduSearchTool_api_key_desc: '从百度开放平台获取的API Key', + MinerUTool_api_key_desc: '从MinerU平台获取的API Key', secret_key: 'Secret Key', - baidu_secret_key_desc: '从百度开放平台获取的Secret Key', - textIn_secret_key_desc: '从TextIn平台获取的Secret Key', - search_type: '搜索类型', + BaiduSearchTool_secret_key_desc: '从百度开放平台获取的Secret Key', + TextInTool_secret_key_desc: '从TextIn平台获取的Secret Key', + type: '搜索类型', pagesize: '每页结果数', - pagesize_desc: '每次搜索返回的结果数量(1-50)', - baidu_enable: '启用百度搜索', - baidu_safe_enable: '启用安全搜索', - baidu_safe_enable_desc: '过滤不适宜内容', + pagesize_desc: '每次搜索返回的结果数量({{count1}}-{{count2}})', + BaiduSearchTool_enable: '启用百度搜索', + BaiduSearchTool_safe_enable: '启用安全搜索', + BaiduSearchTool_safe_enable_desc: '过滤不适宜内容', api_address: 'API地址', - minerU_api_address_desc: '默认使用官方API地址,如有私有部署可修改', - textIn_api_address_desc: '默认使用官方API地址', + MinerUTool_api_address_desc: '默认使用官方API地址,如有私有部署可修改', + TextInTool_api_address_desc: '默认使用官方API地址', parsing_mode: '解析模式', auto_recognition: '自动识别', pure_text_mode: '纯文本模式', table_priority: '表格优先', image_priority: '图片优先', - minerU_timeout_desc: 'PDF解析超时时间(10-300秒)', - minerU_enable: '启用MinerU', - minerU_extract_images_enable: '提取图片', - minerU_extract_images_enable_desc: '是否提取PDF中的图片内容', + MinerUTool_timeout_desc: 'PDF解析超时时间(10-300秒)', + MinerUTool_enable: '启用MinerU', + MinerUTool_extract_images_enable: '提取图片', + MinerUTool_extract_images_enable_desc: '是否提取PDF中的图片内容', app_id: 'APP ID', - textIn_app_id_desc: '从TextIn平台获取的App ID', + TextInTool_app_id_desc: '从TextIn平台获取的App ID', language_identification: '识别语言', automatic_detection: '自动检测', simplified_chinese: '简体中文', @@ -1537,7 +1536,7 @@ export const zh = { high_precision_identification: '高精度识别', handwriting_recognition: '手写体识别', formula_recognition: '公式识别', - textIn_enable: '启用TextIn', + TextInTool_enable: '启用TextIn', return_text_position_enable: '返回文本位置信息', return_text_position_enable_desc: '是否返回识别文字的坐标位置', @@ -1639,7 +1638,8 @@ export const zh = { run: '运行', save: '保存', export: '导出', - variableConfig: '变量配置' + variableConfig: '变量配置', + variableRequired: '必填', }, emotionEngine: { emotionEngineConfig: '情感引擎配置', @@ -1750,7 +1750,7 @@ export const zh = { daily: '每天', run: '运行调试', example: '原始数据', - exampleText: '我妹妹是2025年出生的,哦不对,我记错了,她其实是2024年出生的。对了,我的身份证号码是33252218293749845X。', + exampleText: '我是 2023 年春天去北京工作的,后来基本一直都在北京上班,也没怎么换过城市。不过后来公司调整,2024 年上半年我被调到上海待了差不多半年,那段时间每天都是在上海办公室打卡。当时入职资料用的还是我之前的身份信息,身份证号是 11010119950308123X,银行卡是 6222023847595898,这些一直没变。对了,其实我 从 2023 年开始就一直在北京生活,从来没有长期离开过北京,上海那段更多算是远程配合', runTitle: '反思试运行', status: '状态', message: '消息', diff --git a/web/src/views/Workflow/components/Chat/Chat.tsx b/web/src/views/Workflow/components/Chat/Chat.tsx index d907fdfc..09e47f61 100644 --- a/web/src/views/Workflow/components/Chat/Chat.tsx +++ b/web/src/views/Workflow/components/Chat/Chat.tsx @@ -1,7 +1,7 @@ import { forwardRef, useImperativeHandle, useState, useRef } from 'react' import { useTranslation } from 'react-i18next' import clsx from 'clsx' -import { Input, Form } from 'antd' +import { Input, Form, App } from 'antd' import { Space, Button } from 'antd' import ChatIcon from '@/assets/images/application/chat.png' @@ -18,6 +18,7 @@ import { type SSEMessage } from '@/utils/stream' const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId, graphRef }, ref) => { const { t } = useTranslation() + const { message: messageApi } = App.useApp() const [form] = Form.useForm<{ message: string }>() const variableConfigModalRef = useRef<VariableEditModalRef>(null) const [open, setOpen] = useState(false) @@ -60,6 +61,26 @@ const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId } const handleClusterSend = () => { if (loading || !appId) return + let isCanSend = true + const params: Record<string, any> = {} + if (variables.length > 0) { + const needRequired: string[] = [] + variables.forEach(vo => { + params[vo.name] = vo.value ?? vo.defaultValue + + if (vo.required && (params[vo.name] === null || params[vo.name] === undefined || params[vo.name] === '')) { + isCanSend = false + needRequired.push(vo.name) + } + }) + + if (needRequired.length) { + messageApi.error(`${needRequired.join(',')} ${t('workflow.variableRequired')}`) + } + } + if (!isCanSend) { + return + } setLoading(true) const message = form.getFieldValue('message') @@ -98,12 +119,6 @@ const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId } }) }; - const params: Record<string, any> = {} - if (variables.length > 0) { - variables.forEach(vo => { - params[vo.name] = vo.value ?? vo.defaultValue - }) - } form.setFieldValue('message', undefined) draftRun(appId, { message: message, diff --git a/web/src/views/Workflow/components/Properties/index.tsx b/web/src/views/Workflow/components/Properties/index.tsx index 97b6a6e4..bc9a7113 100644 --- a/web/src/views/Workflow/components/Properties/index.tsx +++ b/web/src/views/Workflow/components/Properties/index.tsx @@ -125,7 +125,10 @@ const Properties: FC<PropertiesProps> = ({ updateNodeLabel(e.target.value); }} /> - </Form.Item> + </Form.Item> + <Form.Item name="id" label="ID"> + <Input disabled /> + </Form.Item> {configs && Object.keys(configs).length > 0 && Object.keys(configs).map((key) => { const config = configs[key] || {} @@ -207,6 +210,7 @@ const Properties: FC<PropertiesProps> = ({ ? <Slider min={config.min} max={config.max} step={config.step} /> : config.type === 'customSelect' ? <CustomSelect + placeholder={t('common.pleaseSelect')} url={config.url as string} params={config.params} hasAll={false} From 54ff151ed8ec5b2280d76366dd5029f375805576 Mon Sep 17 00:00:00 2001 From: yujiangping <yujiangping@taofen8.com> Date: Mon, 22 Dec 2025 17:03:31 +0800 Subject: [PATCH 32/92] feat(components): Add markdown editing capability and enhance component styling - Add editable mode to Markdown component with edit/save/cancel buttons - Import EditOutlined, SaveOutlined, CloseOutlined icons from ant-design - Add useState, useRef, useEffect hooks for managing edit state - Add editable, onContentChange, and onSave props to RbMarkdownProps interface - Create RbModal component with new index.css stylesheet for modal styling - Add index.css stylesheet to KnowledgeBase components for consistent styling - Update i18n translations in en.ts and zh.ts for new UI elements - Refactor Markdown component handlers to accept and spread additional props - Update InsertModal and RecallTestResult components for improved UX - Fix prop spreading in component handlers to maintain compatibility with Ant Design components --- web/src/components/Markdown/index.tsx | 200 ++++++++++++++---- web/src/components/RbModal/index.css | 3 + web/src/components/RbModal/index.tsx | 11 +- web/src/i18n/en.ts | 5 +- web/src/i18n/zh.ts | 5 +- .../KnowledgeBase/components/InsertModal.tsx | 156 ++++++++++---- .../components/RecallTestResult.tsx | 4 +- .../views/KnowledgeBase/components/index.css | 3 + 8 files changed, 306 insertions(+), 81 deletions(-) create mode 100644 web/src/components/RbModal/index.css create mode 100644 web/src/views/KnowledgeBase/components/index.css diff --git a/web/src/components/Markdown/index.tsx b/web/src/components/Markdown/index.tsx index 12e4235d..fdaec143 100644 --- a/web/src/components/Markdown/index.tsx +++ b/web/src/components/Markdown/index.tsx @@ -1,4 +1,5 @@ -import { Image, Input, Select, Form, Checkbox, Radio, ColorPicker, DatePicker, TimePicker, InputNumber, Slider } from 'antd' +import { Image, Input, Select, Form, Checkbox, Radio, ColorPicker, DatePicker, TimePicker, InputNumber, Slider, Button } from 'antd' +import { EditOutlined, SaveOutlined, CloseOutlined } from '@ant-design/icons' import ReactMarkdown from 'react-markdown' import RemarkGfm from 'remark-gfm' import RemarkMath from 'remark-math' @@ -6,6 +7,7 @@ import RemarkBreaks from 'remark-breaks' import RehypeKatex from 'rehype-katex' import RehypeRaw from 'rehype-raw' import type { FC } from 'react' +import { useState, useRef, useEffect } from 'react' import Code from './Code' import VideoBlock from './VideoBlock' @@ -16,42 +18,45 @@ import RbButton from './RbButton' interface RbMarkdownProps { content: string; showHtmlComments?: boolean; // 是否显示 HTML 注释,默认为 false(隐藏) + editable?: boolean; // 是否可编辑,默认为 false + onContentChange?: (content: string) => void; // 内容变化回调 + onSave?: (content: string) => void; // 保存回调 } const components = { - h1: ({ children }: { children: string }) => <h1 className="rb:text-2xl rb:font-bold rb:mb-2">{children}</h1>, - h2: ({ children }: { children: string }) => <h2 className="rb:text-xl rb:font-bold rb:mb-2">{children}</h2>, - h3: ({ children }: { children: string }) => <h3 className="rb:text-lg rb:font-bold rb:mb-2">{children}</h3>, - h4: ({ children }: { children: string }) => <h4 className="rb:text-md rb:font-bold rb:mb-2">{children}</h4>, - h5: ({ children }: { children: string }) => <h5 className="rb:text-sm rb:font-bold rb:mb-2">{children}</h5>, - h6: ({ children }: { children: string }) => <h6 className="rb:text-xs rb:font-bold rb:mb-2">{children}</h6>, - ul: ({ children }: { children: string }) => <ul className="rb:list-disc rb:ml-6 rb:mb-2">{children}</ul>, - ol: ({ children }: { children: string }) => <ol className="rb:list-decimal rb:ml-6 rb:mb-2">{children}</ol>, - li: ({ children }: { children: string }) => <li className="rb:mb-1">{children}</li>, - blockquote: ({ children }: { children: string }) => <blockquote className="rb:border-l-4 rb:border-[#D9D9D9] rb:pl-4 rb:mb-2">{children}</blockquote>, - p: ({ children }: { children: string }) => <p className="rb:mb-2">{children}</p>, - strong: ({ children }: { children: string }) => <strong className="rb:font-bold">{children}</strong>, - em: ({ children }: { children: string }) => <em className="rb:italic">{children}</em>, - del: ({ children }: { children: string }) => <del className="rb:line-through">{children}</del>, - span: ({ children, ...props }: any) => { + h1: ({ children, ...props }: any) => <h1 className="rb:text-2xl rb:font-bold rb:mb-2" {...props}>{children}</h1>, + h2: ({ children, ...props }: any) => <h2 className="rb:text-xl rb:font-bold rb:mb-2" {...props}>{children}</h2>, + h3: ({ children, ...props }: any) => <h3 className="rb:text-lg rb:font-bold rb:mb-2" {...props}>{children}</h3>, + h4: ({ children, ...props }: any) => <h4 className="rb:text-md rb:font-bold rb:mb-2" {...props}>{children}</h4>, + h5: ({ children, ...props }: any) => <h5 className="rb:text-sm rb:font-bold rb:mb-2" {...props}>{children}</h5>, + h6: ({ children, ...props }: any) => <h6 className="rb:text-xs rb:font-bold rb:mb-2" {...props}>{children}</h6>, + ul: ({ children, ...props }: any) => <ul className="rb:list-disc rb:ml-6 rb:mb-2" {...props}>{children}</ul>, + ol: ({ children, ...props }: any) => <ol className="rb:list-decimal rb:ml-6 rb:mb-2" {...props}>{children}</ol>, + li: ({ children, ...props }: any) => <li className="rb:mb-1" {...props}>{children}</li>, + blockquote: ({ children, ...props }: any) => <blockquote className="rb:border-l-4 rb:border-[#D9D9D9] rb:pl-4 rb:mb-2" {...props}>{children}</blockquote>, + p: ({ children, ...props }: any) => <p className="rb:mb-2" {...props}>{children}</p>, + strong: ({ children, ...props }: any) => <strong className="rb:font-bold" {...props}>{children}</strong>, + em: ({ children, ...props }: any) => <em className="rb:italic" {...props}>{children}</em>, + del: ({ children, ...props }: any) => <del className="rb:line-through" {...props}>{children}</del>, + span: ({ children, style, ...restProps }: any) => { // 如果是 HTML 注释的 span,应用特殊样式 - if (props.style?.color === '#999') { + if (style?.color === '#999') { return <span style={{ color: '#999', fontSize: '0.9em' }}>{children}</span> } - return <span {...props}>{children}</span> + return <span style={style} {...restProps}>{children}</span> }, - code: Code, - img: Image, - video: VideoBlock, - audio: AudioBlock, - a: Link, - button: RbButton, - table: ({ children }: { children: string }) => <table className="rb:border rb:border-[#D9D9D9] rb:mb-2">{children}</table>, - tr: ({ children }: { children: string }) => <tr className="rb:border rb:border-[#D9D9D9]">{children}</tr>, - th: ({ children }: { children: string }) => <th className="rb:border rb:border-[#D9D9D9] rb:px-2 rb:py-1 rb:text-left rb:font-bold">{children}</th>, - td: ({ children }: { children: string }) => <td className="rb:border rb:border-[#D9D9D9] rb:px-2 rb:py-1 rb:text-left">{children}</td>, - input: ({ children, ...props }: { children: string }) => { + code: ({ children, className, ...props }: any) => <Code children={String(children)} className={className || ''} {...props} />, + img: ({ src, alt, ...props }: any) => <Image src={src} alt={alt} {...props} />, + video: ({ src, ...props }: any) => <VideoBlock node={{ children: [{ properties: { src: src || '' } }] }} {...props} />, + audio: ({ src, ...props }: any) => <AudioBlock node={{ children: [{ properties: { src: src || '' } }] }} {...props} />, + a: ({ href, children, ...props }: any) => <Link href={href || '#'} {...props}>{children}</Link>, + button: ({ children, ...props }: any) => <RbButton node={{ children }}>{[children]}</RbButton>, + table: ({ children, ...props }: any) => <table className="rb:border rb:border-[#D9D9D9] rb:mb-2" {...props}>{children}</table>, + tr: ({ children, ...props }: any) => <tr className="rb:border rb:border-[#D9D9D9]" {...props}>{children}</tr>, + th: ({ children, ...props }: any) => <th className="rb:border rb:border-[#D9D9D9] rb:px-2 rb:py-1 rb:text-left rb:font-bold" {...props}>{children}</th>, + td: ({ children, ...props }: any) => <td className="rb:border rb:border-[#D9D9D9] rb:px-2 rb:py-1 rb:text-left" {...props}>{children}</td>, + input: ({ children, ...props }: any) => { switch (props.type) { case 'color': return <ColorPicker {...props} /> @@ -74,7 +79,7 @@ const components = { return <Slider {...props} /> case 'submit': case 'button': - return <RbButton {...props}>{props.value}</RbButton> + return <RbButton node={{ children: props.value || children }}>{[props.value || children]}</RbButton> case 'checkbox': return <Checkbox {...props}>{children}</Checkbox> case 'password': @@ -85,37 +90,158 @@ const components = { return <Input value={children} {...props} /> } }, - select: ({ children, ...props }: { children: string }) => <Select style={{width: '100%'}} {...props}>{children}</Select>, - textarea: ({ children, ...props }: { children: string }) => <Input.TextArea {...props}>{children}</Input.TextArea>, - form: ({ children }: { children: string }) => <Form>{children}</Form>, + select: ({ children, ...props }: any) => <Select style={{width: '100%'}} {...props}>{children}</Select>, + textarea: ({ children, ...props }: any) => <Input.TextArea {...props}>{children}</Input.TextArea>, + form: ({ children, ...props }: any) => <Form {...props}>{children}</Form>, } const RbMarkdown: FC<RbMarkdownProps> = ({ content, showHtmlComments = false, + editable = false, + onContentChange, + onSave, }) => { + const [isEditing, setIsEditing] = useState(editable) // 如果可编辑,默认进入编辑模式 + const [editContent, setEditContent] = useState(content) + const textareaRef = useRef<any>(null) + + // 当外部 content 变化时,同步更新编辑内容 + useEffect(() => { + setEditContent(content) + }, [content]) + + // 当editable变化时,自动切换编辑状态 + useEffect(() => { + if (editable) { + setIsEditing(true) + // 延迟聚焦,确保 textarea 已渲染 + setTimeout(() => { + textareaRef.current?.focus() + }, 100) + } + }, [editable]) + + // 进入编辑模式 + const handleEdit = () => { + setIsEditing(true) + setEditContent(content) + // 延迟聚焦,确保 textarea 已渲染 + setTimeout(() => { + textareaRef.current?.focus() + }, 100) + } + + // 保存编辑 + const handleSave = () => { + onContentChange?.(editContent) + onSave?.(editContent) + if (!editable) { + setIsEditing(false) // 只有在非强制编辑模式下才退出编辑 + } + } + + // 取消编辑 + const handleCancel = () => { + setEditContent(content) // 恢复原内容 + if (!editable) { + setIsEditing(false) // 只有在非强制编辑模式下才退出编辑 + } + } + + // 处理 textarea 内容变化 + const handleTextareaChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => { + const newContent = e.target.value + setEditContent(newContent) + // 实时回调内容变化 + onContentChange?.(newContent) + } + // 根据参数决定是否将 HTML 注释转换为可见文本 // 使用特殊的 markdown 语法来显示注释,避免被 rehype-raw 过滤 const processedContent = showHtmlComments - ? content.replace(/<!--([\s\S]*?)-->/g, (_match, commentContent) => { + ? (isEditing ? editContent : content).replace(/<!--([\s\S]*?)-->/g, (_match, commentContent) => { // 转换为带样式的文本,使用 <span class="html-comment"> 标记 const escaped = commentContent.trim().replace(/</g, '<').replace(/>/g, '>') return `<span class="html-comment"><!-- ${escaped} --></span>` }) - : content + : (isEditing ? editContent : content) + // 如果是编辑模式,显示 textarea + if (isEditing) { + return ( + <div className="rb:relative"> + <style>{` + .html-comment { + color: #999; + font-size: 0.9em; + } + `}</style> + + {/* 编辑工具栏 - 只在非强制编辑模式下显示 */} + {!editable && ( + <div className="rb:flex rb:justify-end rb:gap-2 rb:mb-2"> + <Button + type="primary" + size="small" + icon={<SaveOutlined />} + onClick={handleSave} + > + 保存 + </Button> + <Button + size="small" + icon={<CloseOutlined />} + onClick={handleCancel} + > + 取消 + </Button> + </div> + )} + + {/* 编辑区域 */} + <Input.TextArea + ref={textareaRef} + value={editContent} + onChange={handleTextareaChange} + rows={editable ? 5 : 10} + className="rb:font-mono rb:text-sm" + placeholder="请输入 Markdown 内容..." + style={{ resize: 'vertical' }} + /> + </div> + ) + } + + // 预览模式 return ( - <div> + <div className="rb:relative rb:group"> <style>{` .html-comment { color: #999; font-size: 0.9em; } `}</style> + + {/* 编辑按钮 - 只在非强制编辑模式且鼠标悬停时显示 */} + {!editable && ( + <div className="rb:absolute rb:top-0 rb:right-0 rb:opacity-0 group-hover:rb:opacity-100 rb:transition-opacity rb:z-10"> + <Button + type="text" + size="small" + icon={<EditOutlined />} + onClick={handleEdit} + className="rb:bg-white rb:shadow-sm" + > + 编辑 + </Button> + </div> + )} + <ReactMarkdown // allowElement={[]} // allowedElements={[]} - components={components} + components={components as any} disallowedElements={['script', 'iframe', 'head', 'html', 'meta', 'link', 'style', 'body']} rehypePlugins={[ RehypeKatex, diff --git a/web/src/components/RbModal/index.css b/web/src/components/RbModal/index.css new file mode 100644 index 00000000..d4aa4388 --- /dev/null +++ b/web/src/components/RbModal/index.css @@ -0,0 +1,3 @@ +.rb-modal .ant-modal-header { + margin-bottom: 24px; +} \ No newline at end of file diff --git a/web/src/components/RbModal/index.tsx b/web/src/components/RbModal/index.tsx index f6af75aa..d534edd2 100644 --- a/web/src/components/RbModal/index.tsx +++ b/web/src/components/RbModal/index.tsx @@ -1,11 +1,19 @@ +/* + * @Description: + * @Version: 0.0.1 + * @Author: yujiangping + * @Date: 2025-12-16 10:19:18 + * @LastEditors: yujiangping + * @LastEditTime: 2025-12-22 12:31:31 + */ import { type FC } from 'react' import { Modal, type ModalProps } from 'antd' import { useTranslation } from 'react-i18next' - const RbModal: FC<ModalProps> = ({ onOk, onCancel, children, + className, ...props }) => { const { t } = useTranslation() @@ -16,6 +24,7 @@ const RbModal: FC<ModalProps> = ({ cancelText={t('common.cancel')} onOk={onOk} destroyOnHidden={true} + className={`rb-modal ${className || ''}`} {...props} > <div className='rb:max-h-[550px] rb:overflow-y-auto rb:overflow-x-hidden'> diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 503f54f0..d4877da9 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -585,7 +585,6 @@ export const en = { insertContent: 'Insert Content', editContent:'Edit Content', insertContentPlaceholder: 'Please enter the content', - pleaseEnterContent: 'Please enter content', documentIdRequired: 'Document ID is required', editContentDesc:'Edit content', insertContentDesc:'Insert content', @@ -598,6 +597,10 @@ export const en = { semantic:'Semantic', hybrid:'Hybrid', updateEmbeddingContent:'Are you sure about updating the embedding model? After the update, will the block vector data need to be reconstructed?', + question: 'Question', + answer: 'Answer', + normalMode: 'Normal Mode', + qaMode: 'QA Mode', createForm:{ name: 'Name', embedding_id: 'Embedding', diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 1f9b315e..e78d1c45 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -216,7 +216,6 @@ export const zh = { insertContent: '插入内容', editContent: '编辑内容', insertContentPlaceholder: '请输入内容', - pleaseEnterContent: '请输入内容', documentIdRequired: '文档ID是必需的', editContentDesc: '编辑内容', insertContentDesc: '插入内容', @@ -229,6 +228,10 @@ export const zh = { semantic: '语义', hybrid: '混合', updateEmbeddingContent: '确定要更新嵌入模型吗?更新后,分块向量数据需要重新构建?', + question: '问题', + answer: '答案', + normalMode: '常规模式', + qaMode: '问答模式', createForm: { name: '名称', embedding_id: '嵌入模型', diff --git a/web/src/views/KnowledgeBase/components/InsertModal.tsx b/web/src/views/KnowledgeBase/components/InsertModal.tsx index 9f035998..7e08a1c4 100644 --- a/web/src/views/KnowledgeBase/components/InsertModal.tsx +++ b/web/src/views/KnowledgeBase/components/InsertModal.tsx @@ -1,10 +1,9 @@ import { forwardRef, useImperativeHandle, useState } from 'react'; -import { Input, message, Tabs } from 'antd'; +import { message, Tabs } from 'antd'; import { useTranslation } from 'react-i18next'; import RbModal from '@/components/RbModal'; import RbMarkdown from '@/components/Markdown'; - -const { TextArea } = Input; +import './index.css' export interface InsertModalRef { handleOpen: (documentId: string, initialContent?: string, chunkId?: string) => void; @@ -24,11 +23,14 @@ const InsertModal = forwardRef<InsertModalRef, InsertModalProps>(({ onInsert, on const [content, setContent] = useState<string>(''); const [chunkId, setChunkId] = useState<string | undefined>(undefined); const [isEditMode, setIsEditMode] = useState(false); - const [activeTab, setActiveTab] = useState<string>('edit'); + const [activeTab, setActiveTab] = useState<string>('normalMode'); + const [mode, setMode] = useState(0); // 0: 普通模式, 1: QA模式 + const [question, setQuestion] = useState<string>(''); + const [answer, setAnswer] = useState<string>(''); const handleOpen = (docId: string, initialContent?: string, chunkIdParam?: string) => { setDocumentId(docId); - setContent(initialContent || ''); + handleContent(initialContent || '') setChunkId(chunkIdParam); setIsEditMode(!!initialContent); setVisible(true); @@ -40,11 +42,63 @@ const InsertModal = forwardRef<InsertModalRef, InsertModalProps>(({ onInsert, on setDocumentId(''); setChunkId(undefined); setIsEditMode(false); - setActiveTab('edit'); + setActiveTab('normalMode'); + setMode(0); + setQuestion(''); + setAnswer(''); + }; + + // 解析 QA 格式内容 + const parseQAContent = (content: string) => { + if (!content) return null; + + const qaRegex = /question:\s*(.*?)\s*answer:\s*(.*?)$/s; + const match = content.match(qaRegex); + + if (match) { + const question = match[1]?.trim() || ''; + const answer = match[2]?.trim() || ''; + return { question, answer }; + } + + return null; + }; + + const handleContent = (value: string) => { + if (value === '') return; + const qaContent = parseQAContent(value); + if (qaContent) { + setMode(1); // 1 表示 QA 模式 + setQuestion(qaContent.question); + setAnswer(qaContent.answer); + setContent(qaContent.answer); // 保持原始内容用于提交 + setActiveTab('qaMode') + } else { + setMode(0); + setAnswer(value) + setContent(value); + setActiveTab('normalMode') + } + }; + const handleTabsChange = (key: string) => { + if(key === 'qaMode'){ + setMode(1); + }else{ + setMode(0); + } + setActiveTab(key); + }; + // 获取当前要提交的内容 + const getCurrentContent = () => { + if (mode === 1) { + return `question: ${question}\n answer: ${answer}`; + } + return content; }; const handleOk = async () => { - if (!content.trim()) { + const currentContent = getCurrentContent(); + if (!currentContent.trim()) { message.warning(t('knowledgeBase.pleaseEnterContent') || '请输入内容'); return; } @@ -57,7 +111,7 @@ const InsertModal = forwardRef<InsertModalRef, InsertModalProps>(({ onInsert, on setLoading(true); try { if (onInsert) { - const success = await onInsert(documentId, content.trim(), chunkId); + const success = await onInsert(documentId, currentContent.trim(), chunkId); if (success) { const successMsg = isEditMode ? (t('knowledgeBase.updateSuccess') || '更新成功') @@ -86,47 +140,70 @@ const InsertModal = forwardRef<InsertModalRef, InsertModalProps>(({ onInsert, on } }; - const handleContentChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => { - setContent(e.target.value); - }; - // 暴露给父组件的方法 useImperativeHandle(ref, () => ({ handleOpen, handleClose, })); - // 构建标签页项目,content 为空或新增时不显示预览 + // 构建标签页项目 const tabItems = [ - { - key: 'edit', - label: t('knowledgeBase.edit') || '编辑', + { + key: 'normalMode', + label: t('knowledgeBase.normalMode'), children: ( - <TextArea - value={content} - onChange={handleContentChange} - placeholder={t('knowledgeBase.insertContentPlaceholder') || '请输入内容...'} - rows={10} - maxLength={10000} - showCount - autoFocus - /> + // <div className='rb:border rb:border-[#D9D9D9] rb:rounded rb:p-4 rb:min-h-[280px] rb:max-h-[400px] rb:overflow-y-auto rb:bg-white'> + <RbMarkdown + content={content} + showHtmlComments={true} + editable={true} + onContentChange={setContent} + onSave={(newContent) => { + setContent(newContent); + }} + /> + // </div> ), }, - ]; - - // 只有在编辑模式且有内容时才显示预览标签页 - if (isEditMode && content) { - tabItems.push({ - key: 'preview', - label: t('knowledgeBase.preview') || '预览', + { + key: 'qaMode', + label: t('knowledgeBase.qaMode'), children: ( - <div className='rb:border rb:border-[#D9D9D9] rb:rounded rb:p-4 rb:min-h-[280px] rb:max-h-[400px] rb:overflow-y-auto rb:bg-white'> - <RbMarkdown content={content} showHtmlComments={true} /> + // QA 模式的编辑界面 + <div className='rb:flex rb:flex-col rb:gap-4'> + <div> + <div className='rb:w-full rb:font-medium rb:leading-8 rb:mb-2'>{t('knowledgeBase.question') || '问题'}</div> + {/* <div className='rb:border rb:border-[#D9D9D9] rb:rounded rb:p-4 rb:min-h-[120px] rb:max-h-[200px] rb:overflow-y-auto rb:bg-white'> */} + <RbMarkdown + content={question} + showHtmlComments={true} + editable={true} + onContentChange={setQuestion} + onSave={(newContent) => { + setQuestion(newContent); + }} + /> + {/* </div> */} + </div> + <div> + <div className='rb:w-full rb:font-medium rb:leading-8 rb:mb-2'>{t('knowledgeBase.answer') || '答案'}</div> + {/* <div className='rb:border rb:border-[#D9D9D9] rb:rounded rb:p-4 rb:min-h-[120px] rb:max-h-[200px] rb:overflow-y-auto rb:bg-white'> */} + <RbMarkdown + content={answer} + showHtmlComments={true} + editable={true} + onContentChange={setAnswer} + onSave={(newContent) => { + setAnswer(newContent); + }} + /> + {/* </div> */} + </div> </div> - ), - }); - } + ) + } + + ]; return ( <RbModal @@ -141,11 +218,12 @@ const InsertModal = forwardRef<InsertModalRef, InsertModalProps>(({ onInsert, on okText={t('common.confirm') || '确认'} cancelText={t('common.cancel') || '取消'} width={600} + className='rb:h-[800px]' > <div className='rb:flex rb:flex-col rb:gap-4'> <Tabs activeKey={activeTab} - onChange={setActiveTab} + onChange={handleTabsChange} items={tabItems} /> </div> @@ -153,4 +231,4 @@ const InsertModal = forwardRef<InsertModalRef, InsertModalProps>(({ onInsert, on ); }); -export default InsertModal; +export default InsertModal; \ No newline at end of file diff --git a/web/src/views/KnowledgeBase/components/RecallTestResult.tsx b/web/src/views/KnowledgeBase/components/RecallTestResult.tsx index 70583249..c8acbe03 100644 --- a/web/src/views/KnowledgeBase/components/RecallTestResult.tsx +++ b/web/src/views/KnowledgeBase/components/RecallTestResult.tsx @@ -4,7 +4,7 @@ * @Author: yujiangping * @Date: 2025-11-18 16:19:58 * @LastEditors: yujiangping - * @LastEditTime: 2025-11-29 19:08:40 + * @LastEditTime: 2025-12-22 13:47:53 */ import { FileOutlined, FieldTimeOutlined, EditOutlined } from '@ant-design/icons'; import { Skeleton } from 'antd'; @@ -58,7 +58,7 @@ const RecallTestResult = ({ // 格式化 QA 内容为显示格式 const formatQAContent = (question: string, answer: string) => { - return `**问题:** ${question}\n\n**答案:** ${answer}`; + return `**${t('knowledgeBase.question')}:** ${question}\n**${t('knowledgeBase.answer')}:** ${answer}`; }; const handleItemClick = (e: React.MouseEvent, item: RecallTestData, index: number) => { diff --git a/web/src/views/KnowledgeBase/components/index.css b/web/src/views/KnowledgeBase/components/index.css new file mode 100644 index 00000000..1c4c15fe --- /dev/null +++ b/web/src/views/KnowledgeBase/components/index.css @@ -0,0 +1,3 @@ +.ant-modal-header { + margin-bottom: 0 !important; +} \ No newline at end of file From 773e785ce9189177888ab0d42dfe1da2a7eff769 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Mon, 22 Dec 2025 18:45:36 +0800 Subject: [PATCH 33/92] feat(web): Graph user memory update --- web/src/api/memory.ts | 15 +- .../images/home/arrow_top_right_hover.svg | 16 ++ web/src/components/Empty/index.tsx | 2 +- web/src/components/Header/index.tsx | 23 ++- web/src/hooks/useNavigationBreadcrumbs.ts | 84 +++----- web/src/i18n/en.ts | 23 ++- web/src/i18n/zh.ts | 21 +- web/src/routes/index.tsx | 2 +- web/src/routes/routes.json | 3 +- web/src/store/menu.json | 25 +-- web/src/store/menu.ts | 49 ++++- web/src/views/SelfReflectionEngine/index.tsx | 4 + web/src/views/UserMemoryDetail/Neo4j.tsx | 100 ++------- web/src/views/UserMemoryDetail/Rag.tsx | 36 ++-- .../UserMemoryDetail/components/Card.tsx | 6 +- .../components/ConversationMemory.tsx | 2 +- .../components/EmotionTags.tsx | 24 +-- .../components/EndUserProfile.tsx | 72 +++++++ .../components/EndUserProfileModal.tsx | 128 ++++++++++++ .../UserMemoryDetail/components/Health.tsx | 13 +- .../components/MemoryInsight.tsx | 2 +- .../components/NodeStatistics.tsx | 90 ++++++++ .../UserMemoryDetail/components/PieCard.tsx | 2 +- .../components/RelationshipNetwork.tsx | 194 +++++++++--------- .../components/Suggestions.tsx | 6 +- .../UserMemoryDetail/components/WordCloud.tsx | 12 +- ...{EmotionDetail.tsx => StatementDetail.tsx} | 18 +- web/src/views/UserMemoryDetail/types.ts | 103 ++++++++-- 28 files changed, 706 insertions(+), 369 deletions(-) create mode 100644 web/src/assets/images/home/arrow_top_right_hover.svg create mode 100644 web/src/views/UserMemoryDetail/components/EndUserProfile.tsx create mode 100644 web/src/views/UserMemoryDetail/components/EndUserProfileModal.tsx create mode 100644 web/src/views/UserMemoryDetail/components/NodeStatistics.tsx rename web/src/views/UserMemoryDetail/pages/{EmotionDetail.tsx => StatementDetail.tsx} (59%) diff --git a/web/src/api/memory.ts b/web/src/api/memory.ts index cce52944..6d75aad3 100644 --- a/web/src/api/memory.ts +++ b/web/src/api/memory.ts @@ -15,6 +15,7 @@ import type { ConfigForm as SelfReflectionEngineConfig } from '@/views/SelfReflectionEngine/types' import type { TestParams } from '@/views/MemoryConversation' +import type { EndUser } from '@/views/UserMemoryDetail/types' import { handleSSE, type SSEMessage } from '@/utils/stream' // 记忆对话 @@ -66,6 +67,7 @@ export const getTotalEndUsers = () => { export const getUserProfile = (end_user_id: string) => { return request.get(`/memory/analytics/user_profile`, { end_user_id }) } + // 用户记忆-记忆洞察 export const getMemoryInsightReport = (end_user_id: string) => { return request.get(`/memory-storage/analytics/memory_insight/report`, { end_user_id }) @@ -74,9 +76,20 @@ export const getMemoryInsightReport = (end_user_id: string) => { export const getUserSummary = (end_user_id: string) => { return request.get(`/memory-storage/analytics/user_summary`, { end_user_id }) } +// 记忆分类 +export const getNodeStatistics = (end_user_id: string) => { + return request.get(`/memory-storage/analytics/node_statistics`, { end_user_id }) +} +// 基本信息 +export const getEndUserProfile = (end_user_id: string) => { + return request.get(`/memory-storage/read_end_user/profile`, { end_user_id }) +} +export const updatedEndUserProfile = (values: EndUser) => { + return request.post(`/memory-storage/updated_end_user/profile`, values) +} // 用户记忆-关系网络 export const getMemorySearchEdges = (end_user_id: string) => { - return request.get(`/memory-storage/search/entity_graph`, { end_user_id }) + return request.get(`/memory-storage/analytics/graph_data`, { end_user_id }) } // 用户记忆-用户兴趣分布 export const getHotMemoryTagsByUser = (end_user_id: string) => { diff --git a/web/src/assets/images/home/arrow_top_right_hover.svg b/web/src/assets/images/home/arrow_top_right_hover.svg new file mode 100644 index 00000000..903f9618 --- /dev/null +++ b/web/src/assets/images/home/arrow_top_right_hover.svg @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <title>编组 16 + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/components/Empty/index.tsx b/web/src/components/Empty/index.tsx index 53f52941..6cc8cda0 100644 --- a/web/src/components/Empty/index.tsx +++ b/web/src/components/Empty/index.tsx @@ -27,7 +27,7 @@ const Empty: FC = ({
404 {title &&
{title}
} - {curSubTitle &&
{subTitle}
} + {curSubTitle &&
{curSubTitle}
}
); } diff --git a/web/src/components/Header/index.tsx b/web/src/components/Header/index.tsx index 6ce5484e..7dea45ca 100644 --- a/web/src/components/Header/index.tsx +++ b/web/src/components/Header/index.tsx @@ -1,8 +1,9 @@ -import { type FC, useRef } from 'react'; +import { type FC, useCallback, useRef } from 'react'; import { Layout, Dropdown, Space, Breadcrumb } from 'antd'; import type { MenuProps, BreadcrumbProps } from 'antd'; import { UserOutlined, LogoutOutlined, SettingOutlined } from '@ant-design/icons'; import { useTranslation } from 'react-i18next'; +import { useParams, useNavigate } from 'react-router-dom'; import { useUser } from '@/store/user'; import { useMenu } from '@/store/menu'; import styles from './index.module.css' @@ -12,6 +13,8 @@ const { Header } = Layout; const AppHeader: FC<{source?: 'space' | 'manage';}> = ({source = 'manage'}) => { const { t } = useTranslation(); + const params = useParams(); + const navigate = useNavigate(); const settingModalRef = useRef(null) const userInfoModalRef = useRef(null) @@ -65,7 +68,7 @@ const AppHeader: FC<{source?: 'space' | 'manage';}> = ({source = 'manage'}) => { onClick: handleLogout, }, ]; - const formatBreadcrumbNames = () => { + const formatBreadcrumbNames = useCallback(() => { return breadcrumbs.map((menu, index) => { const item: any = { title: menu.i18nKey ? t(menu.i18nKey) : menu.label, @@ -84,13 +87,23 @@ const AppHeader: FC<{source?: 'space' | 'manage';}> = ({source = 'manage'}) => { }; item.href = '#'; } else if (menu.path && menu.path !== '#') { - // 只有当 path 不是 '#' 时才设置 path - item.path = menu.path; + // 对于三级面包屑的二级菜单,如果路径包含动态参数,替换为当前参数值 + if (breadcrumbs.length === 3 && index === 1 && menu.path.includes(':id') && params.id) { + const dynamicPath = menu.path.replace(':id', params.id); + item.onClick = (e: React.MouseEvent) => { + e.preventDefault(); + navigate(dynamicPath); + }; + item.href = '#'; + } else { + // 只有当 path 不是 '#' 时才设置 path + item.path = menu.path; + } } return item; }); - } + }, [breadcrumbs, params.id, t, navigate]) return (
diff --git a/web/src/hooks/useNavigationBreadcrumbs.ts b/web/src/hooks/useNavigationBreadcrumbs.ts index c314399b..67af853e 100644 --- a/web/src/hooks/useNavigationBreadcrumbs.ts +++ b/web/src/hooks/useNavigationBreadcrumbs.ts @@ -11,85 +11,47 @@ export const useNavigationBreadcrumbs = (source: 'space' | 'manage' = 'manage') const menus = allMenus[source] || []; // 查找匹配的菜单项并构建keyPath - const findMenuKeyPath = (menuList: any[], parentKeys: string[] = []): string[] | null => { - let bestMatch: { path: string; parentId?: string; score: number } | null = null; + const findMenuKeyPath = (menuList: any[]): string[] | null => { + const checkDynamicMatch = (pattern: string, path: string) => { + const pathPattern = pattern.replace(/:[\w-]+/g, '[^/]+'); + const regex = new RegExp(`^${pathPattern}$`); + return regex.test(path); + }; for (const menu of menuList) { - // 检查子菜单 if (menu.subs && menu.subs.length > 0) { - const menuPath = menu.path ? (menu.path[0] !== '/' ? '/' + menu.path : menu.path) : ''; for (const sub of menu.subs) { + // 检查三级菜单 + if (sub.subs && sub.subs.length > 0) { + for (const subSub of sub.subs) { + if (subSub.path) { + const subSubPath = subSub.path[0] !== '/' ? '/' + subSub.path : subSub.path; + if (subSubPath === currentPath || (subSubPath.includes(':') && checkDynamicMatch(subSubPath, currentPath))) { + return [subSub.path, `${sub.id}`, `${menu.id}`]; + } + } + } + } + + // 检查二级菜单 if (sub.path) { const subPath = sub.path[0] !== '/' ? '/' + sub.path : sub.path; - - // 精确匹配优先 - if (subPath === currentPath) { + if (subPath === currentPath || (subPath.includes(':') && checkDynamicMatch(subPath, currentPath))) { return [sub.path, `${menu.id}`]; } - console.log('menuPath', menuPath) - // 动态路由匹配 - if (subPath.includes(':')) { - // 检查是否在父菜单下 - if (menuPath && currentPath.startsWith(menuPath + '/')) { - const relativePath = currentPath.replace(menuPath, ''); - const pathSegments = subPath.split('/'); - const relativeSegments = relativePath.split('/'); - if (pathSegments.length === relativeSegments.length) { - const pathPattern = subPath.replace(/:[\w-]+/g, '[^/]+').replace(/\[[\w-]+\]/g, '[^/]+'); - const regex = new RegExp(`^${pathPattern}$`); - if (regex.test(relativePath)) { - return [sub.path, `${menu.id}`]; - } - } - } - // 直接匹配子菜单路径 - const pathSegments = subPath.split('/'); - const currentSegments = currentPath.split('/'); - if (pathSegments.length === currentSegments.length) { - const pathPattern = subPath.replace(/:[\w-]+/g, '[^/]+').replace(/\[[\w-]+\]/g, '[^/]+'); - const regex = new RegExp(`^${pathPattern}$`); - if (regex.test(currentPath)) { - return [sub.path, `${menu.id}`]; - } - } - } } } } - // 检查主菜单 + // 检查一级菜单 if (menu.path) { const menuPath = menu.path[0] !== '/' ? '/' + menu.path : menu.path; - // 精确匹配优先 - if (menuPath === currentPath) { - return [menu.path, ...parentKeys].reverse(); - } - // 动态路由匹配 - if (menuPath.includes(':')) { - const pathSegments = menuPath.split('/'); - const currentSegments = currentPath.split('/'); - if (pathSegments.length === currentSegments.length) { - const pathPattern = menuPath.replace(/:[\w-]+/g, '[^/]+').replace(/\[[\w-]+\]/g, '[^/]+'); - const regex = new RegExp(`^${pathPattern}$`); - if (regex.test(currentPath)) { - const score = menuPath.split('/').length; - if (!bestMatch || score > bestMatch.score) { - bestMatch = { path: menu.path, score }; - } - } - } - } else if (currentPath.startsWith(menuPath + '/')) { - const score = menuPath.split('/').length; - if (!bestMatch || score > bestMatch.score) { - bestMatch = { path: menu.path, score }; - } + if (menuPath === currentPath || (menuPath.includes(':') && checkDynamicMatch(menuPath, currentPath))) { + return [menu.path]; } } } - if (bestMatch) { - return bestMatch.parentId ? [bestMatch.path, bestMatch.parentId] : [bestMatch.path]; - } return null; }; diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index f9f85d1a..8dbef551 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -36,7 +36,7 @@ export const en = { apiKeyManagement: 'API KEY Management', toolManagement: 'Tool Management', emotionEngine: 'Emotion Engine', - emotionDetail: 'Emotion Memory', + statementDetail: 'Emotion Memory', selfReflectionEngine: 'Self Reflection Engine', }, dashboard: { @@ -1027,7 +1027,24 @@ export const en = { conversationMemory: 'Conversation Storage Content', sortByTimeDesc: 'Sort by time in descending order', editConfig: 'Edit Config', - chooseModel: 'Choose Model' + chooseModel: 'Choose Model', + + nodeStatistics: 'Memory Classification', + total: 'Total', + Chunk: 'Long-term Memory', + MemorySummary: 'Episodic Memory', + Statement: 'Emotional Memory', + ExtractedEntity: 'Short-term Memory', + endUserProfile: 'Core Profile', + editEndUserProfile: 'Edit', + name: 'Name', + position: 'Position', + department: 'Department', + contact: 'Contact', + phone: 'Phone', + hire_date: 'Hire Date', + memoryContent: 'Memory Content', + created_at: 'Created At', }, space: { createSpace: 'Create Space', @@ -1616,7 +1633,7 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re expect_improvement_tag: 'Only low threshold will record', confidence: 'Confidence' }, - emotionDetail: { + statementDetail: { wordCloud: 'Emotion Distribution Analysis', pieces: 'items', emotionTags: 'High-Frequency Emotion Keywords', diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 6aa6cd50..7e597556 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -36,7 +36,7 @@ export const zh = { userMemoryDetail: '用户记忆详情', toolManagement: '工具管理', emotionEngine: '情感引擎', - emotionDetail: '情绪记忆', + statementDetail: '情绪记忆', selfReflectionEngine: '反思引擎', }, knowledgeBase: { @@ -1105,6 +1105,23 @@ export const zh = { occupation: '职业', memories: '记忆', expanded: '展开', + + nodeStatistics: '记忆分类', + total: '总计', + Chunk: '长期记忆', + MemorySummary: '情景记忆', + Statement: '情绪记忆', + ExtractedEntity: '短期记忆', + endUserProfile: '核心档案', + editEndUserProfile: '编辑', + name: '姓名', + position: '职位', + department: '部门', + contact: '联系方式', + phone: '电话', + hire_date: '入职时间', + memoryContent: '记忆内容', + created_at: '创建时间', }, space: { createSpace: '创建空间', @@ -1705,7 +1722,7 @@ export const zh = { expect_improvement_tag: '仅低阈值会记录', confidence: '置信度' }, - emotionDetail: { + statementDetail: { wordCloud: '情感分布分析', pieces: '条', emotionTags: '高频情绪关键词', diff --git a/web/src/routes/index.tsx b/web/src/routes/index.tsx index f5296aab..06032d5b 100644 --- a/web/src/routes/index.tsx +++ b/web/src/routes/index.tsx @@ -56,7 +56,7 @@ const componentMap: Record>> = SpaceManagement: lazy(() => import('@/views/SpaceManagement')), ApiKeyManagement: lazy(() => import('@/views/ApiKeyManagement')), EmotionEngine: lazy(() => import('@/views/EmotionEngine')), - EmotionDetail: lazy(() => import('@/views/UserMemoryDetail/pages/EmotionDetail')), + StatementDetail: lazy(() => import('@/views/UserMemoryDetail/pages/StatementDetail')), SelfReflectionEngine: lazy(() => import('@/views/SelfReflectionEngine')), Login: lazy(() => import('@/views/Login')), InviteRegister: lazy(() => import('@/views/InviteRegister')), diff --git a/web/src/routes/routes.json b/web/src/routes/routes.json index 1a192770..c8b8083a 100644 --- a/web/src/routes/routes.json +++ b/web/src/routes/routes.json @@ -5,6 +5,7 @@ { "path": "/user-management", "element": "UserManagement" }, { "path": "/model", "element": "ModelManagement" }, { "path": "/space", "element": "SpaceManagement" }, + { "path": "/tool", "element": "ToolManagement" }, { "path": "/no-permission", "element": "NoPermission" } ] }, @@ -28,7 +29,7 @@ { "path": "/api-key", "element": "ApiKeyManagement" }, { "path": "/emotion-engine/:id", "element": "EmotionEngine" }, { "path": "/reflection-engine/:id", "element": "SelfReflectionEngine" }, - { "path": "/user-memory/emotion/:id", "element": "EmotionDetail" }, + { "path": "/statement/:id", "element": "StatementDetail" }, { "path": "/no-permission", "element": "NoPermission" }, { "path": "/*", "element": "NotFound" } ] diff --git a/web/src/store/menu.json b/web/src/store/menu.json index 7845815f..ce6486ad 100644 --- a/web/src/store/menu.json +++ b/web/src/store/menu.json @@ -26,19 +26,6 @@ "sort": 0, "subs": [] }, - { - "id": 4, - "parent": 0, - "code": "tool", - "label": "工具管理", - "i18nKey": "menu.toolManagement", - "path": "/tool", - "enable": true, - "display": true, - "level": 1, - "sort": 1, - "subs": [] - }, { "id": 3, "parent": 0, @@ -251,15 +238,15 @@ "sort": 0, "subs": [ { - "id": 81, - "parent": 8, - "code": "emotionDetail", + "id": 811, + "parent": 81, + "code": "statementDetail", "label": "记忆详情", - "i18nKey": "menu.emotionDetail", - "path": "/user-memory/emotion/:id", + "i18nKey": "menu.statementDetail", + "path": "/statement/:id", "enable": true, "display": false, - "level": 2, + "level": 3, "sort": 0, "subs": null } diff --git a/web/src/store/menu.ts b/web/src/store/menu.ts index 7e725921..f7ff7c60 100644 --- a/web/src/store/menu.ts +++ b/web/src/store/menu.ts @@ -57,20 +57,47 @@ export const useMenu = create((set, get) => ({ const { allMenus } = get() const menus = allMenus[source] || [] let result: MenuItem[] = [] - const matchedMenu: MenuItem | undefined = menus.find(menu => menu.path === paths[paths.length - 1] || `${menu.id}` === paths[1]); - - if (matchedMenu) { - let matchedSubMenu: MenuItem | undefined = undefined; - if (paths.length > 1 && matchedMenu?.subs?.length) { - matchedSubMenu = matchedMenu.subs.find(menu => menu.path === paths[0]); + + console.log('updateBreadcrumbs paths:', paths); + + if (paths.length === 3) { + // 三级菜单:[subSubPath, subId, menuId] + const menuId = paths[2]; + const subId = paths[1]; + const subSubPath = paths[0]; + + const matchedMenu = menus.find(menu => `${menu.id}` === menuId); + if (matchedMenu && matchedMenu.subs) { + const matchedSub = matchedMenu.subs.find(sub => `${sub.id}` === subId); + if (matchedSub && matchedSub.subs) { + const matchedSubSub = matchedSub.subs.find(subSub => subSub.path === subSubPath); + if (matchedSubSub) { + result = [ + { ...matchedMenu, subs: null }, + { ...matchedSub, subs: null }, + { ...matchedSubSub, subs: null } + ]; + } + } } - result = [ - { ...matchedMenu, subs: null }, - matchedSubMenu - ].filter(item => item !== undefined) as MenuItem[] } else { - result = [] as MenuItem[] + // 原有逻辑处理一级和二级菜单 + const matchedMenu: MenuItem | undefined = menus.find(menu => menu.path === paths[paths.length - 1] || `${menu.id}` === paths[1]); + + if (matchedMenu) { + let matchedSubMenu: MenuItem | undefined = undefined; + if (paths.length > 1 && matchedMenu?.subs?.length) { + matchedSubMenu = matchedMenu.subs.find(menu => menu.path === paths[0]); + } + result = [ + { ...matchedMenu, subs: null }, + matchedSubMenu + ].filter(item => item !== undefined) as MenuItem[] + } else { + result = [] as MenuItem[] + } } + const allBreadcrumbs = { ...get().allBreadcrumbs, [source]: result } set({ allBreadcrumbs }) localStorage.setItem('breadcrumbs', JSON.stringify(allBreadcrumbs)) diff --git a/web/src/views/SelfReflectionEngine/index.tsx b/web/src/views/SelfReflectionEngine/index.tsx index f7505b4b..0802b706 100644 --- a/web/src/views/SelfReflectionEngine/index.tsx +++ b/web/src/views/SelfReflectionEngine/index.tsx @@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react'; import { Row, Col, Form, App, Button, Switch, Space, Select } from 'antd'; import { useParams } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; + import RbCard from '@/components/RbCard/Card'; import strategyImpactSimulator from '@/assets/images/memory/strategyImpactSimulator.svg' import { getMemoryReflectionConfig, updateMemoryReflectionConfig, pilotRunMemoryReflectionConfig } from '@/api/memory' @@ -139,6 +140,9 @@ const SelfReflectionEngine: React.FC = () => { .then((res) => { setResult(res as Result) }) + .catch(() => { + setRunLoading(false) + }) .finally(() => { setRunLoading(false) }) diff --git a/web/src/views/UserMemoryDetail/Neo4j.tsx b/web/src/views/UserMemoryDetail/Neo4j.tsx index 21a3de6e..b26a9069 100644 --- a/web/src/views/UserMemoryDetail/Neo4j.tsx +++ b/web/src/views/UserMemoryDetail/Neo4j.tsx @@ -8,22 +8,15 @@ import down from '@/assets/images/userMemory/down.svg' import interestDistribution from '@/assets/images/userMemory/interestDistribution.svg' import PieCard from './components/PieCard' import RbCard from '@/components/RbCard/Card' -import type { Data } from './types' import { getUserSummary, - getUserProfile, - getTotalMemoryCountByUser, } from '@/api/memory' import RelationshipNetwork from './components/RelationshipNetwork' import MemoryInsight from './components/MemoryInsight' import Empty from '@/components/Empty' -import WordCloud from './components/WordCloud' -import EmotionTags from './components/EmotionTags' -import Health from './components/Health' -import Suggestions from './components/Suggestions' - -const tagColors = ['21, 94, 239', '156, 111, 255', '255, 93, 52', '54, 159, 33'] +import NodeStatistics from './components/NodeStatistics' +import EndUserProfile from './components/EndUserProfile' interface TitleProps { type: string; @@ -34,15 +27,15 @@ interface TitleProps { onClick: (type: string) => void; } const Title: FC = ({ type, title, icon, t, expanded, onClick }) => ( -
+
- + {title} - onClick(type)}> + onClick(type)}> {t(`userMemory.${expanded ? 'foldUp' : 'expanded'}`)} - @@ -52,47 +45,20 @@ const Title: FC = ({ type, title, icon, t, expanded, onClick }) => ( const Neo4j: FC = () => { const { t } = useTranslation() const { id } = useParams() - const [data, setData] = useState(null) const [expanded, setExpanded] = useState(['aboutUs', 'interestDistribution', 'importantRelationships', 'importantMomentsInLife']) const [summary, setSummary] = useState(null) const [loading, setLoading] = useState>({ - detail: false, summary: false, }) - const [memory, setMemory] = useState(null) useEffect(() => { if (!id) return - getMemory() getSummary() - getDetail() }, [id]) const handleTitleClick = (key: string) => { setExpanded(expanded.includes(key) ? expanded.filter((item) => item !== key) : [...expanded, key]) } - // 用户记忆详情 - const getDetail = () => { - if (!id) return - setLoading(prev => ({ ...prev, detail: true })) - getUserProfile(id).then((res) => { - setData((res as Data)) - }) - .finally(() => { - setLoading(prev => ({ ...prev, detail: false })) - }) - } - // 记忆总览 - const getMemory = () => { - if (!id) return - setLoading(prev => ({ ...prev, memory: true })) - getTotalMemoryCountByUser(id).then((res) => { - setMemory(res.total) - }) - .finally(() => { - setLoading(prev => ({ ...prev, memory: false })) - }) - } // 用户摘要 const getSummary = () => { if (!id) return @@ -105,42 +71,15 @@ const Neo4j: FC = () => { }) } - const name = loading.detail ? '' : data?.name && data?.name !== '' ? data.name : id return (
- + + + -
-
{name?.[0]}
-
- {name}
-
{data?.tags?.join(' | ')}
-
-
- -
- {data?.hot_tags?.map((tag, tagIndex) => ( - - {tag.name}({tag.frequency}) - - ))} -
- - {/* 记忆总量 */} -
- {t('userMemory.totalNumOfMemories')} -
{memory || 0}
-
- {/* 关于我 */} <> { {expanded.includes('aboutUs') && ( <> {loading.summary - ? <Skeleton className="rb:mt-[16px]" /> + ? <Skeleton className="rb:mt-4" /> : summary - ? <div className="rb:font-regular rb:leading-[22px] rb:pt-[16px]"> + ? <div className="rb:font-regular rb:leading-5.5 rb:pt-4"> {summary || '-'} </div> - : <Empty size={88} className="rb:mt-[48px] rb:mb-[81px]" /> + : <Empty size={88} className="rb:mt-12 rb:mb-20.25" /> } </> )} @@ -182,28 +121,19 @@ const Neo4j: FC = () => { </> </RbCard> </Col> - <Col span={24}> - <EmotionTags /> - </Col> </Row> </Col> <Col span={16}> <Row gutter={[16, 16]}> + <Col span={24}> + <NodeStatistics /> + </Col> {/* 记忆洞察 */} <Col span={24}> <MemoryInsight /> </Col> {/* 关系网络 + 记忆详情 */} <RelationshipNetwork /> - <Col span={12}> - <WordCloud /> - </Col> - <Col span={12}> - <Health /> - </Col> - <Col span={24}> - <Suggestions /> - </Col> </Row> </Col> </Row> diff --git a/web/src/views/UserMemoryDetail/Rag.tsx b/web/src/views/UserMemoryDetail/Rag.tsx index 0c83d4d3..12b38461 100644 --- a/web/src/views/UserMemoryDetail/Rag.tsx +++ b/web/src/views/UserMemoryDetail/Rag.tsx @@ -28,15 +28,15 @@ interface TitleProps { onClick: (type: string) => void; } const Title: FC<TitleProps> = ({ type, title, icon, t, expanded, onClick }) => ( - <div className="rb:flex rb:items-center rb:justify-between rb:py-[17px] rb:border-b-[1px] rb:border-[#DFE4ED] rb:text-[16px] rb:font-semibold rb:leading-[22px]"> + <div className="rb:flex rb:items-center rb:justify-between rb:py-4.25 rb:border-b rb:border-[#DFE4ED] rb:text-[16px] rb:font-semibold rb:leading-5.5"> <span className="rb:flex rb:items-center"> - <img src={icon} className="rb:w-[20px] rb:h-[20px] rb:mr-[8px]" /> + <img src={icon} className="rb:w-5 rb:h-5 rb:mr-2" /> {title} </span> - <span className="rb:flex rb:items-center rb:cursor-pointer rb:text-[#5B6167] rb:text-[14px] rb:font-regular rb:leading-[20px]" onClick={() => onClick(type)}> + <span className="rb:flex rb:items-center rb:cursor-pointer rb:text-[#5B6167] rb:text-[14px] rb:font-regular rb:leading-5" onClick={() => onClick(type)}> {t(`userMemory.${expanded ? 'foldUp' : 'expanded'}`)} - <img src={down} className={clsx("rb:w-[16px] rb:h-[16px] rb:ml-[4px]", { + <img src={down} className={clsx("rb:w-4 rb:h-4 rb:ml-1", { 'rb:rotate-180': !expanded, })} /> </span> @@ -115,20 +115,20 @@ const Rag: FC = () => { } const name = loading.detail ? '' : data?.name && data?.name !== '' ? data.name : id return ( - <Row gutter={[16, 16]} className="rb:pb-[24px]"> + <Row gutter={[16, 16]} className="rb:pb-6"> <Col span={8}> <RbCard> <div className="rb:flex rb:items-center"> - <div className="rb:flex-[0_0_auto] rb:w-[80px] rb:h-[80px] rb:text-center rb:font-semibold rb:text-[28px] rb:leading-[80px] rb:rounded-[8px] rb:text-[#FBFDFF] rb:bg-[#155EEF]">{name?.[0]}</div> - <div className="rb:text-[24px] rb:font-semibold rb:leading-[32px] rb:ml-[16px]"> + <div className="rb:flex-[0_0_auto] rb:w-20 rb:h-20 rb:text-center rb:font-semibold rb:text-[28px] rb:leading-20 rb:rounded-lg rb:text-[#FBFDFF] rb:bg-[#155EEF]">{name?.[0]}</div> + <div className="rb:text-[24px] rb:font-semibold rb:leading-8 rb:ml-4"> {name}<br/> - <div className="rb:text-[12px] rb:text-[#5B6167] rb:font-regular rb:leading-[16px] rb:mt-[8px]">{personas?.join(' | ')}</div> + <div className="rb:text-[12px] rb:text-[#5B6167] rb:font-regular rb:leading-4 rb:mt-2">{personas?.join(' | ')}</div> </div> </div> - <div className="rb:flex rb:gap-[8px] rb:mb-[8px] rb:flex-wrap rb:mt-[25px]"> + <div className="rb:flex rb:gap-2 rb:mb-2 rb:flex-wrap rb:mt-6.25"> {tags?.map((tag, tagIndex) => ( - <span key={tag.tag} className="rb:rounded-[11px] rb:p-[0_8px] rb:leading-[22px] rb:border" + <span key={tag.tag} className="rb:rounded-[11px] rb:p-[0_8px] rb:leading-5.5 rb:border" style={{ backgroundColor: `rgba(${tagColors[tagIndex % tagColors.length]}, 0.08)`, borderColor: `rgba(${tagColors[tagIndex % tagColors.length]}, 0.3)`, @@ -141,9 +141,9 @@ const Rag: FC = () => { </div> {/* 记忆总量 */} - <div className="rb:font-regular rb:text-[12px] rb:text-[#5B6167] rb:leading-[16px] rb:mb-[25px]"> + <div className="rb:font-regular rb:text-[12px] rb:text-[#5B6167] rb:leading-4 rb:mb-6.25"> {t('userMemory.totalNumOfMemories')} - <div className="rb:font-extrabold rb:text-[24px] rb:text-[#212332] rb:leading-[30px] rb:mt-[8px]">{memory || 0}</div> + <div className="rb:font-extrabold rb:text-[24px] rb:text-[#212332] rb:leading-7.5 rb:mt-2">{memory || 0}</div> </div> {/* 关于我 */} @@ -159,12 +159,12 @@ const Rag: FC = () => { {expanded.includes('aboutUs') && ( <> {loading.summary - ? <Skeleton className="rb:mt-[16px]" /> + ? <Skeleton className="rb:mt-4" /> : summary - ? <div className="rb:font-regular rb:leading-[22px] rb:pt-[16px]"> + ? <div className="rb:font-regular rb:leading-5.5 rb:pt-4"> {summary || '-'} </div> - : <Empty size={88} className="rb:mt-[48px] rb:mb-[81px]" /> + : <Empty size={88} className="rb:mt-12 rb:mb-20.25" /> } </> )} @@ -182,12 +182,12 @@ const Rag: FC = () => { {expanded.includes('memoryInsight') && ( <> {loading.insight - ? <Skeleton className="rb:mt-[16px]" /> + ? <Skeleton className="rb:mt-4" /> : insight - ? <div className="rb:font-regular rb:leading-[22px] rb:pt-[16px]"> + ? <div className="rb:font-regular rb:leading-5.5 rb:pt-4"> {insight || '-'} </div> - : <Empty size={88} className="rb:mt-[48px] rb:mb-[81px]" /> + : <Empty size={88} className="rb:mt-12 rb:mb-20.25" /> } </> )} diff --git a/web/src/views/UserMemoryDetail/components/Card.tsx b/web/src/views/UserMemoryDetail/components/Card.tsx index 68b44ccb..38939c87 100644 --- a/web/src/views/UserMemoryDetail/components/Card.tsx +++ b/web/src/views/UserMemoryDetail/components/Card.tsx @@ -10,11 +10,11 @@ interface CardProps { const Card: FC<CardProps> = ({ title, children, theme = 'default', className }) => { return ( - <div className={clsx('rb:h-full rb:border rb:rounded-[12px] rb:p-[16px] rb:border-[#DFE4ED]', { + <div className={clsx('rb:h-full rb:border rb:rounded-xl rb:p-4 rb:border-[#DFE4ED]', { 'rb:bg-[#FBFDFF]': theme === 'default', - 'rb:bg-[linear-gradient(180deg,_#F1F9FE_0%,_#FBFCFF_100%)]': theme === 'custom', + 'rb:bg-[linear-gradient(180deg,#F1F9FE_0%,#FBFCFF_100%)]': theme === 'custom', }, className)}> - {title && <div className="rb:text-[18px] rb:font-semibold rb:leading-[25px] rb:pb-[16px]">{title}</div>} + {title && <div className="rb:text-[18px] rb:font-semibold rb:leading-6.25 rb:pb-4">{title}</div>} {children} </div> ) diff --git a/web/src/views/UserMemoryDetail/components/ConversationMemory.tsx b/web/src/views/UserMemoryDetail/components/ConversationMemory.tsx index 3d56ce47..486ddd11 100644 --- a/web/src/views/UserMemoryDetail/components/ConversationMemory.tsx +++ b/web/src/views/UserMemoryDetail/components/ConversationMemory.tsx @@ -47,7 +47,7 @@ const ConversationMemory:FC = () => { <List.Item> <div key={index} - className="rb:rounded-lg rb:border rb:border-[#DFE4ED] rb:px-4 rb:py-3 rb:bg-[#F0F3F8] rb:rounded-lg rb:mt-2 rb:text-gray-800 rb:text-sm" + className="rb:rounded-lg rb:border rb:border-[#DFE4ED] rb:px-4 rb:py-3 rb:bg-[#F0F3F8] rb:mt-2 rb:text-gray-800 rb:text-sm" > <Markdown content={item} /> </div> diff --git a/web/src/views/UserMemoryDetail/components/EmotionTags.tsx b/web/src/views/UserMemoryDetail/components/EmotionTags.tsx index 80c95499..76ffa4ac 100644 --- a/web/src/views/UserMemoryDetail/components/EmotionTags.tsx +++ b/web/src/views/UserMemoryDetail/components/EmotionTags.tsx @@ -13,7 +13,7 @@ interface TagList { const EmotionTags: FC = () => { const { t } = useTranslation() const { id } = useParams() - const [tagList, setTagList] = useState<TagList | null>(null) + const [data, setData] = useState<TagList | null>(null) useEffect(() => { getEmotionTagData() @@ -25,18 +25,18 @@ const EmotionTags: FC = () => { } getWordCloud(id) .then((res) => { - setTagList(res as TagList) + setData(res as TagList) }) } const [visibleCount, setVisibleCount] = useState(0) useEffect(() => { - if (!tagList || tagList?.keywords.length === 0) return + if (!data || data?.keywords.length === 0) return const timer = setInterval(() => { setVisibleCount(prev => { - if (prev >= tagList?.keywords.length) { + if (prev >= data?.keywords.length) { clearInterval(timer) return prev } @@ -45,7 +45,7 @@ const EmotionTags: FC = () => { }, 200) return () => clearInterval(timer) - }, [tagList?.keywords.length]) + }, [data?.keywords.length]) const getEmotionColor = (emotionType: string) => { const colors: Record<string, string> = { @@ -59,19 +59,19 @@ const EmotionTags: FC = () => { return colors[emotionType] || '#8c8c8c' } - const emotionStats = tagList?.keywords.reduce((acc, item) => { + const emotionStats = data?.keywords.reduce((acc, item) => { acc[item.emotion_type] = (acc[item.emotion_type] || 0) + item.frequency return acc }, {} as Record<string, number>) ?? {} return ( <RbCard - title={t('emotionDetail.emotionTags')} + title={t('statementDetail.emotionTags')} headerType="borderless" headerClassName="rb:text-[18px]! rb:leading-[24px]" - bodyClassName='rb:p-0! rb:relative' + bodyClassName='rb:p-0! rb:pb-3! rb:relative' > - {tagList + {data?.keywords && data?.keywords.length > 0 ? <> <div className="rb:flex rb:flex-wrap rb:items-center rb:gap-6 rb:text-sm rb:mt-3 rb:p-3 rb:bg-[#F0F3F8]"> {Object.entries(emotionStats).map(([type, count]) => { @@ -79,13 +79,13 @@ const EmotionTags: FC = () => { return ( <div key={type} className="rb:flex rb:items-center rb:gap-2"> <div className="rb:w-3 rb:h-3 rb:rounded-full" style={{ backgroundColor: getEmotionColor(type) }}></div> - <span className="rb:text-gray-600">{t(`emotionDetail.${type || 'neutral'}`)} ({count}个)</span> + <span className="rb:text-gray-600">{t(`statementDetail.${type || 'neutral'}`)} ({count}个)</span> </div> ) })} </div> <div className="rb:mt-6 rb:flex rb:items-center rb:flex-wrap rb:gap-3 rb:mb-3 rb:px-6"> - {tagList.keywords.slice(0, visibleCount).map((item, index) => ( + {data.keywords.slice(0, visibleCount).map((item, index) => ( <div key={index} className="rb:flex rb:items-center rb:justify-center rb:animate-fadeIn rb:px-4 rb:py-2 rb:rounded-full rb:text-white rb:font-medium" @@ -102,7 +102,7 @@ const EmotionTags: FC = () => { ))} </div> </> - : <Empty /> + : <Empty size={88} /> } </RbCard> ) diff --git a/web/src/views/UserMemoryDetail/components/EndUserProfile.tsx b/web/src/views/UserMemoryDetail/components/EndUserProfile.tsx new file mode 100644 index 00000000..95d40d42 --- /dev/null +++ b/web/src/views/UserMemoryDetail/components/EndUserProfile.tsx @@ -0,0 +1,72 @@ +import { type FC, useEffect, useState, useRef, useCallback } from 'react' +import { useTranslation } from 'react-i18next' +import { useParams } from 'react-router-dom' +import { Skeleton, Descriptions, Button } from 'antd'; +import dayjs from 'dayjs' +import RbCard from '@/components/RbCard/Card' +import Empty from '@/components/Empty'; +import { + getEndUserProfile, +} from '@/api/memory' +import EndUserProfileModal from './EndUserProfileModal' +import type { EndUser, EndUserProfileModalRef } from '../types' + +const EndUserProfile:FC = () => { + const { t } = useTranslation() + const { id } = useParams() + const endUserProfileModalRef = useRef<EndUserProfileModalRef>(null) + const [loading, setLoading] = useState<boolean>(false) + const [data, setData] = useState<EndUser | null>(null) + + useEffect(() => { + if (!id) return + getData() + }, [id]) + + // 记忆洞察 + const getData = () => { + if (!id) return + setLoading(true) + getEndUserProfile(id).then((res) => { + setData(res as EndUser) + setLoading(false) + }) + .finally(() => { + setLoading(false) + }) + } + const formatItems = useCallback(() => { + if (!data) return [] + return ['name', 'position', 'department', 'contact', 'phone', 'hire_date'].map(key => ({ + key, + label: t(`userMemory.${key}`), + children: key === 'hire_date' ? dayjs(data[key as keyof EndUser]).format('YYYY-MM-DD') : String(data[key as keyof EndUser] || ''), + })) + }, [data]) + const handleEdit = () => { + if (!data) return + endUserProfileModalRef.current?.handleOpen(data) + } + return ( + <RbCard + title={t('userMemory.endUserProfile')} + headerType="borderless" + headerClassName="rb:text-[18px]! rb:leading-[24px]" + > + {loading + ? <Skeleton /> + : data + ? <div className="rb:flex rb:flex-wrap rb:justify-between rb:h-full"> + <Descriptions column={1} items={formatItems()} classNames={{ label: 'rb:w-24' }} /> + <Button className="rb:mt-3" block onClick={handleEdit}>{t('common.edit')}</Button> + </div> + : <Empty size={80} /> + } + <EndUserProfileModal + ref={endUserProfileModalRef} + refresh={getData} + /> + </RbCard> + ) +} +export default EndUserProfile \ No newline at end of file diff --git a/web/src/views/UserMemoryDetail/components/EndUserProfileModal.tsx b/web/src/views/UserMemoryDetail/components/EndUserProfileModal.tsx new file mode 100644 index 00000000..947cf3c4 --- /dev/null +++ b/web/src/views/UserMemoryDetail/components/EndUserProfileModal.tsx @@ -0,0 +1,128 @@ +import { forwardRef, useImperativeHandle, useState } from 'react'; +import { Form, Input, App, DatePicker } from 'antd'; +import { useTranslation } from 'react-i18next'; + +import type { EndUser, EndUserProfileModalRef } from '../types' +import RbModal from '@/components/RbModal' +import { updatedEndUserProfile, } from '@/api/memory' +import dayjs from 'dayjs'; + +const FormItem = Form.Item; + +interface EndUserProfileModalProps { + refresh: () => void; +} + +const EndUserProfileModal = forwardRef<EndUserProfileModalRef, EndUserProfileModalProps>(({ + refresh +}, ref) => { + const { t } = useTranslation(); + const { message } = App.useApp(); + const [visible, setVisible] = useState(false); + const [form] = Form.useForm<EndUser>(); + const [loading, setLoading] = useState(false) + + const values = Form.useWatch([], form); + + // 封装取消方法,添加关闭弹窗逻辑 + const handleClose = () => { + setVisible(false); + form.resetFields(); + setLoading(false) + }; + + const handleOpen = (user: EndUser) => { + form.setFieldsValue({ + ...user, + end_user_id: user.id, + hire_date: dayjs(user.hire_date) + }); + setVisible(true); + }; + // 封装保存方法,添加提交逻辑 + const handleSave = () => { + form + .validateFields() + .then(() => { + setLoading(true) + updatedEndUserProfile({ + ...values, + hire_date: values.hire_date.valueOf() + }) + .then(() => { + setLoading(false) + refresh() + handleClose() + message.success(t('common.saveSuccess')) + }) + .catch(() => { + setLoading(false) + }); + }) + .catch((err) => { + console.log('err', err) + }); + } + + // 暴露给父组件的方法 + useImperativeHandle(ref, () => ({ + handleOpen, + handleClose + })); + + return ( + <RbModal + title={t('common.edit')} + open={visible} + onCancel={handleClose} + okText={t('common.save')} + onOk={handleSave} + confirmLoading={loading} + > + <Form + form={form} + layout="vertical" + > + <FormItem name="end_user_id" hidden></FormItem> + <FormItem + name="name" + label={t('userMemory.name')} + > + <Input placeholder={t('common.enter')} /> + </FormItem> + <FormItem + name="position" + label={t('userMemory.position')} + > + <Input placeholder={t('common.enter')} /> + </FormItem> + <FormItem + name="department" + label={t('userMemory.department')} + > + <Input placeholder={t('common.enter')} /> + </FormItem> + <FormItem + name="contact" + label={t('userMemory.contact')} + > + <Input placeholder={t('common.enter')} /> + </FormItem> + <FormItem + name="phone" + label={t('userMemory.phone')} + > + <Input placeholder={t('common.enter')} /> + </FormItem> + <FormItem + name="hire_date" + label={t('userMemory.hire_date')} + > + <DatePicker className="rb:w-full" /> + </FormItem> + </Form> + </RbModal> + ); +}); + +export default EndUserProfileModal; \ No newline at end of file diff --git a/web/src/views/UserMemoryDetail/components/Health.tsx b/web/src/views/UserMemoryDetail/components/Health.tsx index 2f870b90..98ba5d5c 100644 --- a/web/src/views/UserMemoryDetail/components/Health.tsx +++ b/web/src/views/UserMemoryDetail/components/Health.tsx @@ -56,12 +56,11 @@ const Health: FC = () => { return ( <RbCard - title={t('emotionDetail.health')} + title={t('statementDetail.health')} headerType="borderless" headerClassName="rb:text-[18px]! rb:leading-[24px]" - height="100%" > - {health + {health?.health_score && health?.health_score > 0 ? <> <div className="rb:flex rb:justify-center rb:items-center"> <Progress @@ -78,20 +77,20 @@ const Health: FC = () => { {health.dimensions && <> <div className="rb:flex rb:items-center rb:justify-between rb:mt-6"> - <div className="rb:w-40 rb:mr-3">{t('emotionDetail.positivity_rate')}</div> + <div className="rb:w-40 rb:mr-3">{t('statementDetail.positivity_rate')}</div> <Progress className="rb:w-[calc(100%-180px)]" percent={health.dimensions.positivity_rate.score} /> </div> <div className="rb:flex rb:items-center rb:gap-3 rb:mt-3"> - <div className="rb:w-40 rb:mr-3">{t('emotionDetail.stability')}</div> + <div className="rb:w-40 rb:mr-3">{t('statementDetail.stability')}</div> <Progress className="rb:w-[calc(100%-180px)]" percent={health.dimensions.stability.score} /> </div> <div className="rb:flex rb:items-center rb:gap-3 rb:mt-3"> - <div className="rb:w-40 rb:mr-3">{t('emotionDetail.resilience')}</div> + <div className="rb:w-40 rb:mr-3">{t('statementDetail.resilience')}</div> <Progress className="rb:w-[calc(100%-180px)]" percent={health.dimensions.resilience.score} /> </div> </>} </> - : <Empty /> + : <Empty size={88} className="rb:h-full" /> } </RbCard> ) diff --git a/web/src/views/UserMemoryDetail/components/MemoryInsight.tsx b/web/src/views/UserMemoryDetail/components/MemoryInsight.tsx index 641a1351..1471a2d3 100644 --- a/web/src/views/UserMemoryDetail/components/MemoryInsight.tsx +++ b/web/src/views/UserMemoryDetail/components/MemoryInsight.tsx @@ -43,7 +43,7 @@ const MemoryInsight:FC = () => { ? <Skeleton /> : report ? <div className="rb:flex rb:flex-wrap rb:justify-between rb:h-full"> - <div className="rb:leading-[22px]"> + <div className="rb:leading-5.5"> {report|| '-'} </div> </div> diff --git a/web/src/views/UserMemoryDetail/components/NodeStatistics.tsx b/web/src/views/UserMemoryDetail/components/NodeStatistics.tsx new file mode 100644 index 00000000..82c633a0 --- /dev/null +++ b/web/src/views/UserMemoryDetail/components/NodeStatistics.tsx @@ -0,0 +1,90 @@ +import { type FC, useEffect, useState } from 'react' +import clsx from 'clsx' +import { useTranslation } from 'react-i18next' +import { useParams, useNavigate } from 'react-router-dom' +import { Skeleton } from 'antd'; +import RbCard from '@/components/RbCard/Card' +import Empty from '@/components/Empty'; +import { + getNodeStatistics, +} from '@/api/memory' +import type { NodeStatisticsItem } from '../types' + + +const NodeStatistics: FC = () => { + const navigate = useNavigate(); + const { t } = useTranslation() + const { id } = useParams() + const [loading, setLoading] = useState<boolean>(false) + const [total, setTotal] = useState<number>(0) + const [data, setData] = useState<NodeStatisticsItem[]>([]) + + useEffect(() => { + if (!id) return + getData() + }, [id]) + + // 记忆洞察 + const getData = () => { + if (!id) return + setLoading(true) + getNodeStatistics(id).then((res) => { + const response = res as { nodes: NodeStatisticsItem[], total: number } + setData(response.nodes) + setTotal(response.total) + setLoading(false) + }) + .finally(() => { + setLoading(false) + }) + } + const handleViewDetail = (type: string) => { + switch (type) { + case 'Statement': + navigate(`/statement/${id}`) + break + } + } + return ( + <RbCard + title={t('userMemory.nodeStatistics')} + extra={<div>{t('userMemory.total')}: {total}</div>} + headerType="borderless" + headerClassName="rb:text-[18px]! rb:leading-[24px]" + bgColor="linear-gradient(180deg,#F1F9FE 0%, #FBFCFF 100%)" + height="100%" + > + {loading + ? <Skeleton /> + : data.length > 0 + ? <div className={`rb:w-full rb:grid rb:grid-cols-${data.length} rb:gap-2`}> + {data.map(vo => ( + <div + key={vo.type} + className={clsx("rb:group rb:border rb:border-[#DFE4ED] rb:p-0 rb:rounded-xl rb:hover:shadow-[0px_2px_4px_0px_rgba(0,0,0,0.15)]", { + 'rb:cursor-pointer': vo.type === 'Statement' + })} + onClick={() => handleViewDetail(vo.type)} + > + <div className="rb:gap-0.5 rb:p-3 rb:leading-4 rb:text-[#5B6167] rb:flex rb:items-center rb:justify-between rb:border-b rb:border-[#DFE4ED]"> + <div className="rb:wrap-break-word rb:line-clamp-1">{t(`userMemory.${vo.type}`)}</div> + {vo.type === 'Statement' && <div + className="rb:w-3 rb:h-3 rb:-ml-0.75 rb:cursor-pointer rb:bg-cover rb:bg-[url('@/assets/images/home/arrow_top_right.svg')] rb:group-hover:bg-[url('@/assets/images/home/arrow_top_right_hover.svg')]" + ></div>} + </div> + + <div className="rb:p-3 rb:flex rb:justify-between rb:items-center rb:font-bold rb:text-[20px] rb:text-[#212332] rb:text-left"> + {vo.count ?? 0} + <div className="rb:text-right rb:font-normal rb:text-[14px] rb:text-[#5F6266] rb:leading-4 rb:gap-1"> + {vo.percentage ?? 0}% + </div> + </div> + </div> + ))} + </div> + : <Empty size={80} /> + } + </RbCard> + ) +} +export default NodeStatistics \ No newline at end of file diff --git a/web/src/views/UserMemoryDetail/components/PieCard.tsx b/web/src/views/UserMemoryDetail/components/PieCard.tsx index 2063ab08..982a8be6 100644 --- a/web/src/views/UserMemoryDetail/components/PieCard.tsx +++ b/web/src/views/UserMemoryDetail/components/PieCard.tsx @@ -59,7 +59,7 @@ const PieCard: FC = () => { {loading ? <Loading size={249} /> : !data || data.length === 0 - ? <Empty size={88} className="rb:mt-[48px] rb:mb-[81px]" /> + ? <Empty size={88} className="rb:mt-12 rb:mb-20.25" /> : data && data.length > 0 && <ReactEcharts option={{ diff --git a/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx b/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx index 59513225..f579b990 100644 --- a/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx +++ b/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx @@ -8,11 +8,12 @@ import zoom from '@/assets/images/userMemory/zoom.svg' import drag from '@/assets/images/userMemory/drag.svg' import pointer from '@/assets/images/userMemory/pointer.svg' import empty from '@/assets/images/userMemory/empty.svg' -import type { EdgeData, Node, Edge } from '../types' +import type { Node, Edge, GraphData } from '../types' import { getMemorySearchEdges, } from '@/api/memory' import Empty from '@/components/Empty' +import dayjs from 'dayjs' const operations = [ { name: 'click', icon: pointer }, @@ -35,89 +36,76 @@ const RelationshipNetwork:FC = () => { if (!id) return setSelectedNode(null) getMemorySearchEdges(id).then((res) => { - const list = (res as { detials?: EdgeData[] }).detials || [] - const nodes: Node[] = []; - const links: Edge[] = []; - const categories: { name: string }[] = [] + const { nodes, edges, statistics } = res as GraphData + const curNodes: Node[] = [] + const curEdges: Edge[] = [] + const curNodeTypes = Object.keys(statistics.node_types) - list.forEach(item => { - if (item.edge && item.edge.target_id && item.edge.source_id) { - links.push({ - ...item.edge, - target: item.edge.target_id, - source: item.edge.source_id, - }) - } - if (item.sourceNode) { - nodes.push(item.sourceNode) - categories.push({name: item.sourceNode.entity_type || 'Unknown'}) - } - if (item.targetNode) { - nodes.push(item.targetNode) - categories.push({name: item.targetNode.entity_type || 'Unknown'}) - } + // 计算每个节点的连接数 + const connectionCount: Record<string, number> = {} + edges.forEach(edge => { + connectionCount[edge.source] = (connectionCount[edge.source] || 0) + 1 + connectionCount[edge.target] = (connectionCount[edge.target] || 0) + 1 }) - // 根据ID字段去重节点 - const uniqueNodes = nodes.filter((node, index, self) => - index === self.findIndex((n) => n.id === node.id && n.name === node.name) - ) - const uniqueLinks = links.filter((node, index, self) => - index === self.findIndex((n) => n.target === node.target && n.source === node.source) - ) - const uniqueCategories = categories.filter((node, index, self) => - index === self.findIndex((n) => n.name === node.name) - ) - - setLinks(uniqueLinks) - setCategories(uniqueCategories) - - // Calculate node frequency based on appearance in links - const nodeFrequency = new Map<string, number>() - - // Count each node's appearance in links (both as source and target) - uniqueLinks.forEach(link => { - // Increment source node frequency (only if source exists and is a string) - if (typeof link.source === 'string') { - nodeFrequency.set(link.source, (nodeFrequency.get(link.source) || 0) + 1) - } - // Increment target node frequency (only if target exists and is a string) - if (typeof link.target === 'string') { - nodeFrequency.set(link.target, (nodeFrequency.get(link.target) || 0) + 1) - } - }) - - // Set minimum frequency to 1 for nodes not in any links - uniqueNodes.forEach(node => { - if (node.id && typeof node.id === 'string') { - if (!nodeFrequency.has(node.id)) { - nodeFrequency.set(node.id, 1) - } - } - }) - - uniqueNodes.map(item => { - const index = uniqueCategories.findIndex((n) => n.name === (item.entity_type || 'Unknown')) - item.category = index + // 处理节点数据 + nodes.forEach(node => { + const connections = connectionCount[node.id] || 0 + const categoryIndex = curNodeTypes.indexOf(node.label) - // Get frequency for the node, ensuring id is a string - const frequency = (item.id && typeof item.id === 'string') ? (nodeFrequency.get(item.id) || 1) : 1 - - // Set symbolSize based on frequency - // Adjust these thresholds based on expected frequency ranges - if (frequency <= 1) { - item.symbolSize = 5 - } else if (frequency <= 10) { - item.symbolSize = 10 - } else if (frequency <= 15) { - item.symbolSize = 15 - } else if (frequency <= 20) { - item.symbolSize = 25 + // 根据节点类型获取显示名称 + let displayName = '' + switch (node.label) { + case 'Statement': + displayName = 'statement' in node.properties ? node.properties.statement?.slice(0, 5) || '' : '' + break + case 'ExtractedEntity': + displayName = 'name' in node.properties ? node.properties.name || '' : '' + break + default: + displayName = 'content' in node.properties ? node.properties.content?.slice(0, 5) || '' : '' + break + } + let symbolSize = 0 + if (connections <= 1) { + symbolSize = 5 + } else if (connections <= 10) { + symbolSize = 10 + } else if (connections <= 15) { + symbolSize = 15 + } else if (connections <= 20) { + symbolSize = 25 } else { - item.symbolSize = 35 + symbolSize = 35 } + + curNodes.push({ + ...node, + name: displayName, + category: categoryIndex >= 0 ? categoryIndex : 0, + symbolSize: symbolSize, // 根据连接数调整节点大小 + itemStyle: { + color: ['#155EEF', '#4DA8FF', '#9C6FFF', '#8BAEF7', '#369F21', '#FF5D34', '#FF8A4C', '#FFB048'][categoryIndex % 8] + } + }) }) - setNodes(uniqueNodes) + + // 处理边数据 + edges.forEach(edge => { + curEdges.push({ + ...edge, + source: edge.source, + target: edge.target, + value: edge.weight || 1 + }) + }) + + // 设置分类 + const curCategories = curNodeTypes.map(type => ({ name: type })) + + setNodes(curNodes) + setLinks(curEdges) + setCategories(curCategories) }) }, [id]) useEffect(() => { @@ -147,7 +135,6 @@ const RelationshipNetwork:FC = () => { } }, [nodes]) - console.log('nodes', nodes) return ( <> {/* 关系网络 */} @@ -157,7 +144,7 @@ const RelationshipNetwork:FC = () => { headerType="borderless" headerClassName="rb:text-[18px]! rb:leading-[24px]" > - <div className="rb:h-[496px]"> + <div className="rb:h-124"> {nodes.length === 0 ? ( <Empty className="rb:h-full" /> ) : ( @@ -175,8 +162,13 @@ const RelationshipNetwork:FC = () => { links: links || [], categories: categories || [], roam: true, + label: { + show: true, + position: 'right', + formatter: '{b}', + }, lineStyle: { - color: 'source', + color: '#5B6167', curveness: 0.3 }, force: { @@ -218,19 +210,17 @@ const RelationshipNetwork:FC = () => { // 处理节点点击事件 console.log('Node clicked:', params.data); // 使用函数式更新避免状态依赖问题 - setSelectedNode(prevSelected => - prevSelected?.id === params.data.id ? null : params.data - ) + setSelectedNode(params.data) } } }} /> )} </div> - <div className="rb:bg-[#F0F3F8] rb:flex rb:items-center rb:gap-[24px] rb:rounded-[0px_0px_12px_12px] rb:p-[14px_40px] rb:m-[0_-20px_-16px_-16px]"> + <div className="rb:bg-[#F0F3F8] rb:flex rb:items-center rb:gap-6 rb:rounded-[0px_0px_12px_12px] rb:p-[14px_40px] rb:m-[0_-20px_-16px_-16px]"> {operations.map((item) => ( - <div key={item.name} className="rb:flex rb:items-center rb:text-[#5B6167] rb:leading-[20px]"> - <img src={item.icon} className="rb:w-[20px] rb:h-[20px] rb:mr-[4px]" /> + <div key={item.name} className="rb:flex rb:items-center rb:text-[#5B6167] rb:leading-5"> + <img src={item.icon} className="rb:w-5 rb:h-5 rb:mr-1" /> {t(`userMemory.${item.name}`)} </div> ))} @@ -244,27 +234,35 @@ const RelationshipNetwork:FC = () => { headerType="borderless" headerClassName="rb:text-[18px]! rb:leading-[24px]" > - {(!selectedNode || (!selectedNode?.description && !selectedNode?.entity_type)) + {!selectedNode ? <Empty url={empty} title={t('userMemory.memoryDetailEmpty')} subTitle={t('userMemory.memoryDetailEmptyDesc')} - className="rb:mb-[12px]" + className="rb:mb-3" size={88} /> : <> - {selectedNode?.description && - <div className="rb:font-medium rb:mb-[8px]"> - {t('userMemory.description')} - <div className="rb:text-[12px] rb:text-[#5B6167] rb:mt-[8px]"> {selectedNode.description}</div> + + <div className="rb:font-medium rb:mb-2"> + {t('userMemory.memoryContent')} + <div className="rb:text-[12px] rb:text-[#5B6167] rb:mt-2"> + {['Chunk', 'Dialogue', 'MemorySummary'].includes(selectedNode.label) && 'content' in selectedNode.properties + ? selectedNode.properties.content + : selectedNode.label === 'ExtractedEntity' && 'description' in selectedNode.properties + ? selectedNode.properties.description + : selectedNode.label === 'Statement' && 'statement' in selectedNode.properties + ? selectedNode.properties.statement + : '' + } </div> - } - {selectedNode?.entity_type && - <div className="rb:font-medium rb:mb-[8px]"> - {t('userMemory.entityType')} - <div className="rb:text-[12px] rb:text-[#5B6167] rb:mt-[8px]"> {selectedNode.entity_type}</div> + </div> + <div className="rb:font-medium rb:mb-2"> + {t('userMemory.created_at')} + <div className="rb:text-[12px] rb:text-[#5B6167] rb:mt-2"> + {dayjs(selectedNode?.properties.created_at).format('YYYY/MM/DD HH:mm:ss')} </div> - } + </div> </> } </RbCard> diff --git a/web/src/views/UserMemoryDetail/components/Suggestions.tsx b/web/src/views/UserMemoryDetail/components/Suggestions.tsx index 1c1792fb..0346f9dc 100644 --- a/web/src/views/UserMemoryDetail/components/Suggestions.tsx +++ b/web/src/views/UserMemoryDetail/components/Suggestions.tsx @@ -39,11 +39,11 @@ const Suggestions: FC = () => { return ( <RbCard - title={t('emotionDetail.suggestions')} + title={t('statementDetail.suggestions')} headerType="borderless" headerClassName="rb:text-[18px]! rb:leading-[24px]" > - {suggestions + {suggestions?.suggestions && suggestions?.suggestions.length > 0 ? <> <RbAlert className="rb:mb-3">{suggestions.health_summary}</RbAlert> {suggestions.suggestions.map((item, index) => ( @@ -54,7 +54,7 @@ const Suggestions: FC = () => { </div> ))} </> - : <Empty /> + : <Empty size={88} className="rb:h-full" /> } </RbCard> ) diff --git a/web/src/views/UserMemoryDetail/components/WordCloud.tsx b/web/src/views/UserMemoryDetail/components/WordCloud.tsx index 7d59763b..64f2bfaa 100644 --- a/web/src/views/UserMemoryDetail/components/WordCloud.tsx +++ b/web/src/views/UserMemoryDetail/components/WordCloud.tsx @@ -81,7 +81,7 @@ const WordCloud: FC = () => { }, radar: { indicator: radarData.map(item => ({ - name: t(`emotionDetail.${item.name}`), + name: t(`statementDetail.${item.name}`), max: 100, min: 1 })) @@ -99,12 +99,12 @@ const WordCloud: FC = () => { return ( <RbCard - title={t('emotionDetail.wordCloud')} + title={t('statementDetail.wordCloud')} headerType="borderless" headerClassName="rb:text-[18px]! rb:leading-[24px]" height="100%" > - {wordCloud + {wordCloud?.total_count && wordCloud?.total_count > 0 ? <div className="rb:flex rb:h-100"> <ReactEcharts ref={chartRef} option={radarOption} style={{ width: '50%', height: '100%' }} /> <div className="rb:w-[50%] rb:pl-4 rb:flex rb:flex-col rb:justify-center"> @@ -113,8 +113,8 @@ const WordCloud: FC = () => { {wordCloud.tags.map(item => ( <div key={item.emotion_type}> <div className="rb:flex rb:items-center rb:justify-between rb:font-medium"> - {t(`emotionDetail.${item.emotion_type}`)} - <div className="rb:text-[12px] rb:text-[#5B6167] rb:font-regular">{item.count}{t('emotionDetail.pieces')}</div> + {t(`statementDetail.${item.emotion_type}`)} + <div className="rb:text-[12px] rb:text-[#5B6167] rb:font-regular">{item.count}{t('statementDetail.pieces')}</div> </div> <Progress size="small" percent={item.percentage} /> </div> @@ -122,7 +122,7 @@ const WordCloud: FC = () => { </div> </div> </div> - : <Empty /> + : <Empty size={88} /> } </RbCard> ) diff --git a/web/src/views/UserMemoryDetail/pages/EmotionDetail.tsx b/web/src/views/UserMemoryDetail/pages/StatementDetail.tsx similarity index 59% rename from web/src/views/UserMemoryDetail/pages/EmotionDetail.tsx rename to web/src/views/UserMemoryDetail/pages/StatementDetail.tsx index 987c7a3f..e6ddfd20 100644 --- a/web/src/views/UserMemoryDetail/pages/EmotionDetail.tsx +++ b/web/src/views/UserMemoryDetail/pages/StatementDetail.tsx @@ -1,5 +1,5 @@ import { type FC } from 'react' -import { Row, Col } from 'antd'; +import { Row, Col, Space } from 'antd'; import WordCloud from '../components/WordCloud' import EmotionTags from '../components/EmotionTags' @@ -7,17 +7,15 @@ import Health from '../components/Health' import Suggestions from '../components/Suggestions' -const EmotionDetail: FC = () => { +const StatementDetail: FC = () => { return ( <Row gutter={[16, 16]}> <Col span={12}> - <WordCloud /> - </Col> - <Col span={12}> - <EmotionTags /> - </Col> - <Col span={12}> - <Health /> + <Space size={16} direction="vertical" className="rb:w-full"> + <WordCloud /> + <EmotionTags /> + <Health /> + </Space> </Col> <Col span={12}> <Suggestions /> @@ -26,4 +24,4 @@ const EmotionDetail: FC = () => { ) } -export default EmotionDetail \ No newline at end of file +export default StatementDetail \ No newline at end of file diff --git a/web/src/views/UserMemoryDetail/types.ts b/web/src/views/UserMemoryDetail/types.ts index e2f31adf..10b0c2fa 100644 --- a/web/src/views/UserMemoryDetail/types.ts +++ b/web/src/views/UserMemoryDetail/types.ts @@ -1,3 +1,5 @@ +import type { Dayjs } from "dayjs"; + export interface Data { id: string | number name: string; @@ -39,30 +41,93 @@ export interface Data { }[]; [key: string]: unknown; } +export interface BaseProperties { + content: string; + created_at: number; +} +export interface StatementNodeProperties { + temporal_info: string; + stmt_type: string; + statement: string; + valid_at: string; + created_at: number; +} +export interface ExtractedEntityNodeProperties { + description: string; + name: string; + entity_type: string; + created_at: number; +} +export interface MemorySummaryNode { + id: string; + label: 'MemorySummary'; + category: number; + symbolSize: number; + itemStyle: { + color: string; + } + name: string; + properties: { + content: string; + created_at: number; + } + caption: string; + +} export interface Node { id: string; - description?: string; + label: 'Dialogue' | 'ExtractedEntity' | 'Chunk' | 'MemorySummary' | 'Statement'; + category: number; + symbolSize: number; name: string; - connect_strength?: string; - entity_idx: number; - entity_type?: string; - fact_summary?: string[]; - category?: number; - symbolSize?: number; + itemStyle: { + color: string; + } + properties: BaseProperties | StatementNodeProperties | ExtractedEntityNodeProperties + caption: string; } export interface Edge { - statement: string; - rel_id: string; - source_id: string; - predicate: string; - target_id: string; - statement_id: string; - target?: string; - source?: string; + id: string; + source: string; + target: string; + type: string; + properties: { + run_id: string; + group_id: string; + created_at: string; + expired_at: string; + } + caption: string; + value: number; + weight: number; } -export interface EdgeData { - sourceNode: Node; - edge: Edge; - targetNode: Node; +export interface GraphData { + nodes: Node[]; + edges: Edge[]; + statistics: { + total_nodes: number; + total_edges: number; + node_types: Record<string, number>; + edge_types: Record<string, number>; + } +} + +export interface NodeStatisticsItem { + type: string; + count: number; + percentage: number; +} +export interface EndUser { + end_user_id: string; + id: string; + name: string; + position: string; + department: string; + contact: string; + phone: string; + hire_date: string | number | Dayjs +} +export interface EndUserProfileModalRef { + handleOpen: (vo: EndUser) => void; } \ No newline at end of file From 9f7bafe7fb11e0bd8669137f6631414bff70c186 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Mon, 22 Dec 2025 18:49:31 +0800 Subject: [PATCH 34/92] feat(web): update routes.json --- web/src/routes/routes.json | 1 - 1 file changed, 1 deletion(-) diff --git a/web/src/routes/routes.json b/web/src/routes/routes.json index c8b8083a..d4f6a12e 100644 --- a/web/src/routes/routes.json +++ b/web/src/routes/routes.json @@ -5,7 +5,6 @@ { "path": "/user-management", "element": "UserManagement" }, { "path": "/model", "element": "ModelManagement" }, { "path": "/space", "element": "SpaceManagement" }, - { "path": "/tool", "element": "ToolManagement" }, { "path": "/no-permission", "element": "NoPermission" } ] }, From cd325fe19855367d5a2c0fc0fc623835318138be Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Mon, 22 Dec 2025 20:01:10 +0800 Subject: [PATCH 35/92] fix(web): workflow bug --- web/src/views/Workflow/components/Chat/Chat.tsx | 4 ++-- .../Workflow/components/Chat/VariableConfigModal.tsx | 11 ++++++----- web/src/views/Workflow/hooks/useWorkflowGraph.ts | 9 +++++++++ web/src/views/Workflow/types.ts | 2 +- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/web/src/views/Workflow/components/Chat/Chat.tsx b/web/src/views/Workflow/components/Chat/Chat.tsx index 09e47f61..340f4f31 100644 --- a/web/src/views/Workflow/components/Chat/Chat.tsx +++ b/web/src/views/Workflow/components/Chat/Chat.tsx @@ -54,7 +54,7 @@ const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId setChatList([]) } const handleEditVariables = () => { - variableConfigModalRef.current?.handleOpen() + variableConfigModalRef.current?.handleOpen(variables) } const handleSave = (values: StartVariableItem[]) => { setVariables([...values]) @@ -91,7 +91,7 @@ const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId }]) setChatList(prev => [...prev, { role: 'assistant', - content: message, + content: '', created_at: Date.now(), }]) diff --git a/web/src/views/Workflow/components/Chat/VariableConfigModal.tsx b/web/src/views/Workflow/components/Chat/VariableConfigModal.tsx index 22fe8f1b..fd422b42 100644 --- a/web/src/views/Workflow/components/Chat/VariableConfigModal.tsx +++ b/web/src/views/Workflow/components/Chat/VariableConfigModal.tsx @@ -12,12 +12,12 @@ interface VariableEditModalProps { const VariableConfigModal = forwardRef<VariableEditModalRef, VariableEditModalProps>(({ refresh, - variables }, ref) => { const { t } = useTranslation(); const [visible, setVisible] = useState(false); const [form] = Form.useForm<{variables: StartVariableItem[]}>(); const [loading, setLoading] = useState(false) + const [initialValues, setInitialValues] = useState<StartVariableItem[]>([]) // 封装取消方法,添加关闭弹窗逻辑 const handleClose = () => { @@ -26,9 +26,10 @@ const VariableConfigModal = forwardRef<VariableEditModalRef, VariableEditModalPr setLoading(false) }; - const handleOpen = () => { - + const handleOpen = (values: StartVariableItem[]) => { setVisible(true); + form.setFieldsValue({variables: values}) + setInitialValues([...values]) }; // 封装保存方法,添加提交逻辑 const handleSave = () => { @@ -59,18 +60,18 @@ const VariableConfigModal = forwardRef<VariableEditModalRef, VariableEditModalPr form={form} layout="horizontal" scrollToFirstError={{ behavior: 'instant', block: 'end', focus: true }} - initialValues={{ variables: variables }} > <Form.List name="variables"> {(fields) => ( <> {fields.map(({ name }, index) => { - const field = variables[index] + const field = initialValues[index] return ( <Form.Item key={name} name={[name, 'value']} label={field.type === 'boolean' ? undefined : `${field.name}·${field.description}`} + valuePropName={field.type === 'boolean' ? 'checked' : 'value'} rules={[ { required: field.required, message: field.type === 'boolean' ? t('common.pleaseSelect') : t('common.pleaseEnter') }, ]} diff --git a/web/src/views/Workflow/hooks/useWorkflowGraph.ts b/web/src/views/Workflow/hooks/useWorkflowGraph.ts index 3ec141dc..564d75c8 100644 --- a/web/src/views/Workflow/hooks/useWorkflowGraph.ts +++ b/web/src/views/Workflow/hooks/useWorkflowGraph.ts @@ -138,6 +138,15 @@ export const useWorkflowGraph = ({ }) graphRef.current.addEdges(edgeList.filter(vo => vo !== null)) } + + // 初始化完成后,将节点展示在可视区域内 + if (nodes.length > 0 || edges.length > 0) { + setTimeout(() => { + if (graphRef.current) { + graphRef.current.centerContent() + } + }, 200) + } } const saveState = () => { diff --git a/web/src/views/Workflow/types.ts b/web/src/views/Workflow/types.ts index c9e76dad..6debcad6 100644 --- a/web/src/views/Workflow/types.ts +++ b/web/src/views/Workflow/types.ts @@ -75,7 +75,7 @@ export interface WorkflowConfig { } export interface VariableEditModalRef { - handleOpen: (values?: StartVariableItem) => void; + handleOpen: (values: StartVariableItem[]) => void; } export interface StartVariableItem { name: string; From 5736a70ccbf3eec12063ed09799aca57fe6728b3 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Tue, 23 Dec 2025 11:20:04 +0800 Subject: [PATCH 36/92] fix(web): workflow variable --- web/src/i18n/en.ts | 3 ++- .../views/Workflow/components/Chat/Chat.tsx | 22 +++++++++++----- .../components/Chat/VariableConfigModal.tsx | 4 +-- .../Workflow/components/Nodes/NormalNode.tsx | 5 +++- .../Properties/VariableEditModal.tsx | 25 +++++++++---------- .../Workflow/components/Properties/index.tsx | 6 ++--- .../views/Workflow/hooks/useWorkflowGraph.ts | 4 +-- web/src/views/Workflow/types.ts | 7 ++++-- 8 files changed, 46 insertions(+), 30 deletions(-) diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 8dbef551..52a95544 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -324,7 +324,8 @@ export const en = { loginApiCannotRefreshToken: 'Login API cannot refresh token', logoutApiCannotRefreshToken: 'Logout API cannot refresh token', publicApiCannotRefreshToken: 'Public API cannot refresh token', - refreshTokenNotExist: 'Refresh token does not exist' + refreshTokenNotExist: 'Refresh token does not exist', + reset: 'Reset', }, model: { searchPlaceholder: 'search model…', diff --git a/web/src/views/Workflow/components/Chat/Chat.tsx b/web/src/views/Workflow/components/Chat/Chat.tsx index 340f4f31..b81f5fae 100644 --- a/web/src/views/Workflow/components/Chat/Chat.tsx +++ b/web/src/views/Workflow/components/Chat/Chat.tsx @@ -13,14 +13,14 @@ import ChatContent from '@/components/Chat/ChatContent' import type { ChatItem } from '@/components/Chat/types' import ChatSendIcon from '@/assets/images/application/chatSend.svg' import dayjs from 'dayjs' -import type { ChatRef, VariableEditModalRef, StartVariableItem, GraphRef } from '../../types' +import type { ChatRef, VariableConfigModalRef, StartVariableItem, GraphRef } from '../../types' import { type SSEMessage } from '@/utils/stream' const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId, graphRef }, ref) => { const { t } = useTranslation() const { message: messageApi } = App.useApp() const [form] = Form.useForm<{ message: string }>() - const variableConfigModalRef = useRef<VariableEditModalRef>(null) + const variableConfigModalRef = useRef<VariableConfigModalRef>(null) const [open, setOpen] = useState(false) const [loading, setLoading] = useState(false) const [chatList, setChatList] = useState<ChatItem[]>([]) @@ -38,15 +38,16 @@ const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId if (startNodes.length) { const curVariables = startNodes[0].config.variables?.defaultValue - const initialValue: Record<string, any> = {} - curVariables.forEach((vo: StartVariableItem) => { if (vo.default) { - initialValue[vo.name] = vo.default + vo.value = vo.default + } + const lastVo = variables.find(item => item.name === vo.name) + if (lastVo?.value) { + vo.value = lastVo.value } }) setVariables(curVariables) - form.setFieldsValue(initialValue) } } const handleClose = () => { @@ -114,6 +115,15 @@ const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId }) break case 'workflow_end': + setChatList(prev => { + const lastChat = { ...prev[prev.length - 1] } + lastChat.content = lastChat.content === '' ? null : lastChat.content + + return [ + ...prev.slice(0, prev.length - 1), + lastChat + ] + }) setStreamLoading(false); break; } diff --git a/web/src/views/Workflow/components/Chat/VariableConfigModal.tsx b/web/src/views/Workflow/components/Chat/VariableConfigModal.tsx index fd422b42..d262048e 100644 --- a/web/src/views/Workflow/components/Chat/VariableConfigModal.tsx +++ b/web/src/views/Workflow/components/Chat/VariableConfigModal.tsx @@ -2,7 +2,7 @@ import { forwardRef, useImperativeHandle, useState } from 'react'; import { Form, Input, InputNumber, Checkbox } from 'antd'; import { useTranslation } from 'react-i18next'; -import type { StartVariableItem, VariableEditModalRef } from '../../types' +import type { StartVariableItem, VariableConfigModalRef } from '../../types' import RbModal from '@/components/RbModal' interface VariableEditModalProps { @@ -10,7 +10,7 @@ interface VariableEditModalProps { variables: StartVariableItem[] } -const VariableConfigModal = forwardRef<VariableEditModalRef, VariableEditModalProps>(({ +const VariableConfigModal = forwardRef<VariableConfigModalRef, VariableEditModalProps>(({ refresh, }, ref) => { const { t } = useTranslation(); diff --git a/web/src/views/Workflow/components/Nodes/NormalNode.tsx b/web/src/views/Workflow/components/Nodes/NormalNode.tsx index 80eae888..17c55494 100644 --- a/web/src/views/Workflow/components/Nodes/NormalNode.tsx +++ b/web/src/views/Workflow/components/Nodes/NormalNode.tsx @@ -19,7 +19,10 @@ const NormalNode: ReactShapeConfig['component'] = ({ node }) => { <div className="rb:w-5 rb:h-5 rb:cursor-pointer rb:bg-cover rb:bg-[url('@/assets/images/deleteBorder.svg')] rb:hover:bg-[url('@/assets/images/deleteBg.svg')]" - onClick={() => {}} + onClick={(e) => { + e.stopPropagation() + node.remove() + }} ></div> </div> diff --git a/web/src/views/Workflow/components/Properties/VariableEditModal.tsx b/web/src/views/Workflow/components/Properties/VariableEditModal.tsx index 92c31140..61490fcd 100644 --- a/web/src/views/Workflow/components/Properties/VariableEditModal.tsx +++ b/web/src/views/Workflow/components/Properties/VariableEditModal.tsx @@ -26,6 +26,10 @@ const variableType = { // array: 'array', // object: 'object', } +const initialValues = { + max_length: 48, + required: true +} const VariableEditModal = forwardRef<VariableEditModalRef, VariableEditModalProps>(({ refresh @@ -71,17 +75,12 @@ const VariableEditModal = forwardRef<VariableEditModalRef, VariableEditModalProp handleOpen, handleClose })); - // 变量类型改变时,更新初始化其他字段值 - const handleChangeType = (value: StartVariableItem['type']) => { - if (value) { - form.setFieldsValue({ - type: value, - name: undefined, - description: undefined, - max_length: undefined, - default: undefined - }) - } + const nameChange = (e: React.ChangeEvent<HTMLInputElement>) => { + if (values.description && values.description !== '') return + const { value } = e.target + form.setFieldsValue({ + description: value, + }) } return ( @@ -96,6 +95,7 @@ const VariableEditModal = forwardRef<VariableEditModalRef, VariableEditModalProp <Form form={form} layout="vertical" + initialValues={initialValues} scrollToFirstError={{ behavior: 'instant', block: 'end', focus: true }} > {/* 变量类型 */} @@ -110,7 +110,6 @@ const VariableEditModal = forwardRef<VariableEditModalRef, VariableEditModalProp value: key, label: t(`workflow.config.start.${key}`), }))} - onChange={handleChangeType} labelRender={(props) => <div className="rb:flex rb:justify-between rb:items-center">{props.label} <Tag color="blue">{variableType[props.value as keyof typeof variableType]}</Tag></div>} optionRender={(props) => <div className="rb:flex rb:justify-between rb:items-center">{props.label} <Tag color="blue">{variableType[props.value as keyof typeof variableType]}</Tag></div>} /> @@ -124,7 +123,7 @@ const VariableEditModal = forwardRef<VariableEditModalRef, VariableEditModalProp { pattern: /^[a-zA-Z_][a-zA-Z0-9_]*$/, message: t('workflow.config.start.invalidVariableName') }, ]} > - <Input placeholder={t('common.enter')} /> + <Input placeholder={t('common.enter')} onBlur={nameChange} /> </FormItem> {/* 显示名称 */} diff --git a/web/src/views/Workflow/components/Properties/index.tsx b/web/src/views/Workflow/components/Properties/index.tsx index bc9a7113..717df355 100644 --- a/web/src/views/Workflow/components/Properties/index.tsx +++ b/web/src/views/Workflow/components/Properties/index.tsx @@ -63,7 +63,7 @@ const Properties: FC<PropertiesProps> = ({ const { id, ...rest } = values Object.keys(values).forEach(key => { - if (selectedNode.data.config[key]) { + if (selectedNode.data?.config[key]) { selectedNode.data.config[key].defaultValue = values[key] } }) @@ -132,7 +132,7 @@ const Properties: FC<PropertiesProps> = ({ {configs && Object.keys(configs).length > 0 && Object.keys(configs).map((key) => { const config = configs[key] || {} - if (selectedNode.data.type === 'start' && key === 'variables' && config.type === 'define') { + if (selectedNode.data?.type === 'start' && key === 'variables' && config.type === 'define') { return ( <div key={key}> <div className="rb:flex rb:items-center rb:justify-between rb:mb-2.75"> @@ -177,7 +177,7 @@ const Properties: FC<PropertiesProps> = ({ ) } - if (selectedNode.data.type === 'llm' && key === 'messages' && config.type === 'define') { + if (selectedNode.data?.type === 'llm' && key === 'messages' && config.type === 'define') { return ( <Form.Item key={key} name={key}> <MessageEditor /> diff --git a/web/src/views/Workflow/hooks/useWorkflowGraph.ts b/web/src/views/Workflow/hooks/useWorkflowGraph.ts index 564d75c8..1e652a7b 100644 --- a/web/src/views/Workflow/hooks/useWorkflowGraph.ts +++ b/web/src/views/Workflow/hooks/useWorkflowGraph.ts @@ -83,8 +83,8 @@ export const useWorkflowGraph = ({ if (nodeLibraryConfig?.config) { Object.keys(nodeLibraryConfig.config).forEach(key => { - if (nodeLibraryConfig.config && nodeLibraryConfig.config[key]) { - nodeLibraryConfig.config[key].defaultValue = config[key] || {} + if (nodeLibraryConfig.config && nodeLibraryConfig.config[key] && config[key]) { + nodeLibraryConfig.config[key].defaultValue = config[key] } }) } diff --git a/web/src/views/Workflow/types.ts b/web/src/views/Workflow/types.ts index 6debcad6..fb7a05a4 100644 --- a/web/src/views/Workflow/types.ts +++ b/web/src/views/Workflow/types.ts @@ -75,7 +75,7 @@ export interface WorkflowConfig { } export interface VariableEditModalRef { - handleOpen: (values: StartVariableItem[]) => void; + handleOpen: (values?: StartVariableItem) => void; } export interface StartVariableItem { name: string; @@ -92,4 +92,7 @@ export interface StartVariableItem { export interface ChatRef { handleOpen: () => void; } -export type GraphRef = React.MutableRefObject<Graph | undefined> \ No newline at end of file +export type GraphRef = React.MutableRefObject<Graph | undefined> +export interface VariableConfigModalRef { + handleOpen: (values: StartVariableItem[]) => void; +} \ No newline at end of file From 7d40d06b6920f9bcaedcf30ce7e5f49a52a3f117 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Tue, 23 Dec 2025 14:30:22 +0800 Subject: [PATCH 37/92] fix(web): workflow properties --- web/src/views/Workflow/components/Properties/index.tsx | 1 + web/src/views/Workflow/hooks/useWorkflowGraph.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/web/src/views/Workflow/components/Properties/index.tsx b/web/src/views/Workflow/components/Properties/index.tsx index 717df355..b5b7a42c 100644 --- a/web/src/views/Workflow/components/Properties/index.tsx +++ b/web/src/views/Workflow/components/Properties/index.tsx @@ -31,6 +31,7 @@ const Properties: FC<PropertiesProps> = ({ const [editIndex, setEditIndex] = useState<number | null>(null) useEffect(() => { + form.resetFields() if (selectedNode && form) { const { type = 'default', name = '', config } = selectedNode.getData() || {} const initialValue: Record<string, any> = {} diff --git a/web/src/views/Workflow/hooks/useWorkflowGraph.ts b/web/src/views/Workflow/hooks/useWorkflowGraph.ts index 1e652a7b..d5cd9bb9 100644 --- a/web/src/views/Workflow/hooks/useWorkflowGraph.ts +++ b/web/src/views/Workflow/hooks/useWorkflowGraph.ts @@ -624,7 +624,7 @@ export const useWorkflowGraph = ({ let nodeLibraryConfig = [...nodeLibrary] .flatMap(category => category.nodes) .find(n => n.type === dragData.type); - nodeLibraryConfig = { config: {}, ...nodeLibraryConfig } as NodeProperties; + nodeLibraryConfig = JSON.parse(JSON.stringify({ config: {}, ...nodeLibraryConfig })) as NodeProperties // 创建干净的节点数据,只保留必要的字段 const cleanNodeData = { From 26263bdcf0ea7b7389e723de775157a815cf1581 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Tue, 23 Dec 2025 16:22:51 +0800 Subject: [PATCH 38/92] feat(web): workflow support lexical editor --- web/src/i18n/en.ts | 2 + web/src/i18n/zh.ts | 2 + .../Workflow/components/Editor/index.tsx | 86 ++++++++ .../components/Editor/nodes/TagNode.tsx | 113 ++++++++++ .../Editor/plugin/AutocompletePlugin.tsx | 183 ++++++++++++++++ .../Editor/plugin/CharacterCountPlugin.tsx | 22 ++ .../Editor/plugin/InitialValuePlugin.tsx | 29 +++ .../components/Properties/MessageEditor.tsx | 206 +++++++++++++----- .../Workflow/components/Properties/index.tsx | 12 +- web/src/views/Workflow/constant.ts | 4 +- web/src/views/Workflow/types.ts | 2 + 11 files changed, 607 insertions(+), 54 deletions(-) create mode 100644 web/src/views/Workflow/components/Editor/index.tsx create mode 100644 web/src/views/Workflow/components/Editor/nodes/TagNode.tsx create mode 100644 web/src/views/Workflow/components/Editor/plugin/AutocompletePlugin.tsx create mode 100644 web/src/views/Workflow/components/Editor/plugin/CharacterCountPlugin.tsx create mode 100644 web/src/views/Workflow/components/Editor/plugin/InitialValuePlugin.tsx diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 52a95544..37d14c53 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -1569,6 +1569,8 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re export: 'Export', variableConfig: 'Variable Configuration', variableRequired: 'required', + addMessage: 'Add Message', + answerDesc: 'Reply' }, emotionEngine: { emotionEngineConfig: 'Emotion Engine Configuration', diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 7e597556..e602fe0a 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -1657,6 +1657,8 @@ export const zh = { export: '导出', variableConfig: '变量配置', variableRequired: '必填', + addMessage: '添加消息', + answerDesc: '回复' }, emotionEngine: { emotionEngineConfig: '情感引擎配置', diff --git a/web/src/views/Workflow/components/Editor/index.tsx b/web/src/views/Workflow/components/Editor/index.tsx new file mode 100644 index 00000000..ac96dd73 --- /dev/null +++ b/web/src/views/Workflow/components/Editor/index.tsx @@ -0,0 +1,86 @@ +import { type FC, useState } from 'react'; +import { LexicalComposer } from '@lexical/react/LexicalComposer'; +import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin'; +import { ContentEditable } from '@lexical/react/LexicalContentEditable'; +import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin'; +import { AutoFocusPlugin } from '@lexical/react/LexicalAutoFocusPlugin'; +import { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary'; +import AutocompletePlugin, { type Suggestion } from './plugin/AutocompletePlugin' +import CharacterCountPlugin from './plugin/CharacterCountPlugin' +import InitialValuePlugin from './plugin/InitialValuePlugin'; + +interface LexicalEditorProps { + placeholder?: string; + value?: string; + onChange?: (value: string) => void; + suggestions: Suggestion[]; +} + +const theme = { + paragraph: 'editor-paragraph', + text: { + bold: 'editor-text-bold', + italic: 'editor-text-italic', + }, +}; + +const Editor: FC<LexicalEditorProps> =({ + placeholder = "请输入内容...", + value = "", + onChange, + suggestions, +}) => { + const [count, setCount] = useState(0); + const initialConfig = { + namespace: 'AutocompleteEditor', + theme, + onError: (error: Error) => { + console.error(error); + }, + }; + + return ( + <LexicalComposer initialConfig={initialConfig}> + <div style={{ position: 'relative' }}> + <RichTextPlugin + contentEditable={ + <ContentEditable + style={{ + minHeight: '60px', + padding: '0', + border: 'none', + outline: 'none', + resize: 'none', + fontSize: '14px', + lineHeight: '20px', + }} + /> + } + placeholder={ + <div + style={{ + position: 'absolute', + top: '0', + left: '0', + color: '#5B6167', + fontSize: '14px', + lineHeight: '20px', + pointerEvents: 'none', + }} + > + {placeholder} + </div> + } + ErrorBoundary={LexicalErrorBoundary} + /> + <HistoryPlugin /> + <AutoFocusPlugin /> + <AutocompletePlugin suggestions={suggestions} /> + <CharacterCountPlugin setCount={(count) => { setCount(count) }} onChange={onChange} /> + <InitialValuePlugin value={value} /> + </div> + </LexicalComposer> + ); +}; + +export default Editor; \ No newline at end of file diff --git a/web/src/views/Workflow/components/Editor/nodes/TagNode.tsx b/web/src/views/Workflow/components/Editor/nodes/TagNode.tsx new file mode 100644 index 00000000..f4264bfe --- /dev/null +++ b/web/src/views/Workflow/components/Editor/nodes/TagNode.tsx @@ -0,0 +1,113 @@ +import { + $applyNodeReplacement, + DecoratorNode, +} from 'lexical'; +import type { NodeKey, SerializedLexicalNode, Spread } from 'lexical'; +import React from 'react'; + +export type SerializedTagNode = Spread< + { + label: string; + tagType: string; + }, + SerializedLexicalNode +>; + +export class TagNode extends DecoratorNode<JSX.Element> { + __label: string; + __type: string; + + static getType(): string { + return 'tagNode'; + } + + static clone(node: TagNode): TagNode { + return new TagNode(node.__label, node.__type, node.__key); + } + + constructor(label: string, type: string, key?: NodeKey) { + super(key); + this.__label = label; + this.__type = type; + } + + createDOM(): HTMLElement { + return document.createElement('span'); + } + + updateDOM(): false { + return false; + } + + static importJSON(serializedNode: SerializedTagNode): TagNode { + const { label, tagType } = serializedNode; + return $createTagNode(label, tagType); + } + + exportJSON(): SerializedTagNode { + return { + label: this.__label, + tagType: this.__type, + type: 'tagNode', + version: 1, + }; + } + + getTextContent(): string { + return this.__label; + } + + decorate(): JSX.Element { + const getIconAndColor = (type: string) => { + switch (type) { + case 'context': + return { icon: '📄', bgColor: '#722ed1' }; + case 'system': + return { icon: 'x', bgColor: '#1890ff' }; + default: + return { icon: 'x', bgColor: '#52c41a' }; + } + }; + + const { icon, bgColor } = getIconAndColor(this.__type); + + return ( + <span + style={{ + display: 'inline-flex', + alignItems: 'center', + gap: '4px', + background: '#f0f8ff', + border: '1px solid #d9d9d9', + borderRadius: '4px', + padding: '2px 6px', + fontSize: '14px', + margin: '0 2px', + }} + > + <span + style={{ + background: bgColor, + color: 'white', + padding: '1px 4px', + borderRadius: '2px', + fontSize: '10px', + minWidth: '12px', + textAlign: 'center', + }} + > + {icon} + </span> + <span>{this.__label}</span> + </span> + ); + } +} + +export function $createTagNode(label: string, type: string): TagNode { + return new TagNode(label, type); +} + +export function $isTagNode(node: any): node is TagNode { + return node instanceof TagNode; +} \ No newline at end of file diff --git a/web/src/views/Workflow/components/Editor/plugin/AutocompletePlugin.tsx b/web/src/views/Workflow/components/Editor/plugin/AutocompletePlugin.tsx new file mode 100644 index 00000000..0fc412a4 --- /dev/null +++ b/web/src/views/Workflow/components/Editor/plugin/AutocompletePlugin.tsx @@ -0,0 +1,183 @@ +import { useEffect, useState, type FC } from 'react'; +import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'; +import { $getRoot, $createTextNode, $createParagraphNode, $setSelection, $createRangeSelection, $getSelection } from 'lexical'; +import type { NodeProperties } from '../../../types' +export interface Suggestion { + key: string; + label: string; + type: string; + dataType: string; + value: string; + nodeData: NodeProperties +} +const AutocompletePlugin: FC<{ suggestions: Suggestion[] }> = ({ suggestions }) => { + const [editor] = useLexicalComposerContext(); + const [showSuggestions, setShowSuggestions] = useState(false); + const [selectedIndex, setSelectedIndex] = useState(0); + const [popupPosition, setPopupPosition] = useState({ top: 0, left: 0 }); + + useEffect(() => { + return editor.registerUpdateListener(({ editorState }) => { + editorState.read(() => { + const root = $getRoot(); + const text = root.getTextContent(); + const shouldShow = text.includes('/'); + setShowSuggestions(shouldShow); + + if (shouldShow) { + const selection = $getSelection(); + if (selection) { + const domSelection = window.getSelection(); + if (domSelection && domSelection.rangeCount > 0) { + const range = domSelection.getRangeAt(0); + const rect = range.getBoundingClientRect(); + + // Calculate popup dimensions + const popupWidth = 280; + const popupHeight = 200; + + // Get viewport dimensions + const viewportWidth = window.innerWidth; + const viewportHeight = window.innerHeight; + + // Calculate position with viewport constraints + let left = rect.left; + let top = rect.top - 10; + + // Adjust horizontal position if popup would overflow + if (left + popupWidth > viewportWidth) { + left = viewportWidth - popupWidth - 10; + } + if (left < 10) { + left = 10; + } + + // Adjust vertical position if popup would overflow + if (top - popupHeight < 10) { + // Show below cursor if not enough space above + top = rect.bottom + 10; + if (top + popupHeight > viewportHeight) { + top = viewportHeight - popupHeight - 10; + } + } + + setPopupPosition({ top, left }); + } + } + } + }); + }); + }, [editor]); + + const insertMention = (suggestion: any) => { + editor.update(() => { + const root = $getRoot(); + const text = root.getTextContent(); + const lastSlashIndex = text.lastIndexOf('/'); + const beforeSlash = text.slice(0, lastSlashIndex); + const afterSlash = text.slice(lastSlashIndex + 1); + const insertedText = `{{${suggestion.value}}} `; + const newText = beforeSlash + insertedText + afterSlash; + const cursorPosition = beforeSlash.length + insertedText.length; + + root.clear(); + const paragraph = $createParagraphNode(); + paragraph.append($createTextNode(newText)); + root.append(paragraph); + + // Set cursor after the inserted text + const textNode = paragraph.getFirstChild(); + if (textNode) { + const selection = $createRangeSelection(); + selection.anchor.set(textNode.getKey(), cursorPosition, 'text'); + selection.focus.set(textNode.getKey(), cursorPosition, 'text'); + $setSelection(selection); + } + }); + setShowSuggestions(false); + }; + + if (!showSuggestions) return null; + + // Group suggestions by node name + const groupedSuggestions = suggestions.reduce((groups: Record<string, any[]>, suggestion) => { + const { nodeData } = suggestion + const nodeName = (nodeData.name || nodeData.id) as string; + if (!groups[nodeName]) { + groups[nodeName] = []; + } + groups[nodeName].push(suggestion); + return groups; + }, {}); + + return ( + <div + style={{ + position: 'fixed', + top: popupPosition.top, + left: popupPosition.left, + zIndex: 1000, + background: 'white', + border: '1px solid #d9d9d9', + borderRadius: '6px', + boxShadow: '0 2px 8px rgba(0,0,0,0.15)', + minWidth: '280px', + maxHeight: '200px', + overflowY: 'auto', + transform: 'translateY(-100%)', + }} + > + {Object.entries(groupedSuggestions).map(([nodeName, nodeOptions], groupIndex) => ( + <div key={nodeName}> + {groupIndex > 0 && <div style={{ height: '1px', background: '#f0f0f0', margin: '4px 0' }} />} + <div style={{ padding: '4px 12px', fontSize: '12px', color: '#999', fontWeight: 'bold' }}> + {nodeName} + </div> + {nodeOptions.map((option, index) => { + const globalIndex = Object.values(groupedSuggestions).flat().indexOf(option); + return ( + <div + key={option.key} + style={{ + padding: '8px 12px', + cursor: 'pointer', + background: selectedIndex === globalIndex ? '#f0f8ff' : 'white', + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between', + }} + onClick={() => insertMention(option)} + onMouseEnter={() => setSelectedIndex(globalIndex)} + > + <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}> + <span + style={{ + background: option.type === 'context' ? '#722ed1' : + option.type === 'system' ? '#1890ff' : '#52c41a', + color: 'white', + padding: '2px 6px', + borderRadius: '4px', + fontSize: '12px', + minWidth: '16px', + textAlign: 'center', + }} + > + {option.type === 'context' ? '📄' : + option.type === 'system' ? 'x' : 'x'} + </span> + <span style={{ fontSize: '14px' }}>{option.label}</span> + </div> + {option.dataType && ( + <span style={{ fontSize: '12px', color: '#999' }}> + {option.dataType} + </span> + )} + </div> + ); + })} + </div> + ))} + </div> + ); +} +export default AutocompletePlugin \ No newline at end of file diff --git a/web/src/views/Workflow/components/Editor/plugin/CharacterCountPlugin.tsx b/web/src/views/Workflow/components/Editor/plugin/CharacterCountPlugin.tsx new file mode 100644 index 00000000..911eff3d --- /dev/null +++ b/web/src/views/Workflow/components/Editor/plugin/CharacterCountPlugin.tsx @@ -0,0 +1,22 @@ +import { useEffect } from 'react'; +import { $getRoot } from 'lexical'; +import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'; + +const CharacterCountPlugin = ({ setCount, onChange }: { setCount: (count: number) => void; onChange?: (value: string) => void }) => { + const [editor] = useLexicalComposerContext(); + + useEffect(() => { + return editor.registerUpdateListener(({ editorState }) => { + editorState.read(() => { + const root = $getRoot(); + const textContent = root.getTextContent(); + setCount(textContent.length); + onChange?.(textContent); + }); + }); + }, [editor, setCount, onChange]); + + return null; +} + +export default CharacterCountPlugin \ No newline at end of file diff --git a/web/src/views/Workflow/components/Editor/plugin/InitialValuePlugin.tsx b/web/src/views/Workflow/components/Editor/plugin/InitialValuePlugin.tsx new file mode 100644 index 00000000..912801d8 --- /dev/null +++ b/web/src/views/Workflow/components/Editor/plugin/InitialValuePlugin.tsx @@ -0,0 +1,29 @@ +import { useEffect } from 'react'; +import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'; +import { $getRoot, $createParagraphNode, $createTextNode } from 'lexical'; + +interface InitialValuePluginProps { + value: string; +} + +const InitialValuePlugin: React.FC<InitialValuePluginProps> = ({ value }) => { + const [editor] = useLexicalComposerContext(); + + useEffect(() => { + if (value) { + editor.update(() => { + const root = $getRoot(); + if (root.getTextContent() === '') { + root.clear(); + const paragraph = $createParagraphNode(); + paragraph.append($createTextNode(value)); + root.append(paragraph); + } + }); + } + }, [editor, value]); + + return null; +}; + +export default InitialValuePlugin; \ No newline at end of file diff --git a/web/src/views/Workflow/components/Properties/MessageEditor.tsx b/web/src/views/Workflow/components/Properties/MessageEditor.tsx index 2714e45f..dfb3ccdb 100644 --- a/web/src/views/Workflow/components/Properties/MessageEditor.tsx +++ b/web/src/views/Workflow/components/Properties/MessageEditor.tsx @@ -1,13 +1,20 @@ -import { type FC } from 'react'; +import { type FC, useMemo } from 'react'; +import { useTranslation } from 'react-i18next' import { Input, Form, Space, Button, Row, Col, Select, type FormListOperation } from 'antd'; import { MinusCircleOutlined, PlusOutlined } from '@ant-design/icons'; +import { Graph, Node } from '@antv/x6'; +import Editor from '../Editor' +import type { Suggestion } from '../Editor/plugin/AutocompletePlugin' interface TextareaProps { + isArray?: boolean; parentName?: string; label?: string; placeholder?: string; value?: string; onChange?: (value?: string) => void; + selectedNode?: Node | null; + graphRef?: React.MutableRefObject<Graph | undefined>; } const roleOptions = [ // { label: 'SYSTEM', value: 'SYSTEM' }, @@ -15,11 +22,92 @@ const roleOptions = [ { label: 'ASSISTANT', value: 'ASSISTANT' }, ] const MessageEditor: FC<TextareaProps> = ({ + isArray = true, parentName = 'messages', placeholder, + selectedNode, + graphRef, }) => { + const { t } = useTranslation() const form = Form.useFormInstance(); const values = form.getFieldsValue() + + const suggestions = useMemo(() => { + if (!selectedNode || !graphRef?.current) return []; + + const suggestions: Suggestion[] = []; + const graph = graphRef.current; + const edges = graph.getEdges(); + const nodes = graph.getNodes(); + + // Find all connected previous nodes (recursive) + const getAllPreviousNodes = (nodeId: string, visited = new Set<string>()): string[] => { + if (visited.has(nodeId)) return []; + visited.add(nodeId); + + const directPrevious = edges + .filter(edge => edge.getTargetCellId() === nodeId) + .map(edge => edge.getSourceCellId()); + + const allPrevious = [...directPrevious]; + directPrevious.forEach(prevNodeId => { + allPrevious.push(...getAllPreviousNodes(prevNodeId, visited)); + }); + + return allPrevious; + }; + + const allPreviousNodeIds = getAllPreviousNodes(selectedNode.id); + console.log('allPreviousNodeIds', allPreviousNodeIds) + + allPreviousNodeIds.forEach(nodeId => { + const node = nodes.find(n => n.id === nodeId); + if (!node) return; + + const nodeData = node.getData(); + + switch(nodeData.type) { + case 'start': + const list = [ + ...(nodeData.config?.variables?.defaultValue ?? []), + ...(nodeData.config?.variables?.value ?? []) + ] + list.forEach((variable: any) => { + suggestions.push({ + key: `${nodeId}_${variable.name}`, + label: variable.name, + type: 'variable', + dataType: variable.type, + value: `${nodeId}.${variable.name}`, + nodeData: nodeData, + }); + }); + nodeData.config?.variables?.sys.forEach((variable: any) => { + suggestions.push({ + key: `${nodeId}_${variable.name}`, + label: variable.name, + type: 'variable', + dataType: variable.type, + value: `sys.${variable.name}`, + nodeData: nodeData, + }); + }); + break + case 'llm': + suggestions.push({ + key: `${nodeId}_output`, + label: 'output', + type: 'variable', + dataType: 'String', + value: `${nodeId}.output`, + nodeData: nodeData, + }); + break + } + }); + + return suggestions; + }, [selectedNode, graphRef]); const handleAdd = (add: FormListOperation['add']) => { const list = values[parentName]; @@ -30,58 +118,74 @@ const MessageEditor: FC<TextareaProps> = ({ content: undefined }) } - + return ( <div> - <Form.List name={parentName}> - {(fields, { add, remove }) => ( - <> - {fields.map(({ key, name, ...restField }) => { - const currentRole = values[parentName]?.[key].role || 'USER' - - return ( - <Space key={key} direction="vertical" className="rb:w-full rb:border rb:border-[#DFE4ED] rb:rounded-md rb:px-2 rb:py-1.5"> - <Row> - <Col span={12}> - <Form.Item - {...restField} - name={[name, 'role']} - noStyle - > - {currentRole === 'SYSTEM' - ? <Input disabled /> - : - <Select - options={roleOptions} - disabled={currentRole === 'SYSTEM'} - /> - } - </Form.Item> - </Col> - {currentRole !== 'SYSTEM' && <Col span={12}> - <div className="rb:h-full rb:flex rb:justify-end rb:items-center"> - <MinusCircleOutlined onClick={() => remove(name)} /> - </div> - </Col>} - </Row> - <Form.Item - {...restField} - name={[name, 'content']} - noStyle - > - <Input.TextArea placeholder={placeholder} /> - </Form.Item> - </Space> - ) - })} - <Form.Item className="rb:mt-3!"> - <Button type="dashed" onClick={() => handleAdd(add)} block icon={<PlusOutlined />}> - Add field - </Button> - </Form.Item> - </> - )} - </Form.List> + {isArray + ? <Form.List name={parentName}> + {(fields, { add, remove }) => ( + <Space size={12} direction="vertical" className="rb:w-full"> + {fields.map(({ key, name, ...restField }) => { + const currentRole = values[parentName]?.[key].role || 'USER' + + return ( + <Space key={key} size={12} direction="vertical" className="rb:w-full rb:border rb:border-[#DFE4ED] rb:rounded-md rb:px-2 rb:py-1.5 rb:bg-white"> + <Row> + <Col span={12}> + <Form.Item + {...restField} + name={[name, 'role']} + noStyle + > + {currentRole === 'SYSTEM' + ? <Input disabled /> + : + <Select + options={roleOptions} + disabled={currentRole === 'SYSTEM'} + /> + } + </Form.Item> + </Col> + {currentRole !== 'SYSTEM' && <Col span={12}> + <div className="rb:h-full rb:flex rb:justify-end rb:items-center"> + <MinusCircleOutlined onClick={() => remove(name)} /> + </div> + </Col>} + </Row> + <Form.Item + {...restField} + name={[name, 'content']} + noStyle + > + <Editor placeholder={placeholder} suggestions={suggestions} /> + </Form.Item> + </Space> + ) + })} + <Form.Item> + <Button type="dashed" onClick={() => handleAdd(add)} block icon={<PlusOutlined />}> + +{t('workflow.addMessage')} + </Button> + </Form.Item> + </Space > + )} + </Form.List> + : + <Space size={12} direction="vertical" className="rb:w-full rb:border rb:border-[#DFE4ED] rb:rounded-md rb:px-2 rb:py-1.5 rb:bg-white"> + <Row> + <Col span={12}> + {t('workflow.answerDesc')} + </Col> + </Row> + <Form.Item + name={parentName} + noStyle + > + <Editor placeholder={placeholder} suggestions={suggestions} /> + </Form.Item> + </Space> + } </div> ); }; diff --git a/web/src/views/Workflow/components/Properties/index.tsx b/web/src/views/Workflow/components/Properties/index.tsx index b5b7a42c..22563881 100644 --- a/web/src/views/Workflow/components/Properties/index.tsx +++ b/web/src/views/Workflow/components/Properties/index.tsx @@ -21,6 +21,7 @@ interface PropertiesProps { } const Properties: FC<PropertiesProps> = ({ selectedNode, + graphRef, }) => { const { t } = useTranslation() const { modal } = App.useApp() @@ -60,9 +61,11 @@ const Properties: FC<PropertiesProps> = ({ }; useEffect(() => { + console.log('values', values) if (values && selectedNode) { const { id, ...rest } = values + Object.keys(values).forEach(key => { if (selectedNode.data?.config[key]) { selectedNode.data.config[key].defaultValue = values[key] @@ -181,7 +184,14 @@ const Properties: FC<PropertiesProps> = ({ if (selectedNode.data?.type === 'llm' && key === 'messages' && config.type === 'define') { return ( <Form.Item key={key} name={key}> - <MessageEditor /> + <MessageEditor selectedNode={selectedNode} graphRef={graphRef} /> + </Form.Item> + ) + } + if (selectedNode.data?.type === 'end' && key === 'output') { + return ( + <Form.Item key={key} name={key}> + <MessageEditor isArray={false} parentName={key} selectedNode={selectedNode} graphRef={graphRef} /> </Form.Item> ) } diff --git a/web/src/views/Workflow/constant.ts b/web/src/views/Workflow/constant.ts index 96fd89fc..dff525ef 100644 --- a/web/src/views/Workflow/constant.ts +++ b/web/src/views/Workflow/constant.ts @@ -84,7 +84,7 @@ export const nodeLibrary: NodeLibrary[] = [ type: "end", icon: endIcon, config: { output: { - type: 'textarea' + type: 'define' } } }, @@ -121,7 +121,7 @@ export const nodeLibrary: NodeLibrary[] = [ type: 'define', defaultValue: [ { - role: 'SYSTEM', + role: 'system', content: undefined, readonly: true }, diff --git a/web/src/views/Workflow/types.ts b/web/src/views/Workflow/types.ts index fb7a05a4..9dabd7a6 100644 --- a/web/src/views/Workflow/types.ts +++ b/web/src/views/Workflow/types.ts @@ -26,6 +26,8 @@ export interface NodeConfig { export interface NodeProperties { type: string; icon: string; + name?: string; + id?: string; config?: Record<string, NodeConfig>; } From 480f72188841dc2716aa6ed94ea798fd119b4bff Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Tue, 23 Dec 2025 16:44:07 +0800 Subject: [PATCH 39/92] feat(web): workflow support lexical editor --- .../Editor/plugin/AutocompletePlugin.tsx | 19 +++++++++++-------- .../Workflow/components/Properties/index.tsx | 9 ++++++--- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/web/src/views/Workflow/components/Editor/plugin/AutocompletePlugin.tsx b/web/src/views/Workflow/components/Editor/plugin/AutocompletePlugin.tsx index 0fc412a4..79bd857b 100644 --- a/web/src/views/Workflow/components/Editor/plugin/AutocompletePlugin.tsx +++ b/web/src/views/Workflow/components/Editor/plugin/AutocompletePlugin.tsx @@ -99,14 +99,14 @@ const AutocompletePlugin: FC<{ suggestions: Suggestion[] }> = ({ suggestions }) if (!showSuggestions) return null; - // Group suggestions by node name + // Group suggestions by node id const groupedSuggestions = suggestions.reduce((groups: Record<string, any[]>, suggestion) => { const { nodeData } = suggestion - const nodeName = (nodeData.name || nodeData.id) as string; - if (!groups[nodeName]) { - groups[nodeName] = []; + const nodeId = nodeData.id as string; + if (!groups[nodeId]) { + groups[nodeId] = []; } - groups[nodeName].push(suggestion); + groups[nodeId].push(suggestion); return groups; }, {}); @@ -127,8 +127,10 @@ const AutocompletePlugin: FC<{ suggestions: Suggestion[] }> = ({ suggestions }) transform: 'translateY(-100%)', }} > - {Object.entries(groupedSuggestions).map(([nodeName, nodeOptions], groupIndex) => ( - <div key={nodeName}> + {Object.entries(groupedSuggestions).map(([nodeId, nodeOptions], groupIndex) => { + const nodeName = nodeOptions[0]?.nodeData?.name || nodeId; + return ( + <div key={nodeId}> {groupIndex > 0 && <div style={{ height: '1px', background: '#f0f0f0', margin: '4px 0' }} />} <div style={{ padding: '4px 12px', fontSize: '12px', color: '#999', fontWeight: 'bold' }}> {nodeName} @@ -176,7 +178,8 @@ const AutocompletePlugin: FC<{ suggestions: Suggestion[] }> = ({ suggestions }) ); })} </div> - ))} + ); + })} </div> ); } diff --git a/web/src/views/Workflow/components/Properties/index.tsx b/web/src/views/Workflow/components/Properties/index.tsx index 22563881..3a5be99c 100644 --- a/web/src/views/Workflow/components/Properties/index.tsx +++ b/web/src/views/Workflow/components/Properties/index.tsx @@ -32,7 +32,12 @@ const Properties: FC<PropertiesProps> = ({ const [editIndex, setEditIndex] = useState<number | null>(null) useEffect(() => { - form.resetFields() + if (selectedNode?.getData().id) { + form.resetFields() + } + }, [selectedNode?.getData().id]) + + useEffect(() => { if (selectedNode && form) { const { type = 'default', name = '', config } = selectedNode.getData() || {} const initialValue: Record<string, any> = {} @@ -61,11 +66,9 @@ const Properties: FC<PropertiesProps> = ({ }; useEffect(() => { - console.log('values', values) if (values && selectedNode) { const { id, ...rest } = values - Object.keys(values).forEach(key => { if (selectedNode.data?.config[key]) { selectedNode.data.config[key].defaultValue = values[key] From 72acea990a504248094919aaeef5221ca57ca819 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Tue, 23 Dec 2025 17:16:57 +0800 Subject: [PATCH 40/92] feat(web): update reflection engine result --- web/src/views/SelfReflectionEngine/index.tsx | 108 ++++++++++--------- 1 file changed, 57 insertions(+), 51 deletions(-) diff --git a/web/src/views/SelfReflectionEngine/index.tsx b/web/src/views/SelfReflectionEngine/index.tsx index 0802b706..2c0eea86 100644 --- a/web/src/views/SelfReflectionEngine/index.tsx +++ b/web/src/views/SelfReflectionEngine/index.tsx @@ -272,69 +272,75 @@ const SelfReflectionEngine: React.FC = () => { </div> </div> </RbCard> - <RbCard - title={t('reflectionEngine.conflictDetection')} - > - <Space size={12} direction="vertical" className="rb:w-full"> - {result.reflexion_data.map((item, index) => ( + {result.reflexion_data.length > 0 && ( + <RbCard + title={t('reflectionEngine.conflictDetection')} + > + <Space size={12} direction="vertical" className="rb:w-full"> + {result.reflexion_data.map((item, index) => ( + <div key={index} className="rb:bg-[#F0F3F8] rb:px-3 rb:py-2.5 rb:rounded-md rb:text-[12px]"> + {['reason', 'solution'].map(key => ( + <div + key={key} + className="rb:flex rb:gap-4 rb:justify-start rb:text-[14px] rb:leading-5 rb:mb-3" + > + <div className="rb:whitespace-nowrap rb:w-45 rb:font-medium">{t(`reflectionEngine.${key}`)}</div> + <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> + {item[key as keyof ReflexionData]} + </div> + </div> + ))} + </div> + ))} + </Space> + </RbCard> + )} + {result.quality_assessments.length > 0 && ( + <RbCard + title={t('reflectionEngine.qualityAssessment')} + > + {result.quality_assessments.map((item, index) => ( <div key={index} className="rb:bg-[#F0F3F8] rb:px-3 rb:py-2.5 rb:rounded-md rb:text-[12px]"> - {['reason', 'solution'].map(key => ( + {['score', 'summary'].map(key => ( <div key={key} className="rb:flex rb:gap-4 rb:justify-start rb:text-[14px] rb:leading-5 rb:mb-3" > - <div className="rb:whitespace-nowrap rb:w-45 rb:font-medium">{t(`reflectionEngine.${key}`)}</div> + <div className="rb:whitespace-nowrap rb:w-45 rb:font-medium">{t(`reflectionEngine.qualityAssessmentObj.${key}`)}</div> <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> - {item[key as keyof ReflexionData]} + {item[key as keyof QualityAssessment]} </div> </div> ))} </div> ))} - </Space> - </RbCard> - <RbCard - title={t('reflectionEngine.qualityAssessment')} - > - {result.quality_assessments.map((item, index) => ( - <div key={index} className="rb:bg-[#F0F3F8] rb:px-3 rb:py-2.5 rb:rounded-md rb:text-[12px]"> - {['score', 'summary'].map(key => ( - <div - key={key} - className="rb:flex rb:gap-4 rb:justify-start rb:text-[14px] rb:leading-5 rb:mb-3" - > - <div className="rb:whitespace-nowrap rb:w-45 rb:font-medium">{t(`reflectionEngine.qualityAssessmentObj.${key}`)}</div> - <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> - {item[key as keyof QualityAssessment]} + </RbCard> + )} + {result.memory_verifies.length > 0 && ( + <RbCard + title={t('reflectionEngine.privacyAudit')} + > + {result.memory_verifies.map((item, index) => ( + <div key={index} className="rb:bg-[#F0F3F8] rb:px-3 rb:py-2.5 rb:rounded-md rb:text-[12px]"> + {['has_privacy', 'privacy_types', 'summary'].map(key => ( + <div + key={key} + className="rb:flex rb:gap-4 rb:justify-start rb:text-[14px] rb:leading-5 rb:mb-3" + > + <div className="rb:whitespace-nowrap rb:w-45 rb:font-medium">{t(`reflectionEngine.privacyAuditObj.${key}`)}</div> + <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> + {key === 'has_privacy' + ? <Tag color={item[key as keyof MemoryVerify] ? 'success' : 'error'}>{t(`reflectionEngine.privacyAuditObj.${item[key as keyof MemoryVerify]}`)}</Tag> + : key === 'privacy_types' ? (item[key as keyof MemoryVerify] as string[]).join('、') + : item[key as keyof MemoryVerify] + } + </div> </div> - </div> - ))} - </div> - ))} - </RbCard> - <RbCard - title={t('reflectionEngine.privacyAudit')} - > - {result.memory_verifies.map((item, index) => ( - <div key={index} className="rb:bg-[#F0F3F8] rb:px-3 rb:py-2.5 rb:rounded-md rb:text-[12px]"> - {['has_privacy', 'privacy_types', 'summary'].map(key => ( - <div - key={key} - className="rb:flex rb:gap-4 rb:justify-start rb:text-[14px] rb:leading-5 rb:mb-3" - > - <div className="rb:whitespace-nowrap rb:w-45 rb:font-medium">{t(`reflectionEngine.privacyAuditObj.${key}`)}</div> - <div className='rb:flex-inline rb:text-left rb:py-px rb:rounded rb:text-[#5B6167] rb:flex-1'> - {key === 'has_privacy' - ? <Tag color={item[key as keyof MemoryVerify] ? 'success' : 'error'}>{t(`reflectionEngine.privacyAuditObj.${item[key as keyof MemoryVerify]}`)}</Tag> - : key === 'privacy_types' ? (item[key as keyof MemoryVerify] as string[]).join('、') - : item[key as keyof MemoryVerify] - } - </div> - </div> - ))} - </div> - ))} - </RbCard> + ))} + </div> + ))} + </RbCard> + )} </>} </Space> </Col> From d1b51b9653b279f706d8a8fcd9852fc0e225297b Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Tue, 23 Dec 2025 17:32:11 +0800 Subject: [PATCH 41/92] feat(web): workflow's chat support abort output --- .../views/Workflow/components/Chat/Chat.tsx | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/web/src/views/Workflow/components/Chat/Chat.tsx b/web/src/views/Workflow/components/Chat/Chat.tsx index b81f5fae..4824cc9c 100644 --- a/web/src/views/Workflow/components/Chat/Chat.tsx +++ b/web/src/views/Workflow/components/Chat/Chat.tsx @@ -60,7 +60,7 @@ const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId const handleSave = (values: StartVariableItem[]) => { setVariables([...values]) } - const handleClusterSend = () => { + const handleSend = () => { if (loading || !appId) return let isCanSend = true const params: Record<string, any> = {} @@ -99,36 +99,41 @@ const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId const handleStreamMessage = (data: SSEMessage[]) => { setStreamLoading(false) - data.map(item => { + data.forEach(item => { const { chunk } = item.data as { chunk: string; }; switch(item.event) { case 'message': setChatList(prev => { - const lastChat = { ...prev[prev.length - 1] } - lastChat.content = lastChat.content + chunk - - return [ - ...prev.slice(0, prev.length - 1), - lastChat - ] + const newList = [...prev] + const lastIndex = newList.length - 1 + if (lastIndex >= 0) { + newList[lastIndex] = { + ...newList[lastIndex], + content: newList[lastIndex].content + chunk + } + } + return newList }) break case 'workflow_end': setChatList(prev => { - const lastChat = { ...prev[prev.length - 1] } - lastChat.content = lastChat.content === '' ? null : lastChat.content - - return [ - ...prev.slice(0, prev.length - 1), - lastChat - ] + const newList = [...prev] + const lastIndex = newList.length - 1 + if (lastIndex >= 0) { + newList[lastIndex] = { + ...newList[lastIndex], + content: newList[lastIndex].content === '' ? null : newList[lastIndex].content + } + } + return newList }) - setStreamLoading(false); - break; + setStreamLoading(false) + break } }) - }; + } + form.setFieldValue('message', undefined) draftRun(appId, { message: message, @@ -178,13 +183,13 @@ const Chat = forwardRef<ChatRef, { appId: string; graphRef: GraphRef }>(({ appId <Input className="rb:h-11 rb:shadow-[0px_2px_8px_0px_rgba(33,35,50,0.1)]" placeholder={t('application.chatPlaceholder')} - onPressEnter={handleClusterSend} + onPressEnter={handleSend} /> </Form.Item> </Form> <img src={ChatSendIcon} className={clsx("rb:w-11 rb:h-11 rb:cursor-pointer", { 'rb:opacity-50': loading, - })} onClick={handleClusterSend} /> + })} onClick={handleSend} /> </div> <VariableConfigModal From 42610f9cb0979f1c46a1c47ade4281bc1124fb92 Mon Sep 17 00:00:00 2001 From: yujiangping <yujiangping@taofen8.com> Date: Wed, 24 Dec 2025 12:05:36 +0800 Subject: [PATCH 42/92] fix:git commit --- web/.gitignore | 2 +- web/vite.config.ts | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/web/.gitignore b/web/.gitignore index b398d222..9608e0b9 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -22,5 +22,5 @@ dist-ssr *.njsproj *.sln *.sw? - +vite.config.js package-lock.json diff --git a/web/vite.config.ts b/web/vite.config.ts index 7181389f..fd5d1663 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -1,3 +1,11 @@ +/* + * @Description: + * @Version: 0.0.1 + * @Author: yujiangping + * @Date: 2025-12-22 17:33:57 + * @LastEditors: yujiangping + * @LastEditTime: 2025-12-24 12:01:18 + */ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import { resolve } from 'path' @@ -11,7 +19,8 @@ export default defineConfig({ proxy: { // 主要API代理,支持 /api 和 /api/* 格式 '/api': { - target: 'http://0.0.0.0:5173', // 后端服务地址 + // target: 'http://0.0.0.0:5173', // 后端服务地址 + target: 'https://devmemorybear.redbearai.com/', changeOrigin: true, // 匹配所有以/api开头的请求,包括/api/token From 687932642919fea4a767ff4e60ba01a03217732f Mon Sep 17 00:00:00 2001 From: yujiangping <yujiangping@taofen8.com> Date: Wed, 24 Dec 2025 12:23:55 +0800 Subject: [PATCH 43/92] fix:vite config --- web/vite.config.ts | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/web/vite.config.ts b/web/vite.config.ts index fd5d1663..7181389f 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -1,11 +1,3 @@ -/* - * @Description: - * @Version: 0.0.1 - * @Author: yujiangping - * @Date: 2025-12-22 17:33:57 - * @LastEditors: yujiangping - * @LastEditTime: 2025-12-24 12:01:18 - */ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import { resolve } from 'path' @@ -19,8 +11,7 @@ export default defineConfig({ proxy: { // 主要API代理,支持 /api 和 /api/* 格式 '/api': { - // target: 'http://0.0.0.0:5173', // 后端服务地址 - target: 'https://devmemorybear.redbearai.com/', + target: 'http://0.0.0.0:5173', // 后端服务地址 changeOrigin: true, // 匹配所有以/api开头的请求,包括/api/token From 4c1ea155b09bb0852d251ebe32d2c4df5937fec9 Mon Sep 17 00:00:00 2001 From: yujiangping <yujiangping@taofen8.com> Date: Wed, 24 Dec 2025 13:41:12 +0800 Subject: [PATCH 44/92] fix:breadcrumbs --- web/src/components/Header/index.tsx | 27 +++----- web/src/hooks/useNavigationBreadcrumbs.ts | 84 ++++++++++++++++------- 2 files changed, 69 insertions(+), 42 deletions(-) diff --git a/web/src/components/Header/index.tsx b/web/src/components/Header/index.tsx index 4f30c104..9aeeab6b 100644 --- a/web/src/components/Header/index.tsx +++ b/web/src/components/Header/index.tsx @@ -1,9 +1,9 @@ -import { type FC, useCallback, useRef } from 'react'; +import { type FC, useRef } from 'react'; import { Layout, Dropdown, Space, Breadcrumb } from 'antd'; import type { MenuProps, BreadcrumbProps } from 'antd'; import { UserOutlined, LogoutOutlined, SettingOutlined } from '@ant-design/icons'; import { useTranslation } from 'react-i18next'; -import { useParams, useNavigate } from 'react-router-dom'; +import { useLocation } from 'react-router-dom'; import { useUser } from '@/store/user'; import { useMenu } from '@/store/menu'; import styles from './index.module.css' @@ -13,8 +13,7 @@ const { Header } = Layout; const AppHeader: FC<{source?: 'space' | 'manage';}> = ({source = 'manage'}) => { const { t } = useTranslation(); - const params = useParams(); - const navigate = useNavigate(); + const location = useLocation(); const settingModalRef = useRef<SettingModalRef>(null) const userInfoModalRef = useRef<UserInfoModalRef>(null) @@ -55,7 +54,7 @@ const AppHeader: FC<{source?: 'space' | 'manage';}> = ({source = 'manage'}) => { key: '1', label: (<> <div>{user.username}</div> - <div className="rb:text-[12px] rb:text-[#5B6167] rb:mt-2">{user.email}</div> + <div className="rb:text-[12px] rb:text-[#5B6167] rb:mt-[8px]">{user.email}</div> </>), }, { @@ -90,7 +89,7 @@ const AppHeader: FC<{source?: 'space' | 'manage';}> = ({source = 'manage'}) => { onClick: handleLogout, }, ]; - const formatBreadcrumbNames = useCallback(() => { + const formatBreadcrumbNames = () => { return breadcrumbs.map((menu, index) => { const item: any = { title: menu.i18nKey ? t(menu.i18nKey) : menu.label, @@ -109,23 +108,13 @@ const AppHeader: FC<{source?: 'space' | 'manage';}> = ({source = 'manage'}) => { }; item.href = '#'; } else if (menu.path && menu.path !== '#') { - // 对于三级面包屑的二级菜单,如果路径包含动态参数,替换为当前参数值 - if (breadcrumbs.length === 3 && index === 1 && menu.path.includes(':id') && params.id) { - const dynamicPath = menu.path.replace(':id', params.id); - item.onClick = (e: React.MouseEvent) => { - e.preventDefault(); - navigate(dynamicPath); - }; - item.href = '#'; - } else { - // 只有当 path 不是 '#' 时才设置 path - item.path = menu.path; - } + // 只有当 path 不是 '#' 时才设置 path + item.path = menu.path; } return item; }); - }, [breadcrumbs, params.id, t, navigate]) + } return ( <Header className={styles.header}> <Breadcrumb separator=">" items={formatBreadcrumbNames() as BreadcrumbProps['items']} /> diff --git a/web/src/hooks/useNavigationBreadcrumbs.ts b/web/src/hooks/useNavigationBreadcrumbs.ts index 67af853e..c314399b 100644 --- a/web/src/hooks/useNavigationBreadcrumbs.ts +++ b/web/src/hooks/useNavigationBreadcrumbs.ts @@ -11,47 +11,85 @@ export const useNavigationBreadcrumbs = (source: 'space' | 'manage' = 'manage') const menus = allMenus[source] || []; // 查找匹配的菜单项并构建keyPath - const findMenuKeyPath = (menuList: any[]): string[] | null => { - const checkDynamicMatch = (pattern: string, path: string) => { - const pathPattern = pattern.replace(/:[\w-]+/g, '[^/]+'); - const regex = new RegExp(`^${pathPattern}$`); - return regex.test(path); - }; + const findMenuKeyPath = (menuList: any[], parentKeys: string[] = []): string[] | null => { + let bestMatch: { path: string; parentId?: string; score: number } | null = null; for (const menu of menuList) { + // 检查子菜单 if (menu.subs && menu.subs.length > 0) { + const menuPath = menu.path ? (menu.path[0] !== '/' ? '/' + menu.path : menu.path) : ''; for (const sub of menu.subs) { - // 检查三级菜单 - if (sub.subs && sub.subs.length > 0) { - for (const subSub of sub.subs) { - if (subSub.path) { - const subSubPath = subSub.path[0] !== '/' ? '/' + subSub.path : subSub.path; - if (subSubPath === currentPath || (subSubPath.includes(':') && checkDynamicMatch(subSubPath, currentPath))) { - return [subSub.path, `${sub.id}`, `${menu.id}`]; - } - } - } - } - - // 检查二级菜单 if (sub.path) { const subPath = sub.path[0] !== '/' ? '/' + sub.path : sub.path; - if (subPath === currentPath || (subPath.includes(':') && checkDynamicMatch(subPath, currentPath))) { + + // 精确匹配优先 + if (subPath === currentPath) { return [sub.path, `${menu.id}`]; } + console.log('menuPath', menuPath) + // 动态路由匹配 + if (subPath.includes(':')) { + // 检查是否在父菜单下 + if (menuPath && currentPath.startsWith(menuPath + '/')) { + const relativePath = currentPath.replace(menuPath, ''); + const pathSegments = subPath.split('/'); + const relativeSegments = relativePath.split('/'); + if (pathSegments.length === relativeSegments.length) { + const pathPattern = subPath.replace(/:[\w-]+/g, '[^/]+').replace(/\[[\w-]+\]/g, '[^/]+'); + const regex = new RegExp(`^${pathPattern}$`); + if (regex.test(relativePath)) { + return [sub.path, `${menu.id}`]; + } + } + } + // 直接匹配子菜单路径 + const pathSegments = subPath.split('/'); + const currentSegments = currentPath.split('/'); + if (pathSegments.length === currentSegments.length) { + const pathPattern = subPath.replace(/:[\w-]+/g, '[^/]+').replace(/\[[\w-]+\]/g, '[^/]+'); + const regex = new RegExp(`^${pathPattern}$`); + if (regex.test(currentPath)) { + return [sub.path, `${menu.id}`]; + } + } + } } } } - // 检查一级菜单 + // 检查主菜单 if (menu.path) { const menuPath = menu.path[0] !== '/' ? '/' + menu.path : menu.path; - if (menuPath === currentPath || (menuPath.includes(':') && checkDynamicMatch(menuPath, currentPath))) { - return [menu.path]; + // 精确匹配优先 + if (menuPath === currentPath) { + return [menu.path, ...parentKeys].reverse(); + } + // 动态路由匹配 + if (menuPath.includes(':')) { + const pathSegments = menuPath.split('/'); + const currentSegments = currentPath.split('/'); + if (pathSegments.length === currentSegments.length) { + const pathPattern = menuPath.replace(/:[\w-]+/g, '[^/]+').replace(/\[[\w-]+\]/g, '[^/]+'); + const regex = new RegExp(`^${pathPattern}$`); + if (regex.test(currentPath)) { + const score = menuPath.split('/').length; + if (!bestMatch || score > bestMatch.score) { + bestMatch = { path: menu.path, score }; + } + } + } + } else if (currentPath.startsWith(menuPath + '/')) { + const score = menuPath.split('/').length; + if (!bestMatch || score > bestMatch.score) { + bestMatch = { path: menu.path, score }; + } } } } + if (bestMatch) { + return bestMatch.parentId ? [bestMatch.path, bestMatch.parentId] : [bestMatch.path]; + } return null; }; From 00b2539e4f0fc7647b65aabe7ea955fd62505b04 Mon Sep 17 00:00:00 2001 From: yujiangping <yujiangping@taofen8.com> Date: Wed, 24 Dec 2025 15:00:50 +0800 Subject: [PATCH 45/92] feat(i18n): add document processing confirmation dialog translations - Add "processingDocuments" translation key for loading state message in English and Chinese - Add "startUploadConfirmTitle" translation for confirmation dialog title - Add "startUploadConfirmContent" translation for confirmation dialog description - Add "returnToList" translation for returning to list page action - Add "stayOnPage" translation for staying on current page action - Support user choice to either return to list or stay on page during background document processing --- web/src/i18n/en.ts | 5 +++++ web/src/i18n/zh.ts | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 463332d4..ba409dde 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -559,6 +559,7 @@ export const en = { fileName: 'File Name', fileList: 'File List', blockPreview: 'Block Preview', + processingDocuments: 'Processing documents, please wait...', chunkContent: 'Chunk Content', sampleChunk: 'Sample Chunk Content', noFilesSelected: 'No files', @@ -568,6 +569,10 @@ export const en = { waiting: 'Waiting', startUpload: 'Total {{count}} files | Start Upload', startUploading: 'Start Uploading', + startUploadConfirmTitle: 'Start Processing Documents', + startUploadConfirmContent: 'Document processing will run in the background. You can choose to return to the list page immediately or stay on this page to view the processing progress.', + returnToList: 'Return to List', + stayOnPage: 'Stay on Page', uploadSuccess: 'Upload Success', datasetName: 'Dataset Name', pleaseEnterDatasetName: 'Please enter dataset name', diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 1baf6475..d97be1d6 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -183,6 +183,7 @@ export const zh = { fileName: '文件名称', fileList: '文件列表', blockPreview: '分块预览', + processingDocuments: '正在处理文档,请稍候...', chunkContent: '分块内容', sampleChunk: '示例分块内容', noFilesSelected: '暂无文件', @@ -192,6 +193,10 @@ export const zh = { waiting: '等待中', startUpload: '共{{count}}个文件 | 开始上传', startUploading: '开始上传', + startUploadConfirmTitle: '开始处理文档', + startUploadConfirmContent: '文档处理将在后台进行,您可以选择立即返回列表页或停留在此页面查看处理进度。', + returnToList: '返回列表页', + stayOnPage: '停留在此页', uploadSuccess: '上传成功', datasetName: '数据集名称', pleaseEnterDatasetName: '请输入数据集名称', From 34dde34e610354743839e2b21180869edcecb444 Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Wed, 24 Dec 2025 15:45:11 +0800 Subject: [PATCH 46/92] fix(web): user memory detail --- web/src/views/SelfReflectionEngine/index.tsx | 7 ++--- .../components/EndUserProfile.tsx | 2 +- .../components/EndUserProfileModal.tsx | 2 +- .../components/RelationshipNetwork.tsx | 31 ++++++++++++------- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/web/src/views/SelfReflectionEngine/index.tsx b/web/src/views/SelfReflectionEngine/index.tsx index 2c0eea86..12196163 100644 --- a/web/src/views/SelfReflectionEngine/index.tsx +++ b/web/src/views/SelfReflectionEngine/index.tsx @@ -140,15 +140,12 @@ const SelfReflectionEngine: React.FC = () => { .then((res) => { setResult(res as Result) }) - .catch(() => { - setRunLoading(false) - }) .finally(() => { setRunLoading(false) }) }) - .finally(() => { - setLoading(false) + .catch(() => { + setRunLoading(false) }) } diff --git a/web/src/views/UserMemoryDetail/components/EndUserProfile.tsx b/web/src/views/UserMemoryDetail/components/EndUserProfile.tsx index 95d40d42..8138231a 100644 --- a/web/src/views/UserMemoryDetail/components/EndUserProfile.tsx +++ b/web/src/views/UserMemoryDetail/components/EndUserProfile.tsx @@ -40,7 +40,7 @@ const EndUserProfile:FC = () => { return ['name', 'position', 'department', 'contact', 'phone', 'hire_date'].map(key => ({ key, label: t(`userMemory.${key}`), - children: key === 'hire_date' ? dayjs(data[key as keyof EndUser]).format('YYYY-MM-DD') : String(data[key as keyof EndUser] || ''), + children: key === 'hire_date' && data[key] ? dayjs(data[key as keyof EndUser]).format('YYYY-MM-DD') : String(data[key as keyof EndUser] || ''), })) }, [data]) const handleEdit = () => { diff --git a/web/src/views/UserMemoryDetail/components/EndUserProfileModal.tsx b/web/src/views/UserMemoryDetail/components/EndUserProfileModal.tsx index 947cf3c4..37bca368 100644 --- a/web/src/views/UserMemoryDetail/components/EndUserProfileModal.tsx +++ b/web/src/views/UserMemoryDetail/components/EndUserProfileModal.tsx @@ -35,7 +35,7 @@ const EndUserProfileModal = forwardRef<EndUserProfileModalRef, EndUserProfileMod form.setFieldsValue({ ...user, end_user_id: user.id, - hire_date: dayjs(user.hire_date) + hire_date: user.hire_date ? dayjs(user.hire_date) : undefined }); setVisible(true); }; diff --git a/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx b/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx index f579b990..c2e588ef 100644 --- a/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx +++ b/web/src/views/UserMemoryDetail/components/RelationshipNetwork.tsx @@ -20,6 +20,7 @@ const operations = [ { name: 'drag', icon: drag }, { name: 'zoom', icon: zoom }, ] +const colors = ['#155EEF', '#369F21', '#4DA8FF', '#FF5D34', '#9C6FFF', '#FF8A4C', '#8BAEF7', '#FFB048'] const RelationshipNetwork:FC = () => { const { t } = useTranslation() const { id } = useParams() @@ -30,7 +31,7 @@ const RelationshipNetwork:FC = () => { const [categories, setCategories] = useState<{ name: string }[]>([]) const [selectedNode, setSelectedNode] = useState<Node | null>(null) - + console.log('categories', categories) // 关系网络 const getEdgeData = useCallback(() => { if (!id) return @@ -39,7 +40,7 @@ const RelationshipNetwork:FC = () => { const { nodes, edges, statistics } = res as GraphData const curNodes: Node[] = [] const curEdges: Edge[] = [] - const curNodeTypes = Object.keys(statistics.node_types) + const curNodeTypes = Object.keys(statistics.node_types).filter(vo => vo !== 'Dialogue') // 计算每个节点的连接数 const connectionCount: Record<string, number> = {} @@ -49,22 +50,22 @@ const RelationshipNetwork:FC = () => { }) // 处理节点数据 - nodes.forEach(node => { + nodes.filter(vo => vo.label !== 'Dialogue').forEach(node => { const connections = connectionCount[node.id] || 0 const categoryIndex = curNodeTypes.indexOf(node.label) // 根据节点类型获取显示名称 let displayName = '' switch (node.label) { - case 'Statement': - displayName = 'statement' in node.properties ? node.properties.statement?.slice(0, 5) || '' : '' - break + // case 'Statement': + // displayName = 'statement' in node.properties ? node.properties.statement?.slice(0, 5) || '' : '' + // break case 'ExtractedEntity': displayName = 'name' in node.properties ? node.properties.name || '' : '' break - default: - displayName = 'content' in node.properties ? node.properties.content?.slice(0, 5) || '' : '' - break + // default: + // displayName = 'content' in node.properties ? node.properties.content?.slice(0, 5) || '' : '' + // break } let symbolSize = 0 if (connections <= 1) { @@ -85,7 +86,7 @@ const RelationshipNetwork:FC = () => { category: categoryIndex >= 0 ? categoryIndex : 0, symbolSize: symbolSize, // 根据连接数调整节点大小 itemStyle: { - color: ['#155EEF', '#4DA8FF', '#9C6FFF', '#8BAEF7', '#369F21', '#FF5D34', '#FF8A4C', '#FFB048'][categoryIndex % 8] + color: colors[categoryIndex % 8] } }) }) @@ -150,17 +151,23 @@ const RelationshipNetwork:FC = () => { ) : ( <ReactEcharts option={{ - colors: ['#155EEF', '4DA8FF', '#9C6FFF', '#8BAEF7', '#369F21', '#FF5D34', '#FF8A4C', '#FFB048'], + colors: colors, tooltip: { show: false }, + legend: { + show: true, + bottom: 20, + }, series: [ { type: 'graph', layout: 'force', data: nodes || [], links: links || [], - categories: categories || [], + categories: categories.map(vo => ({ + name: t(`userMemory.${vo.name}`) + })) || [], roam: true, label: { show: true, From a1def533afd44c9a859ce47580bd7acd9fae6ecc Mon Sep 17 00:00:00 2001 From: zhaoying <yzhao96@best-inc.com> Date: Wed, 24 Dec 2025 18:09:02 +0800 Subject: [PATCH 47/92] feat(web): order --- web/src/api/order.ts | 17 + web/src/assets/images/menu/pricing.svg | 22 + web/src/assets/images/menu/pricing_active.svg | 22 + web/src/assets/images/order/alert.svg | 13 + web/src/assets/images/order/bg.png | Bin 0 -> 35926 bytes web/src/assets/images/order/biz.png | Bin 0 -> 3756 bytes web/src/assets/images/order/check.svg | 15 + web/src/assets/images/order/commerce.png | Bin 0 -> 2082 bytes web/src/assets/images/order/corporate.svg | 15 + web/src/assets/images/order/order.svg | 16 + web/src/assets/images/order/order_hover.svg | 16 + web/src/assets/images/order/personal.png | Bin 0 -> 2007 bytes web/src/assets/images/order/team.png | Bin 0 -> 2033 bytes web/src/components/SiderMenu/index.tsx | 4 + web/src/components/Table/index.tsx | 6 +- web/src/i18n/en.ts | 122 +++++- web/src/i18n/zh.ts | 122 +++++- web/src/routes/index.tsx | 3 + web/src/routes/routes.json | 3 + .../OrderHistory/components/OrderDetail.tsx | 76 ++++ web/src/views/OrderHistory/index.tsx | 227 ++++++++++ web/src/views/OrderHistory/types.ts | 43 ++ web/src/views/OrderPayment/index.tsx | 391 ++++++++++++++++++ web/src/views/OrderPayment/types.ts | 27 ++ web/src/views/Pricing/index.tsx | 281 +++++++++++++ 25 files changed, 1437 insertions(+), 4 deletions(-) create mode 100644 web/src/api/order.ts create mode 100644 web/src/assets/images/menu/pricing.svg create mode 100644 web/src/assets/images/menu/pricing_active.svg create mode 100644 web/src/assets/images/order/alert.svg create mode 100644 web/src/assets/images/order/bg.png create mode 100644 web/src/assets/images/order/biz.png create mode 100644 web/src/assets/images/order/check.svg create mode 100644 web/src/assets/images/order/commerce.png create mode 100644 web/src/assets/images/order/corporate.svg create mode 100644 web/src/assets/images/order/order.svg create mode 100644 web/src/assets/images/order/order_hover.svg create mode 100644 web/src/assets/images/order/personal.png create mode 100644 web/src/assets/images/order/team.png create mode 100644 web/src/views/OrderHistory/components/OrderDetail.tsx create mode 100644 web/src/views/OrderHistory/index.tsx create mode 100644 web/src/views/OrderHistory/types.ts create mode 100644 web/src/views/OrderPayment/index.tsx create mode 100644 web/src/views/OrderPayment/types.ts create mode 100644 web/src/views/Pricing/index.tsx diff --git a/web/src/api/order.ts b/web/src/api/order.ts new file mode 100644 index 00000000..e5d9d916 --- /dev/null +++ b/web/src/api/order.ts @@ -0,0 +1,17 @@ +import { request } from '@/utils/request' +import type { VoucherForm } from '@/views/OrderPayment/types' + +export const getOrderListUrl = '/v1/orders/customer' + +// 提交支付凭证API +export const submitPaymentVoucherAPI = (voucherData: VoucherForm) => { + return request.post('/v1/orders/', voucherData) +} +// 订单详情 +export const getOrderDetail = (order_no: string) => { + return request.get(`/v1/orders/customer/${order_no}`) +} +export const orderStatusUrl = '/v1/order-status/' +export const getOrderStatus = () => { + return request.get(orderStatusUrl) +} \ No newline at end of file diff --git a/web/src/assets/images/menu/pricing.svg b/web/src/assets/images/menu/pricing.svg new file mode 100644 index 00000000..5510ba23 --- /dev/null +++ b/web/src/assets/images/menu/pricing.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <title>菜单-收费管理 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/assets/images/menu/pricing_active.svg b/web/src/assets/images/menu/pricing_active.svg new file mode 100644 index 00000000..f708877d --- /dev/null +++ b/web/src/assets/images/menu/pricing_active.svg @@ -0,0 +1,22 @@ + + + 菜单-收费管理 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/assets/images/order/alert.svg b/web/src/assets/images/order/alert.svg new file mode 100644 index 00000000..18e9fd5c --- /dev/null +++ b/web/src/assets/images/order/alert.svg @@ -0,0 +1,13 @@ + + + 注意 + + + + + + + + + + \ No newline at end of file diff --git a/web/src/assets/images/order/bg.png b/web/src/assets/images/order/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..da821814320014bc74b24a19d13b2649750cc350 GIT binary patch literal 35926 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 literal 0 HcmV?d00001 diff --git a/web/src/assets/images/order/biz.png b/web/src/assets/images/order/biz.png new file mode 100644 index 0000000000000000000000000000000000000000..bacdb54efc8948e369a20a1f0be0f1cbff6240eb GIT binary patch literal 3756 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 WmLQTPF&%UO0000 + + 对号备份 + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/assets/images/order/commerce.png b/web/src/assets/images/order/commerce.png new file mode 100644 index 0000000000000000000000000000000000000000..14748ecbefdd07ef8c43f5287b48aeebfb5a3551 GIT binary patch literal 2082 zcmZ9Mdpy(MAIB$rML+#iU!nRHN<@V)_HAnJ%(hf=*<1@Lm!*9}E!PMQTYOO>U$>e| zzKUEYVbfQxxnFfLgU~G%|k{9wTurP1~Adm25ae<9@a6_(S_*hozy)F zJ$l^S;Dm*tk(H5&wK3Sn#MBmSY6pfmnEv8mb`lPOIzr76&{IhB)2P#yPFA+g)^-489bBF}iCoV=Y~1JItqp59nrKiozCUjqUo1A}e_g+v8oqe8-B zLc?OOU5^XH#p7-y;KBhCZ$u`A-%P$0l^PvKijF76-pPnd$V^PmzMJwe>E6S%`@g4W z6cRHENts2Y%;Jo!(#-7AtOrlCbIWobl|RUv+CCB+K!q!T3u6D1LbWarMr>R)7;wE+Wzi!$6yF#Vo}OEoVXZJ( zLMD54mLr2L)H-Hl zYyvigK+Uae?NCnV+|eGF{6nzU!onjWZ{CiMjlYwScrP_8JHO!fLULL8i`x1YDy{QP zZ{Nu1*!aXp#`Fwxj6YSU-^A~9(lp=$3H zJTRuJ^O_CE$#w8Wx|?ZPef+Ge8+8qEx281M585w|#np}LA>-H1lR3~#SFxag> z`PrN2kC#UsG|<@*Rlyy|<{K#AF?wm`9>M6;a8uAo^TbDWJU`SPmbym2fdEx<@#)#=W&4hskm)VG=QWMsdg*V6 zp%?{qDyvdwL6kJT9N}WUW4Wq9(jhSOGuJ-;>RDAq;vJ#SBZ3GEhuclQ;`liGLuH$d3L8eYb7wkWOyUEFog1Vtndi2_1FH%tx zYgC>Pp>aH1o}m9%ivCtY!BR?rJYo45)XVXeNZM}~F>=@I%z1U9NGVpNOBCtGij;{W z<=6)G+>d)bK>{@5qKbALg-EO>5aW}v<#H{h#{28?(KQ6`$Kj#z$u+}wj=Li0b-yet zK*SWwDCBNLZ|M<;P&X~-YhLi#&|)jDUL}mia9OFw9Uygj&vywZET%{RT~WrwQPpxW zm-(i%-7=65XVRlX2Rukphh9~*Tp=FmolrtArR>Wa5KhYOj463b&na1ZDeI}(I(c+Z z7?YsOo+0P->ksDDon6bScr1Vp4kjvR&NK6A5 zTgISXv-I6poSAB7t6d+KYFRD|lXKcq&gpqId_aNoFLZ$hf5t=#ezJ{V=ra4yT@_20 zQ!m_Cr^CV)VM2AaLXN#5|Ia5MeB0_Yf&RhQVkePDThrOLsI`;myrs|r%20m?(Ta3uw$Z5e*g)=e+I|bRlfivn$NJz7f?X~08p-ZMy4;uLP^uUo0uhhGr4MK~v g;vtysul~`}8y+#sYVF|Nz;_CAut8Z@S^C8P8|kc;u>b%7 literal 0 HcmV?d00001 diff --git a/web/src/assets/images/order/corporate.svg b/web/src/assets/images/order/corporate.svg new file mode 100644 index 00000000..07b92a45 --- /dev/null +++ b/web/src/assets/images/order/corporate.svg @@ -0,0 +1,15 @@ + + + 企业_画板 39@2x + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/assets/images/order/order.svg b/web/src/assets/images/order/order.svg new file mode 100644 index 00000000..5ddb6680 --- /dev/null +++ b/web/src/assets/images/order/order.svg @@ -0,0 +1,16 @@ + + + 订单 + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/assets/images/order/order_hover.svg b/web/src/assets/images/order/order_hover.svg new file mode 100644 index 00000000..7e9c7b46 --- /dev/null +++ b/web/src/assets/images/order/order_hover.svg @@ -0,0 +1,16 @@ + + + 订单 + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/assets/images/order/personal.png b/web/src/assets/images/order/personal.png new file mode 100644 index 0000000000000000000000000000000000000000..1e64efd61cc5c43be6d201bd25da5beef3eb8ff7 GIT binary patch literal 2007 zcmZwHc{p3?9tUuxt+8ZU)HbxyOfhT-9+c*Tuv#)NQHa7Ng9l zt#(CQR4hsCL`lRNMJx$IL^VP7jkaWty6yAa=eh6mIp_S&`~AJ|`Qx1Dq`5lVf#koF zmy(hK*+Z?}fNSjD@r?{{{;sTv~pkKU?!x!%nY;ky79R6qf`|!58z^eU}|M@{*df33ud?4Dl zw*;8^@7k{g(EO$TKk1j~YtMf1w6H0ss5!S7fXoAwAoEI5`6a0QQglHXy0D_9sG_C# zd24YcpsfT@)m~cNURK>v{-X2w%dX0r?#kMpsyYDX#p~V|^}R3adtU(%y>(6f2ow&1 z8fZY_n_32&S_hHs!|09?bmvG*=SXYUXj}JKdk>)mn{MJj_rU8k(9FRiRE(>AE@n5%U5J342L!Fj*V zeZS75Z}1qKd-wR3iLgL!)Y@{iE)U*W&S#NN9f|L{># za!PteZeB@QdBv-m+GbR1Hx@U5A0tf9%#r68DJ!(qH3o~v7mCE&A3lEC+0DAr9V{hv zu*cro@@5c)S+wn&VX2L`v1WaQCckn$Wp^z5BVu*4N*{(DI31`Ik>iyaVciaim@>#I zNEjwmE|LRF7as(yT^jG-c(-H4G~sXZDIQF7{^GOosC5DOi9o2J2m%Q<>KdYZGc%!-Z%C07CsGsXiN&65*idTPDvY8{Ca9P~0!*Fhqw7LgV%u$Me--mQ7;b_Aqh~@q zA<{bVLiLiEg^LHV9q?o1H;zYj91n*OMd?th@+up_WVx`oOEVF9uleOAcB;myWZ39;u$&>^~gIpxp@$#dr?&`ptfT+rYMMO>U%D{6$HJY)lrkGfAV-i z6(n=YO4}~(@%KI&&Z$;HrN_#5*9#Hb&A5p6XC3mVupvR+?b*5Bp8W5wIeE>LJoP6` zZl>cU4H?8Raw?&WW|Cr8xR=qh7V&bC%(sb$&-5Ba`E&e@t<9Iz^Qq=DCd2SXh zTOOZ)ipH3QXKR(he~;XpMFipS>ZfiQE%(gGf2ahwI@1XfSJ4 z4IB}xuDbcF9_7X|r}Prm&?vj$hZVK_rnHeZTsR5KZo}2MClUSYOu#FZ4QlwvfBHFqk;898w7@Q}9?XngJvSSSOW^2+eTqJ4;gn#Uf1Hu2 zUwl}3$u0HBa7vVFe5`#u$WB#%L0Z|uqbE3ga4hgt@VNS?a%+-A8@d3^L4x7@z^7SGE=3-J*u~j#O1@R%-*a8IB;$LV;Vl7KsK<6dHO0> z78QHsrkl(2juO)_1G8XwD7yFz{L-x2j@T(jtL5ySxx1<6BNi%>7l(}d^R_a)h-bqz zXB$&OXnE@(Mg7|}jgycSjgw(C4fi;^YqGA8e}|0rD8l3!J{OZAOd9w|^%L>Sj9V#h zu(f?Z{Br98R1L>|^884)pDki_3ZXrut){pvr*Qbk$A{pTe=6p>=P46ZvT|f96kuHn z_hc#xChCIGb#^i-@k#V+7|W{_zS@zcl~>j-%Nniy>rSJViM!Q~)_HemY(jb`XZP4i z>VqyHztTFUJl{IhqgT<3HQITl~^&nabZ<7|z%cIVMwVIQ(U literal 0 HcmV?d00001 diff --git a/web/src/assets/images/order/team.png b/web/src/assets/images/order/team.png new file mode 100644 index 0000000000000000000000000000000000000000..2a059d733b0b1c6bde4a7907378f5f8047bb2173 GIT binary patch literal 2033 zcmZ9Mc|6qlAIE3QwT{-3yReuG19yEG`0*39GB{VIDp#z}g}(7_hVi z%geAb53GgFd}VPH7ULgQnVZd}1z2Ig3KLjNSYCu>#wIL8wxvY+-z>|>>K2>gf7#sX zn`_JXPam-$e6QJ>_-#7UM_kBOnQfsg=?5`mZm#M@AR8%QZY zx&saA(0mtK?m=5FwC6#4K6I7BV}vpwBUC_lCG=E7?*n-95T4=T83Fo;&{q!wBp7Uj zp(Yq=h8Jxx+ySGVFh&MSH&A+D{0U4vhsi#e?1!lVm>z_gVVE6*ISR~;!y78lCxJc% zZ(qT?8JM4e1sW{Q!QvZWAkcyF7MKX{UGPMb$;aE=Q7E=P zLp>eKE7Q!Jw-!5ovv?tWeSAr=08d46Yz0N%bFZ@w8{59~o^frC zy6o&|NWJuWhrgd|TI=|zSi!-DamE{`th}l9REO*%8_AfXe7s!T+@h4HR=0j6FphKqR2OJfhtaxY2zE)~31p=M%3 z_z^d`<`WSlTRFNkA*YbUj8@G`P!*(dU&-OKzSU%{Rw`E8Fle`*JgIF*9dNSB!VmP> z)YerWLRI$!*9Co{9pcA^@!Bj~i>6plAFXFr$T^z|R1n9Cyp)~UIWBj{3Fo)Ax!`v? z2e+(q>~S=dV{3jv!u>9QyE03-nHyPl`0+XPQI4~2iGJQ4YlQB_Pnz#ZHt}VTh#7(` zA5YZdyf~L6{@y?Ar98Q`(>0!mV)@Z-HS>xDFA{^Bu9zZl&~evm1Mw;}lXG@V*wpzY zVd;puM!(HAb6OzjhnnKxn!3<~`2vqJtk5}3T0h!TKP#)zlhYSp(x-uS75C7yDRZK! zobDDYA*-j{lJF&~W>@IBr=HKXtO_EH{2EtlYv$2eaqCaceZ{9YhK8V0TFAOKAwfz} z*7k70SVMTZtb8dvSPsi~H^XS{6kfib7}^j|9F(cZMTedX*d0D<@5IVH1w)^cKMMPH zDt%TyQC8HXZ`JB>UBuPO4yPnmb>nIWUV{gF2fe@jseHS_{;*E@Fopd!gq1+0bF`mQ zWVL9rD3h85E!r*=Yqun8H;N@8$&x@}jSsh|H*wJF0~0TX@Xm$iK0h$P{m_fS=Mwh$JK}Z7t_wN=isimH@`7@R?bMO6^v)5x?9|y@U&8$wtYuS@@5lwK$oRIj z1t)baw0yXfT(5+Kf@|-oH6i&(@?F)20qwE@gakZKRDwaA0XWBx-(uRX#Gm-_V)5je<()Nu|CZ;DoJqs|;yYM@??1L^Vx@}o&>H_zkukAR=FZLJ59`RWYmUA~c zByd_y^K+uY%iVO+N3>`%!q}e+KcW*p3KcdU)$dR*6Zch=G3n4q#wvDwVVgKMCFHPr zqvuDppDf}{Qa=Qx<>N65!P$DD#Iwl(>#}r1%jDsnjF?`prH7>17|FL(8OX=^4rg*0 z+43s8ZCs|jBF?x{1qy-^vgt~**(4vYY4bMR>u9P*&t5TXqM78ZX#F*=m>q@D{zLad z=anV?IM%|cOYIF;PWP`n;qpLHbkBLAKGA9!9fA+mTjNGb;!r?-mcPBj5`Mq0Xq-W8qUkis0;xtWOO8MpUiukE1 zQ;bDROTH%UmP5Cmpjrfm6Vq3;$7>GtPx;5V6G;2`gY}zMPpzf4qFwRtl@y}T-iE*A z`1HI$;_0hs7aB>{wPZBVKv`U6x-scIH{Da|)7_2j8XoV5WVLILA@?ZCP#>dLbJFqV E-!b2}kpKVy literal 0 HcmV?d00001 diff --git a/web/src/components/SiderMenu/index.tsx b/web/src/components/SiderMenu/index.tsx index 91d3d0f1..a39a0b4e 100644 --- a/web/src/components/SiderMenu/index.tsx +++ b/web/src/components/SiderMenu/index.tsx @@ -38,6 +38,8 @@ import toolIcon from '@/assets/images/menu/tool.png'; import toolActiveIcon from '@/assets/images/menu/tool_active.png'; import apiKeyIcon from '@/assets/images/menu/apiKey.png'; import apiKeyActiveIcon from '@/assets/images/menu/apiKey_active.png'; +import pricingIcon from '@/assets/images/menu/pricing.svg' +import pricingActiveIcon from '@/assets/images/menu/pricing_active.svg' // 图标路径映射表 const iconPathMap: Record = { @@ -65,6 +67,8 @@ const iconPathMap: Record = { 'toolActive': toolActiveIcon, 'apiKey': apiKeyIcon, 'apiKeyActive': apiKeyActiveIcon, + 'pricing': pricingIcon, + 'pricingActive': pricingActiveIcon }; const { Sider } = Layout; diff --git a/web/src/components/Table/index.tsx b/web/src/components/Table/index.tsx index 6524d1a8..62c68dc3 100644 --- a/web/src/components/Table/index.tsx +++ b/web/src/components/Table/index.tsx @@ -19,6 +19,7 @@ interface TableComponentProps extends Omit { isScroll?: boolean; scrollX?: number | string | true; // 支持自定义横向滚动宽度 scrollY?: number | string; // 支持自定义纵向滚动高度 + currentPageKey?: string; } export interface TableRef { loadData: () => void; @@ -48,6 +49,7 @@ const TableComponent = forwardRef(({ isScroll = false, scrollX, scrollY, + currentPageKey = 'page', ...props }, ref) => { const { t } = useTranslation(); @@ -86,7 +88,7 @@ const TableComponent = forwardRef(({ ...currentPagination, ...pageData, }) - params = {...params, ...pageData} + params = { ...params, ...pageData, [currentPageKey]: pageData.page} } setLoading(true) // 构建查询参数并调用API @@ -95,7 +97,7 @@ const TableComponent = forwardRef(({ // 支持两种响应格式:直接返回 total 或在 page 对象中返回 const totalCount = res.page?.total ?? res.total ?? 0; setTotal(totalCount) - setData(Array.isArray(res.items) ? res.items : Array.isArray(res.hosts) ? res.hosts : res || []) + setData(Array.isArray(res.items) ? res.items : Array.isArray(res.hosts) ? res.hosts : Array.isArray(res.list) ? res.list : res || []) setLoading(false) }) .catch(err => { diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 37d14c53..d16c9e67 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -38,6 +38,9 @@ export const en = { emotionEngine: 'Emotion Engine', statementDetail: 'Emotion Memory', selfReflectionEngine: 'Self Reflection Engine', + pricing: 'Pricing Management', + orderPayment: 'Order Payment', + orderHistory: 'Order History', }, dashboard: { totalMemoryCapacity: 'Total Memory Capacity', @@ -1704,6 +1707,123 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re privacy_types: 'Privacy Types', summary: 'Audit Summary', } - } + }, + pricing: { + title: 'Flexible Pricing for Teams of All Sizes', + desc: 'Transparent pricing that helps you easily find a plan that fits your budget.', + solution: 'Product Positioning', + targetAudience: 'Target Audience', + orderPayment: 'Order Payment', + creationTime: 'Creation Time', + orderPaymentDesc: 'Please confirm the order information and complete the payment.', + orderInformation: 'Order Information', + paymentMethod: 'Payment Method', + paymentVoucher: 'Payment Voucher', + corporateTransfer: 'Corporate transfer', + corporateTransferDesc: 'Pay via corporate bank transfer.', + payeeInformation: 'Payee Account Information', + receivingEntity: 'Receiving Entity', + bankName: 'Bank Name', + bankAccountNumber: 'Bank Account Number', + pay_txn_id: 'Payment Transaction ID', + pay_txn_idPlaceholder: 'Please enter the bank transfer transaction ID.', + pay_txn_idDesc: 'Please fill in the serial number on the bank transfer voucher for verification of payment', + payer: 'Payer(Company/Individual)', + payerPlaceholder: 'Please enter the bank transfer transaction ID.', + redirectCountdown: 'seconds until redirecting to Memory Bear...', + confirmRedirect: 'Payment voucher submitted successfully!', + confirmRedirectContent: 'We will verify your payment information within 1-3 business days. Would you like to go to Memory Bear now to start your experience?', + stayCurrentPage: 'Stay on current page', + goBack: 'Go to backend', + transferDate: 'Transfer Date', + payerAccount: 'Payer Account', + remark: 'Remark', + remarkPlaceholder: 'Please provide any additional remarks here (optional).', + confirm: 'SUBMIT PAYMENT', + submitting: 'Submitting...', + payInfo: 'After submission, we will verify your payment information within 1–3 business days.', + paySuccess: 'Once verified, your subscription service will be automatically activated by the system.', + comboName: 'Combo Name', + spAndTa: 'Solution positioning and target audience', + versionInformation: 'Version information', + orderCycle: 'Order Cycle', + orderAmount: 'Order Amount', + personal: { + type: 'Personal', + label: 'Current Package', + typeDesc: 'For individuals', + solution: "A person's second brain, capable of storing up to 2000 memories.", + targetAudience: 'individual users, students, and first-time users', + priceDesc: '/Forever free', + supportServices: 'Community Forum + Email Support', + }, + team: { + type: 'Team', + label: 'Small Team', + typeDesc: 'Small Team Version', + solution: "Enable every team to build a shared second brain in seconds.", + targetAudience: 'Small teams, early-stage startups, and small projects.', + priceDesc: '/Month', + supportServices: 'Standard customer service support', + }, + biz: { + type: 'Biz+', + label: 'Most Popular', + typeDesc: 'Enterprise Growth Edition', + solution: "Scale your organization with a powerful, enterprise-ready second-brain system.", + targetAudience: 'Growing teams, startups, and SMBs requiring advanced memory capabilities.', + priceDesc: '/Month/workspace', + supportServices: 'Priority customer service support', + }, + commerce: { + type: 'Commerce', + label: 'Commercial OEM', + typeDesc: 'Commercial OEM version', + solution: "Seamlessly integrate advanced memory capabilities into your SaaS or enterprise product.", + targetAudience: 'Large enterprises, SaaS vendors, and system integrators requiring fully customizable and secure deployment.', + priceDesc: 'On-premises deployment', + supportServices: 'Standard customer service support', + flexibleDeployment: 'Supports localized deployment in data centers', + reliableGuarantee: '99.9% SLA guarantee' + }, + mostPopular: 'Most Popular', + startedBtn: 'GET STARTED', + choosePlanBtn: 'CHOOSE PLAN', + contactBtn: 'CONTACT US', + memoryCapacity: 'Memory capacity:', + entries: 'entries', + intelligentSearchFrequency: 'Intelligent search frequency:', + timesMonth: 'times/month', + supportServices: 'Support Services:', + flexibleDeployment: 'Flexible deployment:', + reliableGuarantee: 'Reliable guarantee:', + alertTitle: 'Intellectual Property Authorization Reminder', + alertContent: 'Please note: Using certain AI models (such as GPT-4, Claude, etc.) may involve third-party API call fees, which are not included in the Memory Bear platform subscription fee. You need to pay the relevant fees separately to the model provider. Memory Bear only charges platform management and service fees and does not bear the usage fees of third-party APIs.', + currentAccountType: 'Current Account Type', + validUntil: 'Valid Until', + orderHistory: 'Order History', + order_no: 'Order Number', + product_type: 'Package Name', + payable_amount: 'Order Amount', + status: 'Order Status', + pay_time: 'Payment Time', + viewDetail: 'View Details', + PENDING: 'Pending Review', + APPROVED: 'Approved', + REJECTED: 'Rejected', + allStatus: 'All Status', + allTime: 'All Time', + today: 'Today', + week: 'Last Week', + month: 'Last Month', + threeMonth: 'Last Three Months', + year: 'Last Year', + searchPlaceholder: 'Search order number', + allType: 'All Packages', + orderDetail: 'Order Details', + orderInfo: 'Order Information', + orderPayInfo: 'Payment Information', + create_time: 'Creation Time', + }, }, }; diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index e602fe0a..ef15d06b 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -38,6 +38,9 @@ export const zh = { emotionEngine: '情感引擎', statementDetail: '情绪记忆', selfReflectionEngine: '反思引擎', + pricing: '收费管理', + orderPayment: '订单支付', + orderHistory: '订单记录', }, knowledgeBase: { home: '首页', @@ -1792,6 +1795,123 @@ export const zh = { privacy_types: '隐私类型', summary: '审核摘要', } - } + }, + pricing: { + title: '灵活定价,满足各类团队需求', + desc: '透明的定价策略,助您轻松找到符合预算的方案', + solution: '方案定位', + targetAudience: '目标人群', + orderPayment: '订单支付', + orderPaymentDesc: '请确认订单信息并完成支付', + orderInformation: '订单信息', + paymentMethod: '支付方式', + paymentVoucher: '支付凭证', + corporateTransfer: '企业转账', + corporateTransferDesc: '通过企业对公账户转账支付', + receivingEntity: '收款单位', + bankName: '开户银行', + bankAccountNumber: '银行账号', + pay_txn_id: '支付流水号', + payer: '付款单位/个人', + transferDate: '转账日期', + payerAccount: '付款账号', + remark: '备注信息', + remarkPlaceholder: '如有其他说明,请在此填写(选填)', + confirm: '确认支付', + submitting: '提交中...', + payInfo: '提交后,我们将在1-3个工作日内核实您的付款信息', + paySuccess: '核实通过后,系统将自动开通您的套餐服务', + pay_txn_idPlaceholder: '请输入支付流水号', + pay_txn_idDesc: '请填写转账时的交易流水号,以便我们快速确认您的付款', + payerPlaceholder: '请输入付款单位或个人姓名', + redirectCountdown: '秒后跳转后台...', + confirmRedirect: '支付凭证已提交成功!', + confirmRedirectContent: '我们将在1-3个工作日内核实您的付款信息。是否立即跳转到记忆熊开始体验?', + stayCurrentPage: '留在当前页', + goBack: '跳转后台', + payeeInformation: '收款信息', + creationTime: '创建时间', + comboName: '套餐名称', + spAndTa: '方案定位与目标人群', + versionInformation: '版本信息', + orderCycle: '订购周期', + orderAmount: '订单金额', + personal: { + type: '个人版', + label: '当前安装包', + typeDesc: '个人玩家版本', + solution: '个人的第二大脑,最多可存储2000条记忆。', + targetAudience: '个人用户、学生及初次使用者', + priceDesc: '/永久免费', + supportServices: '社区论坛 + 邮件支持' + }, + team: { + type: '团队版', + label: '小型团队', + typeDesc: '小型团队版本', + solution: '让每一条业务记录瞬间成为团队的第二大脑。', + targetAudience: '初创团队、小微型企业、小型项目', + priceDesc: '/月', + supportServices: '标准客服支持' + }, + biz: { + type: '企业增长版', + label: '最受欢迎', + typeDesc: '企业增长版本', + solution: '让每一条业务记录瞬间成为团队的第二大脑。', + targetAudience: '初创团队、小微型企业、小型项目', + priceDesc: '/月/工作区', + supportServices: '优先客服支持' + }, + commerce: { + type: '商业OEM版', + label: '商业OEM', + typeDesc: '商业OEM版本', + solution: '将强大的记忆能力无缝嵌入您的SaaS产品中。', + targetAudience: '需要集成解决方案的大型企业、SaaS厂商及系统集成商。', + priceDesc: '本地化部署', + supportServices: '标准客服支持', + flexibleDeployment: '支持在数据中心进行本地化部署', + reliableGuarantee: '99.9% SLA保障' + }, + mostPopular: '最受欢迎', + startedBtn: '立即开始', + choosePlanBtn: '选择方案', + contactBtn: '联系我们', + memoryCapacity: '记忆容量:', + entries: '条', + intelligentSearchFrequency: '智能搜索次数:', + timesMonth: '次/月', + supportServices: '支持服务:', + flexibleDeployment: '灵活部署:', + reliableGuarantee: '可靠保障:', + alertTitle: '知识产权授权提醒', + alertContent: '请注意:使用某些AI模型(如GPT-4、Claude等)可能涉及第三方API调用费用,这些费用不包含在Memory Bear平台订阅费中。您需要单独向模型提供商支付相关费用。Memory Bear仅收取平台管理和服务费,不承担第三方API的使用费用。', + currentAccountType: '当前账户类型', + validUntil: '有效期至', + orderHistory: '订单记录', + order_no: '订单号', + product_type: '套餐名称', + payable_amount: '订单金额', + status: '订单状态', + pay_time: '支付时间', + viewDetail: '查看详情', + PENDING: '待审核', + APPROVED: '审核通过', + REJECTED: '审核不通过', + allStatus: '全部状态', + allTime: '全部时间', + today: '今天', + week: '最近一周', + month: '最近一月', + threeMonth: '最近三个月', + year: '最近一年', + searchPlaceholder: '搜索订单号', + allType: '全部套餐', + orderDetail: '订单详情', + orderInfo: '订单信息', + orderPayInfo: '支付信息', + create_time: '创建时间', + }, }, } \ No newline at end of file diff --git a/web/src/routes/index.tsx b/web/src/routes/index.tsx index 06032d5b..e7624994 100644 --- a/web/src/routes/index.tsx +++ b/web/src/routes/index.tsx @@ -58,6 +58,9 @@ const componentMap: Record>> = EmotionEngine: lazy(() => import('@/views/EmotionEngine')), StatementDetail: lazy(() => import('@/views/UserMemoryDetail/pages/StatementDetail')), SelfReflectionEngine: lazy(() => import('@/views/SelfReflectionEngine')), + OrderPayment: lazy(() => import('@/views/OrderPayment')), + OrderHistory: lazy(() => import('@/views/OrderHistory')), + Pricing: lazy(() => import('@/views/Pricing')), Login: lazy(() => import('@/views/Login')), InviteRegister: lazy(() => import('@/views/InviteRegister')), NoPermission: lazy(() => import('@/views/NoPermission')), diff --git a/web/src/routes/routes.json b/web/src/routes/routes.json index d4f6a12e..45e187d6 100644 --- a/web/src/routes/routes.json +++ b/web/src/routes/routes.json @@ -5,6 +5,9 @@ { "path": "/user-management", "element": "UserManagement" }, { "path": "/model", "element": "ModelManagement" }, { "path": "/space", "element": "SpaceManagement" }, + { "path": "/pricing", "element": "Pricing" }, + { "path": "/order-pay", "element": "OrderPayment" }, + { "path": "/orders", "element": "OrderHistory" }, { "path": "/no-permission", "element": "NoPermission" } ] }, diff --git a/web/src/views/OrderHistory/components/OrderDetail.tsx b/web/src/views/OrderHistory/components/OrderDetail.tsx new file mode 100644 index 00000000..562397be --- /dev/null +++ b/web/src/views/OrderHistory/components/OrderDetail.tsx @@ -0,0 +1,76 @@ +import { forwardRef, useImperativeHandle, useState, useCallback } from 'react'; +import { Descriptions } from 'antd'; +import { useTranslation } from 'react-i18next'; +import dayjs from 'dayjs'; + +import type { Order, OrderDetailRef } from '../types' +import RbModal from '@/components/RbModal' +import { getOrderDetail } from '@/api/order' +import { STATUS } from '../index'; + + +const OrderDetail = forwardRef((_props, ref) => { + const { t } = useTranslation(); + const [visible, setVisible] = useState(false); + const [data, setData] = useState({}) + + // 封装取消方法,添加关闭弹窗逻辑 + const handleClose = () => { + setVisible(false); + }; + + const handleOpen = (order: Order) => { + setVisible(true); + getOrderDetail(order.order_no) + .then(res => { + setData(res as Order) + }) + }; + const formatItems = useCallback(() => { + if (!data) return [] + return ['order_no', 'product_type', 'payable_amount', 'status', 'pay_time', 'create_time'].map(key => { + const value = (data as any)[key] + return { + key, + label: t(`pricing.${key}`), + children: ['pay_time', 'create_time'].includes(key) && value + ? dayjs(value).format('YYYY-MM-DD HH:mm:ss') + : key === 'status' && value + ? t(`pricing.${STATUS[value as keyof typeof STATUS].key}`) + : key === 'product_type' && value + ? t(`pricing.${value.toLowerCase()}.type`) + : value + } + }) + }, [data]) + const formatPayItems = useCallback(() => { + if (!data) return [] + return ['pay_txn_id', 'payer'].map(key => ({ + key, + label: t(`pricing.${key}`), + children: (data as any)[key] + })) + }, [data]) + + // 暴露给父组件的方法 + useImperativeHandle(ref, () => ({ + handleOpen, + handleClose + })); + // ['pay_txn_id', 'payer'] + // ['pay_txn_id', 'payer'] + return ( + + + + + ); +}); + +export default OrderDetail; \ No newline at end of file diff --git a/web/src/views/OrderHistory/index.tsx b/web/src/views/OrderHistory/index.tsx new file mode 100644 index 00000000..1dd31376 --- /dev/null +++ b/web/src/views/OrderHistory/index.tsx @@ -0,0 +1,227 @@ +import React, { useRef, useState, useEffect } from 'react'; +import { Button, Space, Select, Flex } from 'antd'; +import { useTranslation } from 'react-i18next'; +import type { ColumnsType } from 'antd/es/table'; +import type { SelectProps } from 'antd/es/select' +import dayjs from 'dayjs'; + +import Table, { type TableRef } from '@/components/Table' +import StatusTag from '@/components/StatusTag' +import { getOrderListUrl, getOrderStatus } from '@/api/order' +import { formatDateTime } from '@/utils/format'; +import type { Order, OrderDetailRef, Query } from './types' +import OrderDetail from './components/OrderDetail' +import SearchInput from '@/components/SearchInput' +import { PRICE_LIST } from '@/views/Pricing' + + +export const STATUS = { + 100: { + status: 'warning', + key: 'PENDING' + }, + 150: { + key: 'APPROVED', + status: 'success' + }, + 500: { + key: 'REJECTED', + status: 'error' + } +} +const OrderHistory: React.FC = () => { + const { t } = useTranslation(); + const orderDetailRef = useRef(null) + const tableRef = useRef(null); + const [query, setQuery] = useState({ + status: null, + product_type: null, + start_time: null, + end_time: null + } as Query) + const [statusOptions, setStatusOptions] = useState([]) + const [timeType, setTimeType] = useState('all') + const timeOptions = [ + { label: t('pricing.allTime'), value: 'all' }, + { label: t('pricing.today'), value: 'today' }, + { label: t('pricing.week'), value: '7d' }, + { label: t('pricing.month'), value: '1month' }, + { label: t('pricing.threeMonth'), value: '3month' }, + { label: t('pricing.year'), value: '1year' }, + ] + const productTypeOptions = [ + { label: t('pricing.allType'), value: null }, + ...PRICE_LIST.map(vo => ({ + label: t(`pricing.${vo.type}.type`), + value: vo.type + })) + ] + + const handleView = (order: Order) => { + orderDetailRef.current?.handleOpen(order) + } + + useEffect(() => { + getStatus() + }, []) + const getStatus = () => { + getOrderStatus() + .then(res => { + const response = res as Record + setStatusOptions([ + { + label: t(`pricing.allStatus`), + value: null + }, + ...Object.keys(response).map(key => ({ + label: t(`pricing.${key}`), + value: response[key].value + })) + ]) + }) + } + const handleChangeStatus = (value: string) => { + if (value !== query.status) { + setQuery(prev => ({ + ...prev, + status: value + })) + } + } + const handleChangeType = (value: string) => { + if (value !== query.product_type) { + setQuery(prev => ({ + ...prev, + product_type: value + })) + } + } + const handleChangeTime = (value: string) => { + setTimeType(value) + let start_time = null; + let end_time: number | null = dayjs().endOf('day').valueOf() + + switch(value) { + case 'all': + start_time = null; + end_time = null + break + case 'today': + start_time = dayjs().startOf('day').valueOf() + break + case '7d': + start_time = dayjs().subtract(7, 'day').startOf('day').valueOf() + break + case '1month': + start_time = dayjs().subtract(1, 'month').startOf('day').valueOf() + break + case '3month': + start_time = dayjs().subtract(3, 'month').startOf('day').valueOf() + break + case '1year': + start_time = dayjs().subtract(1, 'year').startOf('day').valueOf() + break + } + setQuery(prev => ({ + ...prev, + start_time, + end_time + })) + } + // 表格列配置 + const columns: ColumnsType = [ + { + title: t('pricing.order_no'), + dataIndex: 'order_no', + key: 'order_no', + fixed: 'left', + }, + { + title: t('pricing.product_type'), + dataIndex: 'product_type', + key: 'product_type', + render: (type) => t(`pricing.${type.toLowerCase()}.type`) + }, + { + title: t('pricing.payable_amount'), + dataIndex: 'payable_amount', + key: 'payable_amount', + render: (amount: number) => `¥${amount}`, + }, + { + title: t('pricing.status'), + dataIndex: 'status', + key: 'status', + render: (status: number) => + }, + { + title: t('pricing.pay_time'), + dataIndex: 'pay_time', + key: 'pay_time', + render: (pay_time: unknown) => formatDateTime(pay_time as string, 'YYYY-MM-DD HH:mm:ss'), + }, + { + title: t('common.operation'), + key: 'action', + fixed: 'right', + render: (_, record) => ( + + + + ), + }, + ]; + + return ( +
+ + + +
+ + + + ); +}; + +export default OrderHistory; \ No newline at end of file diff --git a/web/src/views/OrderHistory/types.ts b/web/src/views/OrderHistory/types.ts new file mode 100644 index 00000000..05800cb6 --- /dev/null +++ b/web/src/views/OrderHistory/types.ts @@ -0,0 +1,43 @@ +export interface Query { + product_type?: string | null; + status?: string | null; + search?: string; + page_index?: number; + page_size?: number; + start_time?: number | null; + end_time?: number | null; + [key: string]: string | number | null | undefined; +} +export interface Order { + order_no: string; + user_id: string; + tenant_id: string; + uname: string; + status: number; + product_type: string; + valid: number; + payable_amount: string; + pay_status: number; + pay_txn_id: string; + pay_time: number; + payer: string; + servicer_id: number; + valid_time: number; + remarks: string; + closed: number; + service_status: number; + ship_status: number; + invite_code: string; + from_view: string; + tags: string; + app_id: number; + id: number; + optimistic: number; + create_time: number; + update_time: number; + deleted: number; +} + +export interface OrderDetailRef { + handleOpen: (order: Order) => void; +} diff --git a/web/src/views/OrderPayment/index.tsx b/web/src/views/OrderPayment/index.tsx new file mode 100644 index 00000000..3214b48e --- /dev/null +++ b/web/src/views/OrderPayment/index.tsx @@ -0,0 +1,391 @@ +import React, { useState, useEffect, useMemo } from 'react'; +import { useSearchParams, useNavigate } from 'react-router-dom'; +import { Button, Input, App, Form, DatePicker } from 'antd'; +import { useTranslation } from 'react-i18next'; +import copy from 'copy-to-clipboard' +import dayjs from 'dayjs'; + +import { submitPaymentVoucherAPI } from '@/api/order'; +import corporateImg from '@/assets/images/order/corporate.svg' +import checkImg from '@/assets/images/order/check.svg' +import type { PriceItem, VoucherForm } from './types' + +const { TextArea } = Input; + +const paymentInfo = { + payee: '上海算模算样科技有限公司', + bankName: '交通银行上海同济支行', + bankAccount: '3100 6634 4013 0082 44111' +}; +const OrderPayment: React.FC = () => { + const [searchParams] = useSearchParams(); + const { message, modal } = App.useApp() + const navigate = useNavigate(); + const { t } = useTranslation(); + const [form] = Form.useForm() + + const [isSubmitting, setIsSubmitting] = useState(false); + const [selectedType, setSelectedType] = useState('biz'); + + const PRICE_LIST: PriceItem[] = [ + { + type: 'personal', + label: 'pricing.personal.label', + typeDesc: 'pricing.personal.typeDesc', + priceDescObj: { + solution: 'pricing.personal.solution', + targetAudience: 'pricing.personal.targetAudience', + }, + priceObj: { + type: 'default', + price: 0, + time: 'pricing.personal.priceDesc', + }, + btnType: 'started', + memoryCapacity: '2000', + intelligentSearchFrequency: '100', + }, + { + type: 'team', + label: 'pricing.team.label', + typeDesc: 'pricing.team.typeDesc', + priceDescObj: { + solution: 'pricing.team.solution', + targetAudience: 'pricing.team.targetAudience', + }, + priceObj: { + type: 'default', + price: 19, + time: 'pricing.team.priceDesc' + }, + btnType: 'choosePlan', + memoryCapacity: '20,000', + intelligentSearchFrequency: '10,000', + }, + { + type: 'biz', + label: 'pricing.biz.label', + typeDesc: 'pricing.biz.typeDesc', + priceDescObj: { + solution: 'pricing.biz.solution', + targetAudience: 'pricing.biz.targetAudience', + }, + mostPopular: true, + priceObj: { + type: 'default', + price: 299, + time: 'pricing.biz.priceDesc' + }, + btnType: 'choosePlan', + memoryCapacity: '100,000', + intelligentSearchFrequency: '50,000', + }, + { + type: 'commerce', + label: 'pricing.commerce.label', + typeDesc: 'pricing.commerce.typeDesc', + priceDescObj: { + solution: 'pricing.commerce.solution', + targetAudience: 'pricing.commerce.targetAudience', + }, + priceObj: { + type: 'commerce', + time: 'pricing.commerce.priceDesc' + }, + btnType: 'contact', + memoryCapacity: '20,000', + intelligentSearchFrequency: '10,000', + flexibleDeployment: true, + reliableGuarantee: true + }, + ]; + + const selectedPlan = useMemo(() => { + return PRICE_LIST.find(item => item.type === selectedType) || PRICE_LIST[2]; + }, [selectedType]); + + const translations = useMemo(() => ({ + title: t('pricing.title'), + desc: t('pricing.desc'), + mostPopular: t('pricing.mostPopular'), + startedBtn: t('pricing.startedBtn'), + choosePlanBtn: t('pricing.choosePlanBtn'), + contactBtn: t('pricing.contactBtn'), + memoryCapacity: t('pricing.memoryCapacity'), + entries: t('pricing.entries'), + intelligentSearchFrequency: t('pricing.intelligentSearchFrequency'), + timesMonth: t('pricing.timesMonth'), + supportServices: t('pricing.supportServices'), + flexibleDeployment: t('pricing.flexibleDeployment'), + reliableGuarantee: t('pricing.reliableGuarantee'), + getItemType: (type: string) => t(`pricing.${type}.type`), + getItemLabel: (labelKey: string) => t(labelKey), + getItemDesc: (descKey: string) => t(descKey), + getPriceKey: (key: string) => t(`pricing.${key}`), + getItemPriceDesc: (descKey: string) => t(descKey), + getPriceTime: (timeKey: string) => t(timeKey), + getTypeSupportService: (type: string, key: string) => t(`pricing.${type}.${key}`), + }), [t]); + + const getProductType = (type: string) => { + const typeMap: Record = { + 'personal': 'FREE', + 'team': 'TEAM', + 'biz': 'ENTERPRISE', + 'commerce': 'OEM' + }; + return typeMap[type] || 'ENTERPRISE'; + }; + + const generateOrderNumber = () => { + const date = new Date(); + const dateStr = date.getFullYear().toString() + + (date.getMonth() + 1).toString().padStart(2, '0') + + date.getDate().toString().padStart(2, '0'); + const random = Math.floor(Math.random() * 1000000).toString().padStart(6, '0'); + return `ORD-${dateStr}${random}`; + }; + + const orderInfo = useMemo(() => { + const plan = selectedPlan; + return { + orderNumber: generateOrderNumber(), + creationTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), + comboName: t(`pricing.${plan.type}.type`), + comboEdition: t(plan.typeDesc), + solutionPositioning: t(plan.priceDescObj.solution), + targetAudience: t(plan.priceDescObj.targetAudience), + memoryCapacity: `${plan.memoryCapacity} ${t('pricing.entries')}`, + searchFrequency: `${plan.intelligentSearchFrequency} ${t('pricing.timesMonth')}`, + supportServices: t(`pricing.${plan.type}.supportServices`), + flexibleDeployment: t(`pricing.${plan.type}.flexibleDeployment`), + reliableGuarantee: t(`pricing.${plan.type}.reliableGuarantee`), + orderingCycle: '1 month', + orderAmount: plan.priceObj.price || 'Contact Us' + }; + }, [selectedPlan, t]); + + const copyText = (text: string) => { + copy(text) + message.success(t('common.copySuccess')) + }; + + const submitPayment = (values: VoucherForm) => { + if (isSubmitting) return; + + setIsSubmitting(true); + + const submitData = { + product_type: getProductType(selectedType), + ...values, + payable_amount: orderInfo.orderAmount, + pay_time: values.transferDate.valueOf(), + }; + submitPaymentVoucherAPI(submitData) + .then(res => { + form.resetFields() + + modal.confirm({ + title: t('pricing.confirmRedirect'), + content: t('pricing.confirmRedirectContent'), + okText: t('pricing.goBack'), + cancelText: t('pricing.stayCurrentPage'), + onOk() { + navigate('/pricing') + }, + }); + }) + .finally(() => { + setIsSubmitting(false); + }) + }; + + useEffect(() => { + const type = searchParams.get('type'); + if (type && PRICE_LIST.find(item => item.type === type)) { + setSelectedType(type); + } + }, [searchParams]); + + return ( +
+ {/* 订单信息 */} +
+

{t('pricing.orderInformation')}

+ +
+
+ {t('pricing.creationTime')}: + {orderInfo.creationTime} +
+
+ + {/* 订单详情表格 */} +
+ {/* 桌面端表头 */} +
+
{t('pricing.comboName')}
+
{t('pricing.spAndTa')}
+
{t('pricing.versionInformation')}
+
{t('pricing.orderCycle')}
+
{t('pricing.orderAmount')}
+
+ {/* 表格内容 */} +
+ {/* 套餐名称 */} +
+
{t('pricing.comboName')}
+
{orderInfo.comboName}
+
{orderInfo.comboEdition}
+
+ {/* 解决方案和目标受众 */} +
+
{t('pricing.spAndTa')}
+
+
{translations.getPriceKey('solution')}
+
{orderInfo.solutionPositioning}
+
+
+
{translations.getPriceKey('targetAudience')}
+
{orderInfo.targetAudience}
+
+
+ {/* 版本信息 */} +
+
{t('pricing.versionInformation')}
+
+ + {translations.memoryCapacity} {orderInfo.memoryCapacity} +
+
+ + {translations.intelligentSearchFrequency} {orderInfo.searchFrequency} +
+
+ + {translations.supportServices} {orderInfo.supportServices} +
+ {selectedType === 'commerce' && ( + <> +
+ + {translations.flexibleDeployment} {translations.getTypeSupportService('commerce', 'flexibleDeployment')} +
+
+ + {translations.reliableGuarantee} {translations.getTypeSupportService('commerce', 'reliableGuarantee')} +
+ + )} +
+ {/* 订购周期和金额 */} +
+ {orderInfo.orderingCycle} +
+
+ {t('pricing.orderAmount')}: + {selectedType === 'commerce' ? '' : '$'}{orderInfo.orderAmount} +
+
+
+
+ + {/* 支付方式和支付凭证 */} +
+ {/* 支付方式 */} +
+

{t('pricing.paymentMethod')}

+ +
+
+ +
+
{t('pricing.corporateTransfer')}
+
{t('pricing.corporateTransferDesc')}
+
+
+
+ +
+

{t('pricing.payeeInformation')}

+ +
+
+
{t('pricing.receivingEntity')}:
+
{paymentInfo.payee}
+
+ +
+
{t('pricing.bankName')}:
+
{paymentInfo.bankName}
+
+ +
+
{t('pricing.bankAccountNumber')}:
+
+ {paymentInfo.bankAccount} +
copyText(paymentInfo.bankAccount)} + >
+
+
+
+
+
+ + {/* 支付凭证 */} +
+

{t('pricing.paymentVoucher')}

+ +
+ + + + + + + + + + +