chore: update 2 file(s)
This commit is contained in:
77
chatv2.js
77
chatv2.js
@@ -96,52 +96,53 @@ function updateBackendModelDisplay() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function fetchBackendModels() {
|
async function fetchBackendModels() {
|
||||||
try {
|
const selector = document.getElementById('backendModelSelector');
|
||||||
// ✅ FIX: Ensure valid backend before fetching
|
let allModels = [];
|
||||||
if (!currentBackendModel || currentBackendModel === ':') {
|
|
||||||
currentBackendModel = 'plato';
|
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();
|
availableBackendModels = allModels;
|
||||||
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
|
|
||||||
}));
|
|
||||||
|
|
||||||
|
if (selector) {
|
||||||
|
if (availableBackendModels.length === 0) {
|
||||||
|
selector.innerHTML = '<option value="">No models available (check backends)</option>';
|
||||||
|
} else {
|
||||||
populateBackendModelSelector();
|
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];
|
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}`;
|
currentBackendModel = `${availableBackendModels[0].backend}:${availableBackendModels[0].model}`;
|
||||||
selector.value = currentBackendModel;
|
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>';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateBackendModelDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
function populateBackendModelSelector() {
|
function populateBackendModelSelector() {
|
||||||
@@ -157,7 +158,11 @@ function populateBackendModelSelector() {
|
|||||||
`<option value="${backendModel.backend}:${backendModel.model}">${BACKENDS[backendModel.backend].name} - ${backendModel.model}</option>`
|
`<option value="${backendModel.backend}:${backendModel.model}">${BACKENDS[backendModel.backend].name} - ${backendModel.model}</option>`
|
||||||
).join('');
|
).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;
|
selector.value = currentBackendModel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ server {
|
|||||||
|
|
||||||
# Proxy API requests to plato.lan (192.168.1.74)
|
# Proxy API requests to plato.lan (192.168.1.74)
|
||||||
location /api/plato/ {
|
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 Host $host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
@@ -66,7 +66,7 @@ server {
|
|||||||
|
|
||||||
# Default /api/ points to plato for backwards compatibility
|
# Default /api/ points to plato for backwards compatibility
|
||||||
location /api/ {
|
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 Host $host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
|||||||
Reference in New Issue
Block a user