Commit graph

29986 commits

Author SHA1 Message Date
Alexsander Hamir
1544e8f971
feat: Add line_profiler support for performance analysis and fix Windows CRLF issues in Docker builds (#18773) 2026-01-07 11:36:57 -08:00
Elkhan Eminov
bae625bdc6
OpenRouter embeddings API support (#18391)
* support for OpenRouter embeddings

* add bearer

* add content header
2026-01-08 00:57:31 +05:30
Wen-Tien Chang
5a4242e188
fix(braintrust): pass span_attributes in async logging and skip tags on non-root spans (#18409)
* fix(braintrust): handle tags and span attributes for non-root spans

* fix(braintrust): refactor span attributes handling and remove duplicate metrics assignment
2026-01-08 00:55:59 +05:30
LouisShark
ea8a94988f
fix(bedrock): ensure toolUse.input is always a dict when converting from OpenAI format (#18414)
When some providers (like OpenRouter) return tool call arguments as '""'
(a JSON-encoded empty string), json.loads returns an empty string instead
of a dict. Since Bedrock requires toolUse.input to be a JSON object, this
causes a BedrockException.

This fix adds a type check after json.loads() to ensure the result is
always a dictionary.

Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
2026-01-08 00:54:46 +05:30
yuneng-jiang
a57f7bc9bf Fixing documentation 2026-01-07 11:24:15 -08:00
Danial Khan
f126f75995
feat: pass server_tool_use and tool_search_tool_result blocks to anthropic (#18770)
* feat: Allow message types of server_tool_use and tool_search_tool_result to reach anthropic

* test: anthropic server tool use pass through testing
2026-01-08 00:47:28 +05:30
yuneng-jiang
eb9f5267b6 Adding builds 2026-01-07 11:11:46 -08:00
yuneng-jiang
b2ebb5e1f1 adding migration 2026-01-07 11:10:59 -08:00
yuneng-jiang
b6f5ba6205 bump: version 0.4.19 → 0.4.20 2026-01-07 11:10:26 -08:00
yuneng-jiang
140ce5fce2 Merge remote-tracking branch 'origin' into litellm_key_team_routing_config 2026-01-07 11:08:01 -08:00
yuneng-jiang
19f323d7c9
Merge pull request #18729 from BerriAI/litellm_endpoint_usage_breakdown
[Feature] Add endpoint to Daily Activity Tables
2026-01-07 11:07:46 -08:00
Krish Dholakia
c89a4115eb
Update production proxy resource recommendations (#18771)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-01-08 00:37:12 +05:30
yuneng-jiang
943445dd0f Adding test 2026-01-07 11:00:07 -08:00
yuneng-jiang
9a49bb293f Merge remote-tracking branch 'origin' into litellm_key_team_routing_config 2026-01-07 10:55:38 -08:00
yuneng-jiang
bc812672a1 Addressing comments, pending tests 2026-01-07 10:55:25 -08:00
yuneng-jiang
6523c8f233 Adding builds 2026-01-07 10:27:50 -08:00
yuneng-jiang
ec6510c61b bump: version 0.4.18 → 0.4.19 2026-01-07 10:27:07 -08:00
yuneng-jiang
7da8d5fcd5 Merge remote-tracking branch 'origin' into litellm_endpoint_usage_breakdown 2026-01-07 10:25:43 -08:00
Ishaan Jaff
929af510fa
[Feat] New provider - Add Azure BFL FLux for image edits (#18766)
* add azure_ai/flux.2-pro

* get_flux2_image_generation_url

* azure_client_params

* docs

* add Image Editing

* add azure ai image edits

* AzureFoundryFlux2ImageEditConfig

* TestAzureAIFlux2ImageEdit
2026-01-07 23:28:39 +05:30
Ishaan Jaff
3430325919
[Feat] Add Azure BFL - Flux 2 models (#18764)
* add azure_ai/flux.2-pro

* get_flux2_image_generation_url

* azure_client_params

* docs
2026-01-07 23:28:28 +05:30
vasilisazayka
b4a39a9ea2
fix(sap): correct filtering of optional_params (#18716) 2026-01-07 21:48:29 +05:30
Abliteration AI
dc4ce7c5a2
feat: Add abliteration.ai provider (#18678)
* feat: Add abliteration.ai provider

* adding signoz integration to observability docs

* Fixing build

* Adding timeout for flaky test

* Fixing e2e

* add team member budget duration in team/update

* Reusable Duration Select and update team member budget UI

---------

Co-authored-by: Goutham Karthi <goutham@signoz.io>
Co-authored-by: yuneng-jiang <yuneng.jiang@gmail.com>
Co-authored-by: YutaSaito <36355491+uc4w6c@users.noreply.github.com>
2026-01-07 21:46:54 +05:30
Wilson Marcílio Júnior
8ce4eea88f
make base_connection_pool_limit default value the same (#18721) 2026-01-07 21:43:55 +05:30
tianduo-fh
f7212d84d5
fix: prevent duplicate User-Agent tags in request_tags (#18723)
The `_get_request_tags` function was returning a reference to the
original tags list from metadata, then mutating it with `.extend()`.
This caused duplicate User-Agent tags when the function was called
multiple times during a single request lifecycle (e.g., by logging,
prometheus, and guardrails).

The fix uses `.copy()` to create a new list before extending, ensuring
the original metadata tags are not mutated.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Tianduo Zhai <tzhai@firsthandadmins-MacBook-Pro.local>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 21:42:27 +05:30
kothamah
1b8708fccc
Litellm embeddings calltype fix for guardrail precallhook (#18740)
* adding signoz integration to observability docs

* Fixing build

* Adding timeout for flaky test

* Fixing e2e

* add team member budget duration in team/update

* Reusable Duration Select and update team member budget UI

* feat: allow configuring project name for OpenTelemetry service name

* docs: sets ARIZE_PROJECT_NAME

* added valid callType for bedrock guardrail pre hook

This is to resolve the error when bedrock guardrails are enabled and invoke the embedding models.   {"error":{"message":"'embeddings' is not a valid CallTypes","type":"None","param":"None","code":"500"}}*

* updated the test case to reflect valid callType

---------

Co-authored-by: Goutham Karthi <goutham@signoz.io>
Co-authored-by: yuneng-jiang <yuneng.jiang@gmail.com>
Co-authored-by: YutaSaito <36355491+uc4w6c@users.noreply.github.com>
Co-authored-by: Yuta Saito <uc4w6c@bma.biglobe.ne.jp>
2026-01-07 21:40:36 +05:30
Ishaan Jaffer
bbabc1089c litellm_mapped_tests_litellm_core_utils 2026-01-07 21:35:12 +05:30
Harshit Jain
92f7789f10
feat(prometheus): add caching metrics (#18755) 2026-01-07 21:29:04 +05:30
Kris Xia
91b5c66cf2
fix(proxy): return json error response instead of sse format for initial streaming errors (#18757)
* adding signoz integration to observability docs

* Fixing build

* Adding timeout for flaky test

* Fixing e2e

* fix(proxy): return json error response instead of sse format for initial streaming errors

when the first chunk of a streaming response contains an error,
return a standard json error response instead of sse format.
this ensures clients receive properly formatted error responses
before the stream actually begins.

- rename create_streaming_response to create_response
- add logic to detect error in first chunk and return JSONResponse
- add _extract_error_from_sse_chunk helper function
- update all call sites to use the new function name
- update tests to reflect the function rename

* test(proxy): add comprehensive tests for error extraction from sse chunks

- Add new test class TestExtractErrorFromSSEChunk with 10 test cases
- Update existing tests to verify JSONResponse returned for initial streaming errors
- Add tests for error code as string, bytes input, invalid JSON, and edge cases
- Verify correct error format extraction from SSE chunks

---------

Co-authored-by: Goutham Karthi <goutham@signoz.io>
Co-authored-by: yuneng-jiang <yuneng.jiang@gmail.com>
Co-authored-by: YutaSaito <36355491+uc4w6c@users.noreply.github.com>
2026-01-07 21:26:47 +05:30
Ishaan Jaffer
6c2408f957 litellm_mapped_tests_integrations 2026-01-07 21:22:10 +05:30
Ishaan Jaffer
6122ff9fce TestEncryptResponseId 2026-01-07 21:03:22 +05:30
Cesar Garcia
e34e8b4650
Fix component label automation to prevent false positives (#18765)
* Fix component label automation to prevent false positives

The GitHub Actions workflow was applying component labels (SDK, Proxy, UI Dashboard, Docs) too broadly by only checking if the component name appeared anywhere in the issue body. This caused issues to be mislabeled when users mentioned these terms in their descriptions.

Changes:
- Add more specific condition that checks for both the dropdown field header "What part of LiteLLM is this about?" AND the component name
- Applied to all 4 component labels: SDK, Proxy, UI Dashboard, and Docs
- Labels will now only be applied when users actually select the option from the dropdown

Fixes issues being incorrectly labeled with 'docs' and other component labels.

* Use more specific pattern to match dropdown selection exactly

Updated the label conditions to use a more precise pattern that matches
the dropdown header immediately followed by the selected value. This
prevents false positives when users mention component names in their
descriptions but select a different component.

Before: Checked for header AND component name anywhere in body
After: Checks for exact pattern "header\n\ncomponent"

This ensures labels are only applied when the component is actually
selected from the dropdown, not just mentioned in the issue text.

* Fix component label automation and require explicit user selection

This PR fixes two issues with component labeling:

1. **Improved label accuracy**: Updated the workflow to use exact pattern
   matching ("### What part of LiteLLM is this about?\n\nDocs") instead of
   broad substring matching. This prevents false positives where issues were
   mislabeled when users mentioned component names in their descriptions.

2. **Require explicit component selection**: Added empty string ('') as the
   first dropdown option to prevent GitHub from auto-selecting "SDK" as the
   default. Users must now consciously select which component their issue
   relates to.

Changes:
- Updated all component label conditions in label-component.yml workflow
- Added empty string as first option in bug_report.yml dropdown
- Added empty string as first option in feature_request.yml dropdown
- Labels only apply when users actually select a component from the dropdown

This ensures accurate labeling and prevents the default SDK label from
being applied to all new issues.
2026-01-07 20:01:14 +05:30
Ishaan Jaffer
dc553440d3 pynacl==1.6.2 2026-01-07 18:50:32 +05:30
Ishaan Jaffer
9471d616fc aiohttp==3.13.3 2026-01-07 18:25:23 +05:30
Ishaan Jaffer
b855ad5541 test_encode_decode_helpers_roundtrip_in_cache_context 2026-01-07 18:23:17 +05:30
Ishaan Jaffer
dd67235d4d TestLevoIntegration 2026-01-07 18:17:22 +05:30
Ishaan Jaffer
dd24252a9f bump: version 1.80.11 → 1.80.12 2026-01-07 18:11:14 +05:30
Ishaan Jaffer
407575efb3 test_completion_bedrock_claude_aws_session_token 2026-01-07 18:09:07 +05:30
Krish Dholakia
80ead21c3a
Litellm improve endpoint discovery (#18762)
* docs: document all endpoints in .json and add consistency checks against docs + providers.json

* docs: add more tests + improve coverage
2026-01-07 17:35:01 +05:30
drorIvry
000913fa12
Hotfix - docs qualifire (#18724)
* Hotfix - docs qualifire

* Hotfix - docs qualifire

* Hotfix - docs qualifire

* Hotfix - docs qualifire

* Hotfix - docs qualifire

* Hotfix - docs qualifire

* Hotfix - docs qualifire
2026-01-07 17:23:12 +05:30
Ishaan Jaffer
bdbbc9db62 run_secret_detection 2026-01-07 16:43:31 +05:30
Ishaan Jaffer
ebdc2747e7 fix gigachat_models 2026-01-07 16:41:54 +05:30
Sameer Kankute
7aca09397a
Merge pull request #18758 from BerriAI/litellm_fix_image_editing
fix: test_azure_image_edit_cost_tracking
2026-01-07 15:37:05 +05:30
Sameer Kankute
bb1f65c546 fix: test_azure_image_edit_cost_tracking 2026-01-07 15:22:13 +05:30
Ishaan Jaffer
45f840d274 test_azure_image_edit_cost_tracking 2026-01-07 15:12:51 +05:30
Ishaan Jaffer
5873cd4a32 test_completion_bedrock_titan_null_response 2026-01-07 15:09:44 +05:30
Ishaan Jaffer
49f4005001 fix 2026-01-07 15:07:32 +05:30
Ishaan Jaffer
d56054e747 test_anthropic_messages_to_wildcard_model 2026-01-07 15:03:06 +05:30
Ishaan Jaffer
269771a7c9 test_bedrock_httpx_streaming 2026-01-07 15:02:10 +05:30
Ishaan Jaffer
645ca64780 a121 fixes 2026-01-07 15:00:49 +05:30
Ishaan Jaffer
a5332a6d51 fix code qa check 2026-01-07 14:54:00 +05:30