Spaces:
Sleeping
Sleeping
admin page model selection logic
Browse files
frontend/src/pages/AdminPage/AdminPage.tsx
CHANGED
|
@@ -135,6 +135,33 @@ export default function AdminPage() {
|
|
| 135 |
localStorage.setItem(SELECTED_MODEL_KEY, firstAvailableModel.m_code);
|
| 136 |
}
|
| 137 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 138 |
} else {
|
| 139 |
console.error('Expected models object but got:', modelsData);
|
| 140 |
setAvailableModels([]);
|
|
@@ -144,31 +171,6 @@ export default function AdminPage() {
|
|
| 144 |
console.error('Error fetching models:', error);
|
| 145 |
setAvailableModels([]);
|
| 146 |
});
|
| 147 |
-
|
| 148 |
-
// Fetch current fallback model
|
| 149 |
-
fetch('/api/admin/fallback-model', {
|
| 150 |
-
headers: {
|
| 151 |
-
'Authorization': `Bearer ${localStorage.getItem('adminToken')}`
|
| 152 |
-
}
|
| 153 |
-
})
|
| 154 |
-
.then(r => {
|
| 155 |
-
if (!r.ok) {
|
| 156 |
-
throw new Error(`HTTP ${r.status}: ${r.statusText}`);
|
| 157 |
-
}
|
| 158 |
-
return r.json();
|
| 159 |
-
})
|
| 160 |
-
.then(fallbackData => {
|
| 161 |
-
console.log('Fallback model data received:', fallbackData);
|
| 162 |
-
if (fallbackData.fallback_model) {
|
| 163 |
-
setSelectedFallbackModel(fallbackData.fallback_model.m_code);
|
| 164 |
-
} else {
|
| 165 |
-
setSelectedFallbackModel('');
|
| 166 |
-
}
|
| 167 |
-
})
|
| 168 |
-
.catch((error) => {
|
| 169 |
-
console.error('Error fetching fallback model:', error);
|
| 170 |
-
setSelectedFallbackModel('');
|
| 171 |
-
});
|
| 172 |
}, []);
|
| 173 |
|
| 174 |
const fetchPrompts = useCallback(() => {
|
|
@@ -791,7 +793,10 @@ Model "${newModelData.label}" added successfully!
|
|
| 791 |
label="Model"
|
| 792 |
name="selected-model"
|
| 793 |
value={selectedModel}
|
| 794 |
-
onChange={(newValue) =>
|
|
|
|
|
|
|
|
|
|
| 795 |
options={[
|
| 796 |
{ value: 'random', label: 'Random' },
|
| 797 |
...(availableModels || [])
|
|
@@ -809,16 +814,14 @@ Model "${newModelData.label}" added successfully!
|
|
| 809 |
label="Fallback"
|
| 810 |
name="fallback-model"
|
| 811 |
value={selectedFallbackModel}
|
| 812 |
-
onChange={(newValue) => handleFallbackModelChange(newValue || '')}
|
| 813 |
-
options={[
|
| 814 |
-
{ value: '', label: 'No fallback (use STUB_MODEL)' },
|
| 815 |
-
...(availableModels || [])
|
| 816 |
.filter(model => model.is_available)
|
| 817 |
.map(model => ({
|
| 818 |
value: model.m_code,
|
| 819 |
label: model.label
|
| 820 |
}))
|
| 821 |
-
|
| 822 |
keySelector={(o) => o.value}
|
| 823 |
labelSelector={(o) => o.label}
|
| 824 |
/>
|
|
|
|
| 135 |
localStorage.setItem(SELECTED_MODEL_KEY, firstAvailableModel.m_code);
|
| 136 |
}
|
| 137 |
}
|
| 138 |
+
|
| 139 |
+
// Fetch current fallback model after models are loaded
|
| 140 |
+
fetch('/api/admin/fallback-model', {
|
| 141 |
+
headers: {
|
| 142 |
+
'Authorization': `Bearer ${localStorage.getItem('adminToken')}`
|
| 143 |
+
}
|
| 144 |
+
})
|
| 145 |
+
.then(r => {
|
| 146 |
+
if (!r.ok) {
|
| 147 |
+
throw new Error(`HTTP ${r.status}: ${r.statusText}`);
|
| 148 |
+
}
|
| 149 |
+
return r.json();
|
| 150 |
+
})
|
| 151 |
+
.then(fallbackData => {
|
| 152 |
+
console.log('Fallback model data received:', fallbackData);
|
| 153 |
+
if (fallbackData.fallback_model) {
|
| 154 |
+
setSelectedFallbackModel(fallbackData.fallback_model.m_code);
|
| 155 |
+
} else {
|
| 156 |
+
const stubModel = modelsData.models.find((m: ModelData) => m.m_code === 'STUB_MODEL' && m.is_available);
|
| 157 |
+
setSelectedFallbackModel(stubModel ? 'STUB_MODEL' : '');
|
| 158 |
+
}
|
| 159 |
+
})
|
| 160 |
+
.catch((error) => {
|
| 161 |
+
console.error('Error fetching fallback model:', error);
|
| 162 |
+
const stubModel = modelsData.models.find((m: ModelData) => m.m_code === 'STUB_MODEL' && m.is_available);
|
| 163 |
+
setSelectedFallbackModel(stubModel ? 'STUB_MODEL' : '');
|
| 164 |
+
});
|
| 165 |
} else {
|
| 166 |
console.error('Expected models object but got:', modelsData);
|
| 167 |
setAvailableModels([]);
|
|
|
|
| 171 |
console.error('Error fetching models:', error);
|
| 172 |
setAvailableModels([]);
|
| 173 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 174 |
}, []);
|
| 175 |
|
| 176 |
const fetchPrompts = useCallback(() => {
|
|
|
|
| 793 |
label="Model"
|
| 794 |
name="selected-model"
|
| 795 |
value={selectedModel}
|
| 796 |
+
onChange={(newValue) => {
|
| 797 |
+
const modelCode = newValue || (availableModels.find(m => m.m_code === 'STUB_MODEL' && m.is_available)?.m_code || 'STUB_MODEL');
|
| 798 |
+
handleModelChange(modelCode);
|
| 799 |
+
}}
|
| 800 |
options={[
|
| 801 |
{ value: 'random', label: 'Random' },
|
| 802 |
...(availableModels || [])
|
|
|
|
| 814 |
label="Fallback"
|
| 815 |
name="fallback-model"
|
| 816 |
value={selectedFallbackModel}
|
| 817 |
+
onChange={(newValue) => handleFallbackModelChange(newValue || 'STUB_MODEL')}
|
| 818 |
+
options={(availableModels || [])
|
|
|
|
|
|
|
| 819 |
.filter(model => model.is_available)
|
| 820 |
.map(model => ({
|
| 821 |
value: model.m_code,
|
| 822 |
label: model.label
|
| 823 |
}))
|
| 824 |
+
}
|
| 825 |
keySelector={(o) => o.value}
|
| 826 |
labelSelector={(o) => o.label}
|
| 827 |
/>
|