Spaces:
Runtime error
Runtime error
| 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") | |