* feat(ui/): add team based usage to dashboard
allows admin to see spend across teams + within teams at 1m+ spend logs
* fix(entity_usage.tsx): add activity page to entity usage
* style(entity_usage.tsx): place filter above tab switcher
* feat: initial commit adding daily tag spend table to db
* feat(db_spend_update_writer.py): correctly log tag spend transactions
* build(schema.prisma): add new tag table to root
* build: add new migration file
* feat(common_daily_activity.py): add `/tag/daily/activity` API endpoint
allows viewing daily spend by tag
* feat(tag_management_endpoints.py): support comma separated list of tags + tag breakdown metric
allows querying multiple tags + knowing what tags are driving spend
* feat(entity_usage.tsx): initial commit adding tag based usage to litellm dashboard
brings back tag based usage tracking to UI at 1m+ spend logs
* feat(entity_usage.tsx): add top api key view to ui
* feat(entity_usage.tsx): add tag table to ui
* feat(entity_usage.tsx): allow filtering by tag
* refactor(entity_usage.tsx): reorder components
* build(ui/): fix linting error
* fix: fix ruff checks
* fix(schema.prisma): drop uniqueness requirement on tag
allows dailytagspend to have multiple rows with the same tag
* build(schema.prisma): drop uniqueness requirement on tag in dailytagspend
allows tag agg. view to work on multiple rows with same tag
* build(schema.prisma): drop tag uniqueness requirement
* feat: initial commit adding daily tag spend table to db
* feat(db_spend_update_writer.py): correctly log tag spend transactions
* build(schema.prisma): add new tag table to root
* build: add new migration file
* fix(llm_http_handler.py): fix fake streaming
allows groq to work with llm_http_handler
* fix(groq.py): migrate groq to openai like config
ensures json mode handling works correctly
* Simple fix for #9339 - upgrade the underlying library and cache the azure storage client (#9965)
* fix - use constants for caching azure storage client
---------
Co-authored-by: Adrian Lyjak <adrian@chatmeter.com>
* Add litellm_call_id passing to aim guardrails on pre and post-hooks
* Add test that ensures that pre_call_hook receives litellm call id when common_request_processing called
* fix(pub_sub.py): fix passing project id in pub sub call
Fixes issue where GCS_PUBSUB_PROJECT_ID was not being used
* test(test_pub_sub.py): add unit test to prevent future regressions
* test: fix test
* feat(schema.prisma): initial commit adding aggregate table for team spend
allows team spend to be visible at 1m+ logs
* feat(db_spend_update_writer.py): support logging aggregate team spend
allows usage dashboard to work at 1m+ logs
* feat(litellm-proxy-extras/): add new migration file
* fix(db_spend_update_writer.py): fix return type
* build: bump requirements
* fix: fix ruff error
* feat(utils.py): support global flag for 'check_provider_endpoints'
enables setting this for `/models` on proxy
* feat(utils.py): add caching to 'get_valid_models'
Prevents checking endpoint repeatedly
* fix(utils.py): ensure mutations don't impact cached results
* test(test_utils.py): add unit test to confirm cache invalidation logic
* feat(utils.py): get_valid_models - support passing litellm params dynamically
Allows for checking endpoints based on received credentials
* test: update test
* feat(model_checks.py): pass router credentials to get_valid_models - ensures it checks correct credentials
* refactor(utils.py): refactor for simpler functions
* fix: fix linting errors
* fix(utils.py): fix test
* fix(utils.py): set valid providers to custom_llm_provider, if given
* test: update test
* fix: fix ruff check error
* feat(llm_passthrough_endpoints.py): support mistral passthrough
Closes https://github.com/BerriAI/litellm/issues/9051
* feat(llm_passthrough_endpoints.py): initial commit for adding vllm passthrough route
* feat(vllm/common_utils.py): add new vllm model info route
make it possible to use vllm passthrough route via factory function
* fix(llm_passthrough_endpoints.py): add all methods to vllm passthrough route
* fix: fix linting error
* fix: fix linting error
* fix: fix ruff check
* fix(proxy/_types.py): add new passthrough routes
* docs(config_settings.md): add mistral env vars to docs
* fix(azure/common_utils.py): check for azure tenant id, client id, client secret in env var
Fixes https://github.com/BerriAI/litellm/issues/9598#issuecomment-2801966027
* fix(azure/gpt_transformation.py): fix passing response_format to azure when api year = 2025
Fixes https://github.com/BerriAI/litellm/issues/9703
* test: monkeypatch azure api version in test
* test: update testing
* test: fix test
* test: update test
* docs(config_settings.md): document env vars
* build(model_prices_and_context_window.json): add gpt-4.1 pricing
* build(model_prices_and_context_window.json): add gpt-4.1-mini and gpt-4.1-nano model support