2025-08-24 22:32:37 +08:00
|
|
|
|
import { apiAdminGet, apiAdminPost, apiAdminPut, apiAdminDelete } from './base'
|
2025-07-22 17:29:38 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 知识库管理API模块
|
|
|
|
|
|
* 包含数据库管理、文档管理、查询接口等功能
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
|
// === 数据库管理分组 ===
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
export const databaseApi = {
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取所有知识库
|
|
|
|
|
|
* @returns {Promise} - 知识库列表
|
|
|
|
|
|
*/
|
|
|
|
|
|
getDatabases: async () => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminGet('/api/knowledge/databases')
|
2025-07-22 17:29:38 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 创建知识库
|
|
|
|
|
|
* @param {Object} databaseData - 知识库数据
|
|
|
|
|
|
* @returns {Promise} - 创建结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
createDatabase: async (databaseData) => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminPost('/api/knowledge/databases', databaseData)
|
2025-07-22 17:29:38 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取知识库详细信息
|
|
|
|
|
|
* @param {string} dbId - 知识库ID
|
|
|
|
|
|
* @returns {Promise} - 知识库信息
|
|
|
|
|
|
*/
|
|
|
|
|
|
getDatabaseInfo: async (dbId) => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminGet(`/api/knowledge/databases/${dbId}`)
|
2025-07-22 17:29:38 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 更新知识库信息
|
|
|
|
|
|
* @param {string} dbId - 知识库ID
|
|
|
|
|
|
* @param {Object} updateData - 更新数据
|
|
|
|
|
|
* @returns {Promise} - 更新结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
updateDatabase: async (dbId, updateData) => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminPut(`/api/knowledge/databases/${dbId}`, updateData)
|
2025-07-22 17:29:38 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 删除知识库
|
|
|
|
|
|
* @param {string} dbId - 知识库ID
|
|
|
|
|
|
* @returns {Promise} - 删除结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
deleteDatabase: async (dbId) => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminDelete(`/api/knowledge/databases/${dbId}`)
|
2025-07-22 17:29:38 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
|
// === 文档管理分组 ===
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
export const documentApi = {
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 添加文档到知识库
|
|
|
|
|
|
* @param {string} dbId - 知识库ID
|
|
|
|
|
|
* @param {Array} items - 文档列表
|
|
|
|
|
|
* @param {Object} params - 处理参数
|
|
|
|
|
|
* @returns {Promise} - 添加结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
addDocuments: async (dbId, items, params = {}) => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminPost(`/api/knowledge/databases/${dbId}/documents`, {
|
2025-07-22 17:29:38 +08:00
|
|
|
|
items,
|
|
|
|
|
|
params
|
2025-08-24 22:32:37 +08:00
|
|
|
|
})
|
2025-07-22 17:29:38 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取文档信息
|
|
|
|
|
|
* @param {string} dbId - 知识库ID
|
|
|
|
|
|
* @param {string} docId - 文档ID
|
|
|
|
|
|
* @returns {Promise} - 文档信息
|
|
|
|
|
|
*/
|
|
|
|
|
|
getDocumentInfo: async (dbId, docId) => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminGet(`/api/knowledge/databases/${dbId}/documents/${docId}`)
|
2025-07-22 17:29:38 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 删除文档
|
|
|
|
|
|
* @param {string} dbId - 知识库ID
|
|
|
|
|
|
* @param {string} docId - 文档ID
|
|
|
|
|
|
* @returns {Promise} - 删除结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
deleteDocument: async (dbId, docId) => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminDelete(`/api/knowledge/databases/${dbId}/documents/${docId}`)
|
2025-09-21 23:48:56 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 下载文档
|
|
|
|
|
|
* @param {string} dbId - 知识库ID
|
|
|
|
|
|
* @param {string} docId - 文档ID
|
|
|
|
|
|
* @returns {Promise} - Response对象
|
|
|
|
|
|
*/
|
|
|
|
|
|
downloadDocument: async (dbId, docId) => {
|
|
|
|
|
|
return apiAdminGet(`/api/knowledge/databases/${dbId}/documents/${docId}/download`, {}, 'blob')
|
2025-07-22 17:29:38 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
|
// === 查询分组 ===
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
export const queryApi = {
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 查询知识库
|
|
|
|
|
|
* @param {string} dbId - 知识库ID
|
|
|
|
|
|
* @param {string} query - 查询文本
|
|
|
|
|
|
* @param {Object} meta - 查询参数
|
|
|
|
|
|
* @returns {Promise} - 查询结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
queryKnowledgeBase: async (dbId, query, meta = {}) => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminPost(`/api/knowledge/databases/${dbId}/query`, {
|
2025-07-22 17:29:38 +08:00
|
|
|
|
query,
|
|
|
|
|
|
meta
|
2025-08-24 22:32:37 +08:00
|
|
|
|
})
|
2025-07-22 17:29:38 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 测试查询知识库
|
|
|
|
|
|
* @param {string} dbId - 知识库ID
|
|
|
|
|
|
* @param {string} query - 查询文本
|
|
|
|
|
|
* @param {Object} meta - 查询参数
|
|
|
|
|
|
* @returns {Promise} - 测试结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
queryTest: async (dbId, query, meta = {}) => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminPost(`/api/knowledge/databases/${dbId}/query-test`, {
|
2025-07-22 17:29:38 +08:00
|
|
|
|
query,
|
|
|
|
|
|
meta
|
2025-08-24 22:32:37 +08:00
|
|
|
|
})
|
2025-07-22 17:29:38 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取知识库查询参数
|
|
|
|
|
|
* @param {string} dbId - 知识库ID
|
|
|
|
|
|
* @returns {Promise} - 查询参数
|
|
|
|
|
|
*/
|
|
|
|
|
|
getKnowledgeBaseQueryParams: async (dbId) => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminGet(`/api/knowledge/databases/${dbId}/query-params`)
|
2025-07-22 17:29:38 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
|
// === 文件管理分组 ===
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
export const fileApi = {
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 上传文件
|
|
|
|
|
|
* @param {File} file - 文件对象
|
|
|
|
|
|
* @param {string} dbId - 知识库ID(可选)
|
|
|
|
|
|
* @returns {Promise} - 上传结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
uploadFile: async (file, dbId = null) => {
|
|
|
|
|
|
const formData = new FormData()
|
|
|
|
|
|
formData.append('file', file)
|
2025-07-24 00:46:15 +08:00
|
|
|
|
|
|
|
|
|
|
const url = dbId
|
2025-07-22 17:29:38 +08:00
|
|
|
|
? `/api/knowledge/files/upload?db_id=${dbId}`
|
|
|
|
|
|
: '/api/knowledge/files/upload'
|
2025-07-24 00:46:15 +08:00
|
|
|
|
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminPost(url, formData, {
|
2025-07-22 17:29:38 +08:00
|
|
|
|
headers: {
|
|
|
|
|
|
'Content-Type': 'multipart/form-data'
|
|
|
|
|
|
}
|
2025-08-24 22:32:37 +08:00
|
|
|
|
})
|
2025-10-11 10:36:57 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取支持的文件类型
|
|
|
|
|
|
* @returns {Promise} - 文件类型列表
|
|
|
|
|
|
*/
|
|
|
|
|
|
getSupportedFileTypes: async () => {
|
|
|
|
|
|
return apiAdminGet('/api/knowledge/files/supported-types')
|
2025-07-22 17:29:38 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
|
// === 知识库类型分组 ===
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
export const typeApi = {
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取支持的知识库类型
|
|
|
|
|
|
* @returns {Promise} - 知识库类型列表
|
|
|
|
|
|
*/
|
|
|
|
|
|
getKnowledgeBaseTypes: async () => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminGet('/api/knowledge/types')
|
2025-07-22 17:29:38 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取知识库统计信息
|
|
|
|
|
|
* @returns {Promise} - 统计信息
|
|
|
|
|
|
*/
|
|
|
|
|
|
getStatistics: async () => {
|
2025-08-24 22:32:37 +08:00
|
|
|
|
return apiAdminGet('/api/knowledge/stats')
|
2025-07-22 17:29:38 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-09-22 22:02:57 +08:00
|
|
|
|
// =============================================================================
|
|
|
|
|
|
// === Embedding模型状态检查分组 ===
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
export const embeddingApi = {
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取指定embedding模型的状态
|
|
|
|
|
|
* @param {string} modelId - 模型ID
|
|
|
|
|
|
* @returns {Promise} - 模型状态
|
|
|
|
|
|
*/
|
|
|
|
|
|
getModelStatus: async (modelId) => {
|
|
|
|
|
|
return apiAdminGet(`/api/knowledge/embedding-models/${modelId}/status`)
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取所有embedding模型的状态
|
|
|
|
|
|
* @returns {Promise} - 所有模型状态
|
|
|
|
|
|
*/
|
|
|
|
|
|
getAllModelsStatus: async () => {
|
|
|
|
|
|
return apiAdminGet('/api/knowledge/embedding-models/status')
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|