Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
4201 commits
Select commit Hold shift + click to select a range
db58792
Sorting changes, pending tests and loading state
yuneng-jiang Nov 25, 2025
c0288d8
Fix bedrock claude opus 4.5 inference profile - only global currently…
reflection Nov 25, 2025
8637d74
include `server_tool_use` in streaming usage (#16826)
KeremTurgutlu Nov 25, 2025
70a1325
docs: more doc cleanup
Nov 25, 2025
3da9974
Tests
yuneng-jiang Nov 25, 2025
8ee6812
docs: cleanup launch post
Nov 25, 2025
5cb5c2a
docs: more doc cleanup
Nov 26, 2025
6e5c7c0
fix transcription exception handling - /audio/transcriptions (#16791)
otaviofbrito Nov 26, 2025
5ec3f19
Make model select required for team, add checks for all-proxy-models
yuneng-jiang Nov 26, 2025
5c192a2
[Feat] Add new RAG API on LiteLLM AI Gateway (#17109)
ishaan-jaff Nov 26, 2025
577f40b
ProviderLogo component, test pending
yuneng-jiang Nov 26, 2025
cd65a84
Merge pull request #16844 from Chesars/fix/response-format-to-text-fo…
Sameerlite Nov 26, 2025
b50fcc4
vertex ai: use the correct domain for the global location when counti…
CAFxX Nov 26, 2025
7227747
Improve Wording for Config Models in Model Table (#17100)
yuneng-jiang Nov 26, 2025
7c09187
downgrade grpcio (#17090)
AlexsanderHamir Nov 26, 2025
e6e1e8f
feat(pillar): add automatic LiteLLM context headers (#17076)
eagle-p Nov 26, 2025
a727f71
Optimize date filtering for spend logs queries (#17073)
CAFxX Nov 26, 2025
be97073
feat: Add gemini-3-pro-image-preview model support for imageSize para…
choigawoon Nov 26, 2025
cb18099
Migrate some queries to use react query, tests pending
yuneng-jiang Nov 26, 2025
2794153
bump proxy extras
yuneng-jiang Nov 26, 2025
50dea26
Tests and revert useAvailableModels
yuneng-jiang Nov 26, 2025
e9ab206
Merge pull request #17098 from BerriAI/litellm_broken_links_ui
yuneng-jiang Nov 26, 2025
6c79240
Merge pull request #17108 from BerriAI/litellm_user_table_sort_ui
yuneng-jiang Nov 26, 2025
38bac31
Merge pull request #17110 from BerriAI/litellm_org_admin_access_fix
yuneng-jiang Nov 26, 2025
241ad27
Add gemini file search support
Sameerlite Nov 26, 2025
c1636bd
Fix mypy and lint error
Sameerlite Nov 26, 2025
31c3913
Fix videos lint errors
Sameerlite Nov 26, 2025
86a9b74
Fix Thinking may not be enabled when tool_choice forces tool use
Sameerlite Nov 26, 2025
fdee1e2
Merge branch 'BerriAI:main' into main
abi-jey Nov 26, 2025
effebda
Add custom llm provider in vertex ai embeddings
Sameerlite Nov 26, 2025
fcf9ab4
Add embed-multilingual-light-v3.0 costing
Sameerlite Nov 26, 2025
448b07a
Fix db logging for proxy
Sameerlite Nov 26, 2025
3c2623e
Merge pull request #17125 from BerriAI/litellm_fix_videos_lint
Sameerlite Nov 26, 2025
9834441
fix: tested e2e implementation and added sample config.
abi-jey Nov 26, 2025
b009e50
Merge branch 'BerriAI:main' into main
abi-jey Nov 26, 2025
a40c6ae
fix: remove the unnecessary config changes
abi-jey Nov 26, 2025
dba9946
Update new feats as reviewed
Sameerlite Nov 26, 2025
c7ef668
Update documentation for azure 4 feats
Sameerlite Nov 26, 2025
1c317ac
Merge pull request #17145 from BerriAI/main
Sameerlite Nov 26, 2025
cdb9b60
Merge pull request #17146 from BerriAI/main
Sameerlite Nov 26, 2025
79c1203
Merge pull request #17129 from BerriAI/litellm_fix_mcp_responses_anth…
Sameerlite Nov 26, 2025
d4e80c6
Merge pull request #17124 from BerriAI/litellm_gemini_file_search
Sameerlite Nov 26, 2025
1db4343
Merge pull request #17135 from BerriAI/litellm_add_missing_passthroug…
Sameerlite Nov 26, 2025
eacf20f
Merge branch 'main' into litellm_refactor_01
AlexsanderHamir Nov 26, 2025
ce65663
Merge remote-tracking branch 'origin' into litellm_ui_model_page_perf
yuneng-jiang Nov 26, 2025
ba71d10
Merge conflicts
yuneng-jiang Nov 26, 2025
f0d1f2d
Merge pull request #17123 from BerriAI/litellm_ui_model_page_perf
yuneng-jiang Nov 26, 2025
5b645d5
Update spend logs writer to add organization_id
yuneng-jiang Nov 26, 2025
016625b
add VertexAIVectorStoreOptions
ishaan-jaff Nov 26, 2025
4d87ac0
Revert "add VertexAIVectorStoreOptions"
ishaan-jaff Nov 26, 2025
40c21c4
test fixes
yuneng-jiang Nov 26, 2025
99d0f13
fix api_key (#17153)
ishaan-jaff Nov 26, 2025
1384853
Revert "test fixes"
yuneng-jiang Nov 26, 2025
0f59e5f
add fireworks_ai/accounts/fireworks/models/glm-4p6 (#17154)
ishaan-jaff Nov 26, 2025
8d2dba8
fix code qa checks
ishaan-jaff Nov 26, 2025
19a6693
test_create_mcp_server_direct
ishaan-jaff Nov 26, 2025
85d4000
test_vertex_ai_partner_models_token_counting_endpoint
ishaan-jaff Nov 26, 2025
72f8e5f
bump litellm proxy extras
ishaan-jaff Nov 26, 2025
4237633
add DEFAULT_CHUNK_OVERLAP, DEFAULT_CHUNK_SIZE
ishaan-jaff Nov 26, 2025
c7746eb
bump proxy extras
ishaan-jaff Nov 26, 2025
6530749
test fixes
ishaan-jaff Nov 26, 2025
203df98
fix pyproject
ishaan-jaff Nov 26, 2025
3c3725d
bump extras
ishaan-jaff Nov 26, 2025
ff53a75
Merge branch 'main' into litellm_refactor_01
AlexsanderHamir Nov 26, 2025
50328d1
test_process_chunk_with_response_completed_event
ishaan-jaff Nov 26, 2025
a48705b
fix code QA checks
ishaan-jaff Nov 26, 2025
2d70aee
test_edit_mcp_server_redacts_credentials
ishaan-jaff Nov 26, 2025
983ada2
mock test fixes
ishaan-jaff Nov 26, 2025
2548c89
code qa check
ishaan-jaff Nov 26, 2025
4bf5830
test fix
ishaan-jaff Nov 26, 2025
7e0822f
fix validate_environment
ishaan-jaff Nov 26, 2025
046b5fc
Merge remote-tracking branch 'origin' into litellm_org_usage
yuneng-jiang Nov 26, 2025
44e3133
test_imagen_get_complete_url
ishaan-jaff Nov 26, 2025
529c564
test_opentelemetry_integration
ishaan-jaff Nov 26, 2025
b11a803
Revert "Update spend logs writer to add organization_id"
yuneng-jiang Nov 26, 2025
4e9490b
fix fallback handlers
ishaan-jaff Nov 26, 2025
bb7db67
0.4.8 extras bump
ishaan-jaff Nov 26, 2025
0437be1
bump pyproject extras
ishaan-jaff Nov 26, 2025
9aef28f
fix get litellm params
ishaan-jaff Nov 26, 2025
5a60a8a
bump: version 1.80.5 β†’ 1.80.6
ishaan-jaff Nov 26, 2025
02e99f2
Revert "Revert "Update spend logs writer to add organization_id""
yuneng-jiang Nov 26, 2025
ce9474a
Updating spend writer
yuneng-jiang Nov 26, 2025
b93fe4b
Add explicit timeout for flaky tests
yuneng-jiang Nov 26, 2025
cfdade1
Adding timeout it instead
yuneng-jiang Nov 26, 2025
1a9b2d2
Merge pull request #16560 from BerriAI/litellm_org_usage
yuneng-jiang Nov 26, 2025
d8e4aaf
Merge pull request #17161 from BerriAI/litellm_fix_flaky_ui_test_team…
yuneng-jiang Nov 26, 2025
f1789a5
bump: version 0.4.8 β†’ 0.4.9
yuneng-jiang Nov 26, 2025
21830cb
Including files for publish_proxy_extras output
yuneng-jiang Nov 26, 2025
d987593
[Feat] Add audio transcriptions for WatsonX (#17160)
ishaan-jaff Nov 26, 2025
8d72d86
Merge pull request #17163 from BerriAI/litellm_extras_version_bump
yuneng-jiang Nov 26, 2025
b97ea58
Add method for extracting vector store ids from path params (#16566)
Sameerlite Nov 26, 2025
49f0a86
revert fix
AlexsanderHamir Nov 26, 2025
ce60453
test_gemini_get_complete_url
ishaan-jaff Nov 26, 2025
c0d9fac
Merge pull request #17089 from BerriAI/litellm_refactor_01
AlexsanderHamir Nov 26, 2025
8f1be80
fix code qa check
ishaan-jaff Nov 26, 2025
86af489
Change model_hub_table to call getUiConfig before fetching public data
yuneng-jiang Nov 26, 2025
1b34312
Merge pull request #17166 from BerriAI/litellm_ui_mh_server_root
yuneng-jiang Nov 26, 2025
32617d1
Add OpenRouter Opus 4.5 (#17144)
SamAcctX Nov 26, 2025
210560e
Add paginated /spend/logs/v2 endpoint
AlexsanderHamir Nov 26, 2025
379655e
[Feat] LiteLLM RAG API - Add support for Vertex RAG engine (#17117)
ishaan-jaff Nov 26, 2025
1ad9e01
Add endpoint-based date parsing for /spend/logs/v2
AlexsanderHamir Nov 27, 2025
df190d2
Add deprecation notice to /spend/logs endpoint
AlexsanderHamir Nov 27, 2025
87b4e9e
User table loading state
yuneng-jiang Nov 27, 2025
67f9c6c
Adjusting e2e tests for new loading state
yuneng-jiang Nov 27, 2025
aad0075
Change create key duration initial value to null
yuneng-jiang Nov 27, 2025
4b951c3
Removing flaky tests
yuneng-jiang Nov 27, 2025
8316948
[Feat] RAG API - QA - allow internal user keys to access api, allow u…
ishaan-jaff Nov 27, 2025
f0e5921
Add emoji for exact text match
yuneng-jiang Nov 27, 2025
0346d1e
fix
ishaan-jaff Nov 27, 2025
9a4d3bc
Merge pull request #17170 from BerriAI/litellm_key_create_duration_fix
yuneng-jiang Nov 27, 2025
ac1827c
Merge pull request #17168 from BerriAI/litellm_ui_users_loading
yuneng-jiang Nov 27, 2025
5cfcc98
fix img gen
ishaan-jaff Nov 27, 2025
7e3f3c6
Migrate /public/provider/fields to react query
yuneng-jiang Nov 27, 2025
b487e67
sec fix
ishaan-jaff Nov 27, 2025
48eb34a
fix cos tracking
ishaan-jaff Nov 27, 2025
605bc4e
type the secrets field
Sameerlite Nov 26, 2025
30a22f1
type the secrets field
Sameerlite Nov 27, 2025
1cb5fcd
make generic api OSS + support multiple generic API's (#17152)
Nov 27, 2025
aab0684
Merge pull request #16877 from BerriAI/litellm_mcp_responses_api_head…
Sameerlite Nov 27, 2025
b09c64e
Merge pull request #16874 from BerriAI/litellm_vertex_ai_anthopic_cos…
Sameerlite Nov 27, 2025
65f5cc2
fix ai/ml api
ishaan-jaff Nov 27, 2025
01fd4d7
fix fireworks test
ishaan-jaff Nov 27, 2025
772be17
test_append_system_prompt_messages
ishaan-jaff Nov 27, 2025
e093429
Merge pull request #17177 from BerriAI/litellm_ui_model_perf_2
yuneng-jiang Nov 27, 2025
40db452
[Feature] UI - Organization Usage in Usage Tab (#16614)
yuneng-jiang Nov 16, 2025
2471602
Added support for twelvelabs pegasus
Sameerlite Nov 27, 2025
d4bc1cf
Respect custom llm provider in header
Sameerlite Nov 27, 2025
1f6d8fc
Merge pull request #17079 from naaa760/fix/vertex-batch-support
Sameerlite Nov 27, 2025
af5f31e
Merge branch 'BerriAI:main' into main
abi-jey Nov 27, 2025
5fc950e
migrate anthropic provider to azure ai provider
Sameerlite Nov 27, 2025
c12305a
Add provider specific headers in their files
Sameerlite Nov 27, 2025
3b330c3
docs config settings
ishaan-jaff Nov 27, 2025
688066f
Merge pull request #17096 from abi-jey/main
Sameerlite Nov 27, 2025
18e16f9
fix main lint error
Sameerlite Nov 27, 2025
784c13a
Add docs for microsoft foundry
Sameerlite Nov 27, 2025
6825593
Merge pull request #17181 from BerriAI/litellm_ui_org_usage_2
yuneng-jiang Nov 27, 2025
83c1138
Merge pull request #17195 from BerriAI/litellm_respect_custom_llm_header
Sameerlite Nov 27, 2025
0422ca6
fix lint error
Sameerlite Nov 27, 2025
31ecd4c
Revert "Respect custom llm provider in header" (#17211)
ishaan-jaff Nov 27, 2025
23a979d
Building UI
yuneng-jiang Nov 27, 2025
96a0f96
test_e2e_batches_files
ishaan-jaff Nov 27, 2025
4d00f5b
Merge pull request #17212 from BerriAI/litellm_yuneng_ui_build
yuneng-jiang Nov 27, 2025
cf6dda5
block input_examples in fucntion definition for non anthropic providers
Sameerlite Nov 27, 2025
f09a6a4
Rebuilding UI
yuneng-jiang Nov 27, 2025
37b1797
Merge pull request #17213 from BerriAI/litellm_yuneng_ui_build_2
yuneng-jiang Nov 27, 2025
9669f33
fix tests/test_litellm/llms/azure_ai/claude/test_azure_anthropic_hand…
Sameerlite Nov 27, 2025
5197380
docs: add OpenAI Agents SDK to projects (#17203)
Chesars Nov 27, 2025
d7ad291
Upgrade websockets to v15 (#16734)
hxyannay Nov 27, 2025
e402b8c
do not include plaintext message in exception (#17216)
raghav-stripe Nov 27, 2025
d59e5dc
Change add fallback to use antd select
yuneng-jiang Nov 27, 2025
ef1b3f9
Merge pull request #17223 from BerriAI/litellm_router_fallback_dropdo…
yuneng-jiang Nov 27, 2025
d612d71
[Feat] Add guardrails for pass through endpoints (#17221)
ishaan-jaff Nov 27, 2025
ffb75b0
[Feat] UI - allow adding pass through guardrails through UI (#17226)
ishaan-jaff Nov 27, 2025
19f03d4
ui fix linting errors
ishaan-jaff Nov 27, 2025
b854218
mypy: fix mypy linting errors
ishaan-jaff Nov 27, 2025
d4be511
UI new build
ishaan-jaff Nov 27, 2025
38ddd50
[Bug fix] Vector Store List Endpoint Returns 404 (#17229)
ishaan-jaff Nov 27, 2025
edfc35d
[Feature]: Add Provider publicai.co (#17230)
ishaan-jaff Nov 27, 2025
1fca4a9
bump: version 1.80.6 β†’ 1.80.7
ishaan-jaff Nov 27, 2025
92ba348
Fix Request and Response Panel JSONViewer
yuneng-jiang Nov 27, 2025
2f045f0
Adding loading states to edit settings
yuneng-jiang Nov 27, 2025
b5e41ba
Merge pull request #17233 from BerriAI/litellm_ui_logs_json
yuneng-jiang Nov 27, 2025
634ec91
Merge pull request #17236 from BerriAI/litellm_team_edit_settings_loa…
yuneng-jiang Nov 27, 2025
4aea2df
Various Text, button state, and test changes
yuneng-jiang Nov 28, 2025
6bbc177
Fix fallbacks immediately deleting before api resolves
yuneng-jiang Nov 28, 2025
c578889
Merge pull request #17237 from BerriAI/litellm_ui_labeling_fixes
yuneng-jiang Nov 28, 2025
fb5429b
Remove Feature Flags
yuneng-jiang Nov 28, 2025
3cc18a6
Merge pull request #17238 from BerriAI/litellm_ui_fallbacks_del_fix
yuneng-jiang Nov 28, 2025
0d32982
Fix flaky tests
yuneng-jiang Nov 28, 2025
a33a2cb
Adding timeout to flaky test
yuneng-jiang Nov 28, 2025
994a624
Merge pull request #17240 from BerriAI/litellm_remove_feature_flags
yuneng-jiang Nov 28, 2025
71f4135
Merge pull request #17202 from BerriAI/litellm_azure_ai_anthropic_sup…
Sameerlite Nov 28, 2025
d43c077
Fix/issue 16759 streaming error validation (#17242)
weichiet Nov 28, 2025
334d09b
feat: add regex-based tool_name/tool_type matching for tool-permissio…
uc4w6c Nov 28, 2025
87050c6
SSO: fix the generic SSO provider (#17227)
saar-win Nov 28, 2025
8aa4f3d
fix(bedrock): handle cohere v4 embed response dictionary format (#17220)
AndyForest Nov 28, 2025
bbea83f
Fix : acompletion throws error with SambaNova models (#17217)
omkar806 Nov 28, 2025
205a563
Allow wildcard routes for nonproxy admin (SCIM) (#17178)
v0rtex20k Nov 28, 2025
8700c5c
Add nova embedding support
Sameerlite Nov 28, 2025
f0d3c96
Add tags and other field in UI logs and add responses api cost tracking
Sameerlite Nov 28, 2025
eab0ec9
Fix async get request
Sameerlite Nov 28, 2025
4cf7a74
fix: Azure OpenAI GA path relies soley on model paramter as deployment
abi-jey Nov 28, 2025
23b737d
Merge branch 'BerriAI:main' into main
abi-jey Nov 28, 2025
6c326ce
Merge pull request #17142 from BerriAI/litellm_anthropic_update_new_feat
Sameerlite Nov 28, 2025
af8f147
fix PLR0915
Sameerlite Nov 28, 2025
bb11c4f
Merge pull request #17258 from BerriAI/litellm_add_tags_in_ui
Sameerlite Nov 28, 2025
bcc35a6
Merge pull request #17253 from BerriAI/litellm_nova_embedding_support
Sameerlite Nov 28, 2025
9d05839
Fix pegasus response and add doc
Sameerlite Nov 28, 2025
b85df0b
Better handle anonymization (#17207)
hxomer Nov 28, 2025
7f42b9b
Merge pull request #17193 from BerriAI/litellm_twelvelabs_int
Sameerlite Nov 28, 2025
4fffd33
Merge pull request #17167 from BerriAI/litellm_spend_logs_api
AlexsanderHamir Nov 29, 2025
b949ec9
Merge pull request #16739 from BerriAI/litellm_/audio/speech
AlexsanderHamir Dec 1, 2025
f7380a5
Respect custom llm provider in header
Sameerlite Dec 1, 2025
0743409
Merge pull request #17290 from BerriAI/litellm_fix_create_batch_Header
Sameerlite Dec 1, 2025
9edc50e
Fix 500 error for malformed request
Sameerlite Dec 1, 2025
02510a9
Add better handling image generation for gemini models
Sameerlite Dec 1, 2025
7dac498
Add passthrough cost tracking for veo
Sameerlite Dec 1, 2025
ae132ab
Revert auth change
Sameerlite Dec 1, 2025
983ba7a
Remove not compatible beta header from claude code
Sameerlite Dec 1, 2025
8d1113e
Merge pull request #17296 from BerriAI/litellm_video_passthrough_cost…
Sameerlite Dec 1, 2025
353c779
Merge pull request #17301 from BerriAI/litellm_claude_code_beta_fix
Sameerlite Dec 1, 2025
3347e4d
Merge pull request #17292 from BerriAI/litellm_gemini_image_gen_handling
Sameerlite Dec 1, 2025
6de6107
fix: respect guardrail mock_response during during_call to return blo…
uc4w6c Dec 1, 2025
7808a61
Fix session consistency, move Lasso API version away from source code…
orgersh92 Dec 1, 2025
c588e78
use kwargs
colinlin-stripe Nov 27, 2025
2a5082e
remove logs
colinlin-stripe Nov 27, 2025
e420b63
add tests
colinlin-stripe Nov 28, 2025
661bccb
fixed flaky test by sorting list
colinlin-stripe Dec 1, 2025
a73bd75
doc: add images for tool permission guardrail (#17322)
uc4w6c Dec 1, 2025
ce0dc0c
[Feat] WatsonX - allow passing zen_api_key dynamically (#16655)
ishaan-jaff Dec 1, 2025
24f847b
[Feat] JWT Auth - AI Gateway, allow using regular OIDC flow with user…
ishaan-jaff Dec 1, 2025
7a46f3a
docs: document azure ai provider for anthropic
Dec 1, 2025
c9afb86
docs(azure_ai.md): document anthropic model usage on azure ai
Dec 1, 2025
f434ca6
add kimi-k2-instruct-0905 (#17328)
ishaan-jaff Dec 1, 2025
b6d6f83
(feat) Generic Guardrail API - allows guardrail providers to add INST…
Dec 1, 2025
1eb06f8
Revert "fix: respect guardrail mock_response during during_call to re…
Dec 1, 2025
be920d7
Add `claude-opus-4-5` alias (#17313)
dannykopping Dec 2, 2025
37ecb03
Add support of audio transcription for OVHcloud (#17305)
eliasto Dec 2, 2025
860cdc8
[Fix] Fix Watsonx Audio Transcription API (#17326)
ishaan-jaff Dec 2, 2025
dbf1cd5
Merge pull request #17271 from colinlin-stripe/cherry-pick-invoke-hea…
Sameerlite Dec 2, 2025
289c13c
Merge pull request #17260 from abi-jey/main
Sameerlite Dec 2, 2025
1cdfb3d
[Bug Fix] - Fix `litellm_enterprise` ensure imported routes exist (#…
ishaan-jaff Dec 2, 2025
70126d9
Fix/new org team validate against org (#17333)
rioiart Dec 2, 2025
98a2444
Fix sso users not added to entra synced team (#17331)
rioiart Dec 2, 2025
71efcb7
Refactor Noma guardrail to use shared Responses transformation and in…
idola9 Dec 2, 2025
965406c
feat(provider): add Z.AI (Zhipu AI) as built-in provider (#17307)
Chesars Dec 2, 2025
01dfc35
Fix AttributeError when metadata is null in request body (#17263) (#1…
Chesars Dec 2, 2025
860270a
SSO: Clear sso integration for all users (#17287)
saar-win Dec 2, 2025
da5b81c
feat: add experimental latest-user filtering for Bedrock (#17282)
uc4w6c Dec 2, 2025
8945857
Add context window exception mapping for Together AI (#17284)
li-boxuan Dec 2, 2025
e09e309
feat(github-copilot): Add Embedding API support (#17278)
codgician Dec 2, 2025
6e8e3b3
Update Databricks model pricing and add new models (including databri…
epistoteles Dec 2, 2025
fe41e14
fix: remove URL format validation for MCP server endpoints (#17270)
uc4w6c Dec 2, 2025
4c7a988
Guardrail API V2 - user api key metadata, session id, specify input t…
Dec 2, 2025
082c8af
Fix: litellm user auth not passing issue
Sameerlite Dec 2, 2025
6d296b1
Add other routes in jwt auth
Sameerlite Dec 2, 2025
7324905
fix: update default database connection number
AlexsanderHamir Dec 2, 2025
0acb7f4
Fix (Docs) - Update default database connection limit #17353
AlexsanderHamir Dec 2, 2025
9ff2ecc
Fix: update default proxy_batch_write_at number (#17355)
AlexsanderHamir Dec 2, 2025
1bb9e1b
[Feat] Add `vllm` batch+files API support (#15823)
ishaan-jaff Dec 2, 2025
18a9af3
Merge pull request #17291 from BerriAI/litellm_fix_correct_attribute_…
Sameerlite Dec 2, 2025
397acec
Merge pull request #17342 from BerriAI/litellm_fix_mcp_auth_header_fo…
Sameerlite Dec 2, 2025
4ac9e4c
Merge pull request #17345 from BerriAI/litellm_fix_jwt_auth_route_issue
Sameerlite Dec 2, 2025
81f4d86
docs: add Azure AI Foundry documentation for Claude models (#17104)
Chesars Dec 2, 2025
12530b3
Litellm bedrock OpenAI model support (#17368)
kothamah Dec 2, 2025
8c1290d
Indent and import fix
yuneng-jiang Dec 2, 2025
61b0dbd
Merge pull request #17378 from BerriAI/litellm_indent_import_fix
yuneng-jiang Dec 2, 2025
8b8f93d
Add Google Private API Endpoint to Vertex AI fields
yuneng-jiang Dec 2, 2025
7d4f3f9
Merge pull request #17382 from BerriAI/litellm_vertex_api_base
yuneng-jiang Dec 2, 2025
4d7b8af
sync: merge upstream/main for v1.79.3-stable
Dec 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
1,168 changes: 955 additions & 213 deletions .circleci/config.yml

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions .circleci/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# used by CI/CD testing
openai==1.81.0
openai==1.100.1
python-dotenv
tiktoken
importlib_metadata
Expand All @@ -14,4 +14,6 @@ google-cloud-iam==2.19.1
fastapi-sso==0.16.0
uvloop==0.21.0
mcp==1.10.1 # for MCP server
semantic_router==0.1.10 # for auto-routing with litellm
semantic_router==0.1.10 # for auto-routing with litellm
fastuuid==0.12.0
responses==0.25.7 # for proxy client tests
11 changes: 8 additions & 3 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@
// },

// Features to add to the dev container. More info: https://containers.dev/features.
// "features": {},
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "lts"
},
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},

// Configure tool-specific properties.
"customizations": {
Expand All @@ -30,7 +35,7 @@

// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [4000],

"containerEnv": {
"LITELLM_LOG": "DEBUG"
},
Expand All @@ -48,5 +53,5 @@
// "remoteUser": "litellm",

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "pipx install poetry && poetry install -E extra_proxy -E proxy"
"postCreateCommand": "bash ./.devcontainer/post-create.sh"
}
17 changes: 17 additions & 0 deletions .devcontainer/post-create.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env bash
set -e

echo "[post-create] Installing poetry via pip"
python -m pip install --upgrade pip
python -m pip install poetry

echo "[post-create] Installing Python dependencies (poetry)"
poetry install --with dev --extras proxy

echo "[post-create] Generating Prisma client"
poetry run prisma generate

echo "[post-create] Installing npm dependencies"
cd ui/litellm-dashboard && npm install --no-audit --no-fund

echo "[post-create] Done"
46 changes: 44 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,51 @@ cookbook
.github
tests
.git
.github
.circleci
.devcontainer
*.tgz
log.txt
docker/Dockerfile.*

# Claude Flow generated files (must be excluded from Docker build)
.claude/
.claude-flow/
.swarm/
.hive-mind/
memory/
coordination/
claude-flow
.mcp.json
hive-mind-prompt-*.txt

# Python virtual environments and version managers
.venv/
venv/
**/.venv/
**/venv/
.python-version
.pyenv/
__pycache__/
**/__pycache__/
*.pyc
.mypy_cache/
.pytest_cache/
.ruff_cache/
**/pyvenv.cfg

# Common project exclusions
.vscode
*.pyo
*.pyd
.Python
env/
.pytest_cache
.coverage
htmlcov/
dist/
build/
*.egg-info/
.DS_Store
node_modules/
*.log
.env
.env.local
133 changes: 133 additions & 0 deletions .github/scripts/scan_keywords.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
#!/usr/bin/env python3
import json
import os
import sys
import urllib.request
import urllib.error


def read_event_payload() -> dict:
event_path = os.environ.get("GITHUB_EVENT_PATH")
if not event_path or not os.path.exists(event_path):
return {}
with open(event_path, "r", encoding="utf-8") as f:
return json.load(f)


def get_issue_text(event: dict) -> tuple[str, str, int, str, str]:
issue = event.get("issue") or {}
title = (issue.get("title") or "").strip()
body = (issue.get("body") or "").strip()
number = issue.get("number") or 0
html_url = issue.get("html_url") or ""
author = ((issue.get("user") or {}).get("login") or "").strip()
return title, body, number, html_url, author


def detect_keywords(text: str, keywords: list[str]) -> list[str]:
lowered = text.lower()
matches = []
for keyword in keywords:
k = keyword.strip().lower()
if not k:
continue
if k in lowered:
matches.append(keyword.strip())
# Deduplicate while preserving order
seen = set()
unique_matches = []
for m in matches:
if m not in seen:
unique_matches.append(m)
seen.add(m)
return unique_matches


def send_webhook(webhook_url: str, payload: dict) -> None:
if not webhook_url:
return
data = json.dumps(payload).encode("utf-8")
req = urllib.request.Request(
webhook_url,
data=data,
headers={"Content-Type": "application/json"},
method="POST",
)
try:
with urllib.request.urlopen(req, timeout=10) as resp:
resp.read()
except urllib.error.HTTPError as e:
print(f"Webhook HTTP error: {e.code} {e.reason}", file=sys.stderr)
except urllib.error.URLError as e:
print(f"Webhook URL error: {e.reason}", file=sys.stderr)
except Exception as e:
print(f"Webhook unexpected error: {e}", file=sys.stderr)


def _excerpt(text: str, max_len: int = 400) -> str:
if not text:
return ""

# Keep original formatting
if len(text) <= max_len:
return text
return text[: max_len - 1] + "…"



def main() -> int:
event = read_event_payload()
if not event:
print("::warning::No event payload found; exiting without labeling.")
return 0

# Read issue details
title, body, number, html_url, author = get_issue_text(event)
combined_text = f"{title}\n\n{body}".strip()

# Keywords from env or defaults
keywords_env = os.environ.get("KEYWORDS", "")
default_keywords = ["azure", "openai", "bedrock", "vertexai", "vertex ai", "anthropic"]
keywords = [k.strip() for k in keywords_env.split(",")] if keywords_env else default_keywords

matches = detect_keywords(combined_text, keywords)
found = bool(matches)

# Emit outputs
github_output = os.environ.get("GITHUB_OUTPUT")
if github_output:
with open(github_output, "a", encoding="utf-8") as fh:
fh.write(f"found={'true' if found else 'false'}\n")
fh.write(f"matches={','.join(matches)}\n")

# Optional webhook notification
webhook_url = os.environ.get("PROVIDER_ISSUE_WEBHOOK_URL", "").strip()
if found and webhook_url:
repo_full = (event.get("repository") or {}).get("full_name", "")
title_part = f"*{title}*" if title else "New issue"
author_part = f" by @{author}" if author else ""
body_preview = _excerpt(body)
preview_block = f"\n{body_preview}" if body_preview else ""
payload = {
"text": (
f"New issue 🚨\n"
f"{title_part}\n\n{preview_block}\n"
f"<{html_url}|View issue>\n"
f"Author: {author}"
)
}
send_webhook(webhook_url, payload)

# Print a short log line for Actions UI
if found:
print(f"Detected provider keywords: {', '.join(matches)}")
else:
print("No provider keywords detected.")

return 0


if __name__ == "__main__":
raise SystemExit(main())


62 changes: 50 additions & 12 deletions .github/workflows/auto_update_price_and_context_window_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ def write_to_file(file_path, data):
# Print an error message if writing to file fails
print("Error updating JSON file:", e)

# Update the existing models and add the missing models
def transform_remote_data(data):
# Update the existing models and add the missing models for OpenRouter
def transform_openrouter_data(data):
transformed = {}
for row in data:
# Add the fields 'max_tokens' and 'input_cost_per_token'
Expand Down Expand Up @@ -81,6 +81,34 @@ def transform_remote_data(data):

return transformed

# Update the existing models and add the missing models for Vercel AI Gateway
def transform_vercel_ai_gateway_data(data):
transformed = {}
for row in data:
obj = {
"max_tokens": row["context_window"],
"input_cost_per_token": float(row["pricing"]["input"]),
"output_cost_per_token": float(row["pricing"]["output"]),
'max_output_tokens': row['max_tokens'],
'max_input_tokens': row["context_window"],
}

# Handle cache pricing if available
if "pricing" in row:
if "input_cache_read" in row["pricing"] and row["pricing"]["input_cache_read"] is not None:
obj['cache_read_input_token_cost'] = float(f"{float(row['pricing']['input_cache_read']):e}")

if "input_cache_write" in row["pricing"] and row["pricing"]["input_cache_write"] is not None:
obj['cache_creation_input_token_cost'] = float(f"{float(row['pricing']['input_cache_write']):e}")

mode = "embedding" if "embedding" in row["id"].lower() else "chat"

obj.update({"litellm_provider": "vercel_ai_gateway", "mode": mode})

transformed[f'vercel_ai_gateway/{row["id"]}'] = obj

return transformed


# Load local data from a specified file
def load_local_data(file_path):
Expand All @@ -100,22 +128,32 @@ def load_local_data(file_path):

def main():
local_file_path = "model_prices_and_context_window.json" # Path to the local data file
url = "https://openrouter.ai/api/v1/models" # URL to fetch remote data
openrouter_url = "https://openrouter.ai/api/v1/models" # URL to fetch OpenRouter data
vercel_ai_gateway_url = "https://ai-gateway.vercel.sh/v1/models" # URL to fetch Vercel AI Gateway data

# Load local data from file
local_data = load_local_data(local_file_path)
# Fetch remote data asynchronously
remote_data = asyncio.run(fetch_data(url))
# Transform the fetched remote data
remote_data = transform_remote_data(remote_data)

# If both local and remote data are available, synchronize and save
if local_data and remote_data:
sync_local_data_with_remote(local_data, remote_data)

# Fetch OpenRouter data
openrouter_data = asyncio.run(fetch_data(openrouter_url))
# Transform the fetched OpenRouter data
openrouter_data = transform_openrouter_data(openrouter_data)

# Fetch Vercel AI Gateway data
vercel_data = asyncio.run(fetch_data(vercel_ai_gateway_url))
# Transform the fetched Vercel AI Gateway data
vercel_data = transform_vercel_ai_gateway_data(vercel_data)

# Combine both datasets
all_remote_data = {**openrouter_data, **vercel_data}

# If both local and openrouter data are available, synchronize and save
if local_data and all_remote_data:
sync_local_data_with_remote(local_data, all_remote_data)
write_to_file(local_file_path, local_data)
else:
print("Failed to fetch model data from either local file or URL.")

# Entry point of the script
if __name__ == "__main__":
main()
main()
1 change: 1 addition & 0 deletions .github/workflows/interpret_load_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ def get_docker_run_command(release_version):


if __name__ == "__main__":
return
csv_file = "load_test_stats.csv" # Change this to the path of your CSV file
markdown_table = interpret_results(csv_file)

Expand Down
Loading
Loading