From 213a542a870d9d251289bed953127efa807b36cd Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Mon, 18 May 2026 17:52:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=9F=A5=E8=AF=86?= =?UTF-8?q?=E5=BA=93=E6=96=87=E6=A1=A3=E6=9F=A5=E6=89=BE=E5=92=8C=E6=89=93?= =?UTF-8?q?=E5=BC=80=E5=B7=A5=E5=85=B7=EF=BC=8C=E4=BC=98=E5=8C=96=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E4=BF=A1=E6=81=AF=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- REFACTOR.md | 4 +- .../ToolCallingResult/ToolCallRenderer.vue | 4 + web/src/components/ToolCallingResult/index.js | 2 + .../ToolCallingResult/toolRegistry.js | 2 + .../tools/FindKbDocumentTool.vue | 88 +++++++++ .../tools/KbDocumentPreview.vue | 176 ++++++++++++++++++ .../tools/OpenKbDocumentTool.vue | 87 +++++++++ .../ToolCallingResult/tools/QueryKbTool.vue | 13 +- .../sources/KbResultGroupedList.vue | 26 ++- web/src/stores/database.js | 19 +- web/src/utils/kb_utils.js | 23 ++- web/src/views/DataBaseInfoView.vue | 11 +- web/src/views/DataBaseView.vue | 7 +- 13 files changed, 448 insertions(+), 14 deletions(-) create mode 100644 web/src/components/ToolCallingResult/tools/FindKbDocumentTool.vue create mode 100644 web/src/components/ToolCallingResult/tools/KbDocumentPreview.vue create mode 100644 web/src/components/ToolCallingResult/tools/OpenKbDocumentTool.vue diff --git a/REFACTOR.md b/REFACTOR.md index ae8cc1f7..226b5a2c 100644 --- a/REFACTOR.md +++ b/REFACTOR.md @@ -27,4 +27,6 @@ - [ ] Config spacy model 的 load - [x] 在工作区的文件编辑的时候,保存和取消的按钮应该是悬浮在编辑框的右上角,而不是在 header 上面 - [ ] default enable all build in tools / kbs / skills / mcps / subagents -- [ ] 链接 Notion 和 feishu 目前来看,都是支持的 \ No newline at end of file +- [ ] 链接 Notion 和 feishu 目前来看,都是支持的 +- [ ] 知识库的权限调整,修改为三个等级,全局共享、部门共享(选择多个部门,默认是自己部门且必须包含自己部门)、指定人可访问(选择多个用户,默认是仅自己,可以添加其他人)。UI 上也需要调整,三个卡片不再是等宽,而是选中的会宽一点,并展示描述以及选择按钮,未选中的则是默认宽度,仅显示标题。对于选中的卡片除了展示描述、按钮之外,还包括“X 个部门可访问”、“X 个用户可访问”的信息展示。全局的就看是所有用户可访问。所以等级的字段配置也要重新设计,不需要考虑兼容,所有知识库都会重新构建。 +- [ ] databaseinfo 的重构,在左侧展示那个 tab 标签吧,将文件管理(filetable)以及右侧的那些图谱、检索、检索配置、评估之类的,都列为不同的 tab,进入之后默认激活的是 filetable。这样页面布局就好的多。作恶侧边栏除了这些 tab 之外,顶部是和 Skill Detail 那里的 header 一样, \ No newline at end of file diff --git a/web/src/components/ToolCallingResult/ToolCallRenderer.vue b/web/src/components/ToolCallingResult/ToolCallRenderer.vue index 49bb749b..e5a5863e 100644 --- a/web/src/components/ToolCallingResult/ToolCallRenderer.vue +++ b/web/src/components/ToolCallingResult/ToolCallRenderer.vue @@ -23,6 +23,8 @@ import WebSearchTool from './tools/WebSearchTool.vue' import ListKbsTool from './tools/ListKbsTool.vue' import GetMindmapTool from './tools/GetMindmapTool.vue' import QueryKbTool from './tools/QueryKbTool.vue' +import FindKbDocumentTool from './tools/FindKbDocumentTool.vue' +import OpenKbDocumentTool from './tools/OpenKbDocumentTool.vue' import CalculatorTool from './tools/CalculatorTool.vue' import TodoListTool from './tools/TodoListTool.vue' import TaskTool from './tools/TaskTool.vue' @@ -65,6 +67,7 @@ const TOOL_RENDERERS = { cmd: ExecuteTool, edit_file: EditFileTool, execute: ExecuteTool, + find_kb_document: FindKbDocumentTool, get_mindmap: GetMindmapTool, glob: GlobTool, grep: GrepTool, @@ -74,6 +77,7 @@ const TOOL_RENDERERS = { mysql_describe_table: MysqlDescribeTableTool, mysql_list_tables: MysqlListTablesTool, mysql_query: MysqlQueryTool, + open_kb_document: OpenKbDocumentTool, query_kb: QueryKbTool, read_file: ReadFileTool, replace: EditFileTool, diff --git a/web/src/components/ToolCallingResult/index.js b/web/src/components/ToolCallingResult/index.js index 813b92dd..1f1532d7 100644 --- a/web/src/components/ToolCallingResult/index.js +++ b/web/src/components/ToolCallingResult/index.js @@ -7,6 +7,8 @@ export { default as WebSearchTool } from './tools/WebSearchTool.vue' export { default as ListKbsTool } from './tools/ListKbsTool.vue' export { default as GetMindmapTool } from './tools/GetMindmapTool.vue' export { default as QueryKbTool } from './tools/QueryKbTool.vue' +export { default as FindKbDocumentTool } from './tools/FindKbDocumentTool.vue' +export { default as OpenKbDocumentTool } from './tools/OpenKbDocumentTool.vue' export { default as CalculatorTool } from './tools/CalculatorTool.vue' export { default as TodoListTool } from './tools/TodoListTool.vue' export { default as ImageTool } from './tools/ImageTool.vue' diff --git a/web/src/components/ToolCallingResult/toolRegistry.js b/web/src/components/ToolCallingResult/toolRegistry.js index 499fc208..230498a0 100644 --- a/web/src/components/ToolCallingResult/toolRegistry.js +++ b/web/src/components/ToolCallingResult/toolRegistry.js @@ -24,6 +24,7 @@ export const TOOL_ICON_MAP = { cmd: Terminal, edit_file: FilePen, execute: Terminal, + find_kb_document: FolderSearch, get_mindmap: Network, glob: FolderSearch, grep: FolderSearch, @@ -33,6 +34,7 @@ export const TOOL_ICON_MAP = { mysql_describe_table: Database, mysql_list_tables: Database, mysql_query: Database, + open_kb_document: FileText, present_artifacts: FolderOutput, query_kb: BookOpen, read_file: FileText, diff --git a/web/src/components/ToolCallingResult/tools/FindKbDocumentTool.vue b/web/src/components/ToolCallingResult/tools/FindKbDocumentTool.vue new file mode 100644 index 00000000..42f3e236 --- /dev/null +++ b/web/src/components/ToolCallingResult/tools/FindKbDocumentTool.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/web/src/components/ToolCallingResult/tools/KbDocumentPreview.vue b/web/src/components/ToolCallingResult/tools/KbDocumentPreview.vue new file mode 100644 index 00000000..f4da2bb8 --- /dev/null +++ b/web/src/components/ToolCallingResult/tools/KbDocumentPreview.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/web/src/components/ToolCallingResult/tools/OpenKbDocumentTool.vue b/web/src/components/ToolCallingResult/tools/OpenKbDocumentTool.vue new file mode 100644 index 00000000..5fdfb683 --- /dev/null +++ b/web/src/components/ToolCallingResult/tools/OpenKbDocumentTool.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/web/src/components/ToolCallingResult/tools/QueryKbTool.vue b/web/src/components/ToolCallingResult/tools/QueryKbTool.vue index e1e67191..ba6e76e5 100644 --- a/web/src/components/ToolCallingResult/tools/QueryKbTool.vue +++ b/web/src/components/ToolCallingResult/tools/QueryKbTool.vue @@ -3,8 +3,8 @@