litellm/ui/litellm-dashboard
Ishaan Jaff 965ca117bc
feat(realtime guardrails): end_session_after_n_fails + Endpoint Settings wizard step (#22165)
* feat(realtime guardrails): end_session_after_n_fails + Endpoint Settings wizard step

Adds per-session violation thresholds and an optional endpoint-settings step
to the guardrail wizard for /v1/realtime.

Backend:
- Add end_session_after_n_fails, on_violation, realtime_violation_message fields
  to BaseLitellmParams (no DB migration — stored in existing JSON column)
- Store same fields on CustomGuardrail instance attrs
- Pass through in litellm_content_filter initializer
- Track _violation_count per RealTimeStreaming session; close backend_ws when
  on_violation=end_session OR violation count >= end_session_after_n_fails
- Use realtime_violation_message as the spoken text (falls back to guardrail
  error string if not configured)

UI (add_guardrail_form.tsx):
- Rename "Default Categories" step to "Topics"
- Add step 5 "Endpoint Settings (Optional)" for content filter guardrails
- Call type dropdown shows /v1/realtime
- Settings are in a collapsed accordion (closed by default)
- "End session after X violations" + on_violation radio + spoken message field

Tests: 2 new tests in test_realtime_streaming.py
- test_end_session_after_n_fails_closes_connection
- test_on_violation_end_session_closes_on_first_fail

* fix(test): move inline imports to module level in realtime streaming tests

* Update ui/litellm-dashboard/src/components/guardrails/add_guardrail_form.tsx

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-25 23:49:03 -08:00
..
e2e_tests injecting localstorage values to hide usageIndicator, prompts, and new badges 2026-02-14 15:49:27 -08:00
public feat(ui): added UI for Zscaler AI Guard (#21077) 2026-02-12 20:27:44 -08:00
scripts feat: add insults content filter + topic blocking compliance UI (#21729) 2026-02-20 19:10:31 -08:00
src feat(realtime guardrails): end_session_after_n_fails + Endpoint Settings wizard step (#22165) 2026-02-25 23:49:03 -08:00
tests
.env.development
.env.production
.eslintrc.json
.prettierignore
.prettierrc
.trivyignore
build_release_ui.sh
build_ui_custom_path.sh
build_ui.sh
knip.json add knip as a dev dependency, remove some unused files 2026-02-07 15:51:21 -08:00
next.config.mjs react 19 2026-01-31 18:33:03 -08:00
package-lock.json Development environment setup (#22160) 2026-02-25 23:20:03 -08:00
package.json security: fix critical/high CVEs in OS-level libs and NPM transitive 2026-02-24 19:40:09 +05:30
postcss.config.js
README.md
tailwind.config.js
tailwind.config.ts
tsconfig.json feat(ui): add user filtering to usage page (#22059) 2026-02-25 10:37:45 -08:00
tsconfig.tsbuildinfo [Feat] UI - Add Pretty print view of request/response (#20096) 2026-01-30 18:56:34 -08:00
ui_colors.json
vitest.config.ts Fixing tests 2026-01-22 15:01:06 -08:00

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Inter, a custom Google Font.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.