Skip to content

Commit 0fab97a

Browse files
committed
feat: questions and termbase api
1 parent 4e9adfa commit 0fab97a

11 files changed

Lines changed: 281 additions & 4 deletions

File tree

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { del, get, post, put } from '@/api/admin/core/request'
2+
import type { ParamsPage, ResponsePage } from '@/api/admin/core/types'
3+
import type { ParagraphProblem, ProblemBatchAssociationPayload, ProblemParagraph } from '@/api/types'
4+
5+
const getPrefix = (knowledgeId: string) => `/system/resource/knowledge/${knowledgeId}/problem`
6+
7+
/** 批量创建知识库问题。 */
8+
const postProblems = (knowledgeId: string, contents: string[]) => post<string[], void>(getPrefix(knowledgeId), contents)
9+
10+
/** 分页搜索知识库问题,供分段选择已有问题进行关联。 */
11+
const getProblemsPage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) =>
12+
get<ResponsePage<ParagraphProblem>>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query)
13+
14+
/** 编辑单个知识库问题的内容。 */
15+
const putProblem = (knowledgeId: string, problemId: string, content: string) =>
16+
put<{ content: string }, void>(`${getPrefix(knowledgeId)}/${problemId}`, { content })
17+
18+
/** 删除单个知识库问题。 */
19+
const deleteProblem = (knowledgeId: string, problemId: string) => del<undefined, boolean>(`${getPrefix(knowledgeId)}/${problemId}`)
20+
21+
/** 获取问题当前关联的文档分段。 */
22+
const getProblemParagraphs = (knowledgeId: string, problemId: string) => get<ProblemParagraph[]>(`${getPrefix(knowledgeId)}/${problemId}/paragraph`)
23+
24+
/** 批量将问题关联到指定文档分段。 */
25+
const putBatchAssociateProblems = (knowledgeId: string, payload: ProblemBatchAssociationPayload) =>
26+
put<ProblemBatchAssociationPayload, boolean>(`${getPrefix(knowledgeId)}/batch_association`, payload)
27+
28+
/** 批量删除知识库问题。 */
29+
const putBatchDeleteProblems = (knowledgeId: string, problemIds: string[]) =>
30+
put<string[], boolean>(`${getPrefix(knowledgeId)}/batch_delete`, problemIds)
31+
32+
export default {
33+
postProblems,
34+
getProblemsPage,
35+
putProblem,
36+
deleteProblem,
37+
getProblemParagraphs,
38+
putBatchAssociateProblems,
39+
putBatchDeleteProblems,
40+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { del, get, post, put } from '@/api/admin/core/request'
2+
import type { ParamsPage, ResponsePage } from '@/api/admin/core/types'
3+
import type { TermbaseItem, TermbaseUpdatePayload } from '@/api/types'
4+
5+
const getPrefix = (knowledgeId: string) => `/system/resource/knowledge/${knowledgeId}/termbase`
6+
7+
/** 批量创建知识库自定义分词条目。 */
8+
const postTermbases = (knowledgeId: string, contents: string[]) => post<string[], TermbaseItem[]>(getPrefix(knowledgeId), contents)
9+
10+
/** 分页查询知识库自定义分词条目,支持内容搜索。 */
11+
const getTermbasePage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) =>
12+
get<ResponsePage<TermbaseItem>>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query)
13+
14+
/** 编辑单个知识库自定义分词条目。 */
15+
const putTermbase = (knowledgeId: string, termbaseId: string, payload: TermbaseUpdatePayload) =>
16+
put<TermbaseUpdatePayload, void>(`${getPrefix(knowledgeId)}/${termbaseId}`, payload)
17+
18+
/** 删除单个知识库自定义分词条目。 */
19+
const deleteTermbase = (knowledgeId: string, termbaseId: string) => del<undefined, boolean>(`${getPrefix(knowledgeId)}/${termbaseId}`)
20+
21+
/** 批量删除知识库自定义分词条目。 */
22+
const putBatchDeleteTermbases = (knowledgeId: string, termbaseIds: string[]) =>
23+
put<string[], boolean>(`${getPrefix(knowledgeId)}/batch_delete`, termbaseIds)
24+
25+
/** 导出所选自定义分词条目的换行文本。 */
26+
const postExportTermbases = (knowledgeId: string, termbaseIds: string[]) =>
27+
post<string[], string>(`${getPrefix(knowledgeId)}/batch_export`, termbaseIds)
28+
29+
export default {
30+
postTermbases,
31+
getTermbasePage,
32+
putTermbase,
33+
deleteTermbase,
34+
putBatchDeleteTermbases,
35+
postExportTermbases,
36+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { del, get, post, put } from '@/api/admin/core/request'
2+
import type { ParamsPage, ResponsePage } from '@/api/admin/core/types'
3+
import type { ParagraphProblem, ProblemBatchAssociationPayload, ProblemParagraph } from '@/api/types'
4+
5+
const getPrefix = (knowledgeId: string) => `/system/shared/knowledge/${knowledgeId}/problem`
6+
7+
/** 批量创建知识库问题。 */
8+
const postProblems = (knowledgeId: string, contents: string[]) => post<string[], void>(getPrefix(knowledgeId), contents)
9+
10+
/** 分页搜索知识库问题,供分段选择已有问题进行关联。 */
11+
const getProblemsPage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) =>
12+
get<ResponsePage<ParagraphProblem>>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query)
13+
14+
/** 编辑单个知识库问题的内容。 */
15+
const putProblem = (knowledgeId: string, problemId: string, content: string) =>
16+
put<{ content: string }, void>(`${getPrefix(knowledgeId)}/${problemId}`, { content })
17+
18+
/** 删除单个知识库问题。 */
19+
const deleteProblem = (knowledgeId: string, problemId: string) => del<undefined, boolean>(`${getPrefix(knowledgeId)}/${problemId}`)
20+
21+
/** 获取问题当前关联的文档分段。 */
22+
const getProblemParagraphs = (knowledgeId: string, problemId: string) => get<ProblemParagraph[]>(`${getPrefix(knowledgeId)}/${problemId}/paragraph`)
23+
24+
/** 批量将问题关联到指定文档分段。 */
25+
const putBatchAssociateProblems = (knowledgeId: string, payload: ProblemBatchAssociationPayload) =>
26+
put<ProblemBatchAssociationPayload, boolean>(`${getPrefix(knowledgeId)}/batch_association`, payload)
27+
28+
/** 批量删除知识库问题。 */
29+
const putBatchDeleteProblems = (knowledgeId: string, problemIds: string[]) =>
30+
put<string[], boolean>(`${getPrefix(knowledgeId)}/batch_delete`, problemIds)
31+
32+
export default {
33+
postProblems,
34+
getProblemsPage,
35+
putProblem,
36+
deleteProblem,
37+
getProblemParagraphs,
38+
putBatchAssociateProblems,
39+
putBatchDeleteProblems,
40+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { del, get, post, put } from '@/api/admin/core/request'
2+
import type { ParamsPage, ResponsePage } from '@/api/admin/core/types'
3+
import type { TermbaseItem, TermbaseUpdatePayload } from '@/api/types'
4+
5+
const getPrefix = (knowledgeId: string) => `/system/shared/knowledge/${knowledgeId}/termbase`
6+
7+
/** 批量创建知识库自定义分词条目。 */
8+
const postTermbases = (knowledgeId: string, contents: string[]) => post<string[], TermbaseItem[]>(getPrefix(knowledgeId), contents)
9+
10+
/** 分页查询知识库自定义分词条目,支持内容搜索。 */
11+
const getTermbasePage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) =>
12+
get<ResponsePage<TermbaseItem>>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query)
13+
14+
/** 编辑单个知识库自定义分词条目。 */
15+
const putTermbase = (knowledgeId: string, termbaseId: string, payload: TermbaseUpdatePayload) =>
16+
put<TermbaseUpdatePayload, void>(`${getPrefix(knowledgeId)}/${termbaseId}`, payload)
17+
18+
/** 删除单个知识库自定义分词条目。 */
19+
const deleteTermbase = (knowledgeId: string, termbaseId: string) => del<undefined, boolean>(`${getPrefix(knowledgeId)}/${termbaseId}`)
20+
21+
/** 批量删除知识库自定义分词条目。 */
22+
const putBatchDeleteTermbases = (knowledgeId: string, termbaseIds: string[]) =>
23+
put<string[], boolean>(`${getPrefix(knowledgeId)}/batch_delete`, termbaseIds)
24+
25+
/** 导出所选自定义分词条目的换行文本。 */
26+
const postExportTermbases = (knowledgeId: string, termbaseIds: string[]) =>
27+
post<string[], string>(`${getPrefix(knowledgeId)}/batch_export`, termbaseIds)
28+
29+
export default {
30+
postTermbases,
31+
getTermbasePage,
32+
putTermbase,
33+
deleteTermbase,
34+
putBatchDeleteTermbases,
35+
postExportTermbases,
36+
}
Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,41 @@
1-
import { get } from '../../core/request'
1+
import { del, get, post, put } from '../../core/request'
22
import type { ParamsPage, ResponsePage } from '../../core/types'
3-
import type { ParagraphProblem } from '@/api/types'
3+
import type { ParagraphProblem, ProblemBatchAssociationPayload, ProblemParagraph } from '@/api/types'
44
import { getWorkspaceId } from '@/utils/resource-context'
55

