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