qa-rag-mysql / streamlit_app.py
Vanshcc's picture
Update streamlit_app.py
89a22a4 verified
import streamlit as st
import requests
API = "http://localhost:8000"
st.title("RAG QA System πŸ”—")
# Reset Button in Sidebar
if st.sidebar.button("Reset Knowledge Base πŸ—‘οΈ"):
try:
r = requests.post(f"{API}/reset")
if r.status_code == 200:
st.sidebar.success("Database Cleared!")
else:
st.sidebar.error("Failed to clear DB")
except Exception as e:
st.sidebar.error(f"Error: {e}")
if st.sidebar.checkbox("πŸ‘οΈ View Database Content"):
st.subheader("Knowledge Base Preview")
try:
r = requests.get(f"{API}/view")
if r.status_code == 200:
st.dataframe(r.json())
else:
st.warning("Could not fetch data.")
except Exception as e:
st.error(f"Connection Error: {e}")
st.write("Ask a question based on uploaded documents")
question = st.text_input("Ask a question")
if st.button("Ask"):
r = requests.post(f"{API}/ask", params={"question": question})
data = r.json()
st.write(f"**Answer:** {data['answer']}")
if "confidence" in data:
st.caption(f"Confidence Score: {data['confidence']:.2f}")
if data.get("evidence"):
st.write("### Evidence Sources")
st.json(data["evidence"])
uploaded = st.file_uploader("Upload document", type=["txt"])
if uploaded:
files = {"file": uploaded.getvalue()}
requests.post(f"{API}/ingest", files={"file": uploaded})
st.success("Document uploaded")