import streamlit as st from langchain_experimental.data_anonymizer import PresidioAnonymizer, PresidioReversibleAnonymizer from langchain_groq import ChatGroq # from langchain.chat_models import ChatGroq from dotenv import load_dotenv import os # Load environment variables load_dotenv() GROQ_API_KEY = os.getenv("GROQ_API_KEY") # Initialize anonymizer anonymizer = PresidioReversibleAnonymizer() llm = ChatGroq(model_name="llama-3.3-70b-versatile") # Choose an available model st.title("Call on Doc Data Anonymization") # User Input 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"): # Anonymization anonymized_text = anonymizer.anonymize(user_input) st.subheader("1. Original Text:") st.write(user_input) st.subheader("2. Anonymized Text:") st.write(anonymized_text) # Get LLM response response = llm.predict(anonymized_text) st.subheader("3. LLM Response:") st.write(response) # De-anonymization deanonymized_response = anonymizer.deanonymize(response) st.subheader("4. De-anonymized Response:") st.write(deanonymized_response)