| import { TEXTGEN_TYPES, OPENROUTER_HEADERS, FEATHERLESS_HEADERS } from './constants.js'; |
| import { SECRET_KEYS, readSecret } from './endpoints/secrets.js'; |
| import { getConfigValue } from './util.js'; |
|
|
| |
| |
| |
| |
| |
| function getMancerHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.MANCER); |
|
|
| return apiKey ? ({ |
| 'X-API-KEY': apiKey, |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| |
| |
| |
| |
| |
| function getTogetherAIHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.TOGETHERAI); |
|
|
| return apiKey ? ({ |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| |
| |
| |
| |
| |
| function getInfermaticAIHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.INFERMATICAI); |
|
|
| return apiKey ? ({ |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| |
| |
| |
| |
| |
| function getDreamGenHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.DREAMGEN); |
|
|
| return apiKey ? ({ |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| |
| |
| |
| |
| |
| function getOpenRouterHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.OPENROUTER); |
| const baseHeaders = { ...OPENROUTER_HEADERS }; |
|
|
| return apiKey ? Object.assign(baseHeaders, { 'Authorization': `Bearer ${apiKey}` }) : baseHeaders; |
| } |
|
|
| |
| |
| |
| |
| |
| function getVllmHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.VLLM); |
|
|
| return apiKey ? ({ |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| |
| |
| |
| |
| |
| function getAphroditeHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.APHRODITE); |
|
|
| return apiKey ? ({ |
| 'X-API-KEY': apiKey, |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| |
| |
| |
| |
| |
| function getTabbyHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.TABBY); |
|
|
| return apiKey ? ({ |
| 'x-api-key': apiKey, |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| |
| |
| |
| |
| |
| function getLlamaCppHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.LLAMACPP); |
|
|
| return apiKey ? ({ |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| |
| |
| |
| |
| |
| function getOobaHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.OOBA); |
|
|
| return apiKey ? ({ |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| |
| |
| |
| |
| |
| function getKoboldCppHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.KOBOLDCPP); |
|
|
| return apiKey ? ({ |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| |
| |
| |
| |
| |
| function getFeatherlessHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.FEATHERLESS); |
| const baseHeaders = { ...FEATHERLESS_HEADERS }; |
|
|
| return apiKey ? Object.assign(baseHeaders, { 'Authorization': `Bearer ${apiKey}` }) : baseHeaders; |
| } |
|
|
| |
| |
| |
| |
| |
| function getHuggingFaceHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.HUGGINGFACE); |
|
|
| return apiKey ? ({ |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| |
| |
| |
| |
| |
| function getGenericHeaders(directories) { |
| const apiKey = readSecret(directories, SECRET_KEYS.GENERIC); |
|
|
| return apiKey ? ({ |
| 'Authorization': `Bearer ${apiKey}`, |
| }) : {}; |
| } |
|
|
| export function getOverrideHeaders(urlHost) { |
| const requestOverrides = getConfigValue('requestOverrides', []); |
| const overrideHeaders = requestOverrides?.find((e) => e.hosts?.includes(urlHost))?.headers; |
| if (overrideHeaders && urlHost) { |
| return overrideHeaders; |
| } else { |
| return {}; |
| } |
| } |
|
|
| |
| |
| |
| |
| |
| |
| export function setAdditionalHeaders(request, args, server) { |
| setAdditionalHeadersByType(args.headers, request.body.api_type, server, request.user.directories); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| export function setAdditionalHeadersByType(requestHeaders, type, server, directories) { |
| const headerGetters = { |
| [TEXTGEN_TYPES.MANCER]: getMancerHeaders, |
| [TEXTGEN_TYPES.VLLM]: getVllmHeaders, |
| [TEXTGEN_TYPES.APHRODITE]: getAphroditeHeaders, |
| [TEXTGEN_TYPES.TABBY]: getTabbyHeaders, |
| [TEXTGEN_TYPES.TOGETHERAI]: getTogetherAIHeaders, |
| [TEXTGEN_TYPES.OOBA]: getOobaHeaders, |
| [TEXTGEN_TYPES.INFERMATICAI]: getInfermaticAIHeaders, |
| [TEXTGEN_TYPES.DREAMGEN]: getDreamGenHeaders, |
| [TEXTGEN_TYPES.OPENROUTER]: getOpenRouterHeaders, |
| [TEXTGEN_TYPES.KOBOLDCPP]: getKoboldCppHeaders, |
| [TEXTGEN_TYPES.LLAMACPP]: getLlamaCppHeaders, |
| [TEXTGEN_TYPES.FEATHERLESS]: getFeatherlessHeaders, |
| [TEXTGEN_TYPES.HUGGINGFACE]: getHuggingFaceHeaders, |
| [TEXTGEN_TYPES.GENERIC]: getGenericHeaders, |
| }; |
|
|
| const getHeaders = headerGetters[type]; |
| const headers = getHeaders ? getHeaders(directories) : {}; |
|
|
| if (typeof server === 'string' && server.length > 0) { |
| try { |
| const url = new URL(server); |
| const overrideHeaders = getOverrideHeaders(url.host); |
|
|
| if (overrideHeaders && Object.keys(overrideHeaders).length > 0) { |
| Object.assign(headers, overrideHeaders); |
| } |
| } catch { |
| |
| } |
| } |
|
|
| Object.assign(requestHeaders, headers); |
| } |
|
|