Commit graph

33141 commits

Author SHA1 Message Date
Sameer Kankute
5702cc7e13 Fix: get_supported_anthropic_messages_params 2026-02-09 17:38:03 +05:30
Sameer Kankute
0b5cb47c03 fix: Missing return statement for async streaming 2026-02-09 17:34:48 +05:30
Sameer Kankute
e5f41ba054
Merge pull request #20733 from BerriAI/litellm_v1_messages_claude_4_6
[Feat]Add new claude 4-6 feat for v1/messages
2026-02-09 17:26:40 +05:30
Sameer Kankute
5611974228 Fix : litellm/tests/test_litellm/llms/bedrock/chat/invoke_transformations/test_bedrock_chat_invoke_transformations_anthropic_claude3_transformation.py 2026-02-09 17:18:05 +05:30
Sameer Kankute
ef55d37bf0
Merge branch 'main' into litellm_v1_messages_claude_4_6 2026-02-09 17:14:36 +05:30
Sameer Kankute
30d17c29e4 handle when litellm_parrams might be none 2026-02-09 17:13:39 +05:30
Sameer Kankute
3cf109ed0c
Merge pull request #20745 from BerriAI/litellm_vercel_ai_models
Add new vercel ai anthropic models
2026-02-09 17:07:56 +05:30
Sameer Kankute
23088f86bd Add response schema for vercel ai sonnet 4.5 2026-02-09 17:07:36 +05:30
Sameer Kankute
493eaa6200
Merge pull request #20748 from BerriAI/litellm_anthropic_output_config
Add output_config as supported param
2026-02-09 17:04:08 +05:30
Sameer Kankute
a322db02ab
Merge pull request #20696 from BerriAI/litellm_oss_staging_02_08_2026
Litellm oss staging 02 08 2026
2026-02-09 16:59:54 +05:30
Sameer Kankute
285c00ac20
Merge pull request #20710 from tsachis/fix-video-list-pagination-id-encoding
Fix video list pagination cursors not encoded with provider metadata
2026-02-09 16:41:52 +05:30
Sameer Kankute
1b2278951d Add output_config as supported param 2026-02-09 16:39:21 +05:30
Sameer Kankute
f929461fc6
Merge pull request #20702 from emerzon/fix/issue-20698-stream-chunk-thinking-blocks
fix(streaming): preserve interleaved thinking/redacted_thinking blocks
2026-02-09 16:32:43 +05:30
Sameer Kankute
d35691aa0c Fix: base_model name for body and deplyment name in URL 2026-02-09 16:25:46 +05:30
Sameer Kankute
6c4d6bb15e Add new vercel ai anthropic models 2026-02-09 16:00:01 +05:30
Sameer Kankute
2f33445054
Merge pull request #20738 from BerriAI/main
merge main
2026-02-09 15:07:39 +05:30
Sameer Kankute
a924a07255
Merge pull request #20736 from CAFxX/verificationtoken-index
add missing indexes on VerificationToken table
2026-02-09 14:37:51 +05:30
Sameer Kankute
c48986ba8d Fix double json import 2026-02-09 14:21:43 +05:30
Sameer Kankute
1f04115fb0 Fix: is_web_search_tool_chat_completion 2026-02-09 13:59:05 +05:30
Sameer Kankute
7fa4d090ec Add doc for chat completion web search 2026-02-09 13:51:26 +05:30
Sameer Kankute
4e94ecb08d Add tests for WebSearch interception with chat completions API 2026-02-09 13:41:29 +05:30
Sameer Kankute
3d49388d8e Fix structured response of tool call 2026-02-09 13:36:01 +05:30
Carlo Alberto Ferraris
248fe65736
add missing indexes on VerificationToken table 2026-02-09 16:59:28 +09:00
Sameer Kankute
319453d059 Add documentation for Fast Mode 2026-02-09 11:39:35 +05:30
Sameer Kankute
c3b1c0a590 Add fast mode for other providers 2026-02-09 11:36:10 +05:30
Sameer Kankute
b822e2e0ff Add support for fast param 2026-02-09 11:28:00 +05:30
Sameer Kankute
29e6efade9 Add inference_geo as supported messages param 2026-02-09 10:57:04 +05:30
Sameer Kankute
20440bcadc Add inference based costing 2026-02-09 10:51:50 +05:30
Sameer Kankute
3307f3d1c6 Add inference_geo as supported messages param 2026-02-09 10:47:13 +05:30
Sameer Kankute
d41df6053a Add all new feat for v1/messages 2026-02-09 10:35:11 +05:30
Sameer Kankute
8cd8a01d5a Add compaction for vertex ai 2026-02-09 10:18:19 +05:30
Sameer Kankute
aaa48f8ad2
Merge pull request #20712 from emerzon/fix/responses-tool-call-delta-index-mapping
fix(responses): preserve tool call argument deltas when streaming id is omitted
2026-02-09 08:43:04 +05:30
Emerson Gomes
cf17a440cd fix(responses): guard ambiguous tool-call index reuse 2026-02-08 08:53:17 -06:00
Emerson Gomes
68d788c84d fix(responses): preserve streamed tool deltas when id is omitted 2026-02-08 08:48:39 -06:00
tshushan
381c3756f4 Fix video list pagination cursors not encoded with provider metadata
first_id and last_id in the video list response were returned as raw
provider IDs while data[].id was properly wrapped with
encode_video_id_with_provider(). This caused pagination to break when
clients passed unencoded cursors back as the `after` parameter.

