1- import { get , put } from '../../core/request'
1+ import { del , downloadRequest , get , getExportFile , post , put } from '../../core/request'
22import type { ParamsPage , ResponsePage } from '../../core/types'
3- import type { Dict , DocumentItem , DocumentQuickCreatePayload } from '@/api/types'
3+ import type {
4+ Dict ,
5+ DocumentGeneratePayload ,
6+ DocumentItem ,
7+ DocumentQuickCreatePayload ,
8+ DocumentSettingPayload ,
9+ DocumentTaskState ,
10+ DocumentTaskType ,
11+ KnowledgeTagGroup ,
12+ } from '@/api/types'
413import { getWorkspaceId } from '@/utils/resource-context'
514
615const getPrefix = ( knowledgeId : string ) => `/workspace/${ getWorkspaceId ( ) } /knowledge/${ knowledgeId } /document`
@@ -13,4 +22,97 @@ const getDocumentPage = (knowledgeId: string, page: ParamsPage, query?: Dict<unk
1322const putQuickCreateDocuments = ( knowledgeId : string , documents : DocumentQuickCreatePayload [ ] ) =>
1423 put < DocumentQuickCreatePayload [ ] , DocumentItem [ ] > ( `${ getPrefix ( knowledgeId ) } /batch_create` , documents )
1524
16- export default { getDocumentPage, putQuickCreateDocuments }
25+ /** 更新文档启用状态。 */
26+ const putDocumentActive = ( knowledgeId : string , documentId : string , isActive : boolean ) =>
27+ put ( `${ getPrefix ( knowledgeId ) } /${ documentId } ` , { is_active : isActive } )
28+
29+ /** 删除单个文档。 */
30+ const deleteDocument = ( knowledgeId : string , documentId : string ) => del ( `${ getPrefix ( knowledgeId ) } /${ documentId } ` )
31+
32+ /** 批量删除文档。 */
33+ const putBatchDeleteDocuments = ( knowledgeId : string , documentIds : string [ ] ) =>
34+ put ( `${ getPrefix ( knowledgeId ) } /batch_delete` , { id_list : documentIds } )
35+
36+ /** 批量提交文档向量化。 */
37+ const putBatchRefreshDocuments = ( knowledgeId : string , documentIds : string [ ] , stateList : DocumentTaskState [ ] ) =>
38+ put ( `${ getPrefix ( knowledgeId ) } /batch_refresh` , { id_list : documentIds , state_list : stateList } )
39+
40+ /** 批量提交文档分词索引。 */
41+ const putBatchTokenizeDocuments = ( knowledgeId : string , documentIds : string [ ] , stateList : DocumentTaskState [ ] ) =>
42+ put ( `${ getPrefix ( knowledgeId ) } /batch_tokenize` , { id_list : documentIds , state_list : stateList } )
43+
44+ /** 批量取消指定文档任务。 */
45+ const putBatchCancelDocumentTask = ( knowledgeId : string , documentIds : string [ ] , taskType : DocumentTaskType ) =>
46+ put ( `${ getPrefix ( knowledgeId ) } /batch_cancel_task` , { id_list : documentIds , type : taskType } )
47+
48+ /** 保存单个文档的召回及来源设置。 */
49+ const putDocumentSetting = ( knowledgeId : string , documentId : string , data : DocumentSettingPayload ) =>
50+ put ( `${ getPrefix ( knowledgeId ) } /${ documentId } ` , data )
51+
52+ /** 批量保存文档召回设置。 */
53+ const putBatchDocumentSetting = ( knowledgeId : string , documentIds : string [ ] , data : DocumentSettingPayload ) =>
54+ put ( `${ getPrefix ( knowledgeId ) } /batch_hit_handling` , { ...data , id_list : documentIds } )
55+
56+ /** 根据文档内容生成关联问题。 */
57+ const putGenerateDocumentQuestions = ( knowledgeId : string , data : DocumentGeneratePayload ) =>
58+ put ( `${ getPrefix ( knowledgeId ) } /batch_generate_related` , data )
59+
60+ /** 将选中文档迁移至目标知识库。 */
61+ const putMigrateDocuments = ( knowledgeId : string , targetKnowledgeId : string , documentIds : string [ ] ) =>
62+ put ( `${ getPrefix ( knowledgeId ) } /migrate/${ targetKnowledgeId } ` , documentIds )
63+
64+ /** 同步 Web 文档。 */
65+ const putSyncDocuments = ( knowledgeId : string , documentIds : string [ ] ) => put ( `${ getPrefix ( knowledgeId ) } /batch_sync` , { id_list : documentIds } )
66+
67+ /** 同步飞书文档。 */
68+ const putSyncLarkDocuments = ( knowledgeId : string , documentIds : string [ ] ) =>
69+ put ( `/workspace/${ getWorkspaceId ( ) } /knowledge/lark/${ knowledgeId } /_batch` , { id_list : documentIds } )
70+
71+ /** 导出所选文档为 Excel 或 ZIP。 */
72+ const exportDocuments = ( knowledgeId : string , documentIds : string [ ] , format : 'excel' | 'zip' ) =>
73+ downloadRequest ( `${ getPrefix ( knowledgeId ) } /${ format === 'excel' ? 'batch_export' : 'batch_export_zip' } ` , 'POST' , documentIds )
74+
75+ /** 下载文档原文件。 */
76+ const downloadDocumentSource = ( knowledgeId : string , document : DocumentItem ) =>
77+ getExportFile ( document . name , `${ getPrefix ( knowledgeId ) } /${ document . id } /download_source_file` )
78+
79+ /** 替换文档原文件。 */
80+ const postReplaceDocumentSource = ( knowledgeId : string , documentId : string , file : File ) => {
81+ const data = new FormData ( )
82+ data . append ( 'file' , file )
83+ return post ( `${ getPrefix ( knowledgeId ) } /${ documentId } /replace_source_file` , data )
84+ }
85+
86+ /** 查询文档当前标签。 */
87+ const getDocumentTags = ( knowledgeId : string , documentId : string ) => get < KnowledgeTagGroup [ ] > ( `${ getPrefix ( knowledgeId ) } /${ documentId } /tags` )
88+
89+ /** 批量添加文档标签。 */
90+ const postAddDocumentTags = ( knowledgeId : string , documentIds : string [ ] , tagIds : string [ ] ) =>
91+ post ( `${ getPrefix ( knowledgeId ) } /batch_add_tag` , { document_ids : documentIds , tag_ids : tagIds } )
92+
93+ /** 移除文档标签关联。 */
94+ const putDeleteDocumentTags = ( knowledgeId : string , documentId : string , tagIds : string [ ] ) =>
95+ put ( `${ getPrefix ( knowledgeId ) } /${ documentId } /tags/batch_delete` , tagIds )
96+
97+ export default {
98+ getDocumentPage,
99+ putQuickCreateDocuments,
100+ putDocumentActive,
101+ deleteDocument,
102+ putBatchDeleteDocuments,
103+ putBatchRefreshDocuments,
104+ putBatchTokenizeDocuments,
105+ putBatchCancelDocumentTask,
106+ putDocumentSetting,
107+ putBatchDocumentSetting,
108+ putGenerateDocumentQuestions,
109+ putMigrateDocuments,
110+ putSyncDocuments,
111+ putSyncLarkDocuments,
112+ exportDocuments,
113+ downloadDocumentSource,
114+ postReplaceDocumentSource,
115+ getDocumentTags,
116+ postAddDocumentTags,
117+ putDeleteDocumentTags,
118+ }
0 commit comments