diff --git a/public/scripts/RossAscends-mods.js b/public/scripts/RossAscends-mods.js index 3166b4afa..db03da327 100644 --- a/public/scripts/RossAscends-mods.js +++ b/public/scripts/RossAscends-mods.js @@ -360,6 +360,7 @@ function RA_autoconnect(PrevApi) { || (textgen_settings.type === textgen_types.INFERMATICAI && secret_state[SECRET_KEYS.INFERMATICAI]) || (textgen_settings.type === textgen_types.DREAMGEN && secret_state[SECRET_KEYS.DREAMGEN]) || (textgen_settings.type === textgen_types.OPENROUTER && secret_state[SECRET_KEYS.OPENROUTER]) + || (textgen_settings.type === textgen_types.FEATHERLESS && secret_state[SECRET_KEYS.FEATHERLESS]) ) { $('#api_button_textgenerationwebui').trigger('click'); } diff --git a/public/scripts/preset-manager.js b/public/scripts/preset-manager.js index 42cc7585a..94eff6971 100644 --- a/public/scripts/preset-manager.js +++ b/public/scripts/preset-manager.js @@ -322,6 +322,7 @@ class PresetManager { 'infermaticai_model', 'dreamgen_model', 'openrouter_model', + 'featherless_model', 'max_tokens_second', 'openrouter_providers', ]; diff --git a/public/scripts/secrets.js b/public/scripts/secrets.js index f9f3ec86d..ee6635791 100644 --- a/public/scripts/secrets.js +++ b/public/scripts/secrets.js @@ -57,6 +57,7 @@ const INPUT_MAP = { [SECRET_KEYS.COHERE]: '#api_key_cohere', [SECRET_KEYS.PERPLEXITY]: '#api_key_perplexity', [SECRET_KEYS.GROQ]: '#api_key_groq', + [SECRET_KEYS.FEATHERLESS]: '#api_key_featherless', }; async function clearSecret() { diff --git a/public/scripts/textgen-settings.js b/public/scripts/textgen-settings.js index e97c62f17..f33c38e9e 100644 --- a/public/scripts/textgen-settings.js +++ b/public/scripts/textgen-settings.js @@ -1013,6 +1013,8 @@ export function getTextGenModel() { throw new Error('No Ollama model selected'); } return settings.ollama_model; + case FEATHERLESS: + return settings.featherless_model; default: return undefined; } diff --git a/src/additional-headers.js b/src/additional-headers.js index b8a44b390..c11aeb719 100644 --- a/src/additional-headers.js +++ b/src/additional-headers.js @@ -147,6 +147,14 @@ function getKoboldCppHeaders(directories) { }) : {}; } +function getFeatherlessHeaders(directories) { + const apiKey = readSecret(directories, SECRET_KEYS.FEATHERLESS); + + return apiKey ? ({ + 'Authorization': `Bearer ${apiKey}`, + }) : {}; +} + function getOverrideHeaders(urlHost) { const requestOverrides = getConfigValue('requestOverrides', []); const overrideHeaders = requestOverrides?.find((e) => e.hosts?.includes(urlHost))?.headers; @@ -187,6 +195,7 @@ function setAdditionalHeadersByType(requestHeaders, type, server, directories) { [TEXTGEN_TYPES.OPENROUTER]: getOpenRouterHeaders, [TEXTGEN_TYPES.KOBOLDCPP]: getKoboldCppHeaders, [TEXTGEN_TYPES.LLAMACPP]: getLlamaCppHeaders, + [TEXTGEN_TYPES.FEATHERLESS]: getFeatherlessHeaders, }; const getHeaders = headerGetters[type];