Files
NovalRedot/frontend/src/api/files.ts
ROOG b39377e487
All checks were successful
Deploy Noval to K3s / deploy (push) Successful in 47s
新增文件管理与技能管理功能:
- **文件管理**:
  - 支持文件上传、解析和删除。
  - 限制支持格式(txt, md, docx, pdf),最大 10MB。
  - 提供前端上传区、文件列表及后端解析服务。

- **技能管理**:
  - 新增技能的创建、更新及删除功能。
  - 支持分配自定义提示词和工具权限。
  - 提供技能列表及分组工具选择交互界面。

同时调整相关 API 和前端组件,优化协作体验。
2026-03-22 23:50:14 +08:00

40 lines
957 B
TypeScript

import { http } from './client'
export interface NovelFile {
id: number
novel_id: number
filename: string
file_size: number
mime_type: string
text_length: number
created_at: string
}
export interface FileList {
items: NovelFile[]
total: number
}
/** 上传文件 */
export async function uploadFile(novelId: number, file: File): Promise<NovelFile> {
const form = new FormData()
form.append('file', file)
const { data } = await http.post<NovelFile>(
`/novels/${novelId}/files`,
form,
{ headers: { 'Content-Type': 'multipart/form-data' }, timeout: 60000 },
)
return data
}
/** 列出文件 */
export async function listFiles(novelId: number): Promise<FileList> {
const { data } = await http.get<FileList>(`/novels/${novelId}/files`)
return data
}
/** 删除文件 */
export async function deleteFile(novelId: number, fileId: number): Promise<void> {
await http.delete(`/novels/${novelId}/files/${fileId}`)
}