mirror of
https://github.com/langgenius/dify.git
synced 2026-07-21 02:28:30 +08:00
55 lines
2.1 KiB
TypeScript
55 lines
2.1 KiB
TypeScript
import type {
|
|
WorkflowGeneratePayload,
|
|
WorkflowGeneratePlanEventResponse,
|
|
WorkflowGenerateResponse,
|
|
WorkflowInstructionSuggestionsPayload,
|
|
} from '@dify/contracts/api/console/workflow-generate/types.gen'
|
|
// The generated client handles JSON endpoints. Streaming remains on the
|
|
// generator-specific SSE adapter until oRPC supports this event framing.
|
|
import { consoleClient, streamWorkflowGeneration } from './client'
|
|
|
|
export type GenerateWorkflowBody = WorkflowGeneratePayload
|
|
export type GenerateWorkflowResponse = WorkflowGenerateResponse
|
|
export type WorkflowGenPlan = WorkflowGeneratePlanEventResponse
|
|
export type WorkflowInstructionSuggestionsBody = WorkflowInstructionSuggestionsPayload
|
|
|
|
export type GenerateWorkflowOptions = {
|
|
getAbortController?: (controller: AbortController) => void
|
|
}
|
|
|
|
export function generateWorkflow(body: GenerateWorkflowBody, options?: GenerateWorkflowOptions) {
|
|
const controller = new AbortController()
|
|
options?.getAbortController?.(controller)
|
|
return consoleClient.workflowGenerate.post({ body }, { signal: controller.signal })
|
|
}
|
|
|
|
export type GenerateWorkflowStreamCallbacks = {
|
|
onPlan?: (plan: WorkflowGenPlan) => void
|
|
onResult?: (result: GenerateWorkflowResponse) => void
|
|
onError?: (message: string) => void
|
|
onCompleted?: () => void
|
|
getAbortController?: (controller: AbortController) => void
|
|
}
|
|
|
|
export function generateWorkflowStream(
|
|
body: GenerateWorkflowBody,
|
|
callbacks: GenerateWorkflowStreamCallbacks,
|
|
) {
|
|
return streamWorkflowGeneration('/workflow-generate/stream', body, {
|
|
onPlan: (data) => callbacks.onPlan?.(data as WorkflowGenPlan),
|
|
onResult: (data) => callbacks.onResult?.(data as GenerateWorkflowResponse),
|
|
onError: callbacks.onError,
|
|
onCompleted: callbacks.onCompleted,
|
|
getAbortController: callbacks.getAbortController,
|
|
})
|
|
}
|
|
|
|
export function fetchWorkflowInstructionSuggestions(
|
|
body: WorkflowInstructionSuggestionsBody,
|
|
options?: GenerateWorkflowOptions,
|
|
) {
|
|
const controller = new AbortController()
|
|
options?.getAbortController?.(controller)
|
|
return consoleClient.workflowGenerate.suggestions.post({ body }, { signal: controller.signal })
|
|
}
|