import { Result } from '@/request/Result' import { get, post, del, put, exportExcel, exportFile } from '@/request/index' import type { Ref } from 'vue' import type { KeyValue } from '@/api/type/common' import type { pageRequest } from '@/api/type/common' import useStore from '@/stores' const prefix: any = { _value: '/workspace/' } Object.defineProperty(prefix, 'value', { get: function () { const { user } = useStore() return this._value + user.getWorkspaceId() + '/knowledge' }, }) /** * 文档分页列表 * @param 参数 knowledge_id, * param { " name": "string", } */ const getDocumentPage: ( knowledge_id: string, page: pageRequest, param: any, loading?: Ref, ) => Promise> = (knowledge_id, page, param, loading) => { return get( `${prefix.value}/${knowledge_id}/document/${page.current_page}/${page.page_size}`, param, loading, ) } /** * 文档详情 * @param 参数 knowledge_id */ const getDocumentDetail: (knowledge_id: string, document_id: string) => Promise> = ( knowledge_id, document_id, ) => { return get(`${prefix.value}/${knowledge_id}/document/${document_id}`) } /** * 修改文档 * @param 参数 * knowledge_id, document_id, * { "name": "string", "is_active": true, "meta": {} } */ const putDocument: ( knowledge_id: string, document_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, document_id, data: any, loading) => { return put(`${prefix.value}/${knowledge_id}/document/${document_id}`, data, undefined, loading) } /** * 删除文档 * @param 参数 knowledge_id, document_id, */ const delDocument: ( knowledge_id: string, document_id: string, loading?: Ref, ) => Promise> = (knowledge_id, document_id, loading) => { return del(`${prefix.value}/${knowledge_id}/document/${document_id}`, loading) } /** * 批量取消文档任务 * @param 参数 knowledge_id, *{ "id_list": [ "3fa85f64-5717-4562-b3fc-2c963f66afa6" ], "type": 0 } */ const putBatchCancelTask: ( knowledge_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, data, loading) => { return put( `${prefix.value}/${knowledge_id}/document/batch_cancel_task`, data, undefined, loading, ) } /** * 取消文档任务 * @param 参数 knowledge_id, document_id, */ const putCancelTask: ( knowledge_id: string, document_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, document_id, data, loading) => { return put( `${prefix.value}/${knowledge_id}/document/${document_id}/cancel_task`, data, undefined, loading, ) } /** * 下载原文档 * @param 参数 knowledge_id */ const getDownloadSourceFile: (knowledge_id: string, document_id: string) => Promise> = ( knowledge_id, document_id, ) => { return get(`${prefix.value}/${knowledge_id}/document/${document_id}/download_source_file`) } /** * 导出文档 * @param document_name 文档名称 * @param knowledge_id 数据集id * @param document_id 文档id * @param loading 加载器 * @returns */ const exportDocument: ( document_name: string, knowledge_id: string, document_id: string, loading?: Ref, ) => Promise = (document_name, knowledge_id, document_id, loading) => { return exportExcel( document_name + '.xlsx', `${prefix.value}/${knowledge_id}/document/${document_id}/export`, {}, loading, ) } /** * 导出文档 * @param document_name 文档名称 * @param knowledge_id 数据集id * @param document_id 文档id * @param loading 加载器 * @returns */ const exportDocumentZip: ( document_name: string, knowledge_id: string, document_id: string, loading?: Ref, ) => Promise = (document_name, knowledge_id, document_id, loading) => { return exportFile( document_name + '.zip', `${prefix.value}/${knowledge_id}/document/${document_id}/export_zip`, {}, loading, ) } /** * 刷新文档向量库 * @param 参数 * knowledge_id, document_id, * { "state_list": [ "string" ] } */ const putDocumentRefresh: ( knowledge_id: string, document_id: string, state_list: Array, loading?: Ref, ) => Promise> = (knowledge_id, document_id, state_list, loading) => { return put( `${prefix.value}/${knowledge_id}/document/${document_id}/refresh`, { state_list }, undefined, loading, ) } /** * 同步web站点类型 * @param 参数 * knowledge_id, document_id, */ const putDocumentSync: ( knowledge_id: string, document_id: string, loading?: Ref, ) => Promise> = (knowledge_id, document_id, loading) => { return put( `${prefix.value}/${knowledge_id}/document/${document_id}/sync`, undefined, undefined, loading, ) } /** * 创建批量文档 * @param 参数 { "name": "string", "paragraphs": [ { "content": "string", "title": "string", "problem_list": [ { "id": "string", "content": "string" } ], "is_active": true } ], "source_file_id": string } */ const putMulDocument: ( knowledge_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, data, loading) => { return put( `${prefix.value}/${knowledge_id}/document/batch_create`, data, {}, loading, 1000 * 60 * 5, ) } /** * 批量删除文档 * @param 参数 knowledge_id, * { "id_list": [String] } */ const delMulDocument: ( knowledge_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, data, loading) => { return del( `${prefix.value}/${knowledge_id}/document/bach_delete`, undefined, { id_list: data }, loading, ) } /** * 批量关联 * @param 参数 knowledge_id, { "document_id_list": [ "string" ], "model_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "prompt": "string", "state_list": [ "string" ] } */ const putBatchGenerateRelated: ( knowledge_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, data, loading) => { return put( `${prefix.value}/${knowledge_id}/document/batch_generate_related`, data, undefined, loading, ) } /** * 批量修改命中方式 * @param knowledge_id 知识库id * @param data * {id_list:[],hit_handling_method:'directly_return|optimization',directly_return_similarity} * @param loading * @returns */ const putBatchEditHitHandling: ( knowledge_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, data, loading) => { return put( `${prefix.value}/${knowledge_id}/document/batch_hit_handling`, data, undefined, loading, ) } /** * 批量刷新文档向量库 * @param knowledge_id 知识库id * @param data { "id_list": [ "string" ], "state_list": [ "string" ] } * @param loading * @returns */ const putBatchRefresh: ( knowledge_id: string, data: any, stateList: Array, loading?: Ref, ) => Promise> = (knowledge_id, data, stateList, loading) => { return put( `${prefix.value}/${knowledge_id}/document/batch_refresh`, { id_list: data, state_list: stateList }, undefined, loading, ) } /** * 批量同步文档 * @param 参数 knowledge_id, */ const putMulSyncDocument: ( knowledge_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, data, loading) => { return put( `${prefix.value}/${knowledge_id}/document/batch_sync`, { id_list: data }, undefined, loading, ) } /** * 批量迁移文档 * @param 参数 knowledge_id,target_knowledge_id, */ const putMigrateMulDocument: ( knowledge_id: string, target_knowledge_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, target_knowledge_id, data, loading) => { return put( `${prefix.value}/${knowledge_id}/document/migrate/${target_knowledge_id}`, data, undefined, loading, ) } /** * 导入QA文档 * @param 参数 * file } */ const postQADocument: ( knowledge_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, data, loading) => { return post(`${prefix.value}/${knowledge_id}/document/qa`, data, undefined, loading) } /** * 分段预览(上传文档) * @param 参数 file:file,limit:number,patterns:array,with_filter:boolean */ const postSplitDocument: (knowledge_id: string, data: any) => Promise> = ( knowledge_id, data, ) => { return post( `${prefix.value}/${knowledge_id}/document/split`, data, undefined, undefined, 1000 * 60 * 60, ) } /** * 分段标识列表 * @param loading 加载器 * @returns 分段标识列表 */ const listSplitPattern: ( knowledge_id: string, loading?: Ref, ) => Promise>>> = (knowledge_id, loading) => { return get(`${prefix.value}/${knowledge_id}/document/split_pattern`, {}, loading) } /** * 导入表格 * @param 参数 * file */ const postTableDocument: ( knowledge_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, data, loading) => { return post(`${prefix.value}/${knowledge_id}/document/table`, data, undefined, loading) } /** * 获得QA模版 * @param 参数 fileName,type, */ const exportQATemplate: (fileName: string, type: string, loading?: Ref) => void = ( fileName, type, loading, ) => { return exportExcel(fileName, `/workspace/knowledge/document/template/export`, { type }, loading) } /** * 获得table模版 * @param 参数 fileName,type, */ const exportTableTemplate: (fileName: string, type: string, loading?: Ref) => void = ( fileName, type, loading, ) => { return exportExcel( fileName, `/workspace/knowledge/document/table_template/export`, { type }, loading, ) } /** * 创建Web站点文档 * @param 参数 * { "source_url_list": [ "string" ], "selector": "string" } } */ const postWebDocument: ( knowledge_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, data, loading) => { return post(`${prefix.value}/${knowledge_id}/document/web`, data, undefined, loading) } /** * 飞书导入获得相关文档 * @param 参数 * { "source_url_list": [ "string" ], "selector": "string" } } */ const getLarkDocumentList: ( knowledge_id: string, folder_token: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, folder_token, data, loading) => { return post( `${prefix.value}/lark/${knowledge_id}/${folder_token}/doc_list`, data, undefined, loading, ) } /** * 同步飞书文档 */ const putLarkDocumentSync: ( knowledge_id: string, document_id: string, loading?: Ref, ) => Promise> = (knowledge_id, document_id, loading) => { return put( `${prefix.value}/lark/${knowledge_id}/document/${document_id}/sync`, undefined, undefined, loading, ) } /** * 批量同步飞书文档 */ const putMulLarkSyncDocument: ( knowledge_id: string, data: any, loading?: Ref, ) => Promise> = (knowledge_id, data, loading) => { return put(`${prefix.value}/lark/${knowledge_id}/_batch`, { id_list: data }, undefined, loading) } /** * 导入飞书文档 */ const importLarkDocument: ( knowledge_id: string, data: any, loading?: Ref ) => Promise>> = (knowledge_id, data, loading) => { return post(`${prefix.value}/lark/${knowledge_id}/import`, data, null, loading) } // todo const getAllDocument: (knowledge_id: string, loading?: Ref) => Promise> = ( knowledge_id, loading, ) => { return get(`${prefix.value}/${knowledge_id}/document`, undefined, loading) } export default { getDocumentPage, getDocumentDetail, putDocument, delDocument, putBatchCancelTask, putCancelTask, getDownloadSourceFile, exportDocument, exportDocumentZip, putDocumentRefresh, putDocumentSync, putMulDocument, delMulDocument, putBatchGenerateRelated, putBatchEditHitHandling, putBatchRefresh, putMulSyncDocument, putMigrateMulDocument, postQADocument, postSplitDocument, listSplitPattern, postTableDocument, exportQATemplate, exportTableTemplate, postWebDocument, getLarkDocumentList, putLarkDocumentSync, putMulLarkSyncDocument, importLarkDocument }