# 🔐 Securely Set OpenAI API Key import os import getpass os.environ["OPENAI_API_KEY"] = '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' # <- Replace with your key # 📚 Imports from llama_index.core import VectorStoreIndex, download_loader import gradio as gr # 📖 Load PDFReader dynamically (works across versions) PDFReader = download_loader("PDFReader") # 🌐 Global variables to store index and query engine index = None query_engine = None # 📥 Load and Process Resume PDF def process_resume(file): global index, query_engine try: file_path = file.name loader = PDFReader() documents = loader.load_data(file_path) index = VectorStoreIndex.from_documents(documents) query_engine = index.as_query_engine() return "✅ Resume uploaded and indexed successfully." except Exception as e: return f"❌ Error processing resume: {str(e)}" # ❓ Answer Questions About Resume def query_resume(question): global query_engine if not query_engine: return "⚠ Please upload a resume first." try: response = query_engine.query(question) return str(response) except Exception as e: return f"❌ Error during query: {str(e)}" # 📤 Gradio Interface for Resume Upload upload_interface = gr.Interface( fn=process_resume, inputs=gr.File(label="Upload Resume (PDF)", file_types=[".pdf"]), outputs="text", title="📄 Resume Uploader", description="Upload your PDF resume to enable question-answering." ) # 💬 Gradio Interface for Resume Querying query_interface = gr.Interface( fn=query_resume, inputs=gr.Textbox(lines=2, placeholder="Ask something like: What are my skills?"), outputs="text", title="🤖 Resume Query Bot", description="Ask questions about your uploaded resume.", examples=[ ["What is my email?"], ["What are my technical skills?"], ["List the projects I have done."], ["Where did I study?"], ["Do I have any certifications?"] ] ) # 🧩 Combine Both Interfaces app = gr.TabbedInterface( interface_list=[upload_interface, query_interface], tab_names=["Upload Resume", "Ask Questions"] ) # 🚀 Launch the App app.launch(share=True)