Mistral: Remove hard coded model lists

00cd7f8180606d1616cd9890a08f612ac990cb8f

Cohee <18619528+Cohee1207@users.noreply.github.com>

2 files changed, +4 -144Showing whitespace changes
public/index.html+1 -61
@@ -3365,67 +3365,7 @@
3365 <div>3365 <div>
3366 <h4 data-i18n="MistralAI Model">MistralAI Model</h4>3366 <h4 data-i18n="MistralAI Model">MistralAI Model</h4>
3367 <select id="model_mistralai_select">3367 <select id="model_mistralai_select">
3368 <optgroup label="Latest">3368 <option data-i18n="-- Connect to the API --" value="">-- Connect to the API --</option>
3369 <option value="open-mistral-nemo">open-mistral-nemo</option>
3370 <option value="open-mistral-7b">open-mistral-7b</option>
3371 <option value="open-mixtral-8x7b">open-mixtral-8x7b</option>
3372 <option value="open-mixtral-8x22b">open-mixtral-8x22b</option>
3373 <option value="open-codestral-mamba">open-codestral-mamba</option>
3374 <option value="ministral-3b-latest">ministral-3b-latest</option>
3375 <option value="ministral-8b-latest">ministral-8b-latest</option>
3376 <option value="mistral-tiny-latest">mistral-tiny-latest</option>
3377 <option value="mistral-small-latest">mistral-small-latest</option>
3378 <option value="mistral-medium-latest">mistral-medium-latest</option>
3379 <option value="mistral-large-latest">mistral-large-latest</option>
3380 <option value="mistral-saba-latest">mistral-saba-latest</option>
3381 <option value="codestral-latest">codestral-latest</option>
3382 <option value="codestral-mamba-latest">codestral-mamba-latest</option>
3383 <option value="pixtral-12b-latest">pixtral-12b-latest</option>
3384 <option value="pixtral-large-latest">pixtral-large-latest</option>
3385 <option value="devstral-small-latest">devstral-small-latest</option>
3386 <option value="devstral-medium-latest">devstral-medium-latest</option>
3387 <option value="magistral-small-latest">magistral-small-latest</option>
3388 <option value="magistral-medium-latest">magistral-medium-latest</option>
3389 </optgroup>
3390 <optgroup label="Sub-versions">
3391 <option value="open-mistral-nemo-2407">open-mistral-nemo-2407</option>
3392 <option value="open-mixtral-8x22b-2404">open-mixtral-8x22b-2404</option>
3393 <option value="ministral-3b-2410">ministral-3b-2410</option>
3394 <option value="ministral-8b-2410">ministral-8b-2410</option>
3395 <option value="mistral-tiny-2312">mistral-tiny-2312</option>
3396 <option value="mistral-tiny-2407">mistral-tiny-2407</option>
3397 <option value="mistral-small-2312">mistral-small-2312</option>
3398 <option value="mistral-small-2402">mistral-small-2402</option>
3399 <option value="mistral-small-2409">mistral-small-2409</option>
3400 <option value="mistral-small-2501">mistral-small-2501</option>
3401 <option value="mistral-small-2503">mistral-small-2503</option>
3402 <option value="mistral-small-2506">mistral-small-2506</option>
3403 <option value="mistral-medium-2312">mistral-medium-2312</option>
3404 <option value="mistral-medium-2505">mistral-medium-2505</option>
3405 <option value="mistral-medium-2508">mistral-medium-2508</option>
3406 <option value="mistral-large-2402">mistral-large-2402</option>
3407 <option value="mistral-large-2407">mistral-large-2407</option>
3408 <option value="mistral-large-2411">mistral-large-2411</option>
3409 <option value="mistral-large-pixtral-2411">mistral-large-pixtral-2411</option>
3410 <option value="mistral-saba-2502">mistral-saba-2502</option>
3411 <option value="codestral-2405">codestral-2405</option>
3412 <option value="codestral-2405-blue">codestral-2405-blue</option>
3413 <option value="codestral-mamba-2407">codestral-mamba-2407</option>
3414 <option value="codestral-2411-rc5">codestral-2411-rc5</option>
3415 <option value="codestral-2412">codestral-2412</option>
3416 <option value="codestral-2501">codestral-2501</option>
3417 <option value="codestral-2508">codestral-2508</option>
3418 <option value="pixtral-12b-2409">pixtral-12b-2409</option>
3419 <option value="pixtral-large-2411">pixtral-large-2411</option>
3420 <option value="devstral-small-2505">devstral-small-2505</option>
3421 <option value="devstral-small-2507">devstral-small-2507</option>
3422 <option value="devstral-medium-2507">devstral-medium-2507</option>
3423 <option value="magistral-small-2506">magistral-small-2506</option>
3424 <option value="magistral-medium-2506">magistral-medium-2506</option>
3425 <option value="magistral-small-2507">magistral-small-2507</option>
3426 <option value="magistral-medium-2507">magistral-medium-2507</option>
3427 </optgroup>
3428 <optgroup id="mistralai_other_models" label="Other"></optgroup>
3429 </select>3369 </select>
3430 </div>3370 </div>
3431 </form>3371 </form>
public/scripts/openai.js+3 -83
@@ -1834,22 +1834,10 @@ function saveModelList(data) {
1834 }1834 }
18351835
1836 if (oai_settings.chat_completion_source == chat_completion_sources.MISTRALAI) {1836 if (oai_settings.chat_completion_source == chat_completion_sources.MISTRALAI) {
1837 /** @type {HTMLSelectElement} */1837 $('#model_mistralai_select').empty();
1838 const mistralModelSelect = document.querySelector('#model_mistralai_select');
1839 if (mistralModelSelect) {
1840 const options = Array.from(mistralModelSelect.options);
1841 options.forEach((option) => {
1842 const existingModel = model_list.find(model => model.id === option.value);
1843 if (!existingModel) {
1844 option.remove();
1845 }
1846 });
18471838
1848 const otherOptionsGroup = mistralModelSelect.querySelector('#mistralai_other_models');
1849 for (const model of model_list.filter(model => model?.capabilities?.completion_chat)) {1839 for (const model of model_list.filter(model => model?.capabilities?.completion_chat)) {
1850 if (!options.some(option => option.value === model.id) && otherOptionsGroup) {1840 $('#model_mistralai_select').append(new Option(model.id, model.id));
1851 otherOptionsGroup.append(new Option(model.id, model.id));
1852 }
1853 }1841 }
18541842
1855 const selectedModel = model_list.find(model => model.id === oai_settings.mistralai_model);1843 const selectedModel = model_list.find(model => model.id === oai_settings.mistralai_model);
@@ -1859,7 +1847,6 @@ function saveModelList(data) {
18591847
1860 $('#model_mistralai_select').val(oai_settings.mistralai_model).trigger('change');1848 $('#model_mistralai_select').val(oai_settings.mistralai_model).trigger('change');
1861 }1849 }
1862 }
18631850
1864 if (oai_settings.chat_completion_source == chat_completion_sources.ELECTRONHUB) {1851 if (oai_settings.chat_completion_source == chat_completion_sources.ELECTRONHUB) {
1865 model_list = model_list.filter(model => model?.endpoints?.includes('/v1/chat/completions'));1852 model_list = model_list.filter(model => model?.endpoints?.includes('/v1/chat/completions'));
@@ -4650,75 +4637,8 @@ function getMistralMaxContext(model, isUnlocked) {
4650 }4637 }
4651 }4638 }
46524639
4653 const contextMap = {
4654 'codestral-2405': 32768,
4655 'codestral-2411-rc5': 262144,
4656 'codestral-2412': 262144,
4657 'codestral-2501': 262144,
4658 'codestral-2508': 256000,
4659 'codestral-latest': 256000,
4660 'codestral-mamba-2407': 262144,
4661 'codestral-mamba-latest': 262144,
4662 'open-codestral-mamba': 262144,
4663 'ministral-3b-2410': 131072,
4664 'ministral-3b-latest': 131072,
4665 'ministral-8b-2410': 131072,
4666 'ministral-8b-latest': 131072,
4667 'mistral-large-2407': 131072,
4668 'mistral-large-2411': 131072,
4669 'mistral-large-latest': 131072,
4670 'mistral-large-pixtral-2411': 131072,
4671 'mistral-tiny-2407': 131072,
4672 'mistral-tiny-latest': 131072,
4673 'open-mistral-nemo': 131072,
4674 'open-mistral-nemo-2407': 131072,
4675 'pixtral-12b': 131072,
4676 'pixtral-12b-2409': 131072,
4677 'pixtral-12b-latest': 131072,
4678 'pixtral-large-2411': 131072,
4679 'pixtral-large-latest': 131072,
4680 'open-mixtral-8x22b': 65536,
4681 'open-mixtral-8x22b-2404': 65536,
4682 'mistral-embed': 32768,
4683 'mistral-large-2402': 32768,
4684 'mistral-medium': 131072,
4685 'mistral-medium-2312': 32768,
4686 'mistral-medium-2505': 131072,
4687 'mistral-medium-2508': 262144,
4688 'mistral-medium-latest': 262144,
4689 'mistral-moderation-2411': 32768,
4690 'mistral-moderation-latest': 32768,
4691 'mistral-ocr-2503': 32768,
4692 'mistral-ocr-latest': 32768,
4693 'mistral-saba-2502': 32768,
4694 'mistral-saba-latest': 32768,
4695 'mistral-small': 32768,
4696 'mistral-small-2312': 32768,
4697 'mistral-small-2402': 32768,
4698 'mistral-small-2409': 32768,
4699 'mistral-small-2501': 32768,
4700 'mistral-small-2503': 32768,
4701 'mistral-small-2506': 131072,
4702 'mistral-small-latest': 131072,
4703 'mistral-tiny': 32768,
4704 'mistral-tiny-2312': 32768,
4705 'open-mistral-7b': 32768,
4706 'open-mixtral-8x7b': 32768,
4707 'devstral-small-2505': 131072,
4708 'devstral-small-2507': 131072,
4709 'devstral-small-latest': 131072,
4710 'devstral-medium-latest': 131072,
4711 'devstral-medium-2507': 131072,
4712 'magistral-medium-latest': 40960,
4713 'magistral-medium-2506': 40960,
4714 'magistral-small-latest': 40960,
4715 'magistral-small-2506': 40000,
4716 'magistral-small-2507': 40960,
4717 'magistral-medium-2507': 40960,
4718 };
4719
4720 // Return context size if model found, otherwise default to 32k4640 // Return context size if model found, otherwise default to 32k
4721 return Object.entries(contextMap).find(([key]) => model.includes(key))?.[1] || 32768;4641 return max_32k;
4722}4642}
47234643
4724/**4644/**