Zink Shielded Chatbot
Welcome to the Zink Shielded Chatbot! This is a privacy-first chat application that lets you talk to frontier LLMs (like Gemini in this example) without giving away your personal secrets.
How it works
Zink intercepts your message and replaces sensitive details (like names and locations) with placeholders. The sanitized message is sent to the AI, which responds without seeing your private data. You can verify what was sent at any time.
Key Features
-
You're in Control: Use the sidebar to choose exactly what gets redacted (people, locations, dates, etc.). You can even add your own custom labels as the underlying transformer model is zero shot.
Above: The app shows you exactly what "sanitized" message is being sent to the AI. -
Smart Context: Even though the names are hidden, the AI understands the context (e.g., that
person_Ais a person,person_Bis a different person), so the conversation flows naturally.What you type What the AI sees 

You ask a question with sensitive info... ...and the AI gets a safe, redacted version. -
Exclusion Control: Zink allows you to keep entities from getting redacted even if the general category is selected for redaction. Any text that is wrapped in
*would be excluded from redaction.
Above: The input query was "tell me a joke in the style of *Michael Scott*?". "Michael Scott" is preserved while other entities might be redacted.
Getting Started
- Get your Key: You'll need a Google Gemini API key.
- Set it up: Create a
.envfile in this folder and add your key like this:GEMINI_API_KEY=your_api_key_here - Run it: Fire up the app with Streamlit:
uv run streamlit run app.py
Pending
Need to do a comprehensive latency testing but I don't feel it to be slow at all. I might be a bit biased towards the more private system though.
Contribute
Need to replicate this for OpenAI, Anthropic, Grok etc. Would appreciate any contribution.
Enjoy chatting privately!