docling_rag / app.py
NEXAS's picture
Update app.py
db1aee6 verified
raw
history blame
1.52 kB
import streamlit as st
import os
import json
from utils.ingestion import DocumentProcessor
from utils.llm import LLMProcessor
from utils.qa import QAEngine
st.set_page_config(page_title="AI-Powered Document QA", layout="wide")
st.title("πŸ“„ AI-Powered Document QA")
# Initialize processors
document_processor = DocumentProcessor()
llm_processor = LLMProcessor()
qa_engine = QAEngine()
# Ensure temp directory exists
os.makedirs("temp", exist_ok=True)
st.sidebar.header("Upload a PDF")
uploaded_file = st.sidebar.file_uploader("Choose a PDF file", type=["pdf"])
if uploaded_file:
pdf_path = os.path.join("temp", uploaded_file.name)
with open(pdf_path, "wb") as f:
f.write(uploaded_file.read())
st.sidebar.success("βœ… File uploaded successfully!")
with st.spinner("πŸ”„ Processing document..."):
document_processor.process_document(pdf_path)
st.sidebar.success("βœ… Document processed successfully!")
# Query input
question = st.text_input("Ask a question from the document:", placeholder="What are the key insights?")
if st.button("πŸ” Search & Answer"):
if question:
with st.spinner("🧠 Searching for relevant context..."):
answer = qa_engine.query(question)
st.subheader("πŸ“ Answer:")
st.write(answer.content)
else:
st.warning("⚠️ Please enter a question.")
st.markdown("---")
st.caption("πŸ€– Powered by ChromaDB + Groq LLM | Built with ❀️ using Streamlit")