Commit graph

33296 commits

Author SHA1 Message Date
Yuneng Jiang
69aebb2967
chore: fixes
Some checks failed
Unit Tests: Caching (Redis) / caching-redis (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-db (auth-checks, tests/proxy_unit_tests/test_auth_checks.py tests/proxy_unit_tests/test_user_api_key_auth.py, 20, 8) (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-db (key-generation, tests/proxy_unit_tests/test_key_generate_prisma.py, 30, 0) (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-db (remaining, tests/proxy_unit_tests --ignore=tests/proxy_unit_tests/test_key_generate_prisma.py --ignore=tests/proxy_unit_tests/test_auth_checks.py --ignore=tests/proxy_unit_tests/test_user_api_key_auth.py, 20, 8) (push) Has been cancelled
Unit Tests: Security / security (push) Has been cancelled
2026-04-05 00:22:10 -07:00
Krish Dholakia
ea8623e7d8
feat: implement guardrails usage dashboard backend (#21614)
* feat: implement guardrails usage dashboard backend

Add backend infrastructure for guardrails performance monitoring dashboard:

Database Schema:
- Add LiteLLM_DailyGuardrailMetrics table for daily aggregated metrics
- Track total_requests, success/intervened/failed/not_run counts per guardrail
- Store aggregated latency metrics in milliseconds
- Unique constraint on [guardrail_name, provider, mode, date, api_key]

Data Collection & Aggregation:
- Add DailyGuardrailMetricsTransaction type for queue transactions
- Implement guardrail metrics extraction from spend log metadata
- Add batch upsert logic with retry handling (60s commit interval)
- Process each guardrail separately with status-based counting

API Endpoints:
- GET /guardrail/metrics - List all guardrails with aggregated metrics
- GET /guardrail/{name}/metrics - Detail view with daily time-series
- GET /guardrail/{name}/logs - Request logs with status filtering

Type Definitions:
- Add Pydantic models for API request/response validation
- GuardrailSummary, GuardrailDetailMetrics, GuardrailLogsResponse

Key Features:
- Fail rate = (intervened_count / total_requests) * 100
- Avg latency measures guardrail execution overhead only
- Reuses LiteLLM_SpendLogs for per-request drill-down
- Follows existing daily spend tracking patterns

Testing Required:
- Run: poetry run prisma migrate dev --name add_guardrail_metrics
- Frontend implementation pending (Phase 5)
- See IMPLEMENTATION_STATUS.md for details

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: implement guardrails usage dashboard frontend

Add complete frontend UI for guardrails performance monitoring:

Components:
- GuardrailsTableView: List view with sortable metrics table
- GuardrailDetailView: Detail page with metric cards and tabs
- GuardrailLogsTab: Request logs with expandable details
- Types and mock data for development/testing

Pages:
- /guardrails/metrics: Main metrics dashboard page
- /guardrails/metrics/[name]: Individual guardrail detail page

Features:
- Date range picker for filtering metrics
- Color-coded fail rates (red >10%, yellow >5%)
- Clickable table rows for drill-down
- Expandable log entries with full guardrail response
- Status filter (All, Blocked, Passed)
- Area chart for fail rate trends
- Daily metrics table in detail view

Mock Data:
- USE_MOCK_DATA flag enabled for development
- Sample data for 5 guardrails with realistic metrics
- Toggle flag to false to use real API endpoints

Next Steps:
- Run Prisma migration to create database table
- Set USE_MOCK_DATA=false to connect to backend
- Test with real guardrail traffic

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add frontend completion summary

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 18:49:41 -08:00
yuneng-jiang
d6bd917421
Merge pull request #21863 from BerriAI/litellm_yj_docs_feb21_release
[Docs] store_model_in_db Release Docs
2026-02-21 18:12:20 -08:00
yuneng-jiang
5bb52d0202 adding image 2026-02-21 18:09:18 -08:00
yuneng-jiang
ea37f59de4 Merge remote-tracking branch 'origin' into litellm_yj_docs_feb21_release 2026-02-21 18:05:11 -08:00
Ishaan Jaffer
84b572d719 docs 2026-02-21 18:00:38 -08:00
yuneng-jiang
cb4b638958 Merge branch 'doc_yj_feb21' of github.com:BerriAI/litellm into litellm_yj_docs_feb21 2026-02-21 17:58:44 -08:00
yuneng-jiang
5e26891da2 release note docs 2026-02-21 17:58:36 -08:00
Ishaan Jaffer
19f7e881f3 docs fix 2026-02-21 17:53:51 -08:00
Ishaan Jaffer
356eb5a413 docs fix 2026-02-21 17:51:45 -08:00
Ishaan Jaffer
522954fe0d docs fix 2026-02-21 17:47:44 -08:00
Ishaan Jaffer
45bef9ade8 docs fix 2026-02-21 17:46:01 -08:00
Ishaan Jaffer
5e71f6128b docs fix 2026-02-21 17:40:39 -08:00
Ishaan Jaffer
e157f5a8f2 docs fix 2026-02-21 17:35:16 -08:00
Ishaan Jaffer
661c6faac6 docs fix 2026-02-21 17:28:04 -08:00
Ishaan Jaffer
efebd37183 docs fix 2026-02-21 17:28:04 -08:00
yuneng-jiang
6228148963
Merge pull request #21857 from BerriAI/litellm_yj_docs_feb21
[Doc] Server Root Path Regression Incident Doc#21853
2026-02-21 17:26:43 -08:00
yuneng-jiang
386a8fbd5b
Merge branch 'main' into litellm_yj_docs_feb21 2026-02-21 17:21:35 -08:00
Ishaan Jaffer
7e567a5352 ui new build 2026-02-21 17:16:10 -08:00
Ishaan Jaffer
67a64266ef fix rendering 2026-02-21 17:15:18 -08:00
yuneng-jiang
823bb023df
Merge branch 'main' into litellm_yj_docs_feb21 2026-02-21 17:12:28 -08:00
Ishaan Jaffer
44f69038de UI new build 2026-02-21 17:00:45 -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
milan-berri
5390469c1b
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>
2026-02-21 16:55:59 -08:00
Ishaan Jaffer
ab032c292c docs fix 2026-02-21 16:36:22 -08:00
yuneng-jiang
a3238a4563
Merge branch 'main' into doc_yj_feb21 2026-02-21 16:35:28 -08:00
ryan-crabbe
0e1db3f7e4
Merge pull request #21140 from BerriAI/litellm_perf_user_api_key_auth
perf: optimize user_api_key_auth
2026-02-21 16:23:54 -08:00
yuneng-jiang
79a55ff164
Merge branch 'main' into doc_yj_feb21 2026-02-21 16:06:15 -08:00
ryan-crabbe
ce22524ac5
Merge branch 'main' into litellm_perf_user_api_key_auth 2026-02-21 16:05:33 -08:00
yuneng-jiang
241141d70b Merge branch 'doc_yj_feb21' of github.com:BerriAI/litellm into doc_yj_feb21 2026-02-21 16:05:27 -08:00
yuneng-jiang
aefc7c14f6 Merge remote-tracking branch 'origin' into doc_yj_feb21 2026-02-21 16:05:07 -08:00
Ishaan Jaffer
7e2d6f2355 ui fix 2026-02-21 16:05:03 -08:00
yuneng-jiang
70fd2aa219 fixing syntax 2026-02-21 16:04: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
yuneng-jiang
2e8d942d17
Merge branch 'main' into doc_yj_feb21 2026-02-21 16:00:46 -08:00
yuneng-jiang
153bf1d856 server root path regression doc 2026-02-21 15:57:06 -08:00
Ishaan Jaffer
d31d5b8486 fix failing tests 2026-02-21 15:48:26 -08:00
Ishaan Jaffer
775fb79260 fix 2026-02-21 15:45:03 -08:00
Ishaan Jaffer
26ea29afd3 test_get_usage_as_dict 2026-02-21 15:39:06 -08:00
Ishaan Jaffer
a58232ac5b fix prisma 2026-02-21 15:35:50 -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 Jaffer
2acc93e451 BUMP 2026-02-21 15:28:18 -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
Ishaan Jaff
f74a1c94df
test(router): add coverage tests for _is_complexity_router_deployment and init_complexity_router_deployment (#21848) 2026-02-21 15:21:10 -08:00
Ishaan Jaff
6dc9823926
docs(release-notes): update v1.81.14 - split guardrail sections, add eval results, fix key highlights and section placement (#21847) 2026-02-21 15:18:46 -08:00
Ryan Crabbe
c7ad8053b1 Merge origin/main into litellm_perf_user_api_key_auth
Resolve conflicts:
- pass_through_endpoints.py: take main's version, re-apply
  MAPPED_PASS_THROUGH_PREFIXES startswith(tuple) optimization
- test_user_api_key_auth.py: keep both auth optimization regression
  tests and JWT admin identity field tests
2026-02-21 15:14:20 -08:00
Ishaan Jaff
eac3ae8121
docs: update v1.81.14 release notes - guardrail model garden, complexity router placement (#21843)
* docs(release-notes): update v1.81.14 key highlights and section placement

* docs(release-notes): rewrite key highlights and add guardrail narrative section

* docs(release-notes): rewrite guardrail narrative to match release notes style

* docs(release-notes): add guardrail eval results section
2026-02-21 15:10:21 -08:00
Ishaan Jaff
9f459c5c57
fix(logging): preserve pass-through endpoint response_cost (#21844)
* fix(logging): preserve pass-through endpoint response_cost in async_success_handler

Two places in the logging pipeline were overwriting response_cost that
pass-through handlers (Gemini/Vertex) had already calculated:

1. _process_hidden_params_and_response_cost fell through to
   _response_cost_calculator which returns None for pass-through calls
2. async_success_handler pass-through branch unconditionally set
   response_cost = None (introduced in PR #19887)

Now both places check if response_cost is already set before overwriting.

* test: add regression test for pass-through endpoint response_cost preservation
2026-02-21 15:09:45 -08:00