You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

use-pipeline.ts 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import type { MutationOptions } from '@tanstack/react-query'
  2. import { useMutation, useQuery } from '@tanstack/react-query'
  3. import { del, get, patch, post } from './base'
  4. import type {
  5. DeletePipelineResponse,
  6. ExportPipelineDSLRequest,
  7. ExportPipelineDSLResponse,
  8. ImportPipelineDSLConfirmResponse,
  9. ImportPipelineDSLRequest,
  10. ImportPipelineDSLResponse,
  11. PipelineCheckDependenciesResponse,
  12. PipelineProcessingParamsResponse,
  13. PipelineTemplateByIdResponse,
  14. PipelineTemplateListParams,
  15. PipelineTemplateListResponse,
  16. UpdatePipelineInfoRequest,
  17. UpdatePipelineInfoResponse,
  18. } from '@/models/pipeline'
  19. const NAME_SPACE = 'pipeline'
  20. export const usePipelineTemplateList = (params: PipelineTemplateListParams) => {
  21. return useQuery<PipelineTemplateListResponse>({
  22. queryKey: [NAME_SPACE, 'template', 'list'],
  23. queryFn: () => {
  24. return get<PipelineTemplateListResponse>('/rag/pipeline/template', { params })
  25. },
  26. })
  27. }
  28. export const usePipelineTemplateById = (templateId: string, enabled: boolean) => {
  29. return useQuery<PipelineTemplateByIdResponse>({
  30. queryKey: [NAME_SPACE, 'template', templateId],
  31. queryFn: () => {
  32. return get<PipelineTemplateByIdResponse>(`/rag/pipeline/template/${templateId}`)
  33. },
  34. enabled,
  35. })
  36. }
  37. export const useUpdatePipelineInfo = (
  38. mutationOptions: MutationOptions<UpdatePipelineInfoResponse, Error, UpdatePipelineInfoRequest> = {},
  39. ) => {
  40. return useMutation({
  41. mutationKey: [NAME_SPACE, 'template', 'update'],
  42. mutationFn: (request: UpdatePipelineInfoRequest) => {
  43. const { pipeline_id, ...rest } = request
  44. return patch<UpdatePipelineInfoResponse>(`/rag/pipeline/${pipeline_id}`, {
  45. body: rest,
  46. })
  47. },
  48. ...mutationOptions,
  49. })
  50. }
  51. export const useDeletePipeline = (
  52. mutationOptions: MutationOptions<DeletePipelineResponse, Error, string> = {},
  53. ) => {
  54. return useMutation({
  55. mutationKey: [NAME_SPACE, 'template', 'delete'],
  56. mutationFn: (pipelineId: string) => {
  57. return del<DeletePipelineResponse>(`/rag/pipeline/${pipelineId}`)
  58. },
  59. ...mutationOptions,
  60. })
  61. }
  62. export const useExportPipelineDSL = (
  63. mutationOptions: MutationOptions<ExportPipelineDSLResponse, Error, ExportPipelineDSLRequest> = {},
  64. ) => {
  65. return useMutation({
  66. mutationKey: [NAME_SPACE, 'dsl-export'],
  67. mutationFn: (request: ExportPipelineDSLRequest) => {
  68. return get<ExportPipelineDSLResponse>(`/rag/pipeline/${request.pipeline_id}/export`, {
  69. params: {
  70. include_secret: !!request.include_secret,
  71. },
  72. })
  73. },
  74. ...mutationOptions,
  75. })
  76. }
  77. export const useImportPipelineDSL = (
  78. mutationOptions: MutationOptions<ImportPipelineDSLResponse, Error, ImportPipelineDSLRequest> = {},
  79. ) => {
  80. return useMutation({
  81. mutationKey: [NAME_SPACE, 'dsl-import'],
  82. mutationFn: (request: ImportPipelineDSLRequest) => {
  83. return post<ImportPipelineDSLResponse>('/rag/pipeline/imports', { body: request })
  84. },
  85. ...mutationOptions,
  86. })
  87. }
  88. export const useImportPipelineDSLConfirm = (
  89. mutationOptions: MutationOptions<ImportPipelineDSLConfirmResponse, Error, string> = {},
  90. ) => {
  91. return useMutation({
  92. mutationKey: [NAME_SPACE, 'dsl-import-confirm'],
  93. mutationFn: (importId: string) => {
  94. return post<ImportPipelineDSLConfirmResponse>(`/rag/pipeline/imports/${importId}/confirm`)
  95. },
  96. ...mutationOptions,
  97. })
  98. }
  99. export const useCheckPipelineDependencies = (
  100. mutationOptions: MutationOptions<PipelineCheckDependenciesResponse, Error, string> = {},
  101. ) => {
  102. return useMutation({
  103. mutationKey: [NAME_SPACE, 'check-dependencies'],
  104. mutationFn: (pipelineId: string) => {
  105. return post<PipelineCheckDependenciesResponse>(`/rag/pipelines/imports/${pipelineId}/check-dependencies`)
  106. },
  107. ...mutationOptions,
  108. })
  109. }
  110. // Get the config of shared input fields
  111. export const usePipelineProcessingParams = (pipelineId: string) => {
  112. return useQuery<PipelineProcessingParamsResponse>({
  113. queryKey: [NAME_SPACE, 'pipeline-processing-params', pipelineId],
  114. queryFn: () => {
  115. return get<PipelineProcessingParamsResponse>(`/rag/pipeline/${pipelineId}/workflows/processing/parameters`)
  116. },
  117. })
  118. }