centralize LiteLLM admin headers
This commit is contained in:
parent
48ee92fc5d
commit
b40941e4d5
1 changed files with 6 additions and 18 deletions
|
|
@ -408,9 +408,7 @@ router.get('/config/image-models/discover', async function(req, res) {
|
|||
var axios = require('axios');
|
||||
var discovered = [];
|
||||
if (process.env.LITELLM_API_BASE) {
|
||||
var headers = {};
|
||||
if (process.env.LITELLM_API_KEY) headers.Authorization = 'Bearer ' + process.env.LITELLM_API_KEY;
|
||||
var resp = await axios.get(gatewayUrl('/models'), { headers: headers, timeout: 15000 });
|
||||
var resp = await axios.get(gatewayUrl('/models'), { headers: getLiteLLMHeaders(), timeout: 15000 });
|
||||
var models = (resp.data && resp.data.data) || [];
|
||||
models.forEach(function(m) {
|
||||
var id = m.id || '';
|
||||
|
|
@ -438,14 +436,12 @@ router.post('/config/image-models/test', async function(req, res) {
|
|||
var modelId = String(req.body.modelId || '').trim();
|
||||
if (!modelId) return res.status(400).json({ error: 'modelId required' });
|
||||
var axios = require('axios');
|
||||
var headers = { 'Content-Type': 'application/json' };
|
||||
if (process.env.LITELLM_API_KEY) headers.Authorization = 'Bearer ' + process.env.LITELLM_API_KEY;
|
||||
var started = Date.now();
|
||||
var imgResp = await axios.post(gatewayUrl('/images/generations'), {
|
||||
model: modelId,
|
||||
prompt: 'A simple child-friendly icon of lungs and an inhaler, flat medical illustration, no text',
|
||||
size: '1024x1024'
|
||||
}, { headers: headers, timeout: 120000 });
|
||||
}, { headers: getLiteLLMHeaders('application/json'), timeout: 120000 });
|
||||
var item = imgResp.data && imgResp.data.data && imgResp.data.data[0] ? imgResp.data.data[0] : {};
|
||||
res.json({
|
||||
success: true,
|
||||
|
|
@ -682,10 +678,8 @@ router.get('/config/stt/discover', async function(req, res) {
|
|||
|
||||
if (provider === 'litellm' && process.env.LITELLM_API_BASE) {
|
||||
// base URL handled by gatewayUrl() helper
|
||||
var sHeaders = {};
|
||||
if (process.env.LITELLM_API_KEY) sHeaders['Authorization'] = 'Bearer ' + process.env.LITELLM_API_KEY;
|
||||
try {
|
||||
var sResp = await axios.get(gatewayUrl('/models'), { headers: sHeaders, timeout: 10000 });
|
||||
var sResp = await axios.get(gatewayUrl('/models'), { headers: getLiteLLMHeaders(), timeout: 10000 });
|
||||
if (sResp.data && sResp.data.data) {
|
||||
sResp.data.data.forEach(function(m) {
|
||||
var mid = (m.id || '').toLowerCase();
|
||||
|
|
@ -756,22 +750,18 @@ router.post('/config/stt/test', async function(req, res) {
|
|||
var form = new FormData();
|
||||
form.append('file', file);
|
||||
form.append('model', sttModel);
|
||||
var fetchHeaders = {};
|
||||
if (process.env.LITELLM_API_KEY) fetchHeaders['Authorization'] = 'Bearer ' + process.env.LITELLM_API_KEY;
|
||||
var sttResp = await fetch(gatewayUrl('/audio/transcriptions'), {
|
||||
method: 'POST', headers: fetchHeaders, body: form
|
||||
method: 'POST', headers: getLiteLLMHeaders(), body: form
|
||||
}).then(function(r) { return r.json().then(function(d) { return { data: d }; }); });
|
||||
text = sttResp.data && sttResp.data.text ? sttResp.data.text : '';
|
||||
} else {
|
||||
var headers = { 'Content-Type': 'application/json' };
|
||||
if (process.env.LITELLM_API_KEY) headers['Authorization'] = 'Bearer ' + process.env.LITELLM_API_KEY;
|
||||
var sttResp = await axios.post(gatewayUrl('/chat/completions'), {
|
||||
model: sttModel,
|
||||
messages: [{ role: 'user', content: [
|
||||
{ type: 'input_audio', input_audio: { data: audioBase64, format: mime.split('/')[1] || 'webm' } },
|
||||
{ type: 'text', text: 'Transcribe this audio. Output the spoken words only.' }
|
||||
]}]
|
||||
}, { headers: headers, timeout: 60000 });
|
||||
}, { headers: getLiteLLMHeaders('application/json'), timeout: 60000 });
|
||||
if (sttResp.data && sttResp.data.choices && sttResp.data.choices[0]) {
|
||||
text = (sttResp.data.choices[0].message && sttResp.data.choices[0].message.content) || '';
|
||||
}
|
||||
|
|
@ -849,10 +839,8 @@ router.get('/config/embeddings/discover', async function(req, res) {
|
|||
|
||||
if (provider === 'litellm') {
|
||||
// base URL handled by gatewayUrl() helper
|
||||
var eHeaders = {};
|
||||
if (process.env.LITELLM_API_KEY) eHeaders['Authorization'] = 'Bearer ' + process.env.LITELLM_API_KEY;
|
||||
try {
|
||||
var eResp = await axios.get(gatewayUrl('/models'), { headers: eHeaders, timeout: 10000 });
|
||||
var eResp = await axios.get(gatewayUrl('/models'), { headers: getLiteLLMHeaders(), timeout: 10000 });
|
||||
if (eResp.data && eResp.data.data) {
|
||||
eResp.data.data.forEach(function(m) {
|
||||
if ((m.id || '').toLowerCase().indexOf('embed') !== -1) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue