fix: update types and improve data handling in pipeline components

This commit is contained in:
twwu 2025-06-03 10:14:48 +08:00
parent 898495b5c4
commit 5fb771218c
4 changed files with 25 additions and 11 deletions

View File

@ -23,6 +23,7 @@ import WebsitePreview from './preview/web-preview'
import ProcessDocuments from './process-documents' import ProcessDocuments from './process-documents'
import ChunkPreview from './preview/chunk-preview' import ChunkPreview from './preview/chunk-preview'
import Processing from './processing' import Processing from './processing'
import type { PublishedPipelineRunPreviewResponse } from '@/models/pipeline'
import { DatasourceType } from '@/models/pipeline' import { DatasourceType } from '@/models/pipeline'
import { TransferMethod } from '@/types/app' import { TransferMethod } from '@/types/app'
import { useAddDocumentsSteps, useLocalFile, useNotionsPages, useWebsiteCrawl } from './hooks' import { useAddDocumentsSteps, useLocalFile, useNotionsPages, useWebsiteCrawl } from './hooks'
@ -137,7 +138,7 @@ const CreateFormPipeline = () => {
is_preview: true, is_preview: true,
}, { }, {
onSuccess: (res) => { onSuccess: (res) => {
setEstimateData(res.data.outputs as FileIndexingEstimateResponse) setEstimateData((res as PublishedPipelineRunPreviewResponse).data.outputs)
}, },
}) })
}, [datasource, pipelineId, previewFile, previewNotionPage, previewWebsitePage, runPublishedPipeline, websiteCrawlJobId]) }, [datasource, pipelineId, previewFile, previewNotionPage, previewWebsitePage, runPublishedPipeline, websiteCrawlJobId])
@ -187,7 +188,8 @@ const CreateFormPipeline = () => {
datasource_info_list: datasourceInfoList, datasource_info_list: datasourceInfoList,
is_preview: false, is_preview: false,
}, { }, {
onSuccess: () => { onSuccess: (res) => {
console.log('🚀 ~ handleProcess ~ res:', res)
handleNextStep() handleNextStep()
}, },
}) })
@ -332,8 +334,8 @@ const CreateFormPipeline = () => {
files={fileList.map(file => file.file)} files={fileList.map(file => file.file)}
notionPages={notionPages} notionPages={notionPages}
websitePages={websitePages} websitePages={websitePages}
isIdle={isIdle} isIdle={isIdle && isPreview.current}
isPending={isPending} isPending={isPending && isPreview.current}
estimateData={estimateData} estimateData={estimateData}
onPreview={onClickPreview} onPreview={onClickPreview}
handlePreviewFileChange={handlePreviewFileChange} handlePreviewFileChange={handlePreviewFileChange}

View File

@ -29,7 +29,7 @@ export const createRagPipelineSliceSlice: StateCreator<RagPipelineSliceShape> =
setRagPipelineVariables: (ragPipelineVariables: RAGPipelineVariables) => set(() => ({ ragPipelineVariables })), setRagPipelineVariables: (ragPipelineVariables: RAGPipelineVariables) => set(() => ({ ragPipelineVariables })),
dataSourceList: [], dataSourceList: [],
setDataSourceList: (dataSourceList: DataSourceItem[]) => { setDataSourceList: (dataSourceList: DataSourceItem[]) => {
const formatedDataSourceList = dataSourceList.map(item => transformDataSourceToTool(item)) const formattedDataSourceList = dataSourceList.map(item => transformDataSourceToTool(item))
set(() => ({ dataSourceList: formatedDataSourceList })) set(() => ({ dataSourceList: formattedDataSourceList }))
}, },
}) })

View File

@ -1,6 +1,6 @@
import type { Edge, EnvironmentVariable, Node, SupportUploadFileTypes } from '@/app/components/workflow/types' import type { Edge, EnvironmentVariable, Node, SupportUploadFileTypes } from '@/app/components/workflow/types'
import type { DSLImportMode, DSLImportStatus } from './app' import type { DSLImportMode, DSLImportStatus } from './app'
import type { ChunkingMode, DatasetPermission, IconInfo } from './datasets' import type { ChunkingMode, DatasetPermission, FileIndexingEstimateResponse, IconInfo } from './datasets'
import type { Dependency } from '@/app/components/plugins/types' import type { Dependency } from '@/app/components/plugins/types'
import type { AppIconSelection } from '@/app/components/base/app-icon-picker' import type { AppIconSelection } from '@/app/components/base/app-icon-picker'
import type { Viewport } from 'reactflow' import type { Viewport } from 'reactflow'
@ -183,5 +183,14 @@ export type PublishedPipelineRunRequest = {
start_node_id: string start_node_id: string
datasource_type: DatasourceType datasource_type: DatasourceType
datasource_info_list: Array<Record<string, any>> datasource_info_list: Array<Record<string, any>>
is_preview?: boolean is_preview: boolean
}
export type PublishedPipelineRunPreviewResponse = {
data: {
outputs: FileIndexingEstimateResponse
}
}
export type PublishedPipelineRunResponse = {
} }

View File

@ -16,7 +16,9 @@ import type {
PipelineTemplateListParams, PipelineTemplateListParams,
PipelineTemplateListResponse, PipelineTemplateListResponse,
PublishedPipelineInfoResponse, PublishedPipelineInfoResponse,
PublishedPipelineRunPreviewResponse,
PublishedPipelineRunRequest, PublishedPipelineRunRequest,
PublishedPipelineRunResponse,
UpdateTemplateInfoRequest, UpdateTemplateInfoRequest,
UpdateTemplateInfoResponse, UpdateTemplateInfoResponse,
} from '@/models/pipeline' } from '@/models/pipeline'
@ -187,15 +189,16 @@ export const usePublishedPipelineInfo = (pipelineId: string) => {
} }
export const useRunPublishedPipeline = ( export const useRunPublishedPipeline = (
mutationOptions: MutationOptions<any, Error, PublishedPipelineRunRequest> = {}, mutationOptions: MutationOptions<PublishedPipelineRunPreviewResponse | PublishedPipelineRunResponse, Error, PublishedPipelineRunRequest> = {},
) => { ) => {
return useMutation({ return useMutation({
mutationKey: [NAME_SPACE, 'run-published-pipeline'], mutationKey: [NAME_SPACE, 'run-published-pipeline'],
mutationFn: (request: PublishedPipelineRunRequest) => { mutationFn: (request: PublishedPipelineRunRequest) => {
const { pipeline_id: pipelineId, ...rest } = request const { pipeline_id: pipelineId, is_preview, ...rest } = request
return post<PublishedPipelineInfoResponse>(`/rag/pipelines/${pipelineId}/workflows/published/run`, { return post<PublishedPipelineRunPreviewResponse | PublishedPipelineRunRequest>(`/rag/pipelines/${pipelineId}/workflows/published/run`, {
body: { body: {
...rest, ...rest,
is_preview,
response_mode: 'blocking', response_mode: 'blocking',
}, },
}) })