Ron Zhong
73fd5a41e4
feat: Singapore guardrail policies (PDPA + MAS AI Risk Management) ( #21948 )
...
* feat: Singapore PDPA PII protection guardrail policy template
Add Singapore Personal Data Protection Act (PDPA) guardrail support:
Regex patterns (patterns.json):
- sg_nric: NRIC/FIN detection ([STFGM] + 7 digits + checksum letter)
- sg_phone: Singapore phone numbers (+65/0065/65 prefix)
- sg_postal_code: 6-digit postal codes (contextual)
- passport_singapore: Passport numbers (E/K + 7 digits, contextual)
- sg_uen: Unique Entity Numbers (3 formats)
- sg_bank_account: Bank account numbers (dash format, contextual)
YAML policy templates (5 sub-guardrails):
- sg_pdpa_personal_identifiers: s.13 Consent
- sg_pdpa_sensitive_data: Advisory Guidelines
- sg_pdpa_do_not_call: Part IX DNC Registry
- sg_pdpa_data_transfer: s.26 overseas transfers
- sg_pdpa_profiling_automated_decisions: Model AI Governance Framework
Policy template entry in policy_templates.json with 9 guardrail definitions
(4 regex-based + 5 YAML conditional keyword matching).
Tests:
- test_sg_patterns.py: regex pattern unit tests
- test_sg_pdpa_guardrails.py: conditional keyword matching tests (100+ cases)
* feat: MAS AI Risk Management Guidelines guardrail policy template
Add Monetary Authority of Singapore (MAS) AI Risk Management Guidelines
guardrail support for financial institutions:
YAML policy templates (5 sub-guardrails):
- sg_mas_fairness_bias: Blocks discriminatory financial AI (credit/loans/insurance by protected attributes)
- sg_mas_transparency_explainability: Blocks opaque/unexplainable AI for consequential financial decisions
- sg_mas_human_oversight: Blocks fully automated financial decisions without human-in-the-loop
- sg_mas_data_governance: Blocks unauthorized sharing/mishandling of financial customer data
- sg_mas_model_security: Blocks adversarial attacks, model poisoning, inversion on financial AI
Policy template entry in policy_templates.json with 5 guardrail definitions.
Aligned with MAS FEAT Principles, Project MindForge, and NIST AI RMF.
Tests:
- test_sg_mas_ai_guardrails.py: conditional keyword matching tests (100+ cases)
* fix: address SG pattern review feedback
- Update NRIC lowercase test for IGNORECASE runtime behavior
- Add keyword context guard to sg_uen pattern to reduce false positives
* docs: clarify MAS AIRM timeline references
- Explicitly mark MAS AIRM as Nov 2025 consultation draft
- Add 2018 qualifier for FEAT principles in MAS policy descriptions
- Update MAS guardrail wording to avoid release-year ambiguity
* chore: commit resolved MAS policy conflicts
* test:
* chore:
2026-02-23 12:08:22 -08:00
Julio Quinteros Pro
bb63de2f82
fix(tests): make RPM limit test sequential to avoid race condition
...
Concurrent requests via run_in_executor + asyncio.gather caused a race
condition where more requests slipped through the rate limiter than
expected, leading to flaky test failures (e.g. 3 successes instead of 2
with rpm_limit=2).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 16:34:52 -03:00
Julio Quinteros Pro
36813199b6
Merge pull request #21943 from jquinter/fix/interactions-incomplete-status
...
fix(tests): add INCOMPLETE to interactions status enum expected values
2026-02-23 16:31:41 -03:00
Harshit28j
af9ad68a43
fix: presidio streaming, false positives
2026-02-24 00:42:29 +05:30
Julio Quinteros Pro
f94d0fe0b6
fix: add INCOMPLETE status to Interactions API enum and test
...
Google added INCOMPLETE to the Interactions API OpenAPI spec status enum.
Update both the Status3 enum in the SDK types and the test's expected
values to match.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 15:07:41 -03:00
ryan-crabbe
c4c48fe977
Merge pull request #21942 from BerriAI/litellm_network_mock
...
feat: Litellm network mock
2026-02-23 10:07:11 -08:00
Kesku
e468d108a6
format
2026-02-23 18:05:07 +00:00
Kesku
5899e909fd
feat(perplexity): update Responses API integration to match Agent API
...
- Rename "Agentic Research API" to "Agent API"
Expand
- supported Responses API parameters
- Fix function
tool handling to pass custom function tools through unchanged instead of heuristically mapping them.
-Update model registry with current Perplexity
models and presets
- Add Function Calling and Structured Outputs documentation sections.
- Unit tests for transformation logic.
2026-02-23 18:05:03 +00:00
Ryan Crabbe
d99d87f614
clean up mock transport: remove streaming, add defensive parsing
2026-02-23 09:16:47 -08:00
Henrique Cavarsan
7ae157198b
fix(proxy): recover from prisma-query-engine zombie process ( #21899 )
...
* fix(proxy): recover from prisma-query-engine zombie process
* fix(proxy): remove unused imports and extract helper to fix PLR0915 in utils.py
2026-02-23 08:57:01 -08:00
Julio Quinteros Pro
bf8c219860
fix(tests): use os.path instead of Path to avoid NameError
...
Path is not imported at module level. Use os.path.join which is already
available.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 13:56:11 -03:00
Julio Quinteros Pro
a74b6eee23
Update tests/test_litellm/test_utils.py
...
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-23 13:55:49 -03:00
Julio Quinteros Pro
11a774e110
fix(tests): use absolute path for model_prices JSON in validation test
...
The test used a relative path 'litellm/model_prices_and_context_window.json'
which only works when pytest runs from a specific working directory.
Use os.path based on __file__ to resolve the path reliably.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 13:55:49 -03:00
Julio Quinteros Pro
fb8b11cc0a
fix(tests): use counter-based mock for time.time in prisma self-heal test
...
The test used a fixed side_effect list for time.time(), but the number
of calls varies by Python version, causing StopIteration on 3.12 and
AssertionError on 3.14. Replace with an infinite counter-based callable
and assert the timestamp was updated rather than checking for an exact
value.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 13:25:02 -03:00
Harshit Jain
c6f60bed71
perf(spendlogs): optimize old spendlog deletion cron job
2026-02-23 19:44:30 +05:30
Sameer Kankute
f97ee62fb0
Merge pull request #21909 from BerriAI/litellm_cost_tracking_gemini
...
Add Priority PayGo cost tracking gemini/vertex ai
2026-02-23 18:58:57 +05:30
Sameer Kankute
61e63b6553
Merge pull request #21904 from BerriAI/litellm_fix_model_cost_map
...
fix model cost map for anthropic fast and inference_geo
2026-02-23 18:57:15 +05:30
Sameer Kankute
2f8d36be1b
Fix test_aaamodel_prices_and_context_window_json_is_valid
2026-02-23 18:56:12 +05:30
Sameer Kankute
9b5bbee906
Merge pull request #21786 from BerriAI/litellm_oss_staging_02_21_2026
...
Litellm oss staging 02 21 2026
2026-02-23 18:51:55 +05:30
Sameer Kankute
8decf04d8a
Merge pull request #21877 from BerriAI/litellm_oss_staging_02_22_2026
...
Litellm oss staging 02 22 2026
2026-02-23 18:50:47 +05:30
Sameer Kankute
37d45139f2
Merge pull request #21917 from BerriAI/litellm_fix_model_cost_map_wildcard
...
Fix: Anthropic model wildcard access issue
2026-02-23 18:45:49 +05:30
TomAlon
99184c48d9
Add Noma guardrails v2 based on custom guardrails ( #21400 )
2026-02-23 05:05:27 -08:00
Sameer Kankute
c7aafdf794
Merge pull request #21926 from BerriAI/main
...
merge main in oss 21 02
2026-02-23 18:17:30 +05:30
Sameer Kankute
57af8e6a93
Merge pull request #21924 from BerriAI/main
...
merge main in oss 22 02
2026-02-23 18:11:36 +05:30
Sameer Kankute
4ff1651699
Fix: Anthropic model wildcard access issue
2026-02-23 17:12:55 +05:30
Harshit Jain
9fc3c77c42
fix: ensure arrival_time is set before calculating queue time
2026-02-23 17:04:47 +05:30
Sameer Kankute
3561bfb96c
Merge pull request #21640 from ta-stripe/feat/regional-sts-endpoint-for-auth_with_role_name
...
feat(bedrock): support optional regional STS endpoint in role assumption
2026-02-23 13:28:54 +05:30
Sameer Kankute
55ee8cdd56
Merge pull request #21701 from ta-stripe/fix/bedrock-openai-imported-model-name-encoding
...
fix(bedrock): encode model arns for OpenAI compatible bedrock imported models
2026-02-23 13:25:02 +05:30
Sameer Kankute
f54fb9aeb1
Add tests for fast and us
2026-02-23 11:25:47 +05:30
Sameer Kankute
22bccc4f61
Fix entries with fast and us/
2026-02-23 11:23:24 +05:30
Harshit Jain
304862175e
Merge branch 'main' into litellm_fix_langfuse_otel_trace_v2
2026-02-22 19:54:05 +05:30
Harshit28j
1cc185eb16
fix: update opentelemetry with greptile review
2026-02-22 19:53:18 +05:30
Krish Dholakia
76ccc9e844
Guardrail Policy Versioning ( #21862 )
...
* feat: initial commit, adding support for policy versioning on litellm
* fix(policy_registry): support policy versioning
* fix: multiple QA fixes for policy flow builder with guardrail versioning on litellm
* feat: ui improvements
* feat: add prisma migration
* fix: address greptile fixes
2026-02-21 20:14:31 -08:00
Krish Dholakia
52585eb2d7
Revert "fix(vertex_ai): enable context-1m-2025-08-07 beta header ( #21870 )" ( #21876 )
...
This reverts commit bce078a796 .
2026-02-21 20:12:01 -08:00
Edwin Isac
bce078a796
fix(vertex_ai): enable context-1m-2025-08-07 beta header ( #21870 )
...
* server root path regression doc
* fixing syntax
* fix: replace Zapier webhook with Google Form for survey submission (#21621 )
* Replace Zapier webhook with Google Form for survey submission
* Add back error logging for survey submission debugging
---------
Co-authored-by: Ishaan Jaff <ishaanjaffer0324@gmail.com>
* Revert "Merge pull request #21140 from BerriAI/litellm_perf_user_api_key_auth"
This reverts commit 0e1db3f7e4 , reversing
changes made to 7e2d6f2355 .
* test_vertex_ai_gemini_2_5_pro_streaming
* UI new build
* fix rendering
* ui new build
* docs fix
* docs fix
* docs fix
* docs fix
* docs fix
* docs fix
* docs fix
* docs fix
* release note docs
* docs
* adding image
* fix(vertex_ai): enable context-1m-2025-08-07 beta header
The `context-1m-2025-08-07` Anthropic beta header was set to `null` for vertex_ai,
causing it to be filtered out when users set `extra_headers: {anthropic-beta: context-1m-2025-08-07}`.
This prevented using Claude's 1M context window feature via Vertex AI, resulting in
`prompt is too long: 460500 tokens > 200000 maximum` errors.
Fixes #21861
---------
Co-authored-by: yuneng-jiang <yuneng.jiang@gmail.com>
Co-authored-by: milan-berri <milan@berri.ai>
Co-authored-by: Ishaan Jaff <ishaanjaffer0324@gmail.com>
2026-02-21 20:11:13 -08:00
LeeJuOh
50f36d9ca6
fix(budget): fix timezone config lookup and replace hardcoded timezone map with ZoneInfo ( #21754 )
...
* fix(budget): fix timezone config lookup and replace hardcoded timezone map with ZoneInfo
* fix(budget): update stale docstring on get_budget_reset_time
2026-02-21 19:35:06 -08:00
Ryan Crabbe
94b76ea9ad
feat: add network_mock transport for benchmarking proxy overhead without real API calls
...
Intercepts at httpx transport layer so the full proxy path (auth, routing,
OpenAI SDK, response transformation) is exercised with zero-latency responses.
Activated via `litellm_settings: { network_mock: true }` in proxy config.
2026-02-21 17:52:39 -08:00
yuneng-jiang
ca9111ea31
feat: add disable_show_blog to UISettings
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 17:34:08 -08:00
yuneng-jiang
4b1ce1ff54
fix: log fallback warning in blog posts endpoint and tighten test
2026-02-21 17:34:08 -08:00
yuneng-jiang
021a9097c4
feat: add GET /public/litellm_blog_posts endpoint
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 17:34:08 -08:00
yuneng-jiang
7e5c63c134
test: add cache reset fixture and LITELLM_LOCAL_BLOG_POSTS test
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 17:34:08 -08:00
yuneng-jiang
be1a543b55
feat: add GetBlogPosts utility with GitHub fetch and local fallback
...
Adds GetBlogPosts class that fetches blog posts from GitHub with a 1-hour
in-process TTL cache, validates the response, and falls back to the bundled
blog_posts_backup.json on any network or validation failure.
2026-02-21 17:34:08 -08:00
Ishaan Jaffer
52294029a0
test_vertex_ai_gemini_2_5_pro_streaming
2026-02-21 16:59:22 -08:00
Ishaan Jaffer
2270a3aaf3
Revert "Merge pull request #21140 from BerriAI/litellm_perf_user_api_key_auth"
...
This reverts commit 0e1db3f7e4 , reversing
changes made to 7e2d6f2355 .
2026-02-21 16:57:42 -08:00
Ryan Crabbe
643c9b6c04
Merge remote-tracking branch 'origin/main' into litellm_perf_user_api_key_auth
2026-02-21 16:03:31 -08:00
Ishaan Jaffer
d31d5b8486
fix failing tests
2026-02-21 15:48:26 -08:00
Ishaan Jaffer
26ea29afd3
test_get_usage_as_dict
2026-02-21 15:39:06 -08:00
Krish Dholakia
1f7eeb274c
Agent Builder - improve rejected response detection based on agent response ( #21850 )
...
* fix: feat: add litellm_system_prompt support
* feat: support new 'litellm_agent' model provider
* feat: ui/ - new agent builder ui
* fix(anthropic/chat/transformation.py): normalize max_tokens if decimal
* feat(agentbuilderview.tsx): run compliance datasets against litellm agent
* feat: new response rejection detector
* fix: multiple fixes
* feat: add mcp tools support to agent builder
create an agent with access to llm's + mcp servers
2026-02-21 15:34:42 -08:00
Krish Dholakia
9fc6fd647c
Agent Builder - support new experimental agent builder, to ensure agents pass compliance checks ( #21817 )
...
* fix: feat: add litellm_system_prompt support
* feat: support new 'litellm_agent' model provider
* feat: ui/ - new agent builder ui
* fix(anthropic/chat/transformation.py): normalize max_tokens if decimal
* feat(agentbuilderview.tsx): run compliance datasets against litellm agent
2026-02-21 15:32:47 -08:00
Ishaan Jaff
bab4127cae
fix(tests): fix flaky test_use_prisma_db_push_flag_behavior ( #21849 )
...
Replace Click CliRunner with standalone_mode=False to avoid
"I/O operation on closed file" errors caused by Click's stream
isolation in CI environments.
2026-02-21 15:23:55 -08:00