| | 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) |
| |
|