Fix generate and eval modal for enabling editing and proper tab display

This commit is contained in:
deep1401
2025-03-28 13:08:49 -07:00
parent a6b3d12b4b
commit a756ad1c63
4 changed files with 45 additions and 61 deletions

View File

@@ -177,33 +177,33 @@ export default function EvalModal({
) {
const evalConfig = JSON.parse(evalData.config);
if (evalConfig) {
setConfig(evalConfig.script_parameters);
setConfig(evalConfig);
const datasetKeyExists = Object.keys(
evalConfig.script_parameters,
).some((key) => key.toLowerCase().includes('dataset_name'));
evalConfig,
).some((key) => key === 'dataset_name');
setHasDatasetKey(datasetKeyExists);
if (
evalConfig.script_parameters._dataset_display_message &&
evalConfig.script_parameters._dataset_display_message.length > 0
evalConfig._dataset_display_message &&
evalConfig._dataset_display_message.length > 0
) {
setDatasetDisplayMessage(
evalConfig.script_parameters._dataset_display_message,
evalConfig._dataset_display_message,
);
}
const tasksKeyExists = Object.keys(evalConfig.script_parameters).some(
const tasksKeyExists = Object.keys(evalConfig).some(
(key) => key.toLowerCase().includes('tasks'),
);
if (tasksKeyExists) {
evalConfig.script_parameters.tasks =
evalConfig.script_parameters.tasks.split(',');
setConfig(evalConfig.script_parameters);
evalConfig.tasks =
evalConfig.tasks.split(',');
setConfig(evalConfig);
}
if (
hasDatasetKey &&
evalConfig.script_parameters.dataset_name.length > 0
evalConfig.dataset_name.length > 0
) {
setSelectedDataset(evalConfig.script_parameters.dataset_name);
setSelectedDataset(evalConfig.dataset_name);
}
if (!nameInput && evalConfig?.run_name.length > 0) {
setNameInput(evalConfig.run_name);

View File

@@ -40,8 +40,14 @@ function formatTemplateConfig(script_parameters): ReactElement {
try {
const tasksArray = JSON.parse(script_parameters.tasks);
if (Array.isArray(tasksArray)) {
if (predefined_tasks && predefined_tasks !== '') {
return (
tasksArray.map((task) => task.name).join(', ') + ',' + predefined_tasks
);
}
// If predefined_tasks is empty, just return the tasks
return (
tasksArray.map((task) => task.name).join(', ') + predefined_tasks
tasksArray.map((task) => task.name).join(', ')
);
}
} catch (error) {

View File

@@ -196,6 +196,12 @@ export default function GenerateModal({
setNameInput(generateFriendlyName());
} else {
setNameInput('');
setHasContextKey(false);
setHasDocumentsKey(false);
setHasDatasetKey(false);
setSelectedDocs([]);
setContextInput('');
setSelectedDataset(null);
}
}
}, [open]);
@@ -216,63 +222,39 @@ export default function GenerateModal({
setConfig(generationConfig.script_parameters);
const datasetKeyExists = Object.keys(
generationConfig.script_parameters,
).some((key) => key.toLowerCase().includes('dataset'));
generationConfig,
).some((key) => key === 'dataset_name');
const docsKeyExists = Object.keys(
generationConfig.script_parameters,
).some((key) => key.toLowerCase().includes('docs'));
generationConfig,
).some((key) => key === 'docs');
const contextKeyExists = Object.keys(
generationConfig.script_parameters,
).some((key) => key.toLowerCase().includes('context'));
generationConfig,
).some((key) => key === 'context');
setHasDatasetKey(datasetKeyExists);
if (
docsKeyExists &&
generationConfig.script_parameters.docs.length > 0
generationConfig.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);
generationConfig.docs =
generationConfig.docs.split(',');
setConfig(generationConfig);
setSelectedDocs(generationConfig.docs);
} else if (
contextKeyExists &&
generationConfig.script_parameters.context.length > 0
generationConfig.context.length > 0
) {
setHasContextKey(true);
setHasDocumentsKey(false);
const context = generationConfig.script_parameters.context;
const context = generationConfig.context;
setContextInput(context);
delete generationConfig.script_parameters.context;
setConfig(generationConfig.script_parameters);
}
setHasDatasetKey(datasetKeyExists);
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);
delete generationConfig.context;
setConfig(generationConfig);
}
if (
@@ -294,8 +276,7 @@ export default function GenerateModal({
setNameInput(generationData.name);
}
}
}
} else {
} else {
// CREATE NEW GENERATION
if (data) {
let parsedData;
@@ -339,7 +320,7 @@ export default function GenerateModal({
console.error('Error parsing data', e);
parsedData = '';
}
}
}}
}
}, [experimentInfo, pluginId, currentGenerationId, nameInput, data]);
@@ -448,7 +429,6 @@ export default function GenerateModal({
}
if (hasDocumentsKey && formJson.docs.length > 0) {
console.log(formJson);
formJson.docs = JSON.parse(formJson.docs);
formJson.docs = formJson.docs.join(',');
formJson.generation_type = 'docs';

View File

@@ -38,7 +38,7 @@ function formatTemplateConfig(script_parameters): ReactElement {
// Remove the author/full path from the model name for cleanliness
// const short_model_name = c.model_name.split('/').pop();
// Set main_task as either or the metric name from the script parameters
const main_task = script_parameters.generation_type;
const main_task = script_parameters?.generation_type;
let docs_file_name_actual = '';
// Only keep the first 3 words of the main task
@@ -51,7 +51,7 @@ function formatTemplateConfig(script_parameters): ReactElement {
if (is_docs) {
docs_file_name_actual = script_parameters.docs.split('/').pop();
}
const generation_model = script_parameters.generation_model
const generation_model = script_parameters?.generation_model
? script_parameters.generation_model
: 'N/A';
@@ -191,9 +191,7 @@ export default function GenerateTasksTable({
{generations.name}
</td>
<td style={{ overflow: 'hidden' }}>
{/* formatTemplateConfig(generations.script_parameters) */}
{/* {evaluations?.script_parameters?.task}&nbsp; */}
{/* <FileTextIcon size={14} /> */}
{formatTemplateConfig(JSON.parse(generations.config))}
</td>
<td>{generations.plugin}</td>
<td style={{ textAlign: 'right' }}>