|
195 | 195 | setStatus('Model capability detected: max tokens set to ' + cap); |
196 | 196 | } |
197 | 197 |
|
| 198 | + async function fetchAndApplyModelCapability(modelName) { |
| 199 | + const key = (modelName || '').trim(); |
| 200 | + if (!key) return; |
| 201 | + const url = mainUrlEl.value.trim() || 'http://localhost:11434'; |
| 202 | + try { |
| 203 | + const res = await fetch('/api/ollama/model-capability?url=' + encodeURIComponent(url) + '&model=' + encodeURIComponent(key)); |
| 204 | + const data = await res.json(); |
| 205 | + if (!res.ok) throw new Error(data.error || res.statusText); |
| 206 | + const cap = Number(data.contextWindow || 0); |
| 207 | + if (!cap || cap <= 0) return; |
| 208 | + const numPredictEl = document.getElementById('ollamaNumPredict'); |
| 209 | + if (!numPredictEl) return; |
| 210 | + numPredictEl.max = String(cap); |
| 211 | + numPredictEl.value = String(cap); |
| 212 | + setStatus('Model capability detected: max tokens set to ' + cap); |
| 213 | + } catch (_) { |
| 214 | + applyModelCapability(key); |
| 215 | + } |
| 216 | + } |
| 217 | + |
198 | 218 | if (repairProjectMemoryBtn) { |
199 | 219 | repairProjectMemoryBtn.addEventListener('click', async () => { |
200 | 220 | repairProjectMemoryBtn.disabled = true; |
|
254 | 274 | mainModelList.addEventListener('change', () => { |
255 | 275 | if (mainModelList.value) { |
256 | 276 | mainModelEl.value = mainModelList.value; |
257 | | - applyModelCapability(mainModelList.value); |
| 277 | + fetchAndApplyModelCapability(mainModelList.value); |
258 | 278 | } |
259 | 279 | }); |
260 | | - applyModelCapability(mainModelEl.value); |
| 280 | + fetchAndApplyModelCapability(mainModelEl.value); |
261 | 281 | setStatus('Loaded ' + (data.models?.length || 0) + ' models'); |
262 | 282 | } catch (e) { |
263 | 283 | setStatus(e.message, true); |
264 | 284 | } |
265 | 285 | }); |
266 | | - mainModelEl.addEventListener('change', () => applyModelCapability(mainModelEl.value)); |
| 286 | + mainModelEl.addEventListener('change', () => fetchAndApplyModelCapability(mainModelEl.value)); |
267 | 287 |
|
268 | 288 | function getRagFromDom() { |
269 | 289 | return { |
|
0 commit comments