#31959 [Bug]: Presidio output_parse_pii gives the same entity different numbered tokens across messages in one request, corrupting unmasking
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
With `output_parse_pii: true` and a `/chat/completions` request that has more than one message, the Presidio guardrail numbers PII placeholders per message instead of per request. The sequence counter restarts at 1 for every message, so the same entity value gets a different token in different messages, and unrelated values collide onto the same token
The placeholder map used for unmasking lives in `request_data["metadata"]["pii_tokens"]` and is keyed by the token string. Every message is anonymized as its own `check_pii` task sharing that one dict, so when two messages both produce `<PERSON_1>` for different people, the later write overwrites the earlier one (last write wins). On the response side the unmasker then restores the wrong original value, and because the messages run concurrently via `asyncio.gather` the winner is nondeterministic from request to request
Expected behavior: within a single request each unique entity value maps to one stable token across all messages, and the token to value map stays one-to-one so unmasking always r…