diff --git a/src/renderer/components/Data/LocalDatasets.tsx b/src/renderer/components/Data/LocalDatasets.tsx index 64e2d5512acf2f8863fb063e2840d10e9cc05b10..790fb9b72ebfeedd6f3665847296dd4ce281a584 100644 --- a/src/renderer/components/Data/LocalDatasets.tsx +++ b/src/renderer/components/Data/LocalDatasets.tsx @@ -145,57 +145,50 @@ export default function LocalDatasets() { }} > <> - <FormControl> - <Input - placeholder="Open-Orca/OpenOrca" - name="download-dataset-name" - endDecorator={ - <Button - onClick={async (e) => { - const dataset = document.getElementsByName( - 'download-dataset-name' - )[0].value; - // only download if valid model is entered - if (dataset) { - // this triggers UI changes while download is in progress - setDownloadingDataset(dataset); - - // Datasets can be very large so do this asynchronously - fetch(chatAPI.Endpoints.Dataset.Download(dataset)) - .then((response) => { - if (!response.ok) { - console.log(response); - throw new Error(`HTTP Status: ${response.status}`); - } - return response.json(); - }) - .then((response_json) => { - if (response_json?.status == 'error') { - throw new Error(response_json.message); - } - // now mutate: - mutate(); - setDownloadingDataset(null); - }) - .catch((error) => { - setDownloadingDataset(null); - alert('Download failed:\n' + error); - }); - } - }} - startDecorator={ - downloadingDataset ? ( - <CircularProgress size="sm" thickness={2} /> - ) : ( - '' - ) + <FormControl> + <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}> + <Input + placeholder="Open-Orca/OpenOrca" + name="download-dataset-name" + sx={{ flex: 7 }} + /> + <Input + placeholder="Config name" + name="download-config-name" + sx={{ flex: 3 }} + /> + <Button + onClick={async (e) => { + const dataset = document.getElementsByName('download-dataset-name')[0].value; + const configName = document.getElementsByName('download-config-name')[0]?.value; + if (dataset) { + setDownloadingDataset(dataset); + fetch(chatAPI.Endpoints.Dataset.Download(dataset, configName)) + .then((response) => { + if (!response.ok) { + console.log(response); + throw new Error(`HTTP Status: ${response.status}`); + } + return response.json(); + }) + .then((response_json) => { + if (response_json?.status == 'error') { + throw new Error(response_json.message); + } + mutate(); + setDownloadingDataset(null); + }) + .catch((error) => { + setDownloadingDataset(null); + alert('Download failed:\n' + error); + }); } - > - {downloadingDataset ? 'Downloading' : 'Download 🤗 Dataset'} - </Button> - } - sx={{ width: '500px' }} - /> + }} + startDecorator={downloadingDataset ? <CircularProgress size="sm" thickness={2} /> : ''} + > + {downloadingDataset ? 'Downloading' : 'Download 🤗 Dataset'} + </Button> + </Box> </FormControl> <> <Button diff --git a/src/renderer/lib/transformerlab-api-sdk.ts b/src/renderer/lib/transformerlab-api-sdk.ts index 819a33154002cbc8cfc59cf243ff344c369616f6..33ff1fea39714e33269905a2df3045faef05437f 100644 --- a/src/renderer/lib/transformerlab-api-sdk.ts +++ b/src/renderer/lib/transformerlab-api-sdk.ts @@ -1048,8 +1048,8 @@ Endpoints.Dataset = { Delete: (datasetId: string) => API_URL() + 'data/delete?dataset_id=' + datasetId, Create: (datasetId: string) => API_URL() + 'data/new?dataset_id=' + datasetId, - Download: (datasetId: string) => - API_URL() + 'data/download?dataset_id=' + datasetId, + Download: (datasetId: string, configName?: string) => + API_URL() + 'data/download?dataset_id=' + datasetId + (configName ? '&config_name=' + configName : ''), LocalList: (generated: boolean = true) => API_URL() + 'data/list?generated=' + generated, GeneratedList: () => API_URL() + 'data/generated_datasets_list', FileUpload: (datasetId: string) =>