Files
leaudit-platform-frontend/app/api/dify-dataset/api/datasetApi.ts
T
TanWenyan d53742948d feat: 知识库设置页面增加 retrieval_model 检索配置功能
1. 召回测试页面增加 Score 阈值参数配置
2. 知识库设置页面新增检索模型配置:
   - 检索方式 (向量/全文/混合/关键字检索)
   - Reranking 模型 (默认开启,不可关闭)
   - Top K 返回数量
   - Score 阈值 (默认开启,可调节数值)
3. 修复 Dify API 字段名问题 (retrieval_model_dict)
4. 优化数据加载流程,使用详情接口获取完整配置

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 22:07:16 +08:00

103 lines
2.5 KiB
TypeScript

/**
* Dify Dataset 知识库 API 模块
*
* 提供浏览器端调用 Dify 知识库管理 API 的函数
*
* @module api/dify-dataset/api/datasetApi
*/
import axios from 'axios';
import type { Dataset, DatasetsResponse, UpdateDatasetRequest } from '../type';
/**
* API 基础 URL
*/
const API_URL = '/api/dataset';
/**
* 获取知识库列表
*
* @param page - 页码,默认 1
* @param limit - 每页数量,默认 20
* @returns 知识库列表响应
*/
export async function fetchDatasets(
page: number = 1,
limit: number = 20
): Promise<DatasetsResponse> {
const params = new URLSearchParams({
page: page.toString(),
limit: limit.toString(),
});
const response = await axios.get<DatasetsResponse>(
`${API_URL}/datasets?${params}`,
{ withCredentials: true }
);
return response.data;
}
/**
* 获取单个知识库详情
*
* @param datasetId - 知识库 ID
* @returns 知识库详情
*/
export async function fetchDataset(datasetId: string): Promise<Dataset> {
const response = await axios.get<Dataset>(
`${API_URL}/datasets/${datasetId}`,
{ withCredentials: true }
);
return response.data;
}
/**
* 更新知识库名称
*
* 注意:仅允许修改知识库名称,其他字段不开放修改
*
* @param datasetId - 知识库 ID
* @param name - 新的知识库名称
* @returns 更新后的知识库详情
*/
export async function updateDatasetName(
datasetId: string,
name: string
): Promise<Dataset> {
console.log('[Dataset Client] 更新知识库名称:', { datasetId, name });
const response = await axios.patch<Dataset>(
`${API_URL}/datasets/${datasetId}`,
{ name },
{
headers: { 'Content-Type': 'application/json' },
withCredentials: true,
}
);
return response.data;
}
/**
* 更新知识库设置(包含检索模型配置)
*
* @param datasetId - 知识库 ID
* @param settings - 更新的设置项
* @returns 更新后的知识库详情
*/
export async function updateDatasetSettings(
datasetId: string,
settings: UpdateDatasetRequest
): Promise<Dataset> {
console.log('[Dataset Client] 更新知识库设置:', { datasetId, settings });
const response = await axios.patch<Dataset>(
`${API_URL}/datasets/${datasetId}`,
settings,
{
headers: { 'Content-Type': 'application/json' },
withCredentials: true,
}
);
return response.data;
}