Add PII redaction POC for secure LLM prompting.

Implements detect-redact-sanitize pipeline with regex, domain rules, and ONNX NER before the LLM boundary, plus NUnit tests and Xenovex push documentation.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Bilal Nazer Ali
2026-07-07 13:05:07 +05:30
commit dfc81dea28
60 changed files with 3283 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
namespace PiiRedaction.Core.Models;
public enum PiiDetectionSource
{
Regex,
Domain,
Ner
}

View File

@@ -0,0 +1,12 @@
namespace PiiRedaction.Core.Models;
public sealed record PiiEntity(
PiiEntityType Type,
string Value,
int StartIndex,
int Length,
PiiDetectionSource Source,
double? Confidence = null)
{
public int EndIndex => StartIndex + Length;
}

View File

@@ -0,0 +1,14 @@
namespace PiiRedaction.Core.Models;
public enum PiiEntityType
{
Person,
Email,
Phone,
Pan,
Aadhaar,
CreditCard,
LoanNumber,
CustomerId,
AccountNumber
}

View File

@@ -0,0 +1,5 @@
namespace PiiRedaction.Core.Models;
public sealed record RedactionResult(
string SanitizedText,
IReadOnlyDictionary<string, string> PlaceholderMap);

View File

@@ -0,0 +1,3 @@
namespace PiiRedaction.Core.Models;
public sealed record SanitizationRequest(string OriginalPrompt);

View File

@@ -0,0 +1,7 @@
namespace PiiRedaction.Core.Models;
public sealed record SanitizationResult(
string OriginalPrompt,
string SanitizedPrompt,
IReadOnlyList<PiiEntity> DetectedEntities,
RedactionResult Redaction);