From c04738d9fe28a4cf67aa5bd66bf78f6795f7eebf Mon Sep 17 00:00:00 2001 From: lxfight <1686540385@qq.com> Date: Sun, 19 Oct 2025 18:43:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=E7=9F=A5=E8=AF=86?= =?UTF-8?q?=E5=BA=93=E5=89=8D=E7=AB=AF=E7=95=8C=E9=9D=A2=EF=BC=88=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E5=9B=BD=E9=99=85=E5=8C=96=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加知识库 V2 完整英文翻译文件 - 包括:主页、文档管理、检索测试、全局设置、会话配置 - 在 Alkaid 导航中添加 "Native Knowledge Base" 入口 - 区分 "Native Knowledge Base" 和 "Knowledge Base (Plugin)" --- .../locales/en-US/features/alkaid/index.json | 4 +- .../alkaid/knowledge-base-v2/documents.json | 49 ++++++++++++ .../alkaid/knowledge-base-v2/index.json | 74 +++++++++++++++++++ .../alkaid/knowledge-base-v2/search.json | 21 ++++++ .../knowledge-base-v2/session-config.json | 68 +++++++++++++++++ .../alkaid/knowledge-base-v2/settings.json | 44 +++++++++++ dashboard/src/i18n/translations.ts | 28 ++++++- dashboard/src/router/MainRoutes.ts | 28 ++++++- 8 files changed, 310 insertions(+), 6 deletions(-) create mode 100644 dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/documents.json create mode 100644 dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/index.json create mode 100644 dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/search.json create mode 100644 dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/session-config.json create mode 100644 dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/settings.json 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 f0b7890b8..3d8f93afd 100644 --- a/dashboard/src/i18n/locales/en-US/features/alkaid/index.json +++ b/dashboard/src/i18n/locales/en-US/features/alkaid/index.json @@ -6,11 +6,13 @@ "title": "The Alkaid Project.", "subtitle": "AstrBot Alpha Project", "navigation": { - "knowledgeBase": "Knowledge Base", + "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/alkaid/knowledge-base-v2/documents.json b/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/documents.json new file mode 100644 index 000000000..8398711f5 --- /dev/null +++ b/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/documents.json @@ -0,0 +1,49 @@ +{ + "stats": { + "totalDocuments": "Total Documents", + "totalChunks": "Total Chunks", + "totalMedia": "Media Resources", + "totalSize": "Total Size" + }, + "actions": { + "upload": "Upload Document", + "refresh": "Refresh", + "view": "View", + "delete": "Delete" + }, + "empty": { + "noDocuments": "No documents yet. Click the upload button to add documents" + }, + "upload": { + "title": "Upload Document", + "dropzone": "Drag and drop files here or click to upload", + "supportedFormats": "Supported formats: PDF, TXT, MD", + "selectedFiles": "Selected files:", + "cancel": "Cancel", + "upload": "Start Upload", + "uploading": "Uploading files..." + }, + "detail": { + "fileType": "File Type", + "fileSize": "File Size", + "chunks": "Document Chunks", + "uploadedAt": "Upload Time", + "noChunks": "No document chunks", + "chunkIndex": "Chunk #{index}", + "characters": "characters" + }, + "delete": { + "title": "Confirm Delete", + "confirmText": "Are you sure you want to delete document \"{name}\"?", + "cancel": "Cancel", + "delete": "Delete" + }, + "messages": { + "loadError": "Failed to load document list", + "uploadSuccess": "Successfully uploaded {count} document(s)", + "uploadPartial": "Upload completed: {success} succeeded, {fail} failed", + "deleteSuccess": "Document deleted successfully", + "deleteFailed": "Delete failed", + "deleteError": "Error deleting document" + } +} diff --git a/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/index.json b/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/index.json new file mode 100644 index 000000000..b18f41a8a --- /dev/null +++ b/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/index.json @@ -0,0 +1,74 @@ +{ + "list": { + "title": "Native Knowledge Base", + "subtitle": "AstrBot's built-in knowledge base management system", + "create": "Create Knowledge Base", + "sessionConfig": "Session Config", + "refresh": "Refresh", + "loading": "Loading...", + "documents": "documents", + "chunks": "chunks" + }, + "empty": { + "title": "No Knowledge Bases Yet", + "subtitle": "Create your first knowledge base to get started", + "create": "Create Knowledge Base" + }, + "createDialog": { + "title": "Create Knowledge Base", + "nameLabel": "Knowledge Base Name", + "namePlaceholder": "Enter knowledge base name", + "descriptionLabel": "Description", + "descriptionPlaceholder": "Brief description of the knowledge base...", + "embeddingModelLabel": "Embedding Model", + "rerankModelLabel": "Rerank Model", + "providerInfo": "Provider ID: {id} | Dimensions: {dimensions}", + "rerankProviderInfo": "Provider ID: {id}", + "tips": "Tip: Once you choose an embedding model, do not modify the provider's model or vector dimensions, as it will severely affect recall rate.", + "cancel": "Cancel", + "create": "Create" + }, + "editDialog": { + "title": "Edit Knowledge Base", + "save": "Save" + }, + "deleteDialog": { + "title": "Confirm Delete", + "confirmText": "Are you sure you want to delete knowledge base \"{name}\"?", + "warning": "This operation is irreversible. All knowledge base content will be permanently deleted.", + "cancel": "Cancel", + "delete": "Delete" + }, + "detailDialog": { + "tabs": { + "documents": "Document Management", + "search": "Search Test", + "settings": "Knowledge Base Settings" + } + }, + "emojiPicker": { + "title": "Select Emoji", + "close": "Close", + "categories": { + "books": "Books and Documents", + "emotions": "Emotions and Expressions", + "objects": "Objects and Tools", + "symbols": "Symbols and Marks" + } + }, + "sessionConfig": { + "title": "Knowledge Base Session Configuration" + }, + "messages": { + "loadFailed": "Failed to load knowledge base list", + "loadError": "Error loading knowledge base list", + "nameRequired": "Please enter knowledge base name", + "createSuccess": "Knowledge base created successfully", + "updateSuccess": "Knowledge base updated successfully", + "saveFailed": "Save failed", + "saveError": "Error saving", + "deleteSuccess": "Knowledge base deleted successfully", + "deleteFailed": "Delete failed", + "deleteError": "Error deleting" + } +} diff --git a/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/search.json b/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/search.json new file mode 100644 index 000000000..1d95322c7 --- /dev/null +++ b/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/search.json @@ -0,0 +1,21 @@ +{ + "search": { + "queryLabel": "Search Query", + "queryPlaceholder": "Enter search query...", + "topKLabel": "Number of Results (Top-K)", + "enableRerankLabel": "Enable Reranking", + "search": "Search", + "searching": "Searching...", + "noResults": "No matching content found", + "resultsTitle": "Found {count} result(s)", + "searchTime": "Search time: {time}s", + "relevance": "Relevance", + "chunkInfo": "Chunk #{index} | {chars} characters" + }, + "messages": { + "queryRequired": "Please enter search query", + "noResults": "No matching content found", + "searchFailed": "Search failed", + "searchError": "Error searching" + } +} diff --git a/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/session-config.json b/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/session-config.json new file mode 100644 index 000000000..321307937 --- /dev/null +++ b/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/session-config.json @@ -0,0 +1,68 @@ +{ + "info": { + "title": "What is Session Configuration?", + "description": "Session configuration allows you to specify which knowledge bases to use for different platforms or sessions, enabling personalized knowledge enhancement.", + "platformLevel": "Platform Level: Applies to the entire platform (e.g., all QQ sessions)", + "sessionLevel": "Session Level: Applies to specific sessions (e.g., specific QQ group)" + }, + "list": { + "title": "Configuration List", + "refresh": "Refresh", + "add": "Add Configuration", + "noKB": "No knowledge bases configured" + }, + "scope": { + "platform": "Platform Level", + "session": "Session Level" + }, + "dialog": { + "addTitle": "Add Session Configuration", + "editTitle": "Edit Session Configuration", + "scopeLabel": "Configuration Scope", + "platformIdLabel": "Platform ID", + "platformIdPlaceholder": "e.g., qq, telegram, discord", + "platformIdHint": "Platform identifier, such as qq, telegram, etc.", + "sessionIdLabel": "Session ID", + "sessionIdPlaceholder": "e.g., qq:group:123456", + "sessionIdHint": "Session identifier, format: platform:type:ID", + "platformTooltip": "Applies to all sessions on the platform", + "sessionTooltip": "Applies only to the specified session", + "kbLabel": "Select Knowledge Base", + "kbPlaceholder": "Select one or more knowledge bases", + "kbHint": "You can select multiple knowledge bases; they will be searched together during retrieval", + "advancedSettings": "Advanced Settings (Optional)", + "topKLabel": "Number of Results (Top-K)", + "topKHint": "Number of results to return during retrieval", + "enableRerankLabel": "Enable Reranking", + "cancel": "Cancel", + "save": "Save" + }, + "empty": { + "noConfigs": "No configurations yet. Click the add button to create your first configuration", + "createFirst": "Create First Configuration" + }, + "delete": { + "title": "Confirm Delete", + "confirmText": "Are you sure you want to delete this configuration?", + "warning": "After deletion, the platform or session will no longer use the specified knowledge bases.", + "cancel": "Cancel", + "delete": "Delete" + }, + "actions": { + "edit": "Edit", + "delete": "Delete" + }, + "messages": { + "loadFailed": "Failed to load configuration list", + "loadError": "Error loading configurations", + "scopeIdRequired": "Please enter platform ID or session ID", + "kbIdsRequired": "Please select at least one knowledge base", + "createSuccess": "Configuration created successfully", + "updateSuccess": "Configuration updated successfully", + "saveFailed": "Save failed", + "saveError": "Error saving configuration", + "deleteSuccess": "Configuration deleted successfully", + "deleteFailed": "Delete failed", + "deleteError": "Error deleting configuration" + } +} diff --git a/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/settings.json b/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/settings.json new file mode 100644 index 000000000..f53811dbd --- /dev/null +++ b/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base-v2/settings.json @@ -0,0 +1,44 @@ +{ + "basic": { + "title": "Basic Information", + "nameLabel": "Knowledge Base Name", + "namePlaceholder": "Enter knowledge base name", + "descriptionLabel": "Description", + "descriptionPlaceholder": "Brief description of the knowledge base..." + }, + "models": { + "title": "Model Configuration", + "embeddingLabel": "Embedding Model", + "embeddingHint": "Model for generating document vectors", + "rerankLabel": "Rerank Model", + "rerankHint": "Model for optimizing retrieval result ranking (optional)" + }, + "chunking": { + "title": "Chunking Parameters", + "chunkSizeLabel": "Chunk Size", + "chunkSizeHint": "Number of characters per document chunk (50-2000)", + "chunkOverlapLabel": "Chunk Overlap", + "chunkOverlapHint": "Number of overlapping characters between adjacent chunks (0-half of chunk size)" + }, + "retrieval": { + "title": "Retrieval Parameters", + "topKDenseLabel": "Dense Retrieval Top-K", + "topKDenseHint": "Number of results from vector retrieval", + "topKSparseLabel": "Sparse Retrieval Top-K", + "topKSparseHint": "Number of results from keyword retrieval", + "topMFinalLabel": "Final Results Top-M", + "topMFinalHint": "Number of final results after fusion", + "enableRerankLabel": "Enable Reranking" + }, + "actions": { + "save": "Save Settings" + }, + "messages": { + "nameRequired": "Please enter knowledge base name", + "embeddingRequired": "Please select embedding model", + "saveSuccess": "Settings saved successfully", + "saveFailed": "Save failed", + "saveError": "Error saving settings", + "loadProvidersError": "Failed to load model providers" + } +} diff --git a/dashboard/src/i18n/translations.ts b/dashboard/src/i18n/translations.ts index 168edd5e5..cff3cbff2 100644 --- a/dashboard/src/i18n/translations.ts +++ b/dashboard/src/i18n/translations.ts @@ -25,6 +25,11 @@ 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 zhCNPersona from './locales/zh-CN/features/persona.json'; import zhCNMigration from './locales/zh-CN/features/migration.json'; @@ -56,6 +61,11 @@ 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 enUSPersona from './locales/en-US/features/persona.json'; import enUSMigration from './locales/en-US/features/migration.json'; @@ -91,7 +101,14 @@ export const translations = { alkaid: { index: zhCNAlkaidIndex, 'knowledge-base': zhCNAlkaidKnowledgeBase, - memory: zhCNAlkaidMemory + memory: zhCNAlkaidMemory, + 'knowledge-base-v2': { + index: zhCNAlkaidKBV2Index, + documents: zhCNAlkaidKBV2Documents, + search: zhCNAlkaidKBV2Search, + settings: zhCNAlkaidKBV2Settings, + 'session-config': zhCNAlkaidKBV2SessionConfig + } }, persona: zhCNPersona, migration: zhCNMigration @@ -128,7 +145,14 @@ export const translations = { alkaid: { index: enUSAlkaidIndex, 'knowledge-base': enUSAlkaidKnowledgeBase, - memory: enUSAlkaidMemory + memory: enUSAlkaidMemory, + 'knowledge-base-v2': { + index: enUSAlkaidKBV2Index, + documents: enUSAlkaidKBV2Documents, + search: enUSAlkaidKBV2Search, + settings: enUSAlkaidKBV2Settings, + 'session-config': enUSAlkaidKBV2SessionConfig + } }, persona: enUSPersona, migration: enUSMigration diff --git a/dashboard/src/router/MainRoutes.ts b/dashboard/src/router/MainRoutes.ts index 29b3bf5e7..cc3fa9810 100644 --- a/dashboard/src/router/MainRoutes.ts +++ b/dashboard/src/router/MainRoutes.ts @@ -89,9 +89,31 @@ const MainRoutes = { // ] // }, { - name: 'KnowledgeBase', - path: '/alkaid/knowledge-base', - component: () => import('@/views/alkaid/KnowledgeBase.vue') + name: 'Alkaid', + 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', + component: () => import('@/views/alkaid/KnowledgeBase.vue') + }, + { + path: 'long-term-memory', + name: 'LongTermMemory', + component: () => import('@/views/alkaid/LongTermMemory.vue') + }, + { + path: 'other', + name: 'OtherFeatures', + component: () => import('@/views/alkaid/Other.vue') + } + ] }, { name: 'Chat',