* feat: initial commit adding managed file support to fine tuning endpoints
* feat(fine_tuning/endpoints.py): working call to openai finetuning route
Uses litellm managed files for finetuning api support
* feat(fine-tuning/main.py): refactor to use LiteLLMFineTuningJob pydantic object
includes 'hidden_params'
* fix: initial commit adding unified finetuning id support
return a unified finetuning id we can use to understand which deployment to route the ft request to
* test: fix test
* feat(managed_files.py): return unified finetuning job id on create finetuning job
enables retrieve, delete to work with litellm managed files
* test: update test
* fix: fix linting error
* fix: fix ruff linting error
* test: fix check
* fix: handle dict objects in Anthropic streaming response
Fix issue where dictionary objects in Anthropic streaming responses
were not properly converted to SSE format strings before being yielded,
causing AttributeError: 'dict' object has no attribute 'encode'
* fix: refactor Anthropic streaming response handling
- Added STREAM_SSE_DATA_PREFIX constant in constants.py
- Created return_anthropic_chunk helper function for better maintainability
- Using safe_dumps from safe_json_dumps.py for improved JSON serialization
- Added unit test for dictionary object handling in streaming response
* fix: correct patch path in anthropic_endpoints test
* fix(internal_user_endpoints.py): allow resetting spend/max budget on user update
Fixes https://github.com/BerriAI/litellm/issues/10495
* fix(internal_user_endpoints.py): correctly return set spend for user on /user/new
* fix(auth_checks.py): check redis for key object before checking in-memory
allows for quicker updates
* feat(internal_user_endpoints.py): update cache object when user is updated + check redis on user values being updated
* fix(auth_checks.py): use redis cache when user updated
* fix: set default value of 'expires' to None
* fix: trace route on prometheus metrics
* fix: show route on prometheus metrics for total fails
* test: trace route on metrics
* fix: tests for route in prom metrics
* test: fix test metrics
* test: fix test_proxy_failure_metrics
* Add support for supports_computer_use in model info
* Corrected list of supports_computer_use models
* Further fix computer use compatible claude models, fix existing test that predated supports_computer_use in the model list
* Move computer use test case into existing test_utils file
* Moved tests in to test_utils.py
* feat(key_management_endpoints.py): add validation checks for migrating key to team
Ensures requests with migrated key can actually succeed
Prevent migrated keys from failing in prod due to team missing required permissions
* fix(mistral/): fix image url handling for mistral on async call
* fix(key_management_endpoints.py): improve check for running team validation on key update
* feat(model_info_view.tsx): enable updating model info for existing models on UI
Fixes LIT-154
* fix(model_info_view.tsx): instantly show model info updates on UI
* feat(proxy_server.py): enable flag on `/models` to include model access groups
This enables admin to assign model access groups to keys/teams on UI
* feat(ui/): add model access groups on ui dropdown when creating teams + keys
* refactor(parallel_request_limiter_v2.py): Migrate multi instance rate limiting to OSS
Closes https://github.com/BerriAI/litellm/issues/10052
* fix: email invites should link to the invitation
* fix: email invites should link to the invitation
* fix: email invites should link to the invitation
* fix: handle DB_USER, DB_PASSWORD, DB_HOST problem I faced, since this could be with special character, so better be url encoded, similar problem also happen in DATABASE_URL
* test: added the test cases
* add: test case of url with sepcial character
- docs/my-website/docs/providers/lm_studio.md: add Structured Output section with JSON schema and Pydantic examples
- litellm/llms/lm_studio/chat/transformation.py: extend map_openai_params to handle `response_format` mappings (`json_schema`, `json_object`) and move them to optional_params
- litellm/utils.py: include `LM_STUDIO` in `supports_response_schema` list
- tests/litellm/llms/lm_studio/test_lm_studio_chat_transformation.py: add tests for Pydantic model and dict-based JSON schema handling
Co-authored-by: Earl St Sauver <estasuver@gmail.com>
* fix(openai/gpt_transformation.py): handle missing filename for openai file data call
* fix(openai/gpt_transformation.py): clean handling for sync + async pdf url transformation flows
Fixes https://github.com/BerriAI/litellm/issues/10820
* build(model_prices_and_context_window.json): add 'supports_pdf_input' for all openai models which have 'vision' support
Follows openai guidelines
* feat(bedrock/chat): support cache pointing tool calls on Bedrock
Closes https://github.com/BerriAI/litellm/pull/10613
* fix: fix linting error
* Batch deletion with tasks
* reset utils
* change print to logger
* remove print for lint
* fix lint
* local testing
* remove constants.py var
* ruff fix
* type fix
* - make sure job doesn't get added if maximum_spend_logs_retention_period is not set
- enable user to override scheduler time
- Upper bound on while true
* update and fix test
* Enable update/delete org members on UI (#8560)
* feat(organization_endpoints.py): expose new `/organization/delete` endpoint. Cascade org deletion to member, teams and keys
Ensures any org deletion is handled correctly
* test(test_organizations.py): add simple test to ensure org deletion works
* feat(organization_endpoints.py): expose /organization/update endpoint, and define response models for org delete + update
* fix(organizations.tsx): support org delete on UI + move org/delete endpoint to use DELETE
* feat(organization_endpoints.py): support `/organization/member_update` endpoint
Allow admin to update member's role within org
* feat(organization_endpoints.py): support deleting member from org
* test(test_organizations.py): add e2e test to ensure org member flow works
* fix(organization_endpoints.py): fix code qa check
* fix(schema.prisma): don't introduce ondelete:cascade - breaking change
* docs(organization_endpoints.py): document missing params
* support anonymize and deanonymize
* use new response schema
* don't use detected because action already means there are detections
* log to debug
* CR fixes
* lint
* add tests
* use single quotes in deanonymiztion
* remove engage action case
* set max entities to 100 to prevent memory leak
* add test case for de-anonymization of llm response
---------
Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
* add user_header_name
* docs: add per-user tracking to Open WebUI with LiteLLM doc
* docs: standardize "OpenWeb UI" spelling across openweb_ui.md
* docs: improve wording for openweb_ui guide
* fix end_user_id not being set
- move user header parsing to add_litellm_data_to_request
- also set user_api_key_dict.end_user_id from user header