2025-05-07 14:29:01 +08:00
|
|
|
import type { MutationOptions } from '@tanstack/react-query'
|
2025-05-07 11:30:13 +08:00
|
|
|
import { useMutation, useQuery } from '@tanstack/react-query'
|
2025-05-07 18:09:38 +08:00
|
|
|
import { del, get, patch, post } from './base'
|
2025-05-07 11:30:13 +08:00
|
|
|
import type {
|
2025-05-07 14:29:01 +08:00
|
|
|
DeletePipelineResponse,
|
2025-05-07 11:30:13 +08:00
|
|
|
ExportPipelineDSLResponse,
|
2025-05-07 18:09:38 +08:00
|
|
|
ImportPipelineDSLRequest,
|
|
|
|
ImportPipelineDSLResponse,
|
2025-05-07 11:30:13 +08:00
|
|
|
PipelineTemplateByIdResponse,
|
|
|
|
PipelineTemplateListParams,
|
|
|
|
PipelineTemplateListResponse,
|
2025-05-07 14:29:01 +08:00
|
|
|
UpdatePipelineInfoRequest,
|
|
|
|
UpdatePipelineInfoResponse,
|
2025-05-07 11:30:13 +08:00
|
|
|
} from '@/models/pipeline'
|
|
|
|
|
|
|
|
const NAME_SPACE = 'pipeline'
|
|
|
|
|
|
|
|
export const usePipelineTemplateList = (params: PipelineTemplateListParams) => {
|
|
|
|
return useQuery<PipelineTemplateListResponse>({
|
|
|
|
queryKey: [NAME_SPACE, 'template', 'list'],
|
|
|
|
queryFn: () => {
|
|
|
|
return get<PipelineTemplateListResponse>('/rag/pipeline/template', { params })
|
|
|
|
},
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
2025-05-07 18:09:38 +08:00
|
|
|
export const usePipelineTemplateById = (templateId: string, enabled: boolean) => {
|
2025-05-07 11:30:13 +08:00
|
|
|
return useQuery<PipelineTemplateByIdResponse>({
|
|
|
|
queryKey: [NAME_SPACE, 'template', templateId],
|
|
|
|
queryFn: () => {
|
|
|
|
return get<PipelineTemplateByIdResponse>(`/rag/pipeline/template/${templateId}`)
|
|
|
|
},
|
2025-05-07 18:09:38 +08:00
|
|
|
enabled,
|
2025-05-07 11:30:13 +08:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
2025-05-07 14:29:01 +08:00
|
|
|
export const useUpdatePipelineInfo = (
|
|
|
|
mutationOptions: MutationOptions<UpdatePipelineInfoResponse, Error, UpdatePipelineInfoRequest> = {},
|
|
|
|
) => {
|
2025-05-07 11:30:13 +08:00
|
|
|
return useMutation({
|
|
|
|
mutationKey: [NAME_SPACE, 'template', 'update'],
|
2025-05-07 14:29:01 +08:00
|
|
|
mutationFn: (request: UpdatePipelineInfoRequest) => {
|
|
|
|
const { pipeline_id, ...rest } = request
|
|
|
|
return patch<UpdatePipelineInfoResponse>(`/rag/pipeline/${pipeline_id}`, {
|
2025-05-07 11:30:13 +08:00
|
|
|
body: rest,
|
|
|
|
})
|
|
|
|
},
|
2025-05-07 14:29:01 +08:00
|
|
|
...mutationOptions,
|
2025-05-07 11:30:13 +08:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
2025-05-07 14:29:01 +08:00
|
|
|
export const useDeletePipeline = (
|
|
|
|
mutationOptions: MutationOptions<DeletePipelineResponse, Error, string> = {},
|
|
|
|
) => {
|
2025-05-07 11:30:13 +08:00
|
|
|
return useMutation({
|
|
|
|
mutationKey: [NAME_SPACE, 'template', 'delete'],
|
|
|
|
mutationFn: (pipelineId: string) => {
|
2025-05-07 14:29:01 +08:00
|
|
|
return del<DeletePipelineResponse>(`/rag/pipeline/${pipelineId}`)
|
2025-05-07 11:30:13 +08:00
|
|
|
},
|
2025-05-07 14:29:01 +08:00
|
|
|
...mutationOptions,
|
2025-05-07 11:30:13 +08:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
2025-05-07 14:29:01 +08:00
|
|
|
export const useExportPipelineDSL = (
|
|
|
|
mutationOptions: MutationOptions<ExportPipelineDSLResponse, Error, string> = {},
|
|
|
|
) => {
|
|
|
|
return useMutation({
|
|
|
|
mutationKey: [NAME_SPACE, 'template', 'export'],
|
|
|
|
mutationFn: (pipelineId: string) => {
|
2025-05-07 11:30:13 +08:00
|
|
|
return get<ExportPipelineDSLResponse>(`/rag/pipeline/${pipelineId}`)
|
|
|
|
},
|
2025-05-07 14:29:01 +08:00
|
|
|
...mutationOptions,
|
2025-05-07 11:30:13 +08:00
|
|
|
})
|
|
|
|
}
|
2025-05-07 18:09:38 +08:00
|
|
|
|
|
|
|
// TODO: replace with real API
|
|
|
|
export const useImportPipelineDSL = (
|
|
|
|
mutationOptions: MutationOptions<ImportPipelineDSLResponse, Error, ImportPipelineDSLRequest> = {},
|
|
|
|
) => {
|
|
|
|
return useMutation({
|
|
|
|
mutationKey: [NAME_SPACE, 'template', 'import'],
|
|
|
|
mutationFn: (request: ImportPipelineDSLRequest) => {
|
|
|
|
return post<ImportPipelineDSLResponse>('/rag/pipeline/import', { body: request })
|
|
|
|
},
|
|
|
|
...mutationOptions,
|
|
|
|
})
|
|
|
|
}
|