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) * * @param {Object} data - 问答参数 * @param {number} data.knowledgeBaseId - 知识库ID(必填) * @param {string} data.memoryId - 会话ID(必填,用于保持上下文) * @param {string} data.question - 用户问题(必填) * @returns {Promise} 返回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", }); }