MistralAI: Add new models to the list

ff2c71c4ef54f06d58c9410eedcfd04bd400b881

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

4 files changed, +43 -2Ignore whitespace
public/css/toggle-dependent.css+4 -0
@@ -482,3 +482,7 @@ label[for="trim_spaces"]:has(input:checked) i.warning {
482 gap: 5px;482 gap: 5px;
483 margin: 10px 0;483 margin: 10px 0;
484}484}
485
486#mistralai_other_models:empty {
487 display: none;
488}
public/index.html+9 -1
@@ -3012,17 +3012,23 @@
3012 <option value="open-mixtral-8x7b">open-mixtral-8x7b</option>3012 <option value="open-mixtral-8x7b">open-mixtral-8x7b</option>
3013 <option value="open-mixtral-8x22b">open-mixtral-8x22b</option>3013 <option value="open-mixtral-8x22b">open-mixtral-8x22b</option>
3014 <option value="open-codestral-mamba">open-codestral-mamba</option>3014 <option value="open-codestral-mamba">open-codestral-mamba</option>
3015 <option value="ministral-3b-latest">ministral-3b-latest</option>
3016 <option value="ministral-8b-latest">ministral-8b-latest</option>
3017 <option value="mistral-tiny-latest">mistral-tiny-latest</option>
3015 <option value="mistral-small-latest">mistral-small-latest</option>3018 <option value="mistral-small-latest">mistral-small-latest</option>
3016 <option value="mistral-medium-latest">mistral-medium-latest</option>3019 <option value="mistral-medium-latest">mistral-medium-latest</option>
3017 <option value="mistral-large-latest">mistral-large-latest</option>3020 <option value="mistral-large-latest">mistral-large-latest</option>
3018 <option value="codestral-latest">codestral-latest</option>3021 <option value="codestral-latest">codestral-latest</option>
3019 <option value="codestral-mamba-latest">codestral-mamba-latest</option>3022 <option value="codestral-mamba-latest">codestral-mamba-latest</option>
3020 <option value="pixtral-latest">pixtral-latest</option>3023 <option value="pixtral-12b-latest">pixtral-12b-latest</option>
3021 </optgroup>3024 </optgroup>
3022 <optgroup label="Sub-versions">3025 <optgroup label="Sub-versions">
3023 <option value="open-mistral-nemo-2407">open-mistral-nemo-2407</option>3026 <option value="open-mistral-nemo-2407">open-mistral-nemo-2407</option>
3024 <option value="open-mixtral-8x22b-2404">open-mixtral-8x22b-2404</option>3027 <option value="open-mixtral-8x22b-2404">open-mixtral-8x22b-2404</option>
3028 <option value="ministral-3b-2410">ministral-3b-2410</option>
3029 <option value="ministral-8b-2410">ministral-8b-2410</option>
3025 <option value="mistral-tiny-2312">mistral-tiny-2312</option>3030 <option value="mistral-tiny-2312">mistral-tiny-2312</option>
3031 <option value="mistral-tiny-2407">mistral-tiny-2407</option>
3026 <option value="mistral-small-2312">mistral-small-2312</option>3032 <option value="mistral-small-2312">mistral-small-2312</option>
3027 <option value="mistral-small-2402">mistral-small-2402</option>3033 <option value="mistral-small-2402">mistral-small-2402</option>
3028 <option value="mistral-small-2409">mistral-small-2409</option>3034 <option value="mistral-small-2409">mistral-small-2409</option>
@@ -3030,9 +3036,11 @@
3030 <option value="mistral-large-2402">mistral-large-2402</option>3036 <option value="mistral-large-2402">mistral-large-2402</option>
3031 <option value="mistral-large-2407">mistral-large-2407</option>3037 <option value="mistral-large-2407">mistral-large-2407</option>
3032 <option value="codestral-2405">codestral-2405</option>3038 <option value="codestral-2405">codestral-2405</option>
3039 <option value="codestral-2405-blue">codestral-2405-blue</option>
3033 <option value="codestral-mamba-2407">codestral-mamba-2407</option>3040 <option value="codestral-mamba-2407">codestral-mamba-2407</option>
3034 <option value="pixtral-12b-2409">pixtral-12b-2409</option>3041 <option value="pixtral-12b-2409">pixtral-12b-2409</option>
3035 </optgroup>3042 </optgroup>
3043 <optgroup id="mistralai_other_models" label="Other"></optgroup>
3036 </select>3044 </select>
3037 </div>3045 </div>
3038 </form>3046 </form>
public/scripts/extensions/caption/settings.html+1 -1
@@ -35,7 +35,7 @@
35 <div class="flex1 flex-container flexFlowColumn flexNoGap">35 <div class="flex1 flex-container flexFlowColumn flexNoGap">
36 <label for="caption_multimodal_model" data-i18n="Model">Model</label>36 <label for="caption_multimodal_model" data-i18n="Model">Model</label>
37 <select id="caption_multimodal_model" class="flex1 text_pole">37 <select id="caption_multimodal_model" class="flex1 text_pole">
38 <option data-type="mistral" value="pixtral-latest">pixtral-latest</option>38 <option data-type="mistral" value="pixtral-12b-latest">pixtral-12b-latest</option>
39 <option data-type="mistral" value="pixtral-12b-2409">pixtral-12b-2409</option>39 <option data-type="mistral" value="pixtral-12b-2409">pixtral-12b-2409</option>
40 <option data-type="zerooneai" value="yi-vision">yi-vision</option>40 <option data-type="zerooneai" value="yi-vision">yi-vision</option>
41 <option data-type="openai" value="gpt-4-vision-preview">gpt-4-vision-preview</option>41 <option data-type="openai" value="gpt-4-vision-preview">gpt-4-vision-preview</option>
public/scripts/openai.js+29 -0
@@ -1609,6 +1609,33 @@ function saveModelList(data) {
16091609
1610 $('#model_blockentropy_select').val(oai_settings.blockentropy_model).trigger('change');1610 $('#model_blockentropy_select').val(oai_settings.blockentropy_model).trigger('change');
1611 }1611 }
1612
1613 if (oai_settings.chat_completion_source == chat_completion_sources.MISTRALAI) {
1614 /** @type {HTMLSelectElement} */
1615 const mistralModelSelect = document.querySelector('#model_mistralai_select');
1616 if (mistralModelSelect) {
1617 const options = Array.from(mistralModelSelect.options);
1618 options.forEach((option) => {
1619 const existingModel = model_list.find(model => model.id === option.value);
1620 if (!existingModel) {
1621 option.remove();
1622 }
1623 });
1624
1625 const otherOptionsGroup = mistralModelSelect.querySelector('#mistralai_other_models');
1626 for (const model of model_list.filter(model => model?.capabilities?.completion_chat)) {
1627 if (!options.some(option => option.value === model.id) && otherOptionsGroup) {
1628 otherOptionsGroup.append(new Option(model.id, model.id));
1629 }
1630 }
1631
1632 const selectedModel = model_list.find(model => model.id === oai_settings.mistralai_model);
1633 if (!selectedModel) {
1634 oai_settings.mistralai_model = model_list.find(model => model?.capabilities?.completion_chat)?.id;
1635 $('#model_mistralai_select').val(oai_settings.mistralai_model).trigger('change');
1636 }
1637 }
1638 }
1612}1639}
16131640
1614function appendOpenRouterOptions(model_list, groupModels = false, sort = false) {1641function appendOpenRouterOptions(model_list, groupModels = false, sort = false) {
@@ -4659,6 +4686,8 @@ export function isImageInliningSupported() {
4659 'chatgpt-4o-latest',4686 'chatgpt-4o-latest',
4660 'yi-vision',4687 'yi-vision',
4661 'pixtral-latest',4688 'pixtral-latest',
4689 'pixtral-12b-latest',
4690 'pixtral-12b',
4662 'pixtral-12b-2409',4691 'pixtral-12b-2409',
4663 ];4692 ];
46644693