- Encode first_id/last_id in transform_video_list_response
- Decode the `after` param in transform_video_list_request via
  extract_original_video_id()
- Add 6 unit tests covering encoding, decoding, passthrough, and
  full round-trip pagination

Fixes #20708

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 16:24:14 +02:00
Emerson Gomes
c63d5fa0b5 test(streaming): build thinking chunks with typed Delta/StreamingChoices 2026-02-08 05:08:50 -06:00
Emerson Gomes
f7d03f8a43 fix(streaming): preserve interleaved thinking/redacted blocks 2026-02-08 05:04:47 -06:00
Elias Högbom Aronsson
0458e734b2
fix(vertex_ai): propagate extra_headers anthropic-beta to request body (#20666)
Vertex AI requires Anthropic beta flags in the request body
(anthropic_beta array), not as HTTP headers. The Bedrock handler
already extracts user-specified beta headers from the headers dict,
but the Vertex handler was missing this, causing extra_headers like
interleaved-thinking-2025-05-14 to be silently dropped.

This extracts anthropic-beta values from optional_params extra_headers
and merges them into the anthropic_beta request body field, and also
removes extra_headers from the request body since the parent's
transform_request spreads optional_params into data.
2026-02-07 23:05:17 -08:00
Varun Chawla
c9c6a5edc9
Fix: Spend logs pickle error with Pydantic models and redaction (#20685)
* docs: add callback registration optimization to v1.81.9 release notes (#20681)

* docs: add callback registration optimization to v1.81.9 release notes

* Update v1.81.9.md

---------

Co-authored-by: Alexsander Hamir <alexsanderhamirgomesbaptista@gmail.com>

* Fix spend logs pickle error with Pydantic models

Replace copy.deepcopy() with Pydantic-safe serialization to avoid
"cannot pickle '_thread.RLock' object" errors when request/response
redaction is enabled.

Changes:
- Add _convert_to_json_serializable_dict() helper that uses
  model_dump() for Pydantic models instead of pickle
- Replace copy.deepcopy() calls in request and response redaction
  paths with the new helper function
- Recursively handles nested dicts, lists, and Pydantic models

Root cause: Pydantic v2 BaseModel instances contain internal
_thread.RLock objects for thread-safety. When copy.deepcopy()
attempts to pickle these objects, it fails because threading
primitives cannot be pickled.

Fixes #20647

* chore: remove unused copy import

Remove unused copy import that was causing lint failure. The copy.deepcopy()
calls were replaced with _convert_to_json_serializable_dict() helper function
in the previous commit, making the copy module no longer needed.

---------

Co-authored-by: ryan-crabbe <128659760+ryan-crabbe@users.noreply.github.com>
Co-authored-by: Alexsander Hamir <alexsanderhamirgomesbaptista@gmail.com>
2026-02-07 23:02:29 -08:00
Varun Chawla
c8d9547095
fix(ui): add null guard for models in API keys table (#20655)
The VirtualKeysTable crashed when rendering keys with null or undefined
models field. The className expression tried to access .length on null,
throwing a TypeError that broke the entire keys table.

Added Array.isArray() guard before accessing .length on the models value.

Fixes #20611
2026-02-07 23:00:33 -08:00
Varun Chawla
7335965c12
fix: show error details instead of Data Not Available for failed requests (#20656) 2026-02-07 22:59:49 -08:00
John Lathouwers
8dcd183013
Fixes #20582 (#20663) 2026-02-07 22:58:59 -08:00
Varun Chawla
4f96a3b126
Fix Bedrock Claude Opus 4.6 model ID format (#20671)
Remove incorrect `:0` suffix from regional Bedrock model identifiers:
- us.anthropic.claude-opus-4-6-v1:0 → us.anthropic.claude-opus-4-6-v1
- au.anthropic.claude-opus-4-6-v1:0 (duplicate removed)

The `:0` suffix is invalid for Bedrock inference profile ARNs and causes
"The provided model identifier is invalid" errors when calling the model.

Fixes #20562
2026-02-07 22:57:59 -08:00
Cesar Garcia
1fecae0399
docs: add SDK proxy authentication (OAuth2/JWT auto-refresh) documentation (#20680)
Adds documentation for the litellm.proxy_auth feature that automatically
obtains and refreshes OAuth2/JWT tokens when connecting to a LiteLLM Proxy.
2026-02-07 22:57:04 -08:00
nuernber
55a89f279f
feat: add support for anthropic_messages call type in prompt caching (#19233)
* feat: add support for anthropic_messages call type in prompt caching

* test: move anthropic_messages prompt caching test to main router test file

* add tutorial on using claude code with prompt cache routing
2026-02-07 22:51:06 -08:00
jwang-gif
c9df996b77
Add team policy mapping for zguard (#20608)
* support policy mapping on team key level

* update document

* update document

* address comments

* update document

* add unit test for new feature

* add more test case
2026-02-07 22:44:17 -08:00
Harshit Jain
7f93ff9e83
fix: add hook to handle db case (#20635) 2026-02-07 22:42:19 -08:00
Iver Jordal
de11c3258b
Correct ElevenLabs support status in README (#20643)
Add a missing check symbol for /audio/transcriptions, which seems to be supported already, according to the docs at https://docs.litellm.ai/docs/providers/elevenlabs
2026-02-07 22:29:07 -08:00
Harshit Jain
3b043ee8bf
fix critical CVE vulnerabliltes (#20683) 2026-02-07 22:23:01 -08:00
Varun Chawla
e24ea2897a
fix: empty guardrails/policies arrays should not trigger enterprise license check (#20567)
* fix: empty guardrails/policies arrays should not trigger enterprise license check (#20304)

The UI sends empty arrays for enterprise-only fields (guardrails, policies,
logging) even when the user has not configured these features. The backend
`is not None` check treated `[]` as a truthy intent to use the feature,
falsely requiring an enterprise license for basic team operations.

Backend: Add `and updated_kv[field] != [] and updated_kv[field] != {}`
guards in `_update_metadata_fields` so empty collections are skipped.

UI: Conditionally omit guardrails, logging, and policies from the
payload when empty instead of defaulting to `[]`.

Fixes #20304

* fix: allow clearing fields with empty collections while skipping enterprise check

Address PR review feedback:

1. Move the empty-collection guard into _update_metadata_field (singular)
   so that empty lists/dicts skip only the premium license check but still
   get written into metadata. This lets users intentionally clear a
   previously-set field (e.g. guardrails: []) without being blocked, while
   the UI's default empty arrays still don't trigger a false enterprise
   error.

2. Remove sys.path hack from test file; use standard imports that work
   with pytest discovery.

3. Add tests verifying that empty collections are moved into metadata
   (field clearing works) even though they bypass the premium check.

Fixes #20304
2026-02-07 22:22:12 -08:00