diff --git a/src/renderer/components/Experiment/Workflows/NewNodeModal.tsx b/src/renderer/components/Experiment/Workflows/NewNodeModal.tsx index f3ed2fa88032f7c8971396a9b4afc068e5c895ae..41402c52552f7b7bc69f82920375d463792d0baf 100644 --- a/src/renderer/components/Experiment/Workflows/NewNodeModal.tsx +++ b/src/renderer/components/Experiment/Workflows/NewNodeModal.tsx @@ -22,7 +22,12 @@ import { node } from 'webpack'; const fetcher = (url: any) => fetch(url).then((res) => res.json()); -export default function NewNodeModal({ open, onClose, selectedWorkflow }) { +export default function NewNodeModal({ + open, + onClose, + selectedWorkflow, + experimentInfo, +}) { const [mode, setMode] = useState('OTHER'); console.log(mode); @@ -33,13 +38,7 @@ export default function NewNodeModal({ open, onClose, selectedWorkflow }) { isLoading: isLoading, } = useSWR(chatAPI.GET_TRAINING_TEMPLATE_URL(), fetcher); - const { - data: workflowsData, - error: workflowsError, - isLoading: workflowsIsLoading, - } = useSWR(chatAPI.Endpoints.Workflows.List(), fetcher); - - console.log(trainingTemplatesData); + const evaluationData = JSON.parse(experimentInfo?.config?.evaluations); const handleModeChange = (event: React.ChangeEvent<HTMLSelectElement>) => { setMode(event.target.outerText); @@ -72,6 +71,22 @@ export default function NewNodeModal({ open, onClose, selectedWorkflow }) { JSON.stringify(node) ) ); + } else if (mode == 'EVAL') { + const template = formData.get('evalTemplate') as string; + const config = JSON.parse(selectedWorkflow.config); + console.log(config); + const node = { + name: name, + type: 'EVAL', + out: (config.nodes.length + 1).toString(), + template: template, + }; + await fetch( + chatAPI.Endpoints.Workflows.AddNode( + selectedWorkflow.id, + JSON.stringify(node) + ) + ); } else { const node = JSON.parse(formData.get('node') as string); node.name = name; @@ -94,6 +109,7 @@ export default function NewNodeModal({ open, onClose, selectedWorkflow }) { > <Option value="OTHER">OTHER</Option> <Option value="TRAIN">TRAIN</Option> + <Option value="EVAL">EVAL</Option> </Select> <FormLabel>Name</FormLabel> <Textarea minRows={4} autoFocus required name="name" /> @@ -103,6 +119,12 @@ export default function NewNodeModal({ open, onClose, selectedWorkflow }) { <Option value={template[1]}>{template[1]}</Option> ))} </Select> + ) : mode == 'EVAL' ? ( + <Select name="evalTemplate"> + {evaluationData.map((template) => ( + <Option value={template.name}>{template.name}</Option> + ))} + </Select> ) : ( <FormControl> <FormLabel>Nodes</FormLabel> diff --git a/src/renderer/components/Experiment/Workflows/index.tsx b/src/renderer/components/Experiment/Workflows/index.tsx index edd9567f072ca420f04cfffa8bb16024bd3f239b..9ecacfd2e49c2037dfd52369bc7ab49761dc67bb 100644 --- a/src/renderer/components/Experiment/Workflows/index.tsx +++ b/src/renderer/components/Experiment/Workflows/index.tsx @@ -75,6 +75,7 @@ export default function Workflows({ experimentInfo }) { mutateWorkflows(); }} selectedWorkflow={selectedWorkflow} + experimentInfo={experimentInfo} /> )} <Typography level="h1">Workflows</Typography>