feat(org): add LiteLLM usage stats to organization dashboard
Replace mock token usage with real data from LiteLLM free-tier APIs (global/activity, global/activity/model, global/spend/models). Adds per-model breakdown table, loading/error states, usage data models with serde tests, and i18n keys for all five languages. Also includes: replace Ollama with LiteLLM proxy, update config, docker-compose, and provider infrastructure. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -144,6 +144,16 @@
|
||||
"email_address": "E-Mail-Adresse",
|
||||
"email_placeholder": "kollege@firma.de",
|
||||
"send_invite": "Einladung senden",
|
||||
"total_spend": "Gesamtausgaben",
|
||||
"total_tokens": "Tokens gesamt",
|
||||
"model_usage": "Nutzung nach Modell",
|
||||
"model": "Modell",
|
||||
"tokens": "Tokens",
|
||||
"spend": "Ausgaben",
|
||||
"usage_unavailable": "Nutzungsdaten nicht verfuegbar",
|
||||
"loading_usage": "Nutzungsdaten werden geladen...",
|
||||
"prompt_tokens": "Prompt-Tokens",
|
||||
"completion_tokens": "Antwort-Tokens",
|
||||
"pricing_title": "Preise",
|
||||
"pricing_subtitle": "Waehlen Sie den passenden Plan fuer Ihre Organisation"
|
||||
},
|
||||
|
||||
@@ -144,6 +144,16 @@
|
||||
"email_address": "Email Address",
|
||||
"email_placeholder": "colleague@company.com",
|
||||
"send_invite": "Send Invite",
|
||||
"total_spend": "Total Spend",
|
||||
"total_tokens": "Total Tokens",
|
||||
"model_usage": "Usage by Model",
|
||||
"model": "Model",
|
||||
"tokens": "Tokens",
|
||||
"spend": "Spend",
|
||||
"usage_unavailable": "Usage data unavailable",
|
||||
"loading_usage": "Loading usage data...",
|
||||
"prompt_tokens": "Prompt Tokens",
|
||||
"completion_tokens": "Completion Tokens",
|
||||
"pricing_title": "Pricing",
|
||||
"pricing_subtitle": "Choose the plan that fits your organization"
|
||||
},
|
||||
|
||||
@@ -144,6 +144,16 @@
|
||||
"email_address": "Direccion de correo electronico",
|
||||
"email_placeholder": "colega@empresa.com",
|
||||
"send_invite": "Enviar invitacion",
|
||||
"total_spend": "Gasto total",
|
||||
"total_tokens": "Tokens totales",
|
||||
"model_usage": "Uso por modelo",
|
||||
"model": "Modelo",
|
||||
"tokens": "Tokens",
|
||||
"spend": "Gasto",
|
||||
"usage_unavailable": "Datos de uso no disponibles",
|
||||
"loading_usage": "Cargando datos de uso...",
|
||||
"prompt_tokens": "Tokens de entrada",
|
||||
"completion_tokens": "Tokens de respuesta",
|
||||
"pricing_title": "Precios",
|
||||
"pricing_subtitle": "Elija el plan que se adapte a su organizacion"
|
||||
},
|
||||
|
||||
@@ -144,6 +144,16 @@
|
||||
"email_address": "Adresse e-mail",
|
||||
"email_placeholder": "collegue@entreprise.com",
|
||||
"send_invite": "Envoyer l'invitation",
|
||||
"total_spend": "Depenses totales",
|
||||
"total_tokens": "Tokens totaux",
|
||||
"model_usage": "Utilisation par modele",
|
||||
"model": "Modele",
|
||||
"tokens": "Tokens",
|
||||
"spend": "Depenses",
|
||||
"usage_unavailable": "Donnees d'utilisation indisponibles",
|
||||
"loading_usage": "Chargement des donnees d'utilisation...",
|
||||
"prompt_tokens": "Tokens d'entree",
|
||||
"completion_tokens": "Tokens de reponse",
|
||||
"pricing_title": "Tarifs",
|
||||
"pricing_subtitle": "Choisissez le plan adapte a votre organisation"
|
||||
},
|
||||
|
||||
@@ -144,6 +144,16 @@
|
||||
"email_address": "Endereco de Email",
|
||||
"email_placeholder": "colleague@company.com",
|
||||
"send_invite": "Enviar Convite",
|
||||
"total_spend": "Gasto total",
|
||||
"total_tokens": "Tokens totais",
|
||||
"model_usage": "Uso por modelo",
|
||||
"model": "Modelo",
|
||||
"tokens": "Tokens",
|
||||
"spend": "Gasto",
|
||||
"usage_unavailable": "Dados de uso indisponiveis",
|
||||
"loading_usage": "Carregando dados de uso...",
|
||||
"prompt_tokens": "Tokens de entrada",
|
||||
"completion_tokens": "Tokens de resposta",
|
||||
"pricing_title": "Precos",
|
||||
"pricing_subtitle": "Escolha o plano adequado a sua organizacao"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user