|
import streamlit as st |
|
from pdf_extractor import get_pdf_text |
|
from knowledge_base import create_faiss_index, search_faiss |
|
from chatbot import generate_response |
|
try: |
|
import fitz |
|
print("β
PyMuPDF (fitz) is installed successfully!") |
|
except ImportError as e: |
|
print(f"β ImportError: {e}") |
|
|
|
st.title("Ψ§ΩΩ
Ψ³Ψ§ΨΉΨ― Ψ§ΩΨ±ΩΩ
Ω") |
|
|
|
|
|
uploaded_file = st.file_uploader("π Upload a PDF", type=["pdf"]) |
|
if uploaded_file: |
|
with open("temp.pdf", "wb") as f: |
|
f.write(uploaded_file.getbuffer()) |
|
|
|
st.success("β
PDF uploaded successfully!") |
|
|
|
|
|
st.info("π Extracting text from PDF...") |
|
pdf_text = get_pdf_text("temp.pdf") |
|
texts = pdf_text.split("\n") |
|
faiss_index, stored_texts = create_faiss_index(texts) |
|
|
|
st.success("β
Knowledge base created!") |
|
|
|
|
|
st.header("π¬ Chat with Your PDF") |
|
user_query = st.text_input("Ask a question:") |
|
if user_query: |
|
st.info("π Searching for relevant information...") |
|
relevant_texts = search_faiss(faiss_index, stored_texts, user_query, top_k=3) |
|
|
|
st.success("β
Found relevant content!") |
|
context = "\n".join(relevant_texts) |
|
|
|
st.info("π€ Generating answer...") |
|
answer = generate_response(context, user_query) |
|
|
|
st.write("**Chatbot Answer:**", answer) |
|
|
|
import os |
|
import streamlit as st |
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
port = int(os.environ.get("PORT", 7860)) |
|
|
|
|