chore: update 2 file(s)
This commit is contained in:
69
chatv2.js
69
chatv2.js
@@ -96,52 +96,53 @@ function updateBackendModelDisplay() {
|
||||
}
|
||||
|
||||
async function fetchBackendModels() {
|
||||
try {
|
||||
// ✅ FIX: Ensure valid backend before fetching
|
||||
if (!currentBackendModel || currentBackendModel === ':') {
|
||||
currentBackendModel = 'plato';
|
||||
}
|
||||
|
||||
const apiUrl = getApiUrl();
|
||||
console.log(`Fetching models from: ${apiUrl}`);
|
||||
|
||||
const response = await fetch(`${apiUrl}/models`);
|
||||
const selector = document.getElementById('backendModelSelector');
|
||||
let allModels = [];
|
||||
|
||||
for (const [backendKey, backendConfig] of Object.entries(BACKENDS)) {
|
||||
try {
|
||||
const apiUrl = IS_PRODUCTION ? backendConfig.prod : backendConfig.dev;
|
||||
console.log(`Fetching models from ${backendKey}: ${apiUrl}`);
|
||||
|
||||
const response = await fetch(`${apiUrl}/models`, {
|
||||
signal: AbortSignal.timeout(5000) // 5 second timeout
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
|
||||
const { backendKey } = splitBackendModel(currentBackendModel);
|
||||
const effectiveBackendKey = backendKey || 'plato';
|
||||
|
||||
availableBackendModels = data.data.map(model => ({
|
||||
backend: effectiveBackendKey,
|
||||
if (data.data && Array.isArray(data.data)) {
|
||||
const models = data.data.map(model => ({
|
||||
backend: backendKey,
|
||||
model: model.id
|
||||
}));
|
||||
allModels = [...allModels, ...models];
|
||||
}
|
||||
} else {
|
||||
console.error(`Failed to fetch models from ${backendKey}: ${response.status} ${response.statusText}`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Error fetching models from ${backendKey}:`, error);
|
||||
}
|
||||
}
|
||||
|
||||
availableBackendModels = allModels;
|
||||
|
||||
if (selector) {
|
||||
if (availableBackendModels.length === 0) {
|
||||
selector.innerHTML = '<option value="">No models available (check backends)</option>';
|
||||
} else {
|
||||
populateBackendModelSelector();
|
||||
|
||||
// ✅ FIX: Only auto-select if no model is set
|
||||
// Auto-select if no valid model is set
|
||||
const hasModel = currentBackendModel && currentBackendModel.includes(':') && currentBackendModel.split(':')[1];
|
||||
if (!hasModel && availableBackendModels.length > 0 && selector) {
|
||||
if (!hasModel && availableBackendModels.length > 0) {
|
||||
currentBackendModel = `${availableBackendModels[0].backend}:${availableBackendModels[0].model}`;
|
||||
selector.value = currentBackendModel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updateBackendModelDisplay();
|
||||
} else {
|
||||
console.error('Failed to fetch models:', response.statusText);
|
||||
if (selector) {
|
||||
selector.innerHTML = '<option value="">Error loading models</option>';
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error fetching models:', error);
|
||||
const selector = document.getElementById('backendModelSelector');
|
||||
if (selector) {
|
||||
selector.innerHTML = '<option value="">Error loading models</option>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function populateBackendModelSelector() {
|
||||
@@ -157,7 +158,11 @@ function populateBackendModelSelector() {
|
||||
`<option value="${backendModel.backend}:${backendModel.model}">${BACKENDS[backendModel.backend].name} - ${backendModel.model}</option>`
|
||||
).join('');
|
||||
|
||||
if (currentBackendModel) {
|
||||
if (currentBackendModel && selector.querySelector(`option[value="${currentBackendModel}"]`)) {
|
||||
selector.value = currentBackendModel;
|
||||
} else if (availableBackendModels.length > 0) {
|
||||
// If current selection is invalid, reset to first available
|
||||
currentBackendModel = `${availableBackendModels[0].backend}:${availableBackendModels[0].model}`;
|
||||
selector.value = currentBackendModel;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ server {
|
||||
|
||||
# Proxy API requests to plato.lan (192.168.1.74)
|
||||
location /api/plato/ {
|
||||
proxy_pass http://192.168.1.74:1234/v1/;
|
||||
proxy_pass http://192.168.1.74:8080/v1/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
@@ -66,7 +66,7 @@ server {
|
||||
|
||||
# Default /api/ points to plato for backwards compatibility
|
||||
location /api/ {
|
||||
proxy_pass http://192.168.1.74:1234/v1/;
|
||||
proxy_pass http://192.168.1.74:8080/v1/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
|
||||
Reference in New Issue
Block a user