normalize LiteLLM embedding requests
This commit is contained in:
parent
b40941e4d5
commit
548c39a883
4 changed files with 17 additions and 16 deletions
|
|
@ -9,7 +9,8 @@ var { authMiddleware, adminMiddleware } = require('../middleware/auth');
|
||||||
var PROMPTS = require('../utils/prompts');
|
var PROMPTS = require('../utils/prompts');
|
||||||
var logger = require('../utils/logger');
|
var logger = require('../utils/logger');
|
||||||
var { gatewayUrl } = require('../utils/errors');
|
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');
|
var { getSTTDependencies, getSTTModelLists, getSTTProvider } = require('../utils/sttProvider');
|
||||||
|
|
||||||
router.use(authMiddleware);
|
router.use(authMiddleware);
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@
|
||||||
// ============================================================
|
// ============================================================
|
||||||
|
|
||||||
var axios = require('axios');
|
var axios = require('axios');
|
||||||
|
var { gatewayUrl } = require('./errors');
|
||||||
|
var { getLiteLLMHeaders } = require('./litellm');
|
||||||
|
|
||||||
// Vertex AI embedding models (via LiteLLM or direct)
|
// Vertex AI embedding models (via LiteLLM or direct)
|
||||||
// gemini-embedding-001: 768 dims, multilingual + code, best quality
|
// gemini-embedding-001: 768 dims, multilingual + code, best quality
|
||||||
|
|
@ -61,12 +63,6 @@ async function generateEmbedding(text, opts) {
|
||||||
*/
|
*/
|
||||||
async function generateEmbeddingLiteLLM(text, model, dimensions) {
|
async function generateEmbeddingLiteLLM(text, model, dimensions) {
|
||||||
try {
|
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 = {
|
var payload = {
|
||||||
model: model,
|
model: model,
|
||||||
input: text
|
input: text
|
||||||
|
|
@ -77,8 +73,8 @@ async function generateEmbeddingLiteLLM(text, model, dimensions) {
|
||||||
payload.dimensions = dimensions;
|
payload.dimensions = dimensions;
|
||||||
}
|
}
|
||||||
|
|
||||||
var response = await axios.post(base + '/embeddings', payload, {
|
var response = await axios.post(gatewayUrl('/embeddings'), payload, {
|
||||||
headers: headers,
|
headers: getLiteLLMHeaders('application/json'),
|
||||||
timeout: 30000
|
timeout: 30000
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
10
src/utils/litellm.js
Normal file
10
src/utils/litellm.js
Normal file
|
|
@ -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
|
||||||
|
};
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
const { isGoogleTTSConfigured } = require('./ttsGoogle');
|
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 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'];
|
const OPENAI_TTS_VOICES = ['alloy','echo','fable','onyx','nova','shimmer','ash','sage','coral'];
|
||||||
|
|
@ -37,13 +38,6 @@ function getLiteLLMTTSModels(models) {
|
||||||
.filter(isOpenAITTSModel);
|
.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 = {
|
module.exports = {
|
||||||
ELEVENLABS_DEFAULT_VOICES,
|
ELEVENLABS_DEFAULT_VOICES,
|
||||||
GOOGLE_TTS_VOICES,
|
GOOGLE_TTS_VOICES,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue