1414 --border : # 30363d ;
1515 --accent : # 58a6ff ;
1616 --accent2 : # 3fb950 ;
17+ --accent3 : # 39d9c0 ;
1718 --warn : # f85149 ;
1819 --text : # c9d1d9 ;
1920 --muted : # 8b949e ;
262263 .pipeline {
263264 display : flex; gap : 0 ; align-items : stretch;
264265 flex-wrap : wrap; justify-content : center;
265- max-width : 960 px ; margin : 0 auto;
266+ max-width : 1100 px ; margin : 0 auto;
266267 }
267268 .pipe-step {
268- flex : 1 ; min-width : 180 px ; max-width : 220 px ;
269+ flex : 1 ; min-width : 150 px ; max-width : 200 px ;
269270 background : var (--bg );
270271 border : 1px solid var (--border );
271272 border-radius : 8px ;
288289 .pipe-step .desc { font-size : .75rem ; color : var (--muted ); line-height : 1.4 ; }
289290 .pipe-step .accent-blue { border-color : # 1f6feb ; }
290291 .pipe-step .accent-green { border-color : # 238636 ; }
292+ .pipe-step .accent-teal { border-color : # 0d7875 ; }
291293 .pipe-step .accent-purple { border-color : # 6e40c9 ; }
292294 .pipe-step .accent-orange { border-color : # 9e6a03 ; }
293295
331333< div class ="hero ">
332334 < h1 > AI Privacy < em > Firewall</ em > for Java</ h1 >
333335 < p >
334- Intercept LLM prompts, detect PII using a hybrid
335- < strong > Regex + Naive Bayes</ strong > pipeline, and replace
336+ Intercept LLM prompts, detect PII using a three-layer
337+ < strong > Regex + Naive Bayes + OpenNLP NER </ strong > pipeline, and replace
336338 sensitive data with structured tokens — before it leaves your network.
337339 </ p >
338340 < div class ="pill-row ">
@@ -343,8 +345,8 @@ <h1>AI Privacy <em>Firewall</em> for Java</h1>
343345 < span class ="pill active "> IPv4 / IPv6</ span >
344346 < span class ="pill active "> API Keys</ span >
345347 < span class ="pill active "> Passwords</ span >
346- < span class ="pill active "> Names (ML)</ span >
347- < span class ="pill active "> Orgs (ML)</ span >
348+ < span class ="pill active "> Names (ML+NLP )</ span >
349+ < span class ="pill active "> Orgs (ML+NLP )</ span >
348350 < span class ="pill active "> IBAN</ span >
349351 </ div >
350352</ div >
@@ -362,6 +364,7 @@ <h1>AI Privacy <em>Firewall</em> for Java</h1>
362364 < button class ="sample-btn " onclick ="loadSample('ml') "> ML disambiguation</ button >
363365 < button class ="sample-btn " onclick ="loadSample('mixed') "> Full mix</ button >
364366 < button class ="sample-btn " onclick ="loadSample('apikey') "> API keys</ button >
367+ < button class ="sample-btn " onclick ="loadSample('nlp') " title ="Showcases multi-token names that NLP layer handles server-side "> NLP names</ button >
365368 </ div >
366369 </ div >
367370
@@ -446,6 +449,11 @@ <h2>How It Works</h2>
446449 < div class ="name "> MLDetector</ div >
447450 < div class ="desc "> Multinomial Naive Bayes. Classifies title-cased tokens using bag-of-words context features.</ div >
448451 </ div >
452+ < div class ="pipe-step accent-teal ">
453+ < div class ="layer "> Layer 3</ div >
454+ < div class ="name "> NLPDetector</ div >
455+ < div class ="desc "> Apache OpenNLP MaxEnt NER. Handles compound names, hyphens, and varied syntactic positions.</ div >
456+ </ div >
449457 < div class ="pipe-step accent-purple ">
450458 < div class ="layer "> Merge</ div >
451459 < div class ="name "> CompositeDetector</ div >
@@ -461,10 +469,9 @@ <h2>How It Works</h2>
461469
462470<!-- ── Footer ────────────────────────────────────────────────────────────── -->
463471< footer >
464- Semantic Privacy Guard v1.0 .0 · Apache 2.0 ·
472+ Semantic Privacy Guard v1.1 .0 · Apache 2.0 ·
465473 < a href ="https://github.com/Sushegaad/Semantic-Privacy-Guard " target ="_blank "> GitHub</ a > ·
466- < a href ="https://github.com/Sushegaad/Semantic-Privacy-Guard/blob/main/docs/regex-design.md " target ="_blank "> Regex Design</ a > ·
467- < a href ="https://github.com/Sushegaad/Semantic-Privacy-Guard/blob/main/docs/benchmarks.md " target ="_blank "> Benchmarks</ a > ·
474+ < a href ="https://github.com/Sushegaad/Semantic-Privacy-Guard/blob/main/README.md " target ="_blank "> Documentation</ a > ·
468475 < a href ="https://github.com/Sushegaad/Semantic-Privacy-Guard/blob/main/SECURITY.md " target ="_blank "> Security Policy</ a >
469476 < br > < small style ="margin-top:.4rem;display:block ">
470477 ⚠️ This playground runs entirely in your browser — no text is ever transmitted to any server.
@@ -535,7 +542,19 @@ <h2>How It Works</h2>
535542AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
536543AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
537544DB_PASSWORD=password=S3cureDB!Pass#2024
538- HEX_SECRET=a3f8e2b1c9d4f05e6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9`
545+ HEX_SECRET=a3f8e2b1c9d4f05e6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9` ,
546+
547+ nlp : `OpenNLP NER (Layer 3) — multi-token & compound name detection:
548+
549+ Dear Mary Elizabeth Watson-Jones, please review the attached proposal.
550+ CC: Dr. James O'Brien, Chief Medical Officer at Barclays Bank PLC.
551+ The contract was countersigned by Priya Krishnamurthy on 2024-03-15.
552+ Please forward to carol.whitfield@globaltech.io for final approval.
553+ Our vendor contact is Michael van der Berg from Deutsche Bank AG.
554+
555+ [Note: This playground runs Heuristic + ML layers in-browser.
556+ The OpenNLP NER layer (Layer 3) runs server-side in the Java library,
557+ further improving detection of compound/hyphenated names and org names.]`
539558} ;
540559
541560// ── PII type metadata ────────────────────────────────────────────────────────
0 commit comments