194 lines
4.2 KiB
TypeScript
Raw Normal View History

import { defHttp } from '../utils/http'
import type {
KnowledgeBase,
KnowledgeDoc,
KnowledgeSearchForm,
KnowledgeDocSearchForm,
EmbeddingHitResult,
RebuildVectorParams
} from '../types/knowledge'
// API 端点枚举
enum Api {
// 知识库管理
list = '/airag/knowledge/list',
save = '/airag/knowledge/add',
delete = '/airag/knowledge/delete',
queryById = '/airag/knowledge/queryById',
edit = '/airag/knowledge/edit',
rebuild = '/airag/knowledge/rebuild',
// 知识库文档
knowledgeDocList = '/airag/knowledge/doc/list',
knowledgeEditDoc = '/airag/knowledge/doc/edit',
knowledgeDeleteBatchDoc = '/airag/knowledge/doc/deleteBatch',
knowledgeDeleteAllDoc = '/airag/knowledge/doc/deleteAll',
knowledgeRebuildDoc = '/airag/knowledge/doc/rebuild',
knowledgeEmbeddingHitTest = '/airag/knowledge/embedding/hitTest',
}
/**
*
* @param params
*/
export const getKnowledgeList = (params: KnowledgeSearchForm & { pageNo?: number; pageSize?: number }) => {
return defHttp.get<{
records: KnowledgeBase[]
total: number
size: number
current: number
}>({
url: Api.list,
params
}, { isTransformResponse: false })
}
/**
* ID查询知识库详情
* @param params
*/
export const getKnowledgeById = (params: { id: string }) => {
return defHttp.get<KnowledgeBase>({
url: Api.queryById,
params
}, { isTransformResponse: false })
}
/**
*
* @param params
*/
export const createKnowledge = (params: Omit<KnowledgeBase, 'id'>) => {
return defHttp.post<KnowledgeBase>({
url: Api.save,
params
})
}
/**
*
* @param params
*/
export const updateKnowledge = (params: KnowledgeBase) => {
return defHttp.put<KnowledgeBase>({
url: Api.edit,
params
})
}
/**
*
* @param params
*/
export const deleteKnowledge = (params: { id: string }) => {
return defHttp.delete({
url: Api.delete,
params
}, { joinParamsToUrl: true })
}
/**
*
* @param params
*/
export const rebuildKnowledgeVector = (params: RebuildVectorParams) => {
return defHttp.put({
url: Api.rebuild,
params,
timeout: 2 * 60 * 1000
}, {
joinParamsToUrl: true,
isTransformResponse: false
})
}
/**
*
* @param params
*/
export const getKnowledgeDocList = (params: KnowledgeDocSearchForm & {
knowledgeId: string
pageNo?: number
pageSize?: number
}) => {
return defHttp.get<{
records: KnowledgeDoc[]
total: number
size: number
current: number
}>({
url: Api.knowledgeDocList,
params
}, { isTransformResponse: false })
}
/**
* /
* @param params
*/
export const saveKnowledgeDoc = (params: Partial<KnowledgeDoc>) => {
return defHttp.post<KnowledgeDoc>({
url: Api.knowledgeEditDoc,
params
})
}
/**
*
* @param params
*/
export const batchDeleteKnowledgeDocs = (params: { ids: string }) => {
return defHttp.delete({
url: Api.knowledgeDeleteBatchDoc,
params
}, { joinParamsToUrl: true })
}
/**
*
* @param knowledgeId ID
*/
export const deleteAllKnowledgeDocs = (knowledgeId: string) => {
return defHttp.delete({
url: Api.knowledgeDeleteAllDoc,
params: { knowledgeId }
}, { joinParamsToUrl: true })
}
/**
*
* @param params
*/
export const rebuildDocVector = (params: { docIds: string }) => {
return defHttp.put({
url: Api.knowledgeRebuildDoc,
params
}, { joinParamsToUrl: true })
}
/**
*
* @param params
*/
export const embeddingHitTest = (params: {
knowledgeId: string
query: string
topK?: number
}) => {
return defHttp.post<EmbeddingHitResult[]>({
url: Api.knowledgeEmbeddingHitTest,
params
})
}
/**
*
* @param params
*/
export const batchQueryKnowledgeById = (params: { ids: string }) => {
return defHttp.get<KnowledgeBase[]>({
url: '/airag/knowledge/query/batch/byId',
params
}, { isTransformResponse: false })
}