- Remove unused imports and classes from pipeline.py to streamline the codebase. - Consolidate dynamic variable handling and workflow management in AssistantPage, enhancing clarity and maintainability. - Update WorkflowEditor to utilize a more modular approach, improving the overall architecture and reducing complexity. - Enhance the import structure across components for better organization and readability.
74 lines
2.5 KiB
TypeScript
74 lines
2.5 KiB
TypeScript
"use client";
|
|
|
|
import { useState } from "react";
|
|
|
|
import type { WorkflowSettings } from "@/components/workflow/types";
|
|
import { defaultGraph, type WorkflowGraph } from "@/components/workflow/specs";
|
|
import type { DynamicVariableDefinition } from "@/lib/api";
|
|
import { defaultTurnConfig } from "@/lib/turn-config";
|
|
|
|
function initialWorkflowSettings(): WorkflowSettings {
|
|
const graph = defaultGraph();
|
|
return {
|
|
globalPrompt: graph.settings.globalPrompt,
|
|
llm: graph.settings.defaultLlmResourceId,
|
|
asr: graph.settings.defaultAsrResourceId,
|
|
tts: graph.settings.defaultTtsResourceId,
|
|
toolIds: graph.settings.toolIds,
|
|
knowledgeBaseId: graph.settings.knowledgeBaseId,
|
|
knowledgeRetrievalConfig: {
|
|
mode: graph.settings.knowledgeMode,
|
|
topN: graph.settings.knowledgeTopN,
|
|
scoreThreshold: graph.settings.knowledgeScoreThreshold,
|
|
},
|
|
allowInterrupt: true,
|
|
turnConfig: defaultTurnConfig(),
|
|
};
|
|
}
|
|
|
|
/** Owns Workflow editor state; AssistantPage only coordinates loading and saving. */
|
|
export function useWorkflowEditorState() {
|
|
const [workflowName, setWorkflowName] = useState("");
|
|
const [workflowGraph, setWorkflowGraph] = useState<WorkflowGraph>(() =>
|
|
defaultGraph(),
|
|
);
|
|
const [workflowSettings, setWorkflowSettings] = useState<WorkflowSettings>(
|
|
initialWorkflowSettings,
|
|
);
|
|
const [workflowDynamicVariableDefinitions, setWorkflowDynamicVariableDefinitions] =
|
|
useState<Record<string, DynamicVariableDefinition>>({});
|
|
const [workflowDebugOpen, setWorkflowDebugOpen] = useState(false);
|
|
const [workflowSettingsOpen, setWorkflowSettingsOpen] = useState(false);
|
|
const [workflowEditingNodeId, setWorkflowEditingNodeId] = useState<string | null>(
|
|
null,
|
|
);
|
|
const [workflowEditingEdgeId, setWorkflowEditingEdgeId] = useState<string | null>(
|
|
null,
|
|
);
|
|
const [activeNodeId, setActiveNodeId] = useState<string | null>(null);
|
|
const [dynamicVariablesOpen, setDynamicVariablesOpen] = useState(false);
|
|
|
|
return {
|
|
workflowName,
|
|
setWorkflowName,
|
|
workflowGraph,
|
|
setWorkflowGraph,
|
|
workflowSettings,
|
|
setWorkflowSettings,
|
|
workflowDynamicVariableDefinitions,
|
|
setWorkflowDynamicVariableDefinitions,
|
|
workflowDebugOpen,
|
|
setWorkflowDebugOpen,
|
|
workflowSettingsOpen,
|
|
setWorkflowSettingsOpen,
|
|
workflowEditingNodeId,
|
|
setWorkflowEditingNodeId,
|
|
workflowEditingEdgeId,
|
|
setWorkflowEditingEdgeId,
|
|
activeNodeId,
|
|
setActiveNodeId,
|
|
dynamicVariablesOpen,
|
|
setDynamicVariablesOpen,
|
|
};
|
|
}
|