All checks were successful
Deploy Noval to K3s / deploy (push) Successful in 47s
- **文件管理**: - 支持文件上传、解析和删除。 - 限制支持格式(txt, md, docx, pdf),最大 10MB。 - 提供前端上传区、文件列表及后端解析服务。 - **技能管理**: - 新增技能的创建、更新及删除功能。 - 支持分配自定义提示词和工具权限。 - 提供技能列表及分组工具选择交互界面。 同时调整相关 API 和前端组件,优化协作体验。
40 lines
957 B
TypeScript
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}`)
|
|
}
|