6+
const getPrefix = (knowledgeId: string) => `/workspace/${getWorkspaceId()}/knowledge/${knowledgeId}/problem`
7+
8+
/** 批量创建知识库问题。 */
9+
const postProblems = (knowledgeId: string, contents: string[]) => post<string[], void>(getPrefix(knowledgeId), contents)
10+
611
/** 分页搜索知识库问题,供分段选择已有问题进行关联。 */
712
const getProblemsPage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) =>
8-
get<ResponsePage<ParagraphProblem>>(`/workspace/${getWorkspaceId()}/knowledge/${knowledgeId}/problem/${page.currentPage}/${page.pageSize}`, query)
13+
get<ResponsePage<ParagraphProblem>>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query)
14+
15+
/** 编辑单个知识库问题的内容。 */
16+
const putProblem = (knowledgeId: string, problemId: string, content: string) =>
17+
put<{ content: string }, void>(`${getPrefix(knowledgeId)}/${problemId}`, { content })
18+
19+
/** 删除单个知识库问题。 */
20+
const deleteProblem = (knowledgeId: string, problemId: string) => del<undefined, boolean>(`${getPrefix(knowledgeId)}/${problemId}`)
21+
22+
/** 获取问题当前关联的文档分段。 */
23+
const getProblemParagraphs = (knowledgeId: string, problemId: string) => get<ProblemParagraph[]>(`${getPrefix(knowledgeId)}/${problemId}/paragraph`)
24+
25+
/** 批量将问题关联到指定文档分段。 */
26+
const putBatchAssociateProblems = (knowledgeId: string, payload: ProblemBatchAssociationPayload) =>
27+
put<ProblemBatchAssociationPayload, boolean>(`${getPrefix(knowledgeId)}/batch_association`, payload)
28+
29+
/** 批量删除知识库问题。 */
30+
const putBatchDeleteProblems = (knowledgeId: string, problemIds: string[]) =>
31+
put<string[], boolean>(`${getPrefix(knowledgeId)}/batch_delete`, problemIds)
932

