diff --git a/ui/src/api/admin/system/resource-management/knowledge/problem.ts b/ui/src/api/admin/system/resource-management/knowledge/problem.ts new file mode 100644 index 00000000000..e7c6a82eef2 --- /dev/null +++ b/ui/src/api/admin/system/resource-management/knowledge/problem.ts @@ -0,0 +1,40 @@ +import { del, get, post, put } from '@/api/admin/core/request' +import type { ParamsPage, ResponsePage } from '@/api/admin/core/types' +import type { ParagraphProblem, ProblemBatchAssociationPayload, ProblemParagraph } from '@/api/types' + +const getPrefix = (knowledgeId: string) => `/system/resource/knowledge/${knowledgeId}/problem` + +/** 批量创建知识库问题。 */ +const postProblems = (knowledgeId: string, contents: string[]) => post(getPrefix(knowledgeId), contents) + +/** 分页搜索知识库问题,供分段选择已有问题进行关联。 */ +const getProblemsPage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) => + get>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query) + +/** 编辑单个知识库问题的内容。 */ +const putProblem = (knowledgeId: string, problemId: string, content: string) => + put<{ content: string }, void>(`${getPrefix(knowledgeId)}/${problemId}`, { content }) + +/** 删除单个知识库问题。 */ +const deleteProblem = (knowledgeId: string, problemId: string) => del(`${getPrefix(knowledgeId)}/${problemId}`) + +/** 获取问题当前关联的文档分段。 */ +const getProblemParagraphs = (knowledgeId: string, problemId: string) => get(`${getPrefix(knowledgeId)}/${problemId}/paragraph`) + +/** 批量将问题关联到指定文档分段。 */ +const putBatchAssociateProblems = (knowledgeId: string, payload: ProblemBatchAssociationPayload) => + put(`${getPrefix(knowledgeId)}/batch_association`, payload) + +/** 批量删除知识库问题。 */ +const putBatchDeleteProblems = (knowledgeId: string, problemIds: string[]) => + put(`${getPrefix(knowledgeId)}/batch_delete`, problemIds) + +export default { + postProblems, + getProblemsPage, + putProblem, + deleteProblem, + getProblemParagraphs, + putBatchAssociateProblems, + putBatchDeleteProblems, +} diff --git a/ui/src/api/admin/system/resource-management/knowledge/termbase.ts b/ui/src/api/admin/system/resource-management/knowledge/termbase.ts new file mode 100644 index 00000000000..02952f12acb --- /dev/null +++ b/ui/src/api/admin/system/resource-management/knowledge/termbase.ts @@ -0,0 +1,36 @@ +import { del, get, post, put } from '@/api/admin/core/request' +import type { ParamsPage, ResponsePage } from '@/api/admin/core/types' +import type { TermbaseItem, TermbaseUpdatePayload } from '@/api/types' + +const getPrefix = (knowledgeId: string) => `/system/resource/knowledge/${knowledgeId}/termbase` + +/** 批量创建知识库自定义分词条目。 */ +const postTermbases = (knowledgeId: string, contents: string[]) => post(getPrefix(knowledgeId), contents) + +/** 分页查询知识库自定义分词条目,支持内容搜索。 */ +const getTermbasePage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) => + get>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query) + +/** 编辑单个知识库自定义分词条目。 */ +const putTermbase = (knowledgeId: string, termbaseId: string, payload: TermbaseUpdatePayload) => + put(`${getPrefix(knowledgeId)}/${termbaseId}`, payload) + +/** 删除单个知识库自定义分词条目。 */ +const deleteTermbase = (knowledgeId: string, termbaseId: string) => del(`${getPrefix(knowledgeId)}/${termbaseId}`) + +/** 批量删除知识库自定义分词条目。 */ +const putBatchDeleteTermbases = (knowledgeId: string, termbaseIds: string[]) => + put(`${getPrefix(knowledgeId)}/batch_delete`, termbaseIds) + +/** 导出所选自定义分词条目的换行文本。 */ +const postExportTermbases = (knowledgeId: string, termbaseIds: string[]) => + post(`${getPrefix(knowledgeId)}/batch_export`, termbaseIds) + +export default { + postTermbases, + getTermbasePage, + putTermbase, + deleteTermbase, + putBatchDeleteTermbases, + postExportTermbases, +} diff --git a/ui/src/api/admin/system/shared-resources/knowledge/problem.ts b/ui/src/api/admin/system/shared-resources/knowledge/problem.ts new file mode 100644 index 00000000000..34224284901 --- /dev/null +++ b/ui/src/api/admin/system/shared-resources/knowledge/problem.ts @@ -0,0 +1,40 @@ +import { del, get, post, put } from '@/api/admin/core/request' +import type { ParamsPage, ResponsePage } from '@/api/admin/core/types' +import type { ParagraphProblem, ProblemBatchAssociationPayload, ProblemParagraph } from '@/api/types' + +const getPrefix = (knowledgeId: string) => `/system/shared/knowledge/${knowledgeId}/problem` + +/** 批量创建知识库问题。 */ +const postProblems = (knowledgeId: string, contents: string[]) => post(getPrefix(knowledgeId), contents) + +/** 分页搜索知识库问题,供分段选择已有问题进行关联。 */ +const getProblemsPage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) => + get>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query) + +/** 编辑单个知识库问题的内容。 */ +const putProblem = (knowledgeId: string, problemId: string, content: string) => + put<{ content: string }, void>(`${getPrefix(knowledgeId)}/${problemId}`, { content }) + +/** 删除单个知识库问题。 */ +const deleteProblem = (knowledgeId: string, problemId: string) => del(`${getPrefix(knowledgeId)}/${problemId}`) + +/** 获取问题当前关联的文档分段。 */ +const getProblemParagraphs = (knowledgeId: string, problemId: string) => get(`${getPrefix(knowledgeId)}/${problemId}/paragraph`) + +/** 批量将问题关联到指定文档分段。 */ +const putBatchAssociateProblems = (knowledgeId: string, payload: ProblemBatchAssociationPayload) => + put(`${getPrefix(knowledgeId)}/batch_association`, payload) + +/** 批量删除知识库问题。 */ +const putBatchDeleteProblems = (knowledgeId: string, problemIds: string[]) => + put(`${getPrefix(knowledgeId)}/batch_delete`, problemIds) + +export default { + postProblems, + getProblemsPage, + putProblem, + deleteProblem, + getProblemParagraphs, + putBatchAssociateProblems, + putBatchDeleteProblems, +} diff --git a/ui/src/api/admin/system/shared-resources/knowledge/termbase.ts b/ui/src/api/admin/system/shared-resources/knowledge/termbase.ts new file mode 100644 index 00000000000..f0ed9c38ab7 --- /dev/null +++ b/ui/src/api/admin/system/shared-resources/knowledge/termbase.ts @@ -0,0 +1,36 @@ +import { del, get, post, put } from '@/api/admin/core/request' +import type { ParamsPage, ResponsePage } from '@/api/admin/core/types' +import type { TermbaseItem, TermbaseUpdatePayload } from '@/api/types' + +const getPrefix = (knowledgeId: string) => `/system/shared/knowledge/${knowledgeId}/termbase` + +/** 批量创建知识库自定义分词条目。 */ +const postTermbases = (knowledgeId: string, contents: string[]) => post(getPrefix(knowledgeId), contents) + +/** 分页查询知识库自定义分词条目,支持内容搜索。 */ +const getTermbasePage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) => + get>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query) + +/** 编辑单个知识库自定义分词条目。 */ +const putTermbase = (knowledgeId: string, termbaseId: string, payload: TermbaseUpdatePayload) => + put(`${getPrefix(knowledgeId)}/${termbaseId}`, payload) + +/** 删除单个知识库自定义分词条目。 */ +const deleteTermbase = (knowledgeId: string, termbaseId: string) => del(`${getPrefix(knowledgeId)}/${termbaseId}`) + +/** 批量删除知识库自定义分词条目。 */ +const putBatchDeleteTermbases = (knowledgeId: string, termbaseIds: string[]) => + put(`${getPrefix(knowledgeId)}/batch_delete`, termbaseIds) + +/** 导出所选自定义分词条目的换行文本。 */ +const postExportTermbases = (knowledgeId: string, termbaseIds: string[]) => + post(`${getPrefix(knowledgeId)}/batch_export`, termbaseIds) + +export default { + postTermbases, + getTermbasePage, + putTermbase, + deleteTermbase, + putBatchDeleteTermbases, + postExportTermbases, +} diff --git a/ui/src/api/admin/workspace/knowledge/problem.ts b/ui/src/api/admin/workspace/knowledge/problem.ts index 5b6cfbcdacb..36e3b8254e5 100644 --- a/ui/src/api/admin/workspace/knowledge/problem.ts +++ b/ui/src/api/admin/workspace/knowledge/problem.ts @@ -1,10 +1,41 @@ -import { get } from '../../core/request' +import { del, get, post, put } from '../../core/request' import type { ParamsPage, ResponsePage } from '../../core/types' -import type { ParagraphProblem } from '@/api/types' +import type { ParagraphProblem, ProblemBatchAssociationPayload, ProblemParagraph } from '@/api/types' import { getWorkspaceId } from '@/utils/resource-context' +const getPrefix = (knowledgeId: string) => `/workspace/${getWorkspaceId()}/knowledge/${knowledgeId}/problem` + +/** 批量创建知识库问题。 */ +const postProblems = (knowledgeId: string, contents: string[]) => post(getPrefix(knowledgeId), contents) + /** 分页搜索知识库问题,供分段选择已有问题进行关联。 */ const getProblemsPage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) => - get>(`/workspace/${getWorkspaceId()}/knowledge/${knowledgeId}/problem/${page.currentPage}/${page.pageSize}`, query) + get>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query) + +/** 编辑单个知识库问题的内容。 */ +const putProblem = (knowledgeId: string, problemId: string, content: string) => + put<{ content: string }, void>(`${getPrefix(knowledgeId)}/${problemId}`, { content }) + +/** 删除单个知识库问题。 */ +const deleteProblem = (knowledgeId: string, problemId: string) => del(`${getPrefix(knowledgeId)}/${problemId}`) + +/** 获取问题当前关联的文档分段。 */ +const getProblemParagraphs = (knowledgeId: string, problemId: string) => get(`${getPrefix(knowledgeId)}/${problemId}/paragraph`) + +/** 批量将问题关联到指定文档分段。 */ +const putBatchAssociateProblems = (knowledgeId: string, payload: ProblemBatchAssociationPayload) => + put(`${getPrefix(knowledgeId)}/batch_association`, payload) + +/** 批量删除知识库问题。 */ +const putBatchDeleteProblems = (knowledgeId: string, problemIds: string[]) => + put(`${getPrefix(knowledgeId)}/batch_delete`, problemIds) -export default { getProblemsPage } +export default { + postProblems, + getProblemsPage, + putProblem, + deleteProblem, + getProblemParagraphs, + putBatchAssociateProblems, + putBatchDeleteProblems, +} diff --git a/ui/src/api/admin/workspace/knowledge/termbase.ts b/ui/src/api/admin/workspace/knowledge/termbase.ts new file mode 100644 index 00000000000..480706b2266 --- /dev/null +++ b/ui/src/api/admin/workspace/knowledge/termbase.ts @@ -0,0 +1,37 @@ +import { del, get, post, put } from '../../core/request' +import type { ParamsPage, ResponsePage } from '../../core/types' +import type { TermbaseItem, TermbaseUpdatePayload } from '@/api/types' +import { getWorkspaceId } from '@/utils/resource-context' + +const getPrefix = (knowledgeId: string) => `/workspace/${getWorkspaceId()}/knowledge/${knowledgeId}/termbase` + +/** 批量创建知识库自定义分词条目。 */ +const postTermbases = (knowledgeId: string, contents: string[]) => post(getPrefix(knowledgeId), contents) + +/** 分页查询知识库自定义分词条目,支持内容搜索。 */ +const getTermbasePage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) => + get>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query) + +/** 编辑单个知识库自定义分词条目。 */ +const putTermbase = (knowledgeId: string, termbaseId: string, payload: TermbaseUpdatePayload) => + put(`${getPrefix(knowledgeId)}/${termbaseId}`, payload) + +/** 删除单个知识库自定义分词条目。 */ +const deleteTermbase = (knowledgeId: string, termbaseId: string) => del(`${getPrefix(knowledgeId)}/${termbaseId}`) + +/** 批量删除知识库自定义分词条目。 */ +const putBatchDeleteTermbases = (knowledgeId: string, termbaseIds: string[]) => + put(`${getPrefix(knowledgeId)}/batch_delete`, termbaseIds) + +/** 导出所选自定义分词条目的换行文本。 */ +const postExportTermbases = (knowledgeId: string, termbaseIds: string[]) => + post(`${getPrefix(knowledgeId)}/batch_export`, termbaseIds) + +export default { + postTermbases, + getTermbasePage, + putTermbase, + deleteTermbase, + putBatchDeleteTermbases, + postExportTermbases, +} diff --git a/ui/src/api/admin/workspace/shared/knowledge/problem.ts b/ui/src/api/admin/workspace/shared/knowledge/problem.ts new file mode 100644 index 00000000000..568ac3c32f4 --- /dev/null +++ b/ui/src/api/admin/workspace/shared/knowledge/problem.ts @@ -0,0 +1,12 @@ +import { get } from '../../../core/request' +import type { ParamsPage, ResponsePage } from '../../../core/types' +import type { ParagraphProblem } from '@/api/types' +import { getWorkspaceId } from '@/utils/resource-context' + +const getPrefix = (knowledgeId: string) => `/system/shared/workspace/${getWorkspaceId()}/knowledge/${knowledgeId}/problem` + +/** 分页查询工作空间共享知识库的问题,只提供只读访问。 */ +const getProblemsPage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) => + get>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query) + +export default { getProblemsPage } diff --git a/ui/src/api/admin/workspace/shared/knowledge/termbase.ts b/ui/src/api/admin/workspace/shared/knowledge/termbase.ts new file mode 100644 index 00000000000..5cdf3229e4d --- /dev/null +++ b/ui/src/api/admin/workspace/shared/knowledge/termbase.ts @@ -0,0 +1,13 @@ +import { get } from '../../../core/request' +import type { ParamsPage, ResponsePage } from '../../../core/types' +import type { TermbaseItem } from '@/api/types' +import { getWorkspaceId } from '@/utils/resource-context' + +const getPrefix = (knowledgeId: string) => `/system/shared/workspace/${getWorkspaceId()}/knowledge/${knowledgeId}/termbase` + +/** 分页查询工作空间共享知识库的自定义分词条目,只提供只读访问。 */ +// TODO:V3 后端需确认并提供工作空间共享知识库的 termbase 分页查询路由。 +const getTermbasePage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) => + get>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query) + +export default { getTermbasePage } diff --git a/ui/src/api/types/index.ts b/ui/src/api/types/index.ts index 75143806d8b..42e61ebbdb9 100644 --- a/ui/src/api/types/index.ts +++ b/ui/src/api/types/index.ts @@ -32,4 +32,5 @@ export type * from './portal' export type * from './document' export type * from './paragraph' +export type * from './termbase' export type * from './chat-log' diff --git a/ui/src/api/types/paragraph.ts b/ui/src/api/types/paragraph.ts index 654c3b09f3a..538c1300ed0 100644 --- a/ui/src/api/types/paragraph.ts +++ b/ui/src/api/types/paragraph.ts @@ -20,6 +20,24 @@ export interface ParagraphProblem { content: string } +/** 从问题详情查询到的关联分段,额外携带所属知识库与文档名称。 */ +export interface ProblemParagraph extends ParagraphItem { + knowledge_id: string + document_name: string +} + +/** 批量将问题关联到文档分段时使用的分段引用。 */ +export interface ProblemParagraphReference { + paragraph_id: string + document_id: string +} + +/** 批量关联问题与文档分段的请求载荷。 */ +export interface ProblemBatchAssociationPayload { + problem_id_list: string[] + paragraph_list: ProblemParagraphReference[] +} + export interface ParagraphDetail extends ParagraphItem { problem_list: ParagraphProblem[] } diff --git a/ui/src/api/types/termbase.ts b/ui/src/api/types/termbase.ts new file mode 100644 index 00000000000..d37be9682fe --- /dev/null +++ b/ui/src/api/types/termbase.ts @@ -0,0 +1,13 @@ +/** 知识库自定义分词条目。 */ +export interface TermbaseItem { + id: string + knowledge_id: string + content: string + create_time: string + update_time: string +} + +/** 编辑单个自定义分词条目时提交的内容。 */ +export interface TermbaseUpdatePayload { + content: string +}