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 # PyMuPDF print("✅ PyMuPDF (fitz) is installed successfully!") except ImportError as e: print(f"❌ ImportError: {e}") st.title("المساعد الرقمي") # Step 1: Upload a PDF 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!") # Step 2: Extract text from PDF st.info("🔄 Extracting text from PDF...") pdf_text = get_pdf_text("temp.pdf") # Load the PDF and extract text texts = pdf_text.split("\n") # Split text into paragraphs faiss_index, stored_texts = create_faiss_index(texts) # Store in FAISS st.success("✅ Knowledge base created!") # Step 3: Chat Interface 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 # Your existing Streamlit code goes here if __name__ == "__main__": port = int(os.environ.get("PORT", 7860)) # Default Hugging Face Spaces port