From b240594859a2c638c92cfb75969b28680ffaf5dd Mon Sep 17 00:00:00 2001 From: lxfight <1686540385@qq.com> Date: Sun, 19 Oct 2025 21:55:21 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=B7=BB=E5=8A=A0Beta=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E7=9A=84=E7=9F=A5=E8=AF=86=E5=BA=93=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=99=A8=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2=EF=BC=9B=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0i18n=E7=9B=B8=E5=85=B3=E6=96=87=E4=BB=B6=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i18n/locales/en-US/core/navigation.json | 1 + .../locales/en-US/features/alkaid/index.json | 2 - .../en-US/features/knowledge-base/detail.json | 96 +++ .../features/knowledge-base/document.json | 51 ++ .../en-US/features/knowledge-base/index.json | 68 ++ .../i18n/locales/zh-CN/core/navigation.json | 1 + .../locales/zh-CN/features/alkaid/index.json | 2 - .../zh-CN/features/knowledge-base/detail.json | 96 +++ .../features/knowledge-base/document.json | 51 ++ .../zh-CN/features/knowledge-base/index.json | 68 ++ dashboard/src/i18n/translations.ts | 44 +- .../full/vertical-sidebar/sidebarItem.ts | 8 + dashboard/src/router/MainRoutes.ts | 29 +- dashboard/src/views/AlkaidPage.vue | 10 +- .../views/knowledge-base/DocumentDetail.vue | 591 +++++++++++++++ .../src/views/knowledge-base/KBDetail.vue | 359 +++++++++ dashboard/src/views/knowledge-base/KBList.vue | 686 ++++++++++++++++++ .../components/DocumentsTab.vue | 469 ++++++++++++ .../knowledge-base/components/SessionsTab.vue | 320 ++++++++ .../knowledge-base/components/SettingsTab.vue | 261 +++++++ dashboard/src/views/knowledge-base/index.vue | 37 + 21 files changed, 3207 insertions(+), 43 deletions(-) create mode 100644 dashboard/src/i18n/locales/en-US/features/knowledge-base/detail.json create mode 100644 dashboard/src/i18n/locales/en-US/features/knowledge-base/document.json create mode 100644 dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json create mode 100644 dashboard/src/i18n/locales/zh-CN/features/knowledge-base/detail.json create mode 100644 dashboard/src/i18n/locales/zh-CN/features/knowledge-base/document.json create mode 100644 dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json create mode 100644 dashboard/src/views/knowledge-base/DocumentDetail.vue create mode 100644 dashboard/src/views/knowledge-base/KBDetail.vue create mode 100644 dashboard/src/views/knowledge-base/KBList.vue create mode 100644 dashboard/src/views/knowledge-base/components/DocumentsTab.vue create mode 100644 dashboard/src/views/knowledge-base/components/SessionsTab.vue create mode 100644 dashboard/src/views/knowledge-base/components/SettingsTab.vue create mode 100644 dashboard/src/views/knowledge-base/index.vue diff --git a/dashboard/src/i18n/locales/en-US/core/navigation.json b/dashboard/src/i18n/locales/en-US/core/navigation.json index f36724fb2..96dac9a48 100644 --- a/dashboard/src/i18n/locales/en-US/core/navigation.json +++ b/dashboard/src/i18n/locales/en-US/core/navigation.json @@ -12,6 +12,7 @@ "console": "Console", "alkaid": "Alkaid Lab", "knowledgeBase": "Knowledge Base", + "knowledgeBaseBeta": "Knowledge Base (Beta)", "about": "About", "settings": "Settings", "documentation": "Documentation", diff --git a/dashboard/src/i18n/locales/en-US/features/alkaid/index.json b/dashboard/src/i18n/locales/en-US/features/alkaid/index.json index 3d8f93afd..2455986ea 100644 --- a/dashboard/src/i18n/locales/en-US/features/alkaid/index.json +++ b/dashboard/src/i18n/locales/en-US/features/alkaid/index.json @@ -6,13 +6,11 @@ "title": "The Alkaid Project.", "subtitle": "AstrBot Alpha Project", "navigation": { - "knowledgeBaseV2": "Native Knowledge Base", "knowledgeBase": "Knowledge Base (Plugin)", "longTermMemory": "Long-term Memory", "other": "..." } }, - "knowledgeBaseV2": "Native Knowledge Base", "features": { "knowledgeBase": "Knowledge Base", "longTermMemory": "Long-term Memory", diff --git a/dashboard/src/i18n/locales/en-US/features/knowledge-base/detail.json b/dashboard/src/i18n/locales/en-US/features/knowledge-base/detail.json new file mode 100644 index 000000000..9609bb493 --- /dev/null +++ b/dashboard/src/i18n/locales/en-US/features/knowledge-base/detail.json @@ -0,0 +1,96 @@ +{ + "title": "Knowledge Base Details", + "backToList": "Back to List", + "tabs": { + "overview": "Overview", + "documents": "Documents", + "sessions": "Sessions", + "settings": "Settings" + }, + "overview": { + "title": "Basic Information", + "name": "Name", + "description": "Description", + "emoji": "Icon", + "createdAt": "Created At", + "updatedAt": "Updated At", + "stats": "Statistics", + "docCount": "Documents", + "chunkCount": "Chunks", + "embeddingModel": "Embedding Model", + "rerankModel": "Rerank Model", + "notSet": "Not Set" + }, + "documents": { + "title": "Documents", + "upload": "Upload Document", + "empty": "No documents", + "name": "Name", + "type": "Type", + "size": "Size", + "chunks": "Chunks", + "createdAt": "Uploaded At", + "actions": "Actions", + "view": "View", + "delete": "Delete", + "deleteConfirm": "Are you sure you want to delete document '{name}'?", + "deleteWarning": "This will delete the document and all its chunks. This action cannot be undone.", + "uploading": "Uploading...", + "uploadSuccess": "Document uploaded successfully", + "uploadFailed": "Failed to upload document", + "deleteSuccess": "Document deleted successfully", + "deleteFailed": "Failed to delete document" + }, + "upload": { + "title": "Upload Document", + "selectFile": "Select File", + "dropzone": "Drop files here or click to select", + "supportedFormats": "Supported formats: TXT, PDF, Markdown", + "maxSize": "Max file size: 50MB", + "chunkSettings": "Chunk Settings", + "chunkSize": "Chunk Size", + "chunkSizeHint": "Number of characters per chunk (default: 512)", + "chunkOverlap": "Chunk Overlap", + "chunkOverlapHint": "Overlapping characters between chunks (default: 50)", + "cancel": "Cancel", + "submit": "Upload", + "fileRequired": "Please select a file to upload" + }, + "sessions": { + "title": "Session Configuration", + "subtitle": "Configure which sessions can use this knowledge base", + "empty": "No session configurations", + "add": "Add Configuration", + "scope": "Scope", + "scopeId": "Identifier", + "topK": "Top K Results", + "enableRerank": "Enable Rerank", + "actions": "Actions", + "edit": "Edit", + "delete": "Delete", + "scopeSession": "Session Level", + "scopePlatform": "Platform Level", + "deleteConfirm": "Are you sure you want to delete this configuration?", + "addSuccess": "Configuration added successfully", + "addFailed": "Failed to add configuration", + "deleteSuccess": "Configuration deleted successfully", + "deleteFailed": "Failed to delete configuration" + }, + "settings": { + "title": "Knowledge Base Settings", + "basic": "Basic Settings", + "retrieval": "Retrieval Settings", + "chunkSize": "Chunk Size", + "chunkOverlap": "Chunk Overlap", + "topKDense": "Dense Retrieval Count", + "topKSparse": "Sparse Retrieval Count", + "topMFinal": "Final Result Count", + "enableRerank": "Enable Rerank", + "embeddingProvider": "Embedding Provider", + "rerankProvider": "Rerank Provider", + "save": "Save Settings", + "saveSuccess": "Settings saved successfully", + "saveFailed": "Failed to save settings", + "tips": "Tip: Modifying retrieval settings will affect subsequent knowledge base queries." + } +} diff --git a/dashboard/src/i18n/locales/en-US/features/knowledge-base/document.json b/dashboard/src/i18n/locales/en-US/features/knowledge-base/document.json new file mode 100644 index 000000000..b1222a514 --- /dev/null +++ b/dashboard/src/i18n/locales/en-US/features/knowledge-base/document.json @@ -0,0 +1,51 @@ +{ + "title": "Document Details", + "backToKB": "Back to Knowledge Base", + "info": { + "title": "Document Information", + "name": "Document Name", + "type": "File Type", + "size": "File Size", + "chunkCount": "Chunk Count", + "createdAt": "Uploaded At" + }, + "chunks": { + "title": "Chunks", + "empty": "No chunks", + "index": "Index", + "content": "Content", + "charCount": "Characters", + "actions": "Actions", + "view": "View", + "edit": "Edit", + "delete": "Delete", + "preview": "Preview", + "search": "Search Chunks", + "searchPlaceholder": "Enter keywords to search chunks..." + }, + "edit": { + "title": "Edit Chunk", + "content": "Chunk Content", + "cancel": "Cancel", + "save": "Save", + "saveSuccess": "Chunk saved successfully", + "saveFailed": "Failed to save chunk" + }, + "delete": { + "title": "Delete Chunk", + "confirmText": "Are you sure you want to delete this chunk?", + "warning": "This action cannot be undone and may affect knowledge base retrieval performance.", + "cancel": "Cancel", + "confirm": "Delete", + "deleteSuccess": "Chunk deleted successfully", + "deleteFailed": "Failed to delete chunk" + }, + "view": { + "title": "Chunk Details", + "index": "Index", + "content": "Content", + "charCount": "Characters", + "vecDocId": "Vector ID", + "close": "Close" + } +} diff --git a/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json b/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json new file mode 100644 index 000000000..bfcfa2e31 --- /dev/null +++ b/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json @@ -0,0 +1,68 @@ +{ + "title": "Knowledge Base Management", + "subtitle": "Manage and query knowledge base contents", + "list": { + "title": "My Knowledge Bases", + "subtitle": "Manage all your knowledge base collections", + "create": "Create Knowledge Base", + "refresh": "Refresh List", + "empty": "No knowledge bases", + "loading": "Loading...", + "documents": "Documents", + "chunks": "Chunks", + "sessionConfig": "Session Config" + }, + "card": { + "edit": "Edit", + "delete": "Delete", + "open": "Open", + "docCount": "{count} Documents", + "chunkCount": "{count} Chunks" + }, + "create": { + "title": "Create Knowledge Base", + "nameLabel": "Name", + "namePlaceholder": "Enter knowledge base name", + "descriptionLabel": "Description", + "descriptionPlaceholder": "Describe the purpose of this knowledge base...", + "emojiLabel": "Icon", + "embeddingModelLabel": "Embedding Model", + "rerankModelLabel": "Rerank Model (Optional)", + "providerInfo": "Provider: {id} | Dimensions: {dimensions}", + "rerankProviderInfo": "Provider: {id}", + "tips": "Tip: Once you select an embedding model, do not modify the model or vector dimensions, as this will severely affect recall rate.", + "cancel": "Cancel", + "submit": "Create", + "nameRequired": "Please enter knowledge base name" + }, + "edit": { + "title": "Edit Knowledge Base", + "submit": "Save" + }, + "delete": { + "title": "Delete Knowledge Base", + "confirmText": "Are you sure you want to delete knowledge base '{name}'?", + "warning": "This action is irreversible. All documents, chunks, and associated configurations will be permanently deleted.", + "cancel": "Cancel", + "confirm": "Delete" + }, + "emoji": { + "title": "Select Icon", + "close": "Close", + "categories": { + "books": "Books & Documents", + "emotions": "Emotions & Faces", + "objects": "Objects & Tools", + "symbols": "Symbols & Signs" + } + }, + "messages": { + "createSuccess": "Knowledge base created successfully", + "createFailed": "Failed to create", + "updateSuccess": "Knowledge base updated successfully", + "updateFailed": "Failed to update", + "deleteSuccess": "Knowledge base deleted successfully", + "deleteFailed": "Failed to delete", + "loadError": "Failed to load knowledge base list" + } +} diff --git a/dashboard/src/i18n/locales/zh-CN/core/navigation.json b/dashboard/src/i18n/locales/zh-CN/core/navigation.json index 0953b1046..699a0e579 100644 --- a/dashboard/src/i18n/locales/zh-CN/core/navigation.json +++ b/dashboard/src/i18n/locales/zh-CN/core/navigation.json @@ -12,6 +12,7 @@ "console": "控制台", "alkaid": "Alkaid", "knowledgeBase": "知识库", + "knowledgeBaseBeta": "知识库 (Beta)", "about": "关于", "settings": "设置", "documentation": "官方文档", diff --git a/dashboard/src/i18n/locales/zh-CN/features/alkaid/index.json b/dashboard/src/i18n/locales/zh-CN/features/alkaid/index.json index 6e7b60bb2..98e1a606b 100644 --- a/dashboard/src/i18n/locales/zh-CN/features/alkaid/index.json +++ b/dashboard/src/i18n/locales/zh-CN/features/alkaid/index.json @@ -6,13 +6,11 @@ "title": "The Alkaid Project.", "subtitle": "AstrBot Alpha 项目", "navigation": { - "knowledgeBaseV2": "原生知识库", "knowledgeBase": "知识库 (插件)", "longTermMemory": "长期记忆层", "other": "..." } }, - "knowledgeBaseV2": "原生知识库", "features": { "knowledgeBase": "知识库", "longTermMemory": "长期记忆", diff --git a/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/detail.json b/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/detail.json new file mode 100644 index 000000000..93407e66a --- /dev/null +++ b/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/detail.json @@ -0,0 +1,96 @@ +{ + "title": "知识库详情", + "backToList": "返回列表", + "tabs": { + "overview": "概览", + "documents": "文档管理", + "sessions": "会话配置", + "settings": "设置" + }, + "overview": { + "title": "基本信息", + "name": "名称", + "description": "描述", + "emoji": "图标", + "createdAt": "创建时间", + "updatedAt": "更新时间", + "stats": "统计信息", + "docCount": "文档数量", + "chunkCount": "分块数量", + "embeddingModel": "嵌入模型", + "rerankModel": "重排序模型", + "notSet": "未设置" + }, + "documents": { + "title": "文档列表", + "upload": "上传文档", + "empty": "暂无文档", + "name": "文档名称", + "type": "类型", + "size": "大小", + "chunks": "分块数", + "createdAt": "上传时间", + "actions": "操作", + "view": "查看", + "delete": "删除", + "deleteConfirm": "确定要删除文档「{name}」吗?", + "deleteWarning": "此操作将删除文档及其所有分块,不可恢复。", + "uploading": "正在上传...", + "uploadSuccess": "文档上传成功", + "uploadFailed": "文档上传失败", + "deleteSuccess": "文档删除成功", + "deleteFailed": "文档删除失败" + }, + "upload": { + "title": "上传文档", + "selectFile": "选择文件", + "dropzone": "拖放文件到这里或点击选择", + "supportedFormats": "支持的格式: TXT, PDF, Markdown", + "maxSize": "最大文件大小: 50MB", + "chunkSettings": "分块设置", + "chunkSize": "分块大小", + "chunkSizeHint": "每个文本块的字符数 (默认: 512)", + "chunkOverlap": "分块重叠", + "chunkOverlapHint": "相邻文本块之间的重叠字符数 (默认: 50)", + "cancel": "取消", + "submit": "上传", + "fileRequired": "请选择要上传的文件" + }, + "sessions": { + "title": "会话配置", + "subtitle": "配置哪些会话可以使用此知识库", + "empty": "暂无会话配置", + "add": "添加配置", + "scope": "范围", + "scopeId": "标识", + "topK": "返回结果数", + "enableRerank": "启用重排序", + "actions": "操作", + "edit": "编辑", + "delete": "删除", + "scopeSession": "会话级别", + "scopePlatform": "平台级别", + "deleteConfirm": "确定要删除此配置吗?", + "addSuccess": "配置添加成功", + "addFailed": "配置添加失败", + "deleteSuccess": "配置删除成功", + "deleteFailed": "配置删除失败" + }, + "settings": { + "title": "知识库设置", + "basic": "基本设置", + "retrieval": "检索设置", + "chunkSize": "分块大小", + "chunkOverlap": "分块重叠", + "topKDense": "稠密检索数量", + "topKSparse": "稀疏检索数量", + "topMFinal": "最终返回数量", + "enableRerank": "启用重排序", + "embeddingProvider": "嵌入模型提供商", + "rerankProvider": "重排序模型提供商", + "save": "保存设置", + "saveSuccess": "设置保存成功", + "saveFailed": "设置保存失败", + "tips": "提示: 修改检索设置后,将影响后续的知识库查询效果。" + } +} diff --git a/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/document.json b/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/document.json new file mode 100644 index 000000000..c493cef2d --- /dev/null +++ b/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/document.json @@ -0,0 +1,51 @@ +{ + "title": "文档详情", + "backToKB": "返回知识库", + "info": { + "title": "文档信息", + "name": "文档名称", + "type": "文件类型", + "size": "文件大小", + "chunkCount": "分块数量", + "createdAt": "上传时间" + }, + "chunks": { + "title": "分块列表", + "empty": "暂无分块", + "index": "序号", + "content": "内容", + "charCount": "字符数", + "actions": "操作", + "view": "查看", + "edit": "编辑", + "delete": "删除", + "preview": "预览", + "search": "搜索分块", + "searchPlaceholder": "输入关键词搜索分块内容..." + }, + "edit": { + "title": "编辑分块", + "content": "分块内容", + "cancel": "取消", + "save": "保存", + "saveSuccess": "分块保存成功", + "saveFailed": "分块保存失败" + }, + "delete": { + "title": "删除分块", + "confirmText": "确定要删除此分块吗?", + "warning": "删除后将无法恢复,可能影响知识库检索效果。", + "cancel": "取消", + "confirm": "删除", + "deleteSuccess": "分块删除成功", + "deleteFailed": "分块删除失败" + }, + "view": { + "title": "分块详情", + "index": "序号", + "content": "内容", + "charCount": "字符数", + "vecDocId": "向量ID", + "close": "关闭" + } +} diff --git a/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json b/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json new file mode 100644 index 000000000..4691c4384 --- /dev/null +++ b/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json @@ -0,0 +1,68 @@ +{ + "title": "知识库管理", + "subtitle": "统一管理和查询知识库内容", + "list": { + "title": "我的知识库", + "subtitle": "管理您的所有知识库集合", + "create": "创建知识库", + "refresh": "刷新列表", + "empty": "暂无知识库", + "loading": "正在加载...", + "documents": "文档", + "chunks": "分块", + "sessionConfig": "会话配置" + }, + "card": { + "edit": "编辑", + "delete": "删除", + "open": "打开", + "docCount": "{count} 个文档", + "chunkCount": "{count} 个分块" + }, + "create": { + "title": "创建知识库", + "nameLabel": "知识库名称", + "namePlaceholder": "为知识库起个名字", + "descriptionLabel": "描述", + "descriptionPlaceholder": "简单描述这个知识库的用途...", + "emojiLabel": "图标", + "embeddingModelLabel": "嵌入模型 (Embedding Model)", + "rerankModelLabel": "重排序模型 (Rerank Model, 可选)", + "providerInfo": "提供商: {id} | 维度: {dimensions}", + "rerankProviderInfo": "提供商: {id}", + "tips": "提示: 一旦选择了嵌入模型,请不要修改该提供商的模型或向量维度,否则将严重影响召回率。", + "cancel": "取消", + "submit": "创建", + "nameRequired": "请输入知识库名称" + }, + "edit": { + "title": "编辑知识库", + "submit": "保存" + }, + "delete": { + "title": "删除知识库", + "confirmText": "确定要删除知识库「{name}」吗?", + "warning": "此操作不可逆,所有文档、分块和关联配置都将被永久删除。", + "cancel": "取消", + "confirm": "删除" + }, + "emoji": { + "title": "选择图标", + "close": "关闭", + "categories": { + "books": "书籍与文档", + "emotions": "表情与情感", + "objects": "物品与工具", + "symbols": "符号与标志" + } + }, + "messages": { + "createSuccess": "知识库创建成功", + "createFailed": "创建失败", + "updateSuccess": "知识库更新成功", + "updateFailed": "更新失败", + "deleteSuccess": "知识库删除成功", + "deleteFailed": "删除失败", + "loadError": "加载知识库列表失败" + } +} diff --git a/dashboard/src/i18n/translations.ts b/dashboard/src/i18n/translations.ts index cff3cbff2..06731c5e5 100644 --- a/dashboard/src/i18n/translations.ts +++ b/dashboard/src/i18n/translations.ts @@ -25,11 +25,9 @@ import zhCNDashboard from './locales/zh-CN/features/dashboard.json'; import zhCNAlkaidIndex from './locales/zh-CN/features/alkaid/index.json'; import zhCNAlkaidKnowledgeBase from './locales/zh-CN/features/alkaid/knowledge-base.json'; import zhCNAlkaidMemory from './locales/zh-CN/features/alkaid/memory.json'; -import zhCNAlkaidKBV2Index from './locales/zh-CN/features/alkaid/knowledge-base-v2/index.json'; -import zhCNAlkaidKBV2Documents from './locales/zh-CN/features/alkaid/knowledge-base-v2/documents.json'; -import zhCNAlkaidKBV2Search from './locales/zh-CN/features/alkaid/knowledge-base-v2/search.json'; -import zhCNAlkaidKBV2Settings from './locales/zh-CN/features/alkaid/knowledge-base-v2/settings.json'; -import zhCNAlkaidKBV2SessionConfig from './locales/zh-CN/features/alkaid/knowledge-base-v2/session-config.json'; +import zhCNKnowledgeBaseIndex from './locales/zh-CN/features/knowledge-base/index.json'; +import zhCNKnowledgeBaseDetail from './locales/zh-CN/features/knowledge-base/detail.json'; +import zhCNKnowledgeBaseDocument from './locales/zh-CN/features/knowledge-base/document.json'; import zhCNPersona from './locales/zh-CN/features/persona.json'; import zhCNMigration from './locales/zh-CN/features/migration.json'; @@ -61,11 +59,9 @@ import enUSDashboard from './locales/en-US/features/dashboard.json'; import enUSAlkaidIndex from './locales/en-US/features/alkaid/index.json'; import enUSAlkaidKnowledgeBase from './locales/en-US/features/alkaid/knowledge-base.json'; import enUSAlkaidMemory from './locales/en-US/features/alkaid/memory.json'; -import enUSAlkaidKBV2Index from './locales/en-US/features/alkaid/knowledge-base-v2/index.json'; -import enUSAlkaidKBV2Documents from './locales/en-US/features/alkaid/knowledge-base-v2/documents.json'; -import enUSAlkaidKBV2Search from './locales/en-US/features/alkaid/knowledge-base-v2/search.json'; -import enUSAlkaidKBV2Settings from './locales/en-US/features/alkaid/knowledge-base-v2/settings.json'; -import enUSAlkaidKBV2SessionConfig from './locales/en-US/features/alkaid/knowledge-base-v2/session-config.json'; +import enUSKnowledgeBaseIndex from './locales/en-US/features/knowledge-base/index.json'; +import enUSKnowledgeBaseDetail from './locales/en-US/features/knowledge-base/detail.json'; +import enUSKnowledgeBaseDocument from './locales/en-US/features/knowledge-base/document.json'; import enUSPersona from './locales/en-US/features/persona.json'; import enUSMigration from './locales/en-US/features/migration.json'; @@ -101,14 +97,12 @@ export const translations = { alkaid: { index: zhCNAlkaidIndex, 'knowledge-base': zhCNAlkaidKnowledgeBase, - memory: zhCNAlkaidMemory, - 'knowledge-base-v2': { - index: zhCNAlkaidKBV2Index, - documents: zhCNAlkaidKBV2Documents, - search: zhCNAlkaidKBV2Search, - settings: zhCNAlkaidKBV2Settings, - 'session-config': zhCNAlkaidKBV2SessionConfig - } + memory: zhCNAlkaidMemory + }, + 'knowledge-base': { + index: zhCNKnowledgeBaseIndex, + detail: zhCNKnowledgeBaseDetail, + document: zhCNKnowledgeBaseDocument }, persona: zhCNPersona, migration: zhCNMigration @@ -145,14 +139,12 @@ export const translations = { alkaid: { index: enUSAlkaidIndex, 'knowledge-base': enUSAlkaidKnowledgeBase, - memory: enUSAlkaidMemory, - 'knowledge-base-v2': { - index: enUSAlkaidKBV2Index, - documents: enUSAlkaidKBV2Documents, - search: enUSAlkaidKBV2Search, - settings: enUSAlkaidKBV2Settings, - 'session-config': enUSAlkaidKBV2SessionConfig - } + memory: enUSAlkaidMemory + }, + 'knowledge-base': { + index: enUSKnowledgeBaseIndex, + detail: enUSKnowledgeBaseDetail, + document: enUSKnowledgeBaseDocument }, persona: enUSPersona, migration: enUSMigration diff --git a/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts b/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts index 861a51e47..ca56fc1af 100644 --- a/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts +++ b/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts @@ -53,6 +53,14 @@ const sidebarItem: menu[] = [ icon: 'mdi-text-box-search', to: '/alkaid/knowledge-base', }, + { + title: 'core.navigation.knowledgeBaseBeta', + icon: 'mdi-book-open-variant', + to: '/knowledge-base', + chip: 'Beta', + chipColor: 'primary', + chipVariant: 'tonal', + }, { title: 'core.navigation.config', icon: 'mdi-cog', diff --git a/dashboard/src/router/MainRoutes.ts b/dashboard/src/router/MainRoutes.ts index cc3fa9810..4f953cef1 100644 --- a/dashboard/src/router/MainRoutes.ts +++ b/dashboard/src/router/MainRoutes.ts @@ -66,6 +66,30 @@ const MainRoutes = { path: '/console', component: () => import('@/views/ConsolePage.vue') }, + { + name: 'NativeKnowledgeBase', + path: '/knowledge-base', + component: () => import('@/views/knowledge-base/index.vue'), + children: [ + { + path: '', + name: 'NativeKBList', + component: () => import('@/views/knowledge-base/KBList.vue') + }, + { + path: ':kbId', + name: 'NativeKBDetail', + component: () => import('@/views/knowledge-base/KBDetail.vue'), + props: true + }, + { + path: ':kbId/document/:docId', + name: 'NativeDocumentDetail', + component: () => import('@/views/knowledge-base/DocumentDetail.vue'), + props: true + } + ] + }, // { // name: 'Alkaid', // path: '/alkaid', @@ -93,11 +117,6 @@ const MainRoutes = { path: '/alkaid', component: () => import('@/views/AlkaidPage.vue'), children: [ - { - path: 'knowledge-base-v2', - name: 'KnowledgeBaseV2', - component: () => import('@/views/alkaid/knowledge-base-v2/KnowledgeBaseV2.vue') - }, { path: 'knowledge-base', name: 'KnowledgeBase', diff --git a/dashboard/src/views/AlkaidPage.vue b/dashboard/src/views/AlkaidPage.vue index 7caa9aee4..c23cf1f37 100644 --- a/dashboard/src/views/AlkaidPage.vue +++ b/dashboard/src/views/AlkaidPage.vue @@ -8,12 +8,6 @@
{{ t('title') }}
+{{ t('chunks.empty') }}
+{{ t('delete.confirmText') }}
++ {{ kb.description }} +
+{{ t('list.subtitle') }}
+{{ t('list.loading') }}
+{{ kb.description || '暂无描述' }}
+ +{{ t('create.emojiLabel') }}
+{{ t(`emoji.categories.${category.key}`) }}
+{{ t('delete.confirmText', { name: deleteTarget?.kb_name || '' }) }}
+{{ t('documents.empty') }}
+{{ t('upload.dropzone') }}
+{{ t('upload.supportedFormats') }}
+{{ t('upload.maxSize') }}
+ +{{ t('documents.deleteConfirm', { name: deleteTarget?.doc_name || '' }) }}
+{{ t('sessions.empty') }}
+{{ t('sessions.deleteConfirm') }}
+