diff --git a/ui/src/api/API_README.md b/ui/src/api/API_README.md index 7dbcc9005ac..544c24e7d98 100644 --- a/ui/src/api/API_README.md +++ b/ui/src/api/API_README.md @@ -697,6 +697,11 @@ Workspace、System 资源管理及 System 共享资源的 `knowledge.ts` 提供 标签类型统一维护在 `types/knowledge.ts`。创建支持多行,编辑仅支持重命名或单个值修改, 不声明多行编辑接口,也不组合旧接口模拟多行保存。 +`system/resource-management/knowledge/tags.ts` 与 `system/shared-resources/knowledge/tags.ts` +提供与普通 Workspace 相同的七个标签接口,参数、请求体和返回类型保持一致,仅资源前缀分别为 +`/system/resource/knowledge//tags` 和 `/system/shared/knowledge//tags`,不读取工作空间 ID。 +两套系统标签 API 暂未接入知识库详情 context;Workspace 共享标签 API 保持现有只读查询,不补写入方法。 + 文档与标签的关联由 `workspace/knowledge/document.ts` 维护,不使用标签删除接口代替取消关联。 `getDocumentTags(knowledgeId, documentId, query?)` 查询 `document//tags`,返回分组标签,支持 `query.name` 搜索; `postAddDocumentTags` POST 到 `document/batch_add_tag`,提交 `{ document_ids, tag_ids }`; diff --git a/ui/src/api/admin/system/resource-management/knowledge/tags.ts b/ui/src/api/admin/system/resource-management/knowledge/tags.ts new file mode 100644 index 00000000000..e715356878c --- /dev/null +++ b/ui/src/api/admin/system/resource-management/knowledge/tags.ts @@ -0,0 +1,41 @@ +import { del, get, getExportFile, post, put } from '@/api/admin/core/request' +import type { Dict, KnowledgeTagGroup, KnowledgeTagPayload, KnowledgeTagUpdatePayload } from '@/api/types' + +const getPrefix = (knowledgeId: string) => `/system/resource/knowledge/${knowledgeId}/tags` + +/** 获取知识库按标签名称分组的标签选项。 */ +const getKnowledgeTags = (knowledgeId: string, query?: Dict) => get(getPrefix(knowledgeId), query) + +/** 创建知识库标签或为已有标签新增值。 */ +const postKnowledgeTags = (knowledgeId: string, tags: KnowledgeTagPayload[]) => post(getPrefix(knowledgeId), tags) + +/** 重命名知识库标签或编辑单个标签值。 */ +const putKnowledgeTag = (knowledgeId: string, tagId: string, tag: KnowledgeTagUpdatePayload) => + put(`${getPrefix(knowledgeId)}/${tagId}`, tag) + +/** 删除整个标签分组或单个标签值。 */ +const deleteKnowledgeTag = (knowledgeId: string, tagId: string, type: 'key' | 'one') => + del(`${getPrefix(knowledgeId)}/${tagId}/${type}`) + +/** 批量删除所选标签,直接提交标签 ID 数组。 */ +const putBatchDeleteKnowledgeTags = (knowledgeId: string, tagIds: string[]) => put(`${getPrefix(knowledgeId)}/batch_delete`, tagIds) + +/** 导入 Excel 中的知识库标签,重复标签组合由服务端跳过。 */ +const postImportKnowledgeTags = (knowledgeId: string, file: File) => { + const data = new FormData() + data.append('file', file) + return post(`${getPrefix(knowledgeId)}/import`, data) +} + +/** 下载知识库标签导入模板。 */ +const exportKnowledgeTagTemplate = (knowledgeId: string) => getExportFile('标签模板.xlsx', `${getPrefix(knowledgeId)}/template/export`) + +export default { + getKnowledgeTags, + postKnowledgeTags, + putKnowledgeTag, + deleteKnowledgeTag, + putBatchDeleteKnowledgeTags, + postImportKnowledgeTags, + exportKnowledgeTagTemplate, +} diff --git a/ui/src/api/admin/system/shared-resources/knowledge/tags.ts b/ui/src/api/admin/system/shared-resources/knowledge/tags.ts new file mode 100644 index 00000000000..fd242938e18 --- /dev/null +++ b/ui/src/api/admin/system/shared-resources/knowledge/tags.ts @@ -0,0 +1,41 @@ +import { del, get, getExportFile, post, put } from '@/api/admin/core/request' +import type { Dict, KnowledgeTagGroup, KnowledgeTagPayload, KnowledgeTagUpdatePayload } from '@/api/types' + +const getPrefix = (knowledgeId: string) => `/system/shared/knowledge/${knowledgeId}/tags` + +/** 获取知识库按标签名称分组的标签选项。 */ +const getKnowledgeTags = (knowledgeId: string, query?: Dict) => get(getPrefix(knowledgeId), query) + +/** 创建知识库标签或为已有标签新增值。 */ +const postKnowledgeTags = (knowledgeId: string, tags: KnowledgeTagPayload[]) => post(getPrefix(knowledgeId), tags) + +/** 重命名知识库标签或编辑单个标签值。 */ +const putKnowledgeTag = (knowledgeId: string, tagId: string, tag: KnowledgeTagUpdatePayload) => + put(`${getPrefix(knowledgeId)}/${tagId}`, tag) + +/** 删除整个标签分组或单个标签值。 */ +const deleteKnowledgeTag = (knowledgeId: string, tagId: string, type: 'key' | 'one') => + del(`${getPrefix(knowledgeId)}/${tagId}/${type}`) + +/** 批量删除所选标签,直接提交标签 ID 数组。 */ +const putBatchDeleteKnowledgeTags = (knowledgeId: string, tagIds: string[]) => put(`${getPrefix(knowledgeId)}/batch_delete`, tagIds) + +/** 导入 Excel 中的知识库标签,重复标签组合由服务端跳过。 */ +const postImportKnowledgeTags = (knowledgeId: string, file: File) => { + const data = new FormData() + data.append('file', file) + return post(`${getPrefix(knowledgeId)}/import`, data) +} + +/** 下载知识库标签导入模板。 */ +const exportKnowledgeTagTemplate = (knowledgeId: string) => getExportFile('标签模板.xlsx', `${getPrefix(knowledgeId)}/template/export`) + +export default { + getKnowledgeTags, + postKnowledgeTags, + putKnowledgeTag, + deleteKnowledgeTag, + putBatchDeleteKnowledgeTags, + postImportKnowledgeTags, + exportKnowledgeTagTemplate, +}