10-
export default { getProblemsPage }
33+
export default {
34+
postProblems,
35+
getProblemsPage,
36+
putProblem,
37+
deleteProblem,
38+
getProblemParagraphs,
39+
putBatchAssociateProblems,
40+
putBatchDeleteProblems,
41+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { del, get, post, put } from '../../core/request'
2+
import type { ParamsPage, ResponsePage } from '../../core/types'
3+
import type { TermbaseItem, TermbaseUpdatePayload } from '@/api/types'
4+
import { getWorkspaceId } from '@/utils/resource-context'
5+
6+
const getPrefix = (knowledgeId: string) => `/workspace/${getWorkspaceId()}/knowledge/${knowledgeId}/termbase`
7+
8+
/** 批量创建知识库自定义分词条目。 */
9+
const postTermbases = (knowledgeId: string, contents: string[]) => post<string[], TermbaseItem[]>(getPrefix(knowledgeId), contents)
10+
11+
/** 分页查询知识库自定义分词条目,支持内容搜索。 */
12+
const getTermbasePage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) =>
13+
get<ResponsePage<TermbaseItem>>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query)
14+
15+
/** 编辑单个知识库自定义分词条目。 */
16+
const putTermbase = (knowledgeId: string, termbaseId: string, payload: TermbaseUpdatePayload) =>
17+
put<TermbaseUpdatePayload, void>(`${getPrefix(knowledgeId)}/${termbaseId}`, payload)
18+
19+
/** 删除单个知识库自定义分词条目。 */
20+
const deleteTermbase = (knowledgeId: string, termbaseId: string) => del<undefined, boolean>(`${getPrefix(knowledgeId)}/${termbaseId}`)
21+
22+
/** 批量删除知识库自定义分词条目。 */
23+
const putBatchDeleteTermbases = (knowledgeId: string, termbaseIds: string[]) =>
24+
put<string[], boolean>(`${getPrefix(knowledgeId)}/batch_delete`, termbaseIds)
25+
26+
/** 导出所选自定义分词条目的换行文本。 */
27+
const postExportTermbases = (knowledgeId: string, termbaseIds: string[]) =>
28+
post<string[], string>(`${getPrefix(knowledgeId)}/batch_export`, termbaseIds)
29+
30+
export default {
31+
postTermbases,
32+
getTermbasePage,
33+
putTermbase,
34+
deleteTermbase,
35+
putBatchDeleteTermbases,
36+
postExportTermbases,
37+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { get } from '../../../core/request'
2+
import type { ParamsPage, ResponsePage } from '../../../core/types'
3+
import type { ParagraphProblem } from '@/api/types'
4+
import { getWorkspaceId } from '@/utils/resource-context'
5+
6+
const getPrefix = (knowledgeId: string) => `/system/shared/workspace/${getWorkspaceId()}/knowledge/${knowledgeId}/problem`
7+
8+
/** 分页查询工作空间共享知识库的问题,只提供只读访问。 */
9+
const getProblemsPage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) =>
10+
get<ResponsePage<ParagraphProblem>>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query)
11+
12+
export default { getProblemsPage }
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { get } from '../../../core/request'
2+
import type { ParamsPage, ResponsePage } from '../../../core/types'
3+
import type { TermbaseItem } from '@/api/types'
4+
import { getWorkspaceId } from '@/utils/resource-context'
5+
6+
const getPrefix = (knowledgeId: string) => `/system/shared/workspace/${getWorkspaceId()}/knowledge/${knowledgeId}/termbase`
7+
8+
/** 分页查询工作空间共享知识库的自定义分词条目,只提供只读访问。 */
9+
// TODO:V3 后端需确认并提供工作空间共享知识库的 termbase 分页查询路由。
10+
const getTermbasePage = (knowledgeId: string, page: ParamsPage, query?: { content?: string }) =>
11+
get<ResponsePage<TermbaseItem>>(`${getPrefix(knowledgeId)}/${page.currentPage}/${page.pageSize}`, query)
12+
13+
export default { getTermbasePage }

‎ui/src/api/types/index.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,5 @@ export type * from './portal'
3232

3333
export type * from './document'
3434
export type * from './paragraph'
35+
export type * from './termbase'
3536
export type * from './chat-log'

‎ui/src/api/types/paragraph.ts‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,24 @@ export interface ParagraphProblem {
2020
content: string
2121
}
2222

23+
/** 从问题详情查询到的关联分段,额外携带所属知识库与文档名称。 */
24+
export interface ProblemParagraph extends ParagraphItem {
25+
knowledge_id: string
26+
document_name: string
27+
}
28+
29+
/** 批量将问题关联到文档分段时使用的分段引用。 */
30+
export interface ProblemParagraphReference {
31+
paragraph_id: string
32+
document_id: string
33+
}
34+
35+
/** 批量关联问题与文档分段的请求载荷。 */
36+
export interface ProblemBatchAssociationPayload {
37+
problem_id_list: string[]
38+
paragraph_list: ProblemParagraphReference[]
39+
}
40+
2341
export interface ParagraphDetail extends ParagraphItem {
2442
problem_list: ParagraphProblem[]
2543
}

0 commit comments

Comments
 (0)