import streamlit as st import pandas as pd from transformers import pipeline # Load the dataset @st.cache_data def load_data(): return pd.read_csv("insurance_data.csv") data = load_data() # Load DeepSeek model (General text classification) @st.cache_resource def load_nlp_model(): return pipeline("text-classification", model="deepseek-ai/deepseek-llm-7b-chat") classifier = load_nlp_model() # Streamlit UI st.title("Health Insurance Coverage Assistant") user_input = st.text_input("Enter your query (e.g., coverage for diabetes, best plans, etc.)") if user_input: # Detect intent using text classification result = classifier(user_input) # Now we remove candidate_labels label = result[0]["label"] # Get predicted label # Manual mapping (since DeepSeek does not support `candidate_labels`) if "coverage" in user_input.lower(): intent = "coverage explanation" elif "recommend" in user_input.lower() or "best plan" in user_input.lower(): intent = "plan recommendation" else: intent = "unknown" if intent == "coverage explanation": st.subheader("Coverage Details") condition_matches = data[data["Medical Condition"].str.contains(user_input, case=False, na=False)] if not condition_matches.empty: st.write(condition_matches) else: st.write("No specific coverage found for this condition.") elif intent == "plan recommendation": st.subheader("Recommended Plans") recommended_plans = data.sort_values(by=["Coverage (%)"], ascending=False).head(5) st.write(recommended_plans) else: st.write("Sorry, I couldn't understand your request. Please try again!")