Skip to content

Commit 951a2d7

Browse files
committed
fix bugs related to selection screen model select
1 parent a72ce7c commit 951a2d7

File tree

3 files changed

+34
-25
lines changed

3 files changed

+34
-25
lines changed

src/app/dfSlice.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ export const dataFormulatorSlice = createSlice({
257257
let savedState = action.payload;
258258

259259
state.models = savedState.models;
260-
state.selectedModelId = state.models.length > 0 ? state.models[0].id : undefined;
260+
state.selectedModelId = savedState.selectedModelId;
261261
state.testedModels = []; // models should be tested again
262262

263263
//state.table = undefined;

src/views/DataFormulator.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export const DataFormulatorFC = ({ }) => {
5454
const displayPanelSize = useSelector((state: DataFormulatorState) => state.displayPanelSize);
5555
const visPaneSize = useSelector((state: DataFormulatorState) => state.visPaneSize);
5656
const tables = useSelector((state: DataFormulatorState) => state.tables);
57-
const selectedModel = useSelector((state: DataFormulatorState) => state.selectedModel);
57+
const selectedModelId = useSelector((state: DataFormulatorState) => state.selectedModelId);
5858

5959
const dispatch = useDispatch();
6060

@@ -173,15 +173,14 @@ Totals (7 entries) 5 5 5 15
173173
href="https://privacy.microsoft.com/en-US/data-privacy-notice">view data privacy notice</Button>
174174
</Box>;
175175

176-
console.log("selected model?")
177-
console.log(selectedModel)
178176

177+
console.log("selected model?")
178+
console.log(selectedModelId)
179+
179180
return (
180181
<Box sx={{ display: 'block', width: "100%", height: 'calc(100vh - 49px)' }}>
181182
<DndProvider backend={HTML5Backend}>
182-
{selectedModel == undefined ? modelSelectionDialogBox : (tables.length > 0 ? fixedSplitPane : dataUploadRequestBox)}
183+
{selectedModelId == undefined ? modelSelectionDialogBox : (tables.length > 0 ? fixedSplitPane : dataUploadRequestBox)}
183184
</DndProvider>
184-
185-
186185
</Box>);
187186
}

src/views/ModelSelectionDialog.tsx

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,11 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => {
7777
const [showKeys, setShowKeys] = useState<boolean>(false);
7878
const [tempSelectedModelId, setTempSelectedModeId] = useState<string | undefined >(selectedModelId);
7979

80-
console.log("--------------------------------");
81-
console.log("models", models);
82-
console.log("selectedModelId", selectedModelId);
83-
console.log("tempSelectedModelId", tempSelectedModelId);
84-
console.log("testedModels", testedModels);
85-
8680
let updateModelStatus = (model: ModelConfig, status: 'ok' | 'error' | 'testing' | 'unknown', message: string) => {
8781
dispatch(dfActions.updateModelStatus({id: model.id, status, message}));
8882
}
89-
let getStatus = (id: string) => {
90-
return testedModels.find(t => (t.id == id))?.status || 'unknown';
83+
let getStatus = (id: string | undefined) => {
84+
return id != undefined ? (testedModels.find(t => (t.id == id))?.status || 'unknown') : 'unknown';
9185
}
9286

9387
const [newEndpoint, setNewEndpoint] = useState<string>(""); // openai, azure, ollama etc
@@ -97,7 +91,7 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => {
9791
const [newApiVersion, setNewApiVersion] = useState<string | undefined>(undefined);
9892

9993
useEffect(() => {
100-
if (newEndpoint == 'ollama' ) {
94+
if (newEndpoint == 'ollama') {
10195
if (!newApiBase) {
10296
setNewApiBase('http://localhost:11434');
10397
}
@@ -142,7 +136,10 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => {
142136
let newModelEntry = <TableRow
143137
key={`new-model-entry`}
144138
sx={{ '&:last-child td, &:last-child th': { border: 0 }, padding: "6px 6px" }}
145-
onClick={() => {setTempSelectedModeId(undefined)}}
139+
onClick={(event) => {
140+
event.stopPropagation();
141+
setTempSelectedModeId(undefined);
142+
}}
146143
>
147144
<TableCell align="right">
148145
<Radio checked={tempSelectedModelId == undefined} name="radio-buttons" inputProps={{'aria-label': 'Select this model'}}/>
@@ -205,7 +202,7 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => {
205202
freeSolo
206203
onChange={(event: any, newValue: string | null) => { setNewModel(newValue || ""); }}
207204
value={newModel}
208-
options={['gpt-4o-mini', 'gpt-4o', 'claude-3-5-sonnet-20241022', 'codellama']}
205+
options={['gpt-4o-mini', 'gpt-4o', 'claude-3-5-sonnet-20241022']}
209206
renderOption={(props, option) => {
210207
return <Typography {...props} onClick={()=>{ setNewModel(option); }} sx={{fontSize: "small"}}>{option}</Typography>
211208
}}
@@ -260,28 +257,33 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => {
260257
disabled={!readyToTest}
261258
sx={{cursor: modelExists ? 'help' : 'pointer'}}
262259
onClick={(event) => {
263-
if (modelExists) {
264-
return
265-
}
266-
let endpoint = newEndpoint;
267260
event.stopPropagation()
268261

262+
console.log("checkpont 1")
263+
264+
let endpoint = newEndpoint;
265+
269266
let id = `${endpoint}-${newModel}-${newApiKey}-${newApiBase}-${newApiVersion}`;
270267

271268
let model = {endpoint, model: newModel, api_key: newApiKey, api_base: newApiBase, api_version: newApiVersion, id: id};
272269

270+
console.log("checkpont 2")
271+
273272
dispatch(dfActions.addModel(model));
274273
dispatch(dfActions.selectModel(id));
275274
setTempSelectedModeId(id);
276275

276+
console.log("checkpont 3")
277+
277278
testModel(model);
278279

279280
setNewEndpoint("");
280281
setNewModel("");
281-
282282
setNewApiKey(undefined);
283283
setNewApiBase(undefined);
284284
setNewApiVersion(undefined);
285+
286+
console.log("checkpont 4")
285287
}}>
286288
<AddCircleIcon />
287289
</IconButton>
@@ -434,7 +436,15 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => {
434436
{selectedModelId ? `Model: ${(models.find(m => m.id == selectedModelId) as any)?.model}` : 'Select A Model'}
435437
</Button>
436438
</Tooltip>
437-
<Dialog maxWidth="lg" onClose={()=>{setModelDialogOpen(false)}} open={modelDialogOpen}>
439+
<Dialog
440+
maxWidth="lg"
441+
open={modelDialogOpen}
442+
onClose={(event, reason) => {
443+
if (reason !== 'backdropClick') {
444+
setModelDialogOpen(false);
445+
}
446+
}}
447+
>
438448
<DialogTitle sx={{display: "flex", alignItems: "center"}}>Select Model</DialogTitle>
439449
<DialogContent >
440450
{modelTable}
@@ -444,7 +454,7 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => {
444454
setShowKeys(!showKeys);}}>
445455
{showKeys ? 'hide' : 'show'} keys
446456
</Button>
447-
<Button disabled={!(tempSelectedModelId != undefined && getStatus(tempSelectedModelId) == 'ok')}
457+
<Button disabled={getStatus(tempSelectedModelId) !== 'ok'}
448458
variant={(selectedModelId == tempSelectedModelId) ? 'text' : 'contained'}
449459
onClick={()=>{
450460
dispatch(dfActions.selectModel(tempSelectedModelId));

0 commit comments

Comments
 (0)