* fix - using on python 3.9
* [⚡️ Python SDK Import] - 2 second faster import times (#12135)
* speedup - move wb logger to conditional
* fix import path
* docs(index.md): initial pre-release note
* 🧹 Refactor init.py to use a model registry (#12138)
* fix - refactor init to use a registry
* # noqa: PLR0915
* fix import loc
* test whitelisted models
* Revert "🧹 Refactor init.py to use a model registry (#12138)" (#12141)
This reverts commit f93326a214.
* [⚡️ Python SDK import] - reduce python sdk import time by .3s (#12140)
* use 1 file for KeyManagementSystem
* move key management settings
* fix import locs
* test_proxy_types_not_imported
* test the import loc
* fix import item
* fix imports
* fix import loc
* fix imports
* fix imports
* fix - revert list team changes
* fix for o-series param checks
* bump poetry
* docs(index.md): update release note with cleaner table for updated models
* `/v1/messages` - Remove hardcoded model name on streaming + Tags - enable setting custom header tags (#12131)
* fix(anthropic/experimental_pass_through): use given model name when returning streaming chunks
don't harcode model name on streaming
confusing for user
* fix(anthropic/streaming_iterator.py): remove scope of import
* feat(litellm_logging.py): allow admin to specify additional headers for using as spend tags
Closes https://github.com/BerriAI/litellm/issues/12129
* test(test_litellm_logging.py): add unit tests
* feat(openweb_ui.md): add custom tag tutorial to docs
* docs(cost_tracking.md): add tag based usage UI screenshot
* test: update test
* fix: fix import
* docs - update release notes
* Benefits of using gemini-cli with LiteLLM
* UI QA Fixes - prevent team model reset on model add + return team-only models on /v2/model/info + render team member budget correctly (#12144)
* fix(team_endpoints.py): prevent overwriting current list of team models on new model add
* fix(networking.tsx): fix default proxy base url
* fix(proxy_server.py): include team only models when retrieving all deployments on `/v2/model/info` helper util
ensures team only models are shown to user
* fix(router.py): check model name by team public model name when team id given
Fixes issue where team member could not see team only models when clicking into that team on `Models + Endpoints`
* fix(team_member_view.tsx): fix rendering team member budget, when budget is set
* test: update tests
* test: update unit test
* docs gemini cli x litellm
* docs: index.md
release note cleanup
* docs(index.md): add more hyperlinks to docs
* docs(index.md): add batch api cost tracking to docs
* docs(index.md): update docs
* VertexAI Anthropic - streaming cost tracking w/ prompt caching fixes (#12188)
* fix(rebuild-usage-object---ensure-cache_tokens-is-set): Ensures cache tokens is correctly set
Fixes https://github.com/BerriAI/litellm/issues/12149
* test(test_stream_chunk_builder_utils.py): add unit test to ensure cached tokens is part of stream chunk builder
Ensures standardized values are used
* Fix rendering ui on non-root images (#12226)
* fix(proxy_server.py): only rewrite server_root_path if path set
Fixes UI rendering issue on non-root images
* docs(custom_root_ui.md): clarify custom root path doesn't work on non-root images
* build(pyproject.toml): version rc2
* fix(streaming_handler.py): store finish reason, even if is_finished is false - allows storing early gemini finish reasons (#12250)
Fixes https://github.com/BerriAI/litellm/issues/12249
---------
Co-authored-by: Ishaan Jaff <ishaanjaffer0324@gmail.com>
* init litellm google gen ai methods
* feat init structure of functions for generate content
* add init
* add BaseGoogleGenAIGenerateContentConfig
* add generate_content_handler
* add get_provider_google_genai_generate_content_config
* fixes for generate content
* add get_vertex_ai_project etc to base
* use VertexBase
* fixes for BaseGoogleGenAIGenerateContentConfig
* working validate env for google gemini
* feat - add transform google response
* fixes for transform_generate_content_request
* fix get_supported_generate_content_optional_params
* add BaseGoogleGenAITest
* working e2e test
* fixes init config
* use correct types
* fix test for google gen ai
* fix types
* add sync_get_auth_token_and_url
* fixes for transform
* add llm http handler for google
* working non-streaming google endpoints
* add BaseGoogleGenAIGenerateContentStreamingIterator
* add GoogleGenAIGenerateContentStreamingIterator
* fix working sync stream
* fixes for litellm logging obj
* working async streaming
* add google gen ai types
* fix - required imports
* fix readme
* fix deps
* fix deps
* fix ruff code QA checks
* fix linting
* fixes TYPE_CHECKING
* fixes for typing
* fix: add flag for disabling use_aiohttp_transport
* feat: add _create_async_transport
* feat: fixes for transport
* add httpx-aiohttp
* feat: fixes for transport
* refactor: fixes for transport
* build: fix deps
* fixes: test fixes
* fix: ensure aiohttp does not auto set content type
* test: test fixes
* feat: add LiteLLMAiohttpTransport
* fix: fixes for responses API handling
* test: fixes for responses API handling
* test: fixes for responses API handling
* feat: fixes for transport
* fix: base embedding handler
* test: test_async_http_handler_force_ipv4
* test: fix failing deepeval test
* fix: add YARL for bedrock urls
* fix: issues with transport
* fix: comment out linting issues
* test fix
* test: XAI is unstable
* test: fixes for using respx
* test: XAI fixes
* test: XAI fixes
* test: infinity testing fixes
* docs(config_settings.md): document param
* test: test_openai_image_edit_litellm_sdk
* test: remove deprecated test
* bump respx==0.22.0
* test: test_xai_message_name_filtering
* test: fix anthropic test after bumping httpx
* use n 4 for mapped tests (#11109)
* fix: use 1 session per event loop
* test: test_client_session_helper
* fix: linting error
* fix: resolving GET requests on httpx 0.28.1
* test fixes proxy unit tests
* fix: add ssl verify settings
* fix: proxy unit tests
* fix: refactor
* tests: basic unit tests for aiohttp transports
* tests: fixes xai
---------
Co-authored-by: Krrish Dholakia <krrishdholakia@gmail.com>
* Add `litellm-proxy` CLI (#10478)
* First cut at a Python client module for proxy
* Add UnauthorizedError + add_model method
* Add delete_model method
* Add example model_id to delete_model docstring
* Make delete_model raise NotFoundError
* Add get_model
* Add get_all_model_info
* Rename models.list_models to models.list
* Rename models.get_all_model_info to models.info
* Move ModelsManagementClient.get_all_model_group_info to ModelGroupsManagementClient.info
* Rename get_model to get
* Rename add_model to new
* Rename delete_model to delete
* In client classes, rename base_url attribute to _base_url and api_key attribute to _api_key
* Add ModelsManagementClient.updae method
* Add client.chat.completions (ChatClient)
* ruff format litellm/proxy/client
* ruff format tests/litellm/proxy/client/*.py
* Add latest changes
* Rename KeysManagementClient.create to KeysManagementClient.generate
* Add new parameters to KeysManagementClient.generate
* Add CredentialsManagementClient
* Remove api_key parameter from KeysManagementClient.generate
* Fix lint errors
* Add litellm/proxy/client/README.md
* README.md: Remove api_key param to client.keys.generate
* Fix mypy errors
* First cut at litellm-proxy cli
* Add test for `litellm-proxy models list`
* Nicer get_models_info
* get_models_info: --columns option
* Use format_timestamp in list_models
* ruff format litellm/proxy/client
* Simpler JSON printing with rich.print_json
* Move models-related commands to separate file
From `cli.py` to `groups/models.py`
* Improve directory structure
* Cleanup cli/groups/models.py - esp. usage of rich
* Refactoring
* Refactor mocking in cli/test_main.py
* Dedup models commands tests
* Update poetry.lock
* Fix mypy errors
* ruff format litellm/proxy/client/cli
* ruff format tests/litellm/proxy/client/*.py
* Fix timezone issue in test_models_list_table_format
* Add cli/README.md
* Small README.md tweaks
* README.md enhancements
* Add credentials commands
* Add chat commands
* Add http commands
* ruff format litellm/proxy/client/cli
* Fix lint errors in credentials and http commands
* json => json_lib
* test-key => sk-test-key
* Mock HTTP responses so http command tests pass
* Fix mypy error in credentials.py
* bump: version 1.67.5 → 1.67.6
* build: update litellm version
* cli/main.py: show_envvar=True
* Increase test job timeout to 8 minutes
because it looks like maybe the job is getting canceled because it takes
too long with the additional tests?
This probably could be reverted once #10484 is merged, since that speeds
up pytest runs greatly.
* Add keys functionality to library/CLI
* Add info about keys commands to litellm/proxy/client/cli/README.md
* Move Model Information section in CLI README
* Make Model Information a level 4 heading
* Move rich to extras
as suggested by @ishaan-jaff
---------
Co-authored-by: Krrish Dholakia <krrishdholakia@gmail.com>
* pin rich=13.7.1
---------
Co-authored-by: Marc Abramowitz <abramowi@adobe.com>
Co-authored-by: Krrish Dholakia <krrishdholakia@gmail.com>
* 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>
* 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
* fix(openai.py): ensure openai file object shows up on logs
* fix(managed_files.py): return unified file id as b64 str
allows retrieve file id to work as expected
* fix(managed_files.py): apply decoded file id transformation
* fix: add unit test for file id + decode logic
* fix: initial commit for litellm_proxy support with CRUD Endpoints
* fix(managed_files.py): support retrieve file operation
* fix(managed_files.py): support for DELETE endpoint for files
* fix(managed_files.py): retrieve file content support
supports retrieve file content api from openai
* fix: fix linting error
* test: update tests
* fix: fix linting error
* feat(managed_files.py): support reading / writing files in DB
* feat(managed_files.py): support deleting file from DB on delete
* test: update testing
* fix(spend_tracking_utils.py): ensure each file create request is logged correctly
* fix(managed_files.py): fix storing / returning managed file object from cache
* fix(files/main.py): pass litellm params to azure route
* test: fix test
* build: add new prisma migration
* build: bump requirements
* test: add more testing
* refactor: cleanup post merge w/ main
* fix: fix code qa errors
* feat(internal_user_endpoints.py): return 'total_tokens' in `/user/daily/analytics`
* test(test_internal_user_endpoints.py): add unit test to assert spend metrics and dailyspend metadata always report the same fields
* build(schema.prisma): record success + failure calls to daily user table
allows understanding why model requests might exceed provider requests (e.g. user hit rate limit error)
* fix(internal_user_endpoints.py): report success / failure requests in API
* fix(proxy/utils.py): default to success
status can be missing or none at times for successful requests
* feat(new_usage.tsx): show success/failure calls on UI
* style(new_usage.tsx): ui cleanup
* fix: fix linting error
* fix: fix linting error
* feat(litellm-proxy-extras/): add new migration files