litellm/tests/guardrails_tests
Steve G 9806e21871
Add Lakera v2 post-call hook and tests (fixed PII masking) (#21783)
* Add post-call hook for Lakera guardrail and mask PII in responses

* Add post-call hook for Lakera and mask PII in responses

* Fix post-call hook: pass event_type to call_v2_guard

* Address Greptile review: return ModelResponse, fix mutation, add header, test location, mask order

- PII masking path: return ModelResponse instead of dict so deployment hook accepts it
- Avoid mutating request data: deep copy original_messages and messages in _mask_pii_in_messages
- Add guardrail header in PII-only return path
- Add test in tests/test_litellm/ (test_lakera_ai_v2.py) per PR checklist
- Sort PII payload spans by (start,end) descending so multiple spans in one message mask correctly

Co-authored-by: Cursor <cursoragent@cursor.com>

* Updated ponteital for index mismatch when choices have null content and inconsistent on_flagged access pattern

* Update litellm/proxy/guardrails/guardrail_hooks/lakera_ai_v2.py

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

* Update to explicitly state supported endpoints - chat completions

* Fix minor lint error on masked_entity_count

---------

Co-authored-by: Steve <steve.giguere@lakera.ai>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-25 17:20:38 -08:00
..
conftest.py [Feat] Guardrails - add logging for important status fields (#15090) 2025-09-30 18:38:07 -07:00
test_bedrock_guardrails.py fix: test_convert_to_bedrock_format_post_call_streaming_hook 2026-01-20 18:27:36 +05:30
test_custom_guardrail.py [Feat] Presidio Improvements - Allow adding presidio api base on UI, Test presidio on Test Key, fixes for running presidio hook (#10840) 2025-05-14 17:41:33 -07:00
test_dynamoai_guardrails.py [Fix] CI/CD #1 - mypy | check_code_and_doc_quality | guardrails_testing (#18195) 2025-12-18 06:31:01 -08:00
test_eu_ai_act_article5.py feat: EU AI Act Article 5 policy template for prohibited practices detection (#21342) 2026-02-16 15:33:07 -08:00
test_eu_ai_act_french_3_scenarios.py Add French language support for EU AI Act Article 5 guardrail (#21427) 2026-02-17 16:07:54 -08:00
test_guardrail_load_balancing.py [Feat] Guardrails Load Balancing - Allow Platform admins to load balance between guardrails (#18181) 2025-12-19 00:08:03 +05:30
test_guardrails_config.py fix: use fastuuid helper (#14903) 2025-09-25 15:47:01 -07:00
test_javelin_guardrails.py fix: reject status code and tests. 2025-09-28 16:56:28 +05:30
test_lakera_v2.py Add Lakera v2 post-call hook and tests (fixed PII masking) (#21783) 2026-02-25 17:20:38 -08:00
test_lasso_guardrails.py [Feat] New Guardrail - Dynamo AI Guardrail (#15920) 2025-10-24 17:11:04 -07:00
test_presidio_pii.py Fix Presidio guardrail test TypeError and license base64 decoding error (#17538) 2025-12-05 08:45:02 -08:00
test_semantic_guard.py feat: prompt injection guardrail policy template (#21520) 2026-02-19 15:06:06 -08:00
test_sg_mas_ai_guardrails.py feat: Singapore guardrail policies (PDPA + MAS AI Risk Management) (#21948) 2026-02-23 12:08:22 -08:00
test_sg_pdpa_guardrails.py feat: Singapore guardrail policies (PDPA + MAS AI Risk Management) (#21948) 2026-02-23 12:08:22 -08:00
test_tracing_guardrails.py fix: test_standard_logging_payload_includes_guardrail_information 2026-01-20 18:21:32 +05:30
test_zscaler_ai_guard.py fix(guardrails): Zscaler AI Guard bug fixes and support during post-call (#20801) 2026-02-13 11:28:14 -08:00