Mistral: Remove hard coded model lists
| @@ -3365,67 +3365,7 @@ | ||
| 3365 | 3365 | <div> |
| 3366 | 3366 | <h4 data-i18n="MistralAI Model">MistralAI Model</h4> |
| 3367 | 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 | 3369 | </select> |
| 3430 | 3370 | </div> |
| 3431 | 3371 | </form> |
| @@ -1834,31 +1834,18 @@ function saveModelList(data) { | ||
| 1834 | 1834 | } |
| 1835 | 1835 | |
| 1836 | 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 | - }); | |
| 1847 | - | |
| 1848 | - const otherOptionsGroup = mistralModelSelect.querySelector('#mistralai_other_models'); | |
| 1849 | - for (const model of model_list.filter(model => model?.capabilities?.completion_chat)) { | |
| 1850 | - if (!options.some(option => option.value === model.id) && otherOptionsGroup) { | |
| 1851 | - otherOptionsGroup.append(new Option(model.id, model.id)); | |
| 1852 | - } | |
| 1853 | - } | |
| 1854 | 1838 | |
| 1855 | 1839 | for (const selectedModelmodel =of model_list.findfilter(model => model?.id === oai_settingscapabilities?.mistralai_modelcompletion_chat);) { |
| 1856 | - if (!selectedModel) { | |
| 1840 | + $('#model_mistralai_select').append(new Option(model.id, model.id)); | |
| 1857 | - oai_settings.mistralai_model = model_list.find(model => model?.capabilities?.completion_chat)?.id; | |
| 1841 | + } | |
| 1858 | - } | |
| 1859 | 1842 | |
| 1860 | - $('#model_mistralai_select').val(oai_settings.mistralai_model).trigger('change'); | |
| 1843 | + const selectedModel = model_list.find(model => model.id === oai_settings.mistralai_model); | |
| 1844 | + if (!selectedModel) { | |
| 1845 | + oai_settings.mistralai_model = model_list.find(model => model?.capabilities?.completion_chat)?.id; | |
| 1861 | 1846 | } |
| 1847 | + | |
| 1848 | + $('#model_mistralai_select').val(oai_settings.mistralai_model).trigger('change'); | |
| 1862 | 1849 | } |
| 1863 | 1850 | |
| 1864 | 1851 | if (oai_settings.chat_completion_source == chat_completion_sources.ELECTRONHUB) { |
| @@ -1934,7 +1921,7 @@ function saveModelList(data) { | ||
| 1934 | 1921 | } |
| 1935 | 1922 | |
| 1936 | 1923 | if (oai_settings.chat_completion_source === chat_completion_sources.MAKERSUITE) { |
| 1937 | 1924 | // Clear only the "Other" optgroup for dynamic models |
| 1938 | 1925 | $('#google_other_models').empty(); |
| 1939 | 1926 | |
| 1940 | 1927 | // Get static model options that are already in the HTML |
| @@ -1945,7 +1932,7 @@ function saveModelList(data) { | ||
| 1945 | 1932 | |
| 1946 | 1933 | // Add dynamic models to the "Other" group |
| 1947 | 1934 | model_list.forEach((model) => { |
| 1948 | 1935 | // Only add if not already in static list |
| 1949 | 1936 | if (!staticModels.includes(model.id)) { |
| 1950 | 1937 | $('#google_other_models').append( |
| 1951 | 1938 | $('<option>', { |
| @@ -4650,75 +4637,8 @@ function getMistralMaxContext(model, isUnlocked) { | ||
| 4650 | 4637 | } |
| 4651 | 4638 | } |
| 4652 | 4639 | |
| 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 | 4640 | // 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 | } |
| 4723 | 4643 | |
| 4724 | 4644 | /** |