fix(guardrails): support array-type content in Presidio pre-call hook #15894
+83
−11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Title
fix(guardrails): support array-type content in Presidio pre-call hook
Description
Previously, the
async_pre_call_hookin Presidio PII masking only handled messages with content as strings, and ignored messages where content was structured as a list of text blocks.This caused PII in messages like the following to go unmasked:
Only messages with a simple string like this were being processed correctly:
This PR adds proper handling for list-type content, ensuring PII detection and anonymization works consistently for both string and list message formats.
Pre-Submission checklist
[tests/litellm/](https://github.com/BerriAI/litellm/tree/main/tests/litellm)directory[make test-unit](https://docs.litellm.ai/docs/extras/contributing_code)Type
🐛 Bug Fix
Changes
Updated
async_pre_call_hookin_OPTIONAL_PresidioPIIMaskingto handle messages wherecontentcan be a list of text blocks instead of just a string.Introduced minimal
targetstracking to ensure PII-masked text is written back to the correct location.Added new unit tests covering:
No changes to existing behavior for string-only messages.