Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions ui/src/api/API_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/<knowledgeId>/tags` 和 `/system/shared/knowledge/<knowledgeId>/tags`,不读取工作空间 ID。
两套系统标签 API 暂未接入知识库详情 context;Workspace 共享标签 API 保持现有只读查询,不补写入方法。

文档与标签的关联由 `workspace/knowledge/document.ts` 维护,不使用标签删除接口代替取消关联。
`getDocumentTags(knowledgeId, documentId, query?)` 查询 `document/<documentId>/tags`,返回分组标签,支持 `query.name` 搜索;
`postAddDocumentTags` POST 到 `document/batch_add_tag`,提交 `{ document_ids, tag_ids }`;
Expand Down
41 changes: 41 additions & 0 deletions ui/src/api/admin/system/resource-management/knowledge/tags.ts
Original file line number Diff line number Diff line change
@@ -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<unknown>) => get<KnowledgeTagGroup[]>(getPrefix(knowledgeId), query)

/** 创建知识库标签或为已有标签新增值。 */
const postKnowledgeTags = (knowledgeId: string, tags: KnowledgeTagPayload[]) => post<KnowledgeTagPayload[], void>(getPrefix(knowledgeId), tags)

/** 重命名知识库标签或编辑单个标签值。 */
const putKnowledgeTag = (knowledgeId: string, tagId: string, tag: KnowledgeTagUpdatePayload) =>
put<KnowledgeTagUpdatePayload, void>(`${getPrefix(knowledgeId)}/${tagId}`, tag)

/** 删除整个标签分组或单个标签值。 */
const deleteKnowledgeTag = (knowledgeId: string, tagId: string, type: 'key' | 'one') =>
del<undefined, void>(`${getPrefix(knowledgeId)}/${tagId}/${type}`)

/** 批量删除所选标签,直接提交标签 ID 数组。 */
const putBatchDeleteKnowledgeTags = (knowledgeId: string, tagIds: string[]) => put<string[], void>(`${getPrefix(knowledgeId)}/batch_delete`, tagIds)

/** 导入 Excel 中的知识库标签,重复标签组合由服务端跳过。 */
const postImportKnowledgeTags = (knowledgeId: string, file: File) => {
const data = new FormData()
data.append('file', file)
return post<FormData, void>(`${getPrefix(knowledgeId)}/import`, data)
}

/** 下载知识库标签导入模板。 */
const exportKnowledgeTagTemplate = (knowledgeId: string) => getExportFile('标签模板.xlsx', `${getPrefix(knowledgeId)}/template/export`)

export default {
getKnowledgeTags,
postKnowledgeTags,
putKnowledgeTag,
deleteKnowledgeTag,
putBatchDeleteKnowledgeTags,
postImportKnowledgeTags,
exportKnowledgeTagTemplate,
}
41 changes: 41 additions & 0 deletions ui/src/api/admin/system/shared-resources/knowledge/tags.ts
Original file line number Diff line number Diff line change
@@ -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<unknown>) => get<KnowledgeTagGroup[]>(getPrefix(knowledgeId), query)

/** 创建知识库标签或为已有标签新增值。 */
const postKnowledgeTags = (knowledgeId: string, tags: KnowledgeTagPayload[]) => post<KnowledgeTagPayload[], void>(getPrefix(knowledgeId), tags)

/** 重命名知识库标签或编辑单个标签值。 */
const putKnowledgeTag = (knowledgeId: string, tagId: string, tag: KnowledgeTagUpdatePayload) =>
put<KnowledgeTagUpdatePayload, void>(`${getPrefix(knowledgeId)}/${tagId}`, tag)

/** 删除整个标签分组或单个标签值。 */
const deleteKnowledgeTag = (knowledgeId: string, tagId: string, type: 'key' | 'one') =>
del<undefined, void>(`${getPrefix(knowledgeId)}/${tagId}/${type}`)

/** 批量删除所选标签,直接提交标签 ID 数组。 */
const putBatchDeleteKnowledgeTags = (knowledgeId: string, tagIds: string[]) => put<string[], void>(`${getPrefix(knowledgeId)}/batch_delete`, tagIds)

/** 导入 Excel 中的知识库标签,重复标签组合由服务端跳过。 */
const postImportKnowledgeTags = (knowledgeId: string, file: File) => {
const data = new FormData()
data.append('file', file)
return post<FormData, void>(`${getPrefix(knowledgeId)}/import`, data)
}

/** 下载知识库标签导入模板。 */
const exportKnowledgeTagTemplate = (knowledgeId: string) => getExportFile('标签模板.xlsx', `${getPrefix(knowledgeId)}/template/export`)

export default {
getKnowledgeTags,
postKnowledgeTags,
putKnowledgeTag,
deleteKnowledgeTag,
putBatchDeleteKnowledgeTags,
postImportKnowledgeTags,
exportKnowledgeTagTemplate,
}
Loading