3 小时以前 16697df76d7b27ff65d229937b3f3ac4cc0e56a0
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
import request from "@/utils/request";
import { getToken } from '@/utils/auth';
 
/**
 * 知识库管理接口
 * 传参规范:
 * - GET请求: 使用 params
 * - POST请求: 使用 data
 * - DELETE请求: 使用 data
 * - 流式请求: 使用 Fetch API
 */
 
// ==================== 知识库CRUD接口 ====================
 
/**
 * 查询知识库列表
 * @param {Object} query - 查询参数
 * @param {number} query.current - 当前页码(必填)
 * @param {number} query.size - 每页条数(必填)
 * @param {string} [query.title] - 知识标题(可选,模糊搜索)
 * @param {string} [query.type] - 知识类型(可选,精确匹配)
 * @returns {Promise}
 */
export function listKnowledgeBase(query) {
  return request({
    url: "/knowledgeBase/getList",
    method: "get",
    params: query,  // GET请求使用params
  });
}
 
/**
 * 新增知识库
 * @param {Object} data - 知识库数据
 * @param {string} data.title - 知识标题(必填)
 * @param {string} data.type - 知识类型(必填)
 * @param {string} [data.scenario] - 适用场景(可选)
 * @param {string} [data.efficiency] - 解决效率(可选)
 * @param {string} data.problem - 问题描述(必填)
 * @param {string} data.solution - 解决方案(必填)
 * @param {string} [data.keyPoints] - 关键要点(可选)
 * @param {string} [data.creator] - 创建人(可选)
 * @param {number} [data.usageCount=0] - 使用次数(可选)
 * @returns {Promise}
 */
export function addKnowledgeBase(data) {
  return request({
    url: "/knowledgeBase/add",
    method: "post",
    data: data,  // POST请求使用data
  });
}
 
/**
 * 修改知识库
 * @param {Object} data - 知识库数据
 * @param {number} data.id - 知识库ID(必填)
 * @param {string} data.title - 知识标题(必填)
 * @param {string} data.type - 知识类型(必填)
 * @returns {Promise}
 */
export function updateKnowledgeBase(data) {
  return request({
    url: "/knowledgeBase/update",
    method: "post",
    data: data,  // POST请求使用data
  });
}
 
/**
 * 删除知识库(支持批量删除)
 * @param {number[]} ids - 知识库ID数组
 * @returns {Promise}
 */
export function delKnowledgeBase(ids) {
  return request({
    url: "/knowledgeBase/delete",
    method: "delete",
    data: ids,  // DELETE请求使用data传递数组
  });
}
 
// ==================== 文件管理接口 ====================
 
/**
 * 查询知识库文件向量化状态
 * @param {number} knowledgeBaseId - 知识库ID
 * @returns {Promise} 返回文件列表及向量化状态
 */
export function getVectorStatus(knowledgeBaseId) {
  return request({
    url: `/knowledgeBase/vector/status/${knowledgeBaseId}`,
    method: "get",
  });
}
 
/**
 * 保存知识库文件关联(触发向量化)
 * @param {Object} data - 文件关联数据
 * @param {number} data.knowledgeBaseId - 知识库ID(必填)
 * @param {number[]} data.storageBlobIds - 文件blob ID数组(必填)
 * @returns {Promise}
 */
export function saveKnowledgeBaseFiles(data) {
  return request({
    url: "/knowledgeBase/file/save",
    method: "post",
    data: data,  // POST请求使用data
  });
}
 
/**
 * 删除知识库文件
 * @param {number[]} ids - 向量记录ID数组
 * @returns {Promise}
 */
export function deleteKnowledgeBaseFile(ids) {
  return request({
    url: "/knowledgeBase/file/delete",
    method: "delete",
    data: ids,  // DELETE请求使用data传递数组
  });
}
 
/**
 * 重新向量化文件
 * @param {number} vectorId - 向量记录ID
 * @returns {Promise}
 */
export function reprocessVector(vectorId) {
  return request({
    url: `/knowledgeBase/vector/reprocess/${vectorId}`,
    method: "post",
  });
}
 
// ==================== 知识问答接口 ====================
 
/**
 * 知识库问答(流式)
 * 后端接口: POST /ai/knowledge/chat
 * 响应类型: text/stream;charset=utf-8 (Spring Flux<String>)
 *
 * @param {Object} data - 问答参数
 * @param {number} data.knowledgeBaseId - 知识库ID(必填)
 * @param {string} data.memoryId - 会话ID(必填,用于保持上下文)
 * @param {string} data.question - 用户问题(必填)
 * @returns {Promise<Response>} 返回Fetch Response对象
 */
export function knowledgeChat(data) {
  const token = getToken();
  return fetch(import.meta.env.VITE_APP_BASE_API + '/ai/knowledge/chat', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer ' + token
    },
    body: JSON.stringify(data)
  });
}
 
/**
 * 查询知识库问答历史
 * @param {string} memoryId - 会话ID
 * @returns {Promise}
 */
export function getKnowledgeHistory(memoryId) {
  return request({
    url: `/ai/knowledge/history/${memoryId}`,
    method: "get",
  });
}