diff --git a/src/renderer/components/Experiment/Generate/GenerateModal.tsx b/src/renderer/components/Experiment/Generate/GenerateModal.tsx index d7469eda5ddc7353c6b90b6c523500f41555f3a7..2a1c25c5c3c6dc6cf3cf431c442c0be1615a9ec6 100644 --- a/src/renderer/components/Experiment/Generate/GenerateModal.tsx +++ b/src/renderer/components/Experiment/Generate/GenerateModal.tsx @@ -49,6 +49,30 @@ function PluginIntroduction({ experimentInfo, pluginId }) { ); } +/* This function looks at all the generations that are stored in the experiment JSON +and returns the generation that matches the generationName */ +function getGenerationFromGenerationsArray(generationsStr, generationName) { + let thisGeneration = null; + console.log(generationName); + + if (typeof generationsStr === 'string') { + try { + const generations = JSON.parse(generationsStr); + console.log('generations:', generations); + + if (Array.isArray(generations)) { + thisGeneration = generations.find( + (generation) => generation.name === generationName + ); + } + } catch (error) { + console.error('Failed to parse generations JSON string:', error); + } + } + console.log('thisGeneration', thisGeneration); + return thisGeneration; +} + export default function GenerateModal({ open, onClose, @@ -119,78 +143,71 @@ export default function GenerateModal({ if (currentGenerationName && currentGenerationName !== '') { const generationsStr = experimentInfo.config?.generations; setSelectedDocs([]); - if (typeof generationsStr === 'string') { - try { - const generations = JSON.parse(generationsStr); - if (Array.isArray(generations)) { - const generationConfig = generations.find( - (generationItem: any) => - generationItem.name === currentGenerationName && - generationItem.plugin === pluginId - ); - if (generationConfig) { - setConfig(generationConfig.script_parameters); - const datasetKeyExists = Object.keys( - generationConfig.script_parameters - ).some((key) => key.toLowerCase().includes('dataset')); + if (generationsStr) { + const generationConfig = getGenerationFromGenerationsArray( + generationsStr, + currentGenerationName + ); + if (generationConfig) { + setConfig(generationConfig.script_parameters); - const docsKeyExists = Object.keys( - generationConfig.script_parameters - ).some((key) => key.toLowerCase().includes('docs')); + const datasetKeyExists = Object.keys( + generationConfig.script_parameters + ).some((key) => key.toLowerCase().includes('dataset')); - const contextKeyExists = Object.keys( - generationConfig.script_parameters - ).some((key) => key.toLowerCase().includes('context')); + const docsKeyExists = Object.keys( + generationConfig.script_parameters + ).some((key) => key.toLowerCase().includes('docs')); - setHasDatasetKey(datasetKeyExists); + const contextKeyExists = Object.keys( + generationConfig.script_parameters + ).some((key) => key.toLowerCase().includes('context')); - if ( - docsKeyExists && - generationConfig.script_parameters.docs.length > 0 - ) { - setHasContextKey(false); - setHasDocumentsKey(true); - generationConfig.script_parameters.docs = - generationConfig.script_parameters.docs.split(','); - setConfig(generationConfig.script_parameters); - setSelectedDocs(generationConfig.script_parameters.docs); - } else if ( - contextKeyExists && - generationConfig.script_parameters.context.length > 0 - ) { - setHasContextKey(true); - setHasDocumentsKey(false); - const context = generationConfig.script_parameters.context; - setContextInput(context); - delete generationConfig.script_parameters.context; - setConfig(generationConfig.script_parameters); - } + setHasDatasetKey(datasetKeyExists); - if ( - hasDatasetKey && - generationConfig.script_parameters.dataset_name.length > 0 - ) { - setSelectedDataset( - generationConfig.script_parameters.dataset_name - ); - } - if ( - generationConfig.script_parameters._dataset_display_message && - generationConfig.script_parameters._dataset_display_message - .length > 0 - ) { - setDatasetDisplayMessage( - generationConfig.script_parameters._dataset_display_message - ); - } - if (!nameInput && generationConfig?.name.length > 0) { - setNameInput(generationConfig.name); - } - } + if ( + docsKeyExists && + generationConfig.script_parameters.docs.length > 0 + ) { + setHasContextKey(false); + setHasDocumentsKey(true); + generationConfig.script_parameters.docs = + generationConfig.script_parameters.docs.split(','); + setConfig(generationConfig.script_parameters); + setSelectedDocs(generationConfig.script_parameters.docs); + } else if ( + contextKeyExists && + generationConfig.script_parameters.context.length > 0 + ) { + setHasContextKey(true); + setHasDocumentsKey(false); + const context = generationConfig.script_parameters.context; + setContextInput(context); + delete generationConfig.script_parameters.context; + setConfig(generationConfig.script_parameters); + } + + if ( + hasDatasetKey && + generationConfig.script_parameters.dataset_name.length > 0 + ) { + setSelectedDataset( + generationConfig.script_parameters.dataset_name + ); + } + if ( + generationConfig.script_parameters._dataset_display_message && + generationConfig.script_parameters._dataset_display_message + .length > 0 + ) { + setDatasetDisplayMessage( + generationConfig.script_parameters._dataset_display_message + ); + } + if (!nameInput && generationConfig?.name.length > 0) { + setNameInput(generationConfig.name); } - } catch (error) { - console.error('Failed to parse generations JSON string:', error); } } } else {