Commit graph

33485 commits

Author SHA1 Message Date
Sameer Kankute
0beada96c1 Fix code qa 2026-02-24 09:09:23 +05:30
Sameer Kankute
d599c77311 Update poetry 2026-02-24 09:04:55 +05:30
Sameer Kankute
7df02e968a add package files 2026-02-24 09:01:57 +05:30
Sameer Kankute
8714b9ee8f bump: version 0.4.46 → 0.4.47 2026-02-24 08:53:50 +05:30
yuneng-jiang
32045217a6 refactor: simplify onboarding page to use OnboardingForm component
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 18:18:42 -08:00
yuneng-jiang
1f8d23ec5b fix: set cookie path and add error feedback on claim failure 2026-02-23 18:16:38 -08:00
yuneng-jiang
2bc6dc5cad fix: sync email field value into AntD Form after credentials load 2026-02-23 18:12:17 -08:00
yuneng-jiang
884904c6d1 feat: add OnboardingForm component with variant prop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 18:08:31 -08:00
yuneng-jiang
ba0ed492c4 fix: improve type safety and defensive guard in useOnboarding hook
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 18:05:23 -08:00
yuneng-jiang
f4303f5e22 feat: add useOnboarding hook with query and mutation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 18:01:10 -08:00
yuneng-jiang
8f46a6917b
Merge pull request #21968 from BerriAI/litellm_ui_testing_coverage_00
[Infra] UI - Unit Testing Coverage: MCP Semantic Filter
2026-02-23 17:34:23 -08:00
yuneng-jiang
715e134a66 adding testing coverage + fixing flaky tests 2026-02-23 17:23:10 -08:00
yuneng-jiang
a8456a2a30
Merge pull request #21963 from BerriAI/litellm_queue_presets
[Fix] Spend Update Queue Aggregation Never Triggers with Default Presets
2026-02-23 17:21:33 -08:00
Lei Nie
eed2e4ee5f
fix(videos): pass api_key from litellm_params to video remix handlers (#21965)
video_remix_handler and async_video_remix_handler were not falling back
to litellm_params.api_key when the api_key parameter was None, causing
Authorization: Bearer None to be sent to the provider. This matches the
pattern already used by async_video_generation_handler.
2026-02-23 17:15:24 -08:00
yuneng-jiang
a749598693
Merge pull request #21859 from BerriAI/litellm_blog_dropdown
[Feature] UI - Blog Dropdown in Navbar
2026-02-23 16:22:22 -08:00
yuneng-jiang
a9c44d8530 adjust default aggregation threshold 2026-02-23 16:20:15 -08:00
yuneng-jiang
9f3fc492c2 adding tests 2026-02-23 16:02:36 -08:00
yuneng-jiang
09cc3b8bbc ui changes 2026-02-23 15:54:07 -08:00
ryan-crabbe
3faf5e5912
Merge pull request #21961 from BerriAI/litellm_revert_duplicate_workflows
Revert duplicate issue checker to text-based matching
2026-02-23 15:30:02 -08:00
Ryan Crabbe
079ff24d78 Revert duplicate issue checker to text-based matching, remove duplicate PR workflow
Remove the Claude Code-powered duplicate PR detection workflow and revert
the duplicate issue checker back to wow-actions/potential-duplicates with
text similarity matching.
2026-02-23 15:28:13 -08:00
yuneng-jiang
54b7e1af99 adjust blog post path 2026-02-23 15:12:05 -08:00
yuneng-jiang
08f4a27e32 Merge remote-tracking branch 'origin' into litellm_blog_dropdown 2026-02-23 15:02:07 -08:00
yuneng-jiang
94425dff1e fixing path 2026-02-23 15:01:49 -08:00
Lei Nie
4ff2cfd8d6
feat(videos): add variant parameter to video content download (#21955)
openai videos models support the features to download variants.
See more details here: https://developers.openai.com/api/docs/guides/video-generation#use-image-references.
Plumb variant (e.g. "thumbnail", "spritesheet") through the full
video content download chain: avideo_content → video_content →
video_content_handler → transform_video_content_request. OpenAI
appends ?variant=<value> to the GET URL; other providers accept
the parameter in their signature but ignore it.
2026-02-23 14:45:19 -08:00
yuneng-jiang
1ecfbad46e adjust blog posts to fetch from github first 2026-02-23 14:45:05 -08:00
ryan-crabbe
0ca9869b99
Merge pull request #21950 from ryan-crabbe/docs/v1-81-14-perf-section
docs: add performance & reliability section to v1.81.14 release notes
2026-02-23 13:13:21 -08:00
Julio Quinteros Pro
6574d8d395
Merge pull request #21937 from jquinter/fix/flaky-rpm-limit-test
fix(tests): make RPM limit test sequential to fix race condition
2026-02-23 17:27:58 -03:00
Arindam Majumder
71b4bd12a7
Add OpenAI Agents SDK tutorial with LiteLLM Proxy to docs (#21221)
* Add OpenAI Agents SDK tutorial to docs

* Update OpenAI Agents SDK tutorial to use LiteLLM environment variables

* Enhance OpenAI Agents SDK tutorial with built-in LiteLLM extension details and updated configuration steps. Adjust section headings for clarity and improve the flow of information regarding model setup and usage.
2026-02-23 12:10:01 -08:00
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
Ryan Crabbe
67ceade162 docs: add performance & reliability section to v1.81.14 release notes 2026-02-23 11:23:29 -08:00
Harshit28j
af9ad68a43 fix: presidio streaming, false positives 2026-02-24 00:42:29 +05:30
Krish Dholakia
4dfec4661b
Guardrail Monitor - measure guardrail reliability in prod (#21944)
* fix: fix log viewer for guardrail monitoring

* feat(ui/): fix rendering logs per guardrail

* fix: fix viewing logs on overview tab of guardrail

* fix: log viewer

* fix: fix naming to align with metric
2026-02-23 10:23:14 -08:00
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
Ryan Crabbe
e0ddb2a525 fix: guard print_aggregate against empty latencies 2026-02-23 10:06:10 -08:00
Ryan Crabbe
fb123ec52b refactor: use method-level import for MockOpenAITransport 2026-02-23 09:58:46 -08:00
Ryan Crabbe
95d9514054 fix: add auth headers and empty latencies guard to benchmark script 2026-02-23 09:58:40 -08:00
yuneng-jiang
bba98c2f15
Merge pull request #21886 from Chesars/docs/ui-contributing-pre-pr-checklist
docs(ui): add pre-PR checklist to UI contributing guide
2026-02-23 09:50:26 -08:00
Ryan Crabbe
8244ad1f0e docs: tweak benchmarks wording 2026-02-23 09:50:02 -08:00
Ryan Crabbe
5b41b009f6 docs: add network mock benchmarking section 2026-02-23 09:44:02 -08:00
Cesar Garcia
64d1de0552
docs: add Google GenAI SDK tutorial (JS & Python) (#21885)
* docs: add Google GenAI SDK tutorial for JS and Python

Add tutorial for using Google's official GenAI SDK (@google/genai for JS,
google-genai for Python) with LiteLLM proxy. Covers pass-through and
native router endpoints, streaming, multi-turn chat, and multi-provider
routing via model_group_alias. Also updates pass-through docs to use the
new SDK replacing the deprecated @google/generative-ai.

* fix(docs): correct Python SDK env var name in GenAI tutorial

GOOGLE_GENAI_API_KEY does not exist in the google-genai SDK.
The correct env var is GEMINI_API_KEY (or GOOGLE_API_KEY).
Also note that the Python SDK has no base URL env var.

* fix(docs): replace non-existent GOOGLE_GENAI_BASE_URL env var in interactions.md

The Python google-genai SDK does not read GOOGLE_GENAI_BASE_URL.
Use http_options={"base_url": "..."} in code instead.
2026-02-23 09:20:46 -08:00
Ryan Crabbe
d99d87f614 clean up mock transport: remove streaming, add defensive parsing 2026-02-23 09:16:47 -08:00
Julio Quinteros Pro
17d97f26f6
Merge pull request #21939 from jquinter/fix/model-prices-test-relative-path
fix(tests): use absolute path for model_prices JSON validation test
2026-02-23 14:10:47 -03: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
ac6f2f3c52
Merge pull request #21938 from jquinter/fix/flaky-prisma-self-heal-test
fix(tests): fix StopIteration in prisma self-heal cooldown test
2026-02-23 13:29:03 -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