Selectable openrouter providers

This commit is contained in:
Cohee
2024-05-06 19:26:20 +03:00
parent 694cf6f762
commit 7063fce2af
8 changed files with 114 additions and 1 deletions

View File

@@ -1,7 +1,8 @@
import { isMobile } from './RossAscends-mods.js';
import { amount_gen, callPopup, eventSource, event_types, getRequestHeaders, max_context, setGenerationParamsFromPreset } from '../script.js';
import { amount_gen, callPopup, eventSource, event_types, getRequestHeaders, max_context, saveSettingsDebounced, setGenerationParamsFromPreset } from '../script.js';
import { textgenerationwebui_settings as textgen_settings, textgen_types } from './textgen-settings.js';
import { tokenizers } from './tokenizers.js';
import { oai_settings } from './openai.js';
let mancerModels = [];
let togetherModels = [];
@@ -11,6 +12,36 @@ let vllmModels = [];
let aphroditeModels = [];
export let openRouterModels = [];
/**
* List of OpenRouter providers.
* @type {string[]}
*/
const OPENROUTER_PROVIDERS = [
'OpenAI',
'Anthropic',
'HuggingFace',
'Google',
'Mancer',
'Mancer 2',
'Together',
'DeepInfra',
'Azure',
'Modal',
'AnyScale',
'Replicate',
'Perplexity',
'Recursal',
'Fireworks',
'Mistral',
'Groq',
'Cohere',
'Lepton',
'OctoAI',
'Novita',
'Lynn',
'Lynn 2',
];
export async function loadOllamaModels(data) {
if (!Array.isArray(data)) {
console.error('Invalid Ollama models data', data);
@@ -476,6 +507,33 @@ jQuery(function () {
$('#vllm_model').on('change', onVllmModelSelect);
$('#aphrodite_model').on('change', onAphroditeModelSelect);
const providersSelect = $('.openrouter_providers');
for (const provider of OPENROUTER_PROVIDERS) {
providersSelect.append($('<option>', {
value: provider,
text: provider,
}));
}
providersSelect.on('change', function () {
const selectedProviders = $(this).val();
// Not a multiple select?
if (!Array.isArray(selectedProviders)) {
return;
}
if ($(this).is('#openrouter_providers_text')) {
textgen_settings.openrouter_providers = selectedProviders;
}
if ($(this).is('#openrouter_providers_chat')) {
oai_settings.openrouter_providers = selectedProviders;
}
saveSettingsDebounced();
});
if (!isMobile()) {
$('#mancer_model').select2({
placeholder: 'Select a model',
@@ -532,5 +590,20 @@ jQuery(function () {
width: '100%',
templateResult: getAphroditeModelTemplate,
});
providersSelect.select2({
sorter: data => data.sort((a, b) => a.text.localeCompare(b.text)),
placeholder: 'Select providers. No selection = all providers.',
searchInputPlaceholder: 'Search providers...',
searchInputCssClass: 'text_pole',
width: '100%',
});
providersSelect.on('select2:select', function (/** @type {any} */ evt) {
const element = evt.params.data.element;
const $element = $(element);
$element.detach();
$(this).append($element);
$(this).trigger('change');
});
}
});