1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import type { PageParam, PageResult } from '@vben/request';
 
import { requestClient } from '#/api/request';
 
export namespace AiKnowledgeDocumentApi {
  export interface KnowledgeDocument {
    id: number; // 编号
    knowledgeId: number; // 知识库编号
    name: string; // 文档名称
    url: string; // 文档 URL
    contentLength: number; // 字符数
    tokens: number; // token 数
    segmentMaxTokens: number; // 分片最大 token 数
    retrievalCount: number; // 召回次数
    status: number; // 是否启用
  }
 
  export interface CreateDocumentParams {
    knowledgeId: number;
    name: string;
    url: string;
  }
 
  export interface CreateDocumentListParams {
    knowledgeId: number;
    segmentMaxTokens: number;
    list: Array<{ name: string; url: string }>;
  }
 
  export interface UpdateDocumentParams {
    id: number;
    name?: string;
    url?: string;
    segmentMaxTokens?: number;
  }
 
  export interface UpdateDocumentStatusParams {
    id: number;
    status: number;
  }
 
  export interface DocumentProgress {
    documentId: number;
    count: number;
    embeddingCount: number;
  }
}
 
/** 查询知识库文档分页 */
export function getKnowledgeDocumentPage(params: PageParam) {
  return requestClient.get<
    PageResult<AiKnowledgeDocumentApi.KnowledgeDocument>
  >('/ai/knowledge/document/page', { params });
}
 
/** 查询知识库文档详情 */
export function getKnowledgeDocument(id: number) {
  return requestClient.get<AiKnowledgeDocumentApi.KnowledgeDocument>(
    `/ai/knowledge/document/get?id=${id}`,
  );
}
 
/** 新增知识库文档(单个) */
export function createKnowledge(data: AiKnowledgeDocumentApi.CreateDocumentParams) {
  return requestClient.post('/ai/knowledge/document/create', data);
}
 
/** 新增知识库文档(多个) */
export function createKnowledgeDocumentList(
  data: AiKnowledgeDocumentApi.CreateDocumentListParams,
) {
  return requestClient.post('/ai/knowledge/document/create-list', data);
}
 
/** 修改知识库文档 */
export function updateKnowledgeDocument(
  data: AiKnowledgeDocumentApi.UpdateDocumentParams,
) {
  return requestClient.put('/ai/knowledge/document/update', data);
}
 
/** 修改知识库文档状态 */
export function updateKnowledgeDocumentStatus(
  data: AiKnowledgeDocumentApi.UpdateDocumentStatusParams,
) {
  return requestClient.put('/ai/knowledge/document/update-status', data);
}
 
/** 删除知识库文档 */
export function deleteKnowledgeDocument(id: number) {
  return requestClient.delete(`/ai/knowledge/document/delete?id=${id}`);
}
 
/** 处理文档(分段+向量化) */
export function processDocument(id: number) {
  return requestClient.post(`/ai/knowledge/document/process/${id}`);
}
 
/** 查询文档处理进度 */
export function getDocumentProgress(documentIds: number[]) {
  return requestClient.get<AiKnowledgeDocumentApi.DocumentProgress[]>(
    '/ai/knowledge/document/progress',
    { params: { documentIds: documentIds.join(',') } },
  );
}