From 0cb7c53dd15cda9db276eccfc2f91ec12dc78955 Mon Sep 17 00:00:00 2001 From: sanjaycal <sanjay.calgary@gmail.com> Date: Wed, 26 Feb 2025 12:21:09 -0500 Subject: [PATCH] add eval templates --- .../Experiment/Workflows/NewNodeModal.tsx | 38 +++++++++++++++---- .../components/Experiment/Workflows/index.tsx | 1 + 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/renderer/components/Experiment/Workflows/NewNodeModal.tsx b/src/renderer/components/Experiment/Workflows/NewNodeModal.tsx index f3ed2fa8..41402c52 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 edd9567f..9ecacfd2 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> -- GitLab