From 2b6a0c866f9065c8e9b5d367286a4edd810303c3 Mon Sep 17 00:00:00 2001 From: mike Date: Sun, 28 Dec 2025 05:25:26 +0100 Subject: [PATCH] chore: update 2 file(s) --- chatv2.js | 77 +++++++++++++++++++++++++++++------------------------- nginx.conf | 4 +-- 2 files changed, 43 insertions(+), 38 deletions(-) diff --git a/chatv2.js b/chatv2.js index 896b937..c33ab1a 100644 --- a/chatv2.js +++ b/chatv2.js @@ -96,52 +96,53 @@ function updateBackendModelDisplay() { } async function fetchBackendModels() { - try { - // ✅ FIX: Ensure valid backend before fetching - if (!currentBackendModel || currentBackendModel === ':') { - currentBackendModel = 'plato'; + 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(); + 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); } + } - const apiUrl = getApiUrl(); - console.log(`Fetching models from: ${apiUrl}`); - - const response = await fetch(`${apiUrl}/models`); - const selector = document.getElementById('backendModelSelector'); - - if (response.ok) { - const data = await response.json(); - - const { backendKey } = splitBackendModel(currentBackendModel); - const effectiveBackendKey = backendKey || 'plato'; - - availableBackendModels = data.data.map(model => ({ - backend: effectiveBackendKey, - model: model.id - })); + availableBackendModels = allModels; + if (selector) { + if (availableBackendModels.length === 0) { + selector.innerHTML = ''; + } 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 = ''; - } - } - } catch (error) { - console.error('Error fetching models:', error); - const selector = document.getElementById('backendModelSelector'); - if (selector) { - selector.innerHTML = ''; } } + + updateBackendModelDisplay(); } function populateBackendModelSelector() { @@ -157,7 +158,11 @@ function populateBackendModelSelector() { `` ).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; } } diff --git a/nginx.conf b/nginx.conf index d471da9..05302ff 100644 --- a/nginx.conf +++ b/nginx.conf @@ -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;