Skip to content
Snippets Groups Projects
Commit deef7232 authored by deep1401's avatar deep1401
Browse files

Add compare evals showing, currently outputs raw data into the ChartModal

parent a15df2f5
No related branches found
No related tags found
No related merge requests found
...@@ -91,13 +91,15 @@ function RenderScore({ score }) { ...@@ -91,13 +91,15 @@ function RenderScore({ score }) {
)); ));
} }
const EvalJobsTable = () => { const EvalJobsTable = () => {
const [selected, setSelected] = useState<readonly string[]>([]); const [selected, setSelected] = useState<readonly string[]>([]);
const [viewOutputFromJob, setViewOutputFromJob] = useState(-1); const [viewOutputFromJob, setViewOutputFromJob] = useState(-1);
const [openCSVModal, setOpenCSVModal] = useState(false); const [openCSVModal, setOpenCSVModal] = useState(false);
const [openPlotModal, setOpenPlotModal] = useState(false); const [openPlotModal, setOpenPlotModal] = useState(false);
const [currentJobId, setCurrentJobId] = useState(''); const [currentJobId, setCurrentJobId] = useState('');
const [currentScore, setCurrentScore] = useState(''); const [currentData, setCurrentData] = useState('');
const [chart, setChart] = useState(true);
const [currentTensorboardForModal, setCurrentTensorboardForModal] = useState(-1); const [currentTensorboardForModal, setCurrentTensorboardForModal] = useState(-1);
const [fileNameForDetailedReport, setFileNameForDetailedReport] = useState(''); const [fileNameForDetailedReport, setFileNameForDetailedReport] = useState('');
...@@ -119,14 +121,27 @@ const EvalJobsTable = () => { ...@@ -119,14 +121,27 @@ const EvalJobsTable = () => {
fallbackData: [], fallbackData: [],
}); });
// New function to call CombinedReports via SDK and send data to ViewPlotModal
const handleCombinedReports = async () => {
try {
const data = await chatAPI.COMPARE_EVALS(selected);
setCurrentData(JSON.stringify(data));
setOpenPlotModal(true);
setChart(false);
setCurrentJobId('-1');
} catch (error) {
console.error('Failed to fetch combined reports:', error);
}
};
const handleOpenCSVModal = (jobId) => { const handleOpenCSVModal = (jobId) => {
setCurrentJobId(jobId); setCurrentJobId(jobId);
setOpenCSVModal(true); setOpenCSVModal(true);
}; };
const handleOpenPlotModal = (jobId, score) => { const handleOpenPlotModal = (score) => {
setCurrentJobId(jobId); setCurrentData(score);
setCurrentScore(score);
setOpenPlotModal(true); setOpenPlotModal(true);
}; };
...@@ -145,8 +160,9 @@ const EvalJobsTable = () => { ...@@ -145,8 +160,9 @@ const EvalJobsTable = () => {
<ViewPlotModal <ViewPlotModal
open={openPlotModal} open={openPlotModal}
onClose={() => setOpenPlotModal(false)} onClose={() => setOpenPlotModal(false)}
data={currentData}
jobId={currentJobId} jobId={currentJobId}
score={currentScore} chart={chart}
/> />
<ViewOutputModalStreaming <ViewOutputModalStreaming
jobId={viewOutputFromJob} jobId={viewOutputFromJob}
...@@ -170,6 +186,8 @@ const EvalJobsTable = () => { ...@@ -170,6 +186,8 @@ const EvalJobsTable = () => {
<Typography <Typography
level="body-sm" level="body-sm"
startDecorator={<ChartColumnIncreasingIcon size="20px" />} startDecorator={<ChartColumnIncreasingIcon size="20px" />}
// Uncomment this line to enable the combined reports feature
// onClick={handleCombinedReports}
onClick={() => { onClick={() => {
alert('this feature coming soon'); alert('this feature coming soon');
}} }}
......
...@@ -3,15 +3,15 @@ import { Modal, ModalDialog, ModalClose, Box, Typography } from '@mui/joy'; ...@@ -3,15 +3,15 @@ import { Modal, ModalDialog, ModalClose, Box, Typography } from '@mui/joy';
import Chart from './Chart'; import Chart from './Chart';
import * as chatAPI from 'renderer/lib/transformerlab-api-sdk'; import * as chatAPI from 'renderer/lib/transformerlab-api-sdk';
function parseJSON(score) { function parseJSON(data) {
try { try {
return JSON.parse(score); return JSON.parse(data);
} catch { } catch {
return []; return [];
} }
} }
export default function ViewPlotModal({ open, onClose, jobId, score }) { export default function ViewPlotModal({ open, onClose, data, jobId, chart = true}) {
if (!jobId) { if (!jobId) {
return <></>; return <></>;
} }
...@@ -46,7 +46,11 @@ export default function ViewPlotModal({ open, onClose, jobId, score }) { ...@@ -46,7 +46,11 @@ export default function ViewPlotModal({ open, onClose, jobId, score }) {
p: 2, p: 2,
}} }}
> >
<Chart metrics={parseJSON(score)} /> {chart ? (
<Chart metrics={parseJSON(data)} />
) : (
<div>{JSON.stringify(parseJSON(data))}</div>
)}
</Box> </Box>
</Box> </Box>
</ModalDialog> </ModalDialog>
......
...@@ -1551,6 +1551,22 @@ export async function EXPERIMENT_EDIT_EVALUATION( ...@@ -1551,6 +1551,22 @@ export async function EXPERIMENT_EDIT_EVALUATION(
return result; return result;
} }
export async function COMPARE_EVALS(jobIds: string[]) {
const jobIdsParam = jobIds.join(',');
const url = API_URL() + 'evals/compare_evals?job_list=' + jobIdsParam;
console.log('url', url);
console.log('jobIds', jobIds);
const response = await fetch(url, {
method: 'GET'
});
if (!response.ok) {
throw new Error('Network response was not ok');
}
const data = await response.json();
console.log('data', data);
return data;
}
export async function EXPERIMENT_ADD_GENERATION( export async function EXPERIMENT_ADD_GENERATION(
id: string, id: string,
name: string, name: string,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment