diff --git a/src/routes/adminConfig.js b/src/routes/adminConfig.js index 45771fd..a900b3a 100644 --- a/src/routes/adminConfig.js +++ b/src/routes/adminConfig.js @@ -9,7 +9,8 @@ var { authMiddleware, adminMiddleware } = require('../middleware/auth'); var PROMPTS = require('../utils/prompts'); var logger = require('../utils/logger'); var { gatewayUrl } = require('../utils/errors'); -var { GOOGLE_TTS_VOICES, OPENAI_TTS_VOICES, getTTSEnvProvider, getLiteLLMHeaders, getLiteLLMTTSModels, getTTSProvider, getTTSVoiceLists } = require('../utils/ttsProvider'); +var { GOOGLE_TTS_VOICES, OPENAI_TTS_VOICES, getTTSEnvProvider, getLiteLLMTTSModels, getTTSProvider, getTTSVoiceLists } = require('../utils/ttsProvider'); +var { getLiteLLMHeaders } = require('../utils/litellm'); var { getSTTDependencies, getSTTModelLists, getSTTProvider } = require('../utils/sttProvider'); router.use(authMiddleware); diff --git a/src/utils/embeddings.js b/src/utils/embeddings.js index 74072ef..34eaf36 100644 --- a/src/utils/embeddings.js +++ b/src/utils/embeddings.js @@ -4,6 +4,8 @@ // ============================================================ var axios = require('axios'); +var { gatewayUrl } = require('./errors'); +var { getLiteLLMHeaders } = require('./litellm'); // Vertex AI embedding models (via LiteLLM or direct) // gemini-embedding-001: 768 dims, multilingual + code, best quality @@ -61,12 +63,6 @@ async function generateEmbedding(text, opts) { */ async function generateEmbeddingLiteLLM(text, model, dimensions) { try { - var base = process.env.LITELLM_API_BASE.replace(/\/+$/, ''); - var headers = { 'Content-Type': 'application/json' }; - if (process.env.LITELLM_API_KEY) { - headers['Authorization'] = 'Bearer ' + process.env.LITELLM_API_KEY; - } - var payload = { model: model, input: text @@ -77,8 +73,8 @@ async function generateEmbeddingLiteLLM(text, model, dimensions) { payload.dimensions = dimensions; } - var response = await axios.post(base + '/embeddings', payload, { - headers: headers, + var response = await axios.post(gatewayUrl('/embeddings'), payload, { + headers: getLiteLLMHeaders('application/json'), timeout: 30000 }); diff --git a/src/utils/litellm.js b/src/utils/litellm.js new file mode 100644 index 0000000..6096fdc --- /dev/null +++ b/src/utils/litellm.js @@ -0,0 +1,10 @@ +function getLiteLLMHeaders(contentType) { + var headers = {}; + if (contentType) headers['Content-Type'] = contentType; + if (process.env.LITELLM_API_KEY) headers.Authorization = 'Bearer ' + process.env.LITELLM_API_KEY; + return headers; +} + +module.exports = { + getLiteLLMHeaders +}; diff --git a/src/utils/ttsProvider.js b/src/utils/ttsProvider.js index 4b9c1e2..0bda99c 100644 --- a/src/utils/ttsProvider.js +++ b/src/utils/ttsProvider.js @@ -1,4 +1,5 @@ const { isGoogleTTSConfigured } = require('./ttsGoogle'); +const { getLiteLLMHeaders } = require('./litellm'); const GOOGLE_TTS_VOICES = ['en-US-Journey-F','en-US-Journey-D','en-US-Studio-O','en-US-Neural2-A','en-US-Neural2-C','en-US-Neural2-D','en-US-Neural2-E','en-US-Neural2-F','en-US-Neural2-G','en-US-Neural2-H','en-US-Neural2-I','en-US-Neural2-J']; const OPENAI_TTS_VOICES = ['alloy','echo','fable','onyx','nova','shimmer','ash','sage','coral']; @@ -37,13 +38,6 @@ function getLiteLLMTTSModels(models) { .filter(isOpenAITTSModel); } -function getLiteLLMHeaders(contentType) { - var headers = {}; - if (contentType) headers['Content-Type'] = contentType; - if (process.env.LITELLM_API_KEY) headers.Authorization = 'Bearer ' + process.env.LITELLM_API_KEY; - return headers; -} - module.exports = { ELEVENLABS_DEFAULT_VOICES, GOOGLE_TTS_VOICES,