Files
YG_FT/frontend/src/api/modules/dataset.ts
wuyongtao 2adf78a6ed feat: 数据集下载鉴权、MinIO 发布与数据库兼容增强
- 数据集下载接口鉴权:单文件直接返回、多文件打包 ZIP,前端统一走请求客户端携带 Token
- 预检/同步支持 MinIO 对象补建与资源副本记录,兼容接入 MinIO 前的历史数据集
- create_dataset 增加名称重复校验,软删记录释放名称并保留墓碑
- 数据处理发布结果支持写入 MinIO storage_objects 并关联 dataset_file
- 数据存储根目录支持 YG_FT_DATA_ROOT 环境变量
- SQL 迁移兼容旧版 approval_steps / retention_policies / data_process_results
- 训练日志图表按曲线独立过滤缺失采样点

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-18 14:45:16 +08:00

117 lines
4.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { get, post, put, del } from '../request'
import type {
DatasetItem,
DatasetRecordSource,
DatasetVersion,
DatasetVersionList,
} from '@/types'
export type { DatasetItem }
/** 数据集列表 */
export const getDatasetList = () => get<DatasetItem[]>('/dataset-manage')
/** 数据集详情 */
export const getDataset = (id: string | number) => get<DatasetItem>(`/dataset-manage/${id}`)
/** 创建数据集 */
export const createDataset = (data: Partial<DatasetItem>) =>
post<{ id: string | number }>('/dataset-manage', data)
/** 更新数据集 */
export const updateDataset = (id: string | number, data: Partial<DatasetItem>) =>
put(`/dataset-manage/${id}`, data)
/** 删除数据集 */
export const deleteDataset = (id: string | number) => del(`/dataset-manage/${id}`)
/** 上传数据集文件multipart字段名 files */
export const uploadDatasetFiles = (datasetId: string | number, files: File[]) => {
const formData = new FormData()
files.forEach((f) => formData.append('files', f))
return post(`/dataset-manage/upload/${datasetId}`, formData, {
headers: { 'Content-Type': 'multipart/form-data' },
timeout: 120000,
})
}
/** 预览数据集文件内容 */
export const previewDatasetFile = (fileId: string | number) =>
get<{ content: string }>(`/dataset-manage/preview/${encodeURIComponent(fileId)}`)
/** 获取发布样本所关联的原文参照 */
export const getDatasetFileRecordSources = (fileId: string | number) =>
get<{ items: DatasetRecordSource[] }>(
`/dataset-manage/records/${encodeURIComponent(fileId)}/sources`,
)
/** 数据集文件版本列表 */
export const getDatasetFileVersions = (fileId: string | number) =>
get<DatasetVersionList>(`/dataset-manage/versions/${encodeURIComponent(fileId)}`)
/** 读取指定历史版本内容(不改变当前版本) */
export const getDatasetFileVersionContent = (fileId: string | number, versionId: string) =>
get<{ version: DatasetVersion; content: string }>(
`/dataset-manage/versions/${encodeURIComponent(fileId)}/${encodeURIComponent(versionId)}`,
)
/** 保存为新版本,并自动设为当前版本 */
export const createDatasetFileVersion = (
fileId: string | number,
content: string,
options: {
description?: string
baseVersionId: string
expectedCurrentVersionId: string
},
) =>
post<{ version: DatasetVersion; content: string }>(
`/dataset-manage/versions/${encodeURIComponent(fileId)}`,
{
content,
description: options.description || '在线编辑',
base_version_id: options.baseVersionId,
expected_current_version_id: options.expectedCurrentVersionId,
},
)
/** 切换当前使用的数据集版本 */
export const activateDatasetFileVersion = (
fileId: string | number,
versionId: string,
expectedCurrentVersionId: string,
) =>
put<{ version: DatasetVersion; content: string }>(
`/dataset-manage/versions/${encodeURIComponent(fileId)}/active`,
{ version_id: versionId, expected_current_version_id: expectedCurrentVersionId },
)
/** 删除非当前、非初始的历史版本 */
export const deleteDatasetFileVersion = (
fileId: string | number,
versionId: string,
expectedCurrentVersionId: string,
) =>
del<DatasetVersionList>(
`/dataset-manage/versions/${encodeURIComponent(fileId)}/${encodeURIComponent(versionId)}`,
{ expected_current_version_id: expectedCurrentVersionId },
)
/** 下载文件 URL */
export const downloadFileUrl = (
datasetId: string | number,
fileId: string | number,
versionId?: string,
) => {
const baseUrl = `/dataset-manage/download/${datasetId}/${fileId}`
return versionId ? `${baseUrl}?version_id=${encodeURIComponent(versionId)}` : baseUrl
}
/** 打包下载数据集 URL */
export const downloadDatasetUrl = (datasetId: string | number) =>
`/dataset-manage/download/${datasetId}`
/** 通过统一请求客户端下载数据集,确保携带登录 Token。 */
export const downloadDataset = (datasetId: string | number) =>
get<unknown>(downloadDatasetUrl(datasetId), undefined, { responseType: 'blob' })