| import streamlit as st |
| from langchain_experimental.data_anonymizer import PresidioAnonymizer, PresidioReversibleAnonymizer |
| from langchain_groq import ChatGroq |
| |
| from dotenv import load_dotenv |
| import os |
| |
| load_dotenv() |
|
|
| GROQ_API_KEY = os.getenv("GROQ_API_KEY") |
|
|
| |
| anonymizer = PresidioReversibleAnonymizer() |
| llm = ChatGroq(model_name="llama-3.3-70b-versatile") |
|
|
| st.title("Call on Doc Data Anonymization") |
|
|
| |
| user_input = st.text_area("Enter your text:", "My name is John Doe and my phone number is 123-456-7890.") |
|
|
| if st.button("Process"): |
| |
| anonymized_text = anonymizer.anonymize(user_input) |
| st.subheader("1. Original Text:") |
| st.write(user_input) |
| |
| st.subheader("2. Anonymized Text:") |
| st.write(anonymized_text) |
| |
| |
| response = llm.predict(anonymized_text) |
| st.subheader("3. LLM Response:") |
| st.write(response) |
| |
| |
| deanonymized_response = anonymizer.deanonymize(response) |
| st.subheader("4. De-anonymized Response:") |
| st.write(deanonymized_response) |
|
|