ResumeQNABot / app.py
aridepai17's picture
Update app.py
bf29456 verified
import os
import gradio as gr
import openai
from llama_index.readers.file import PDFReader
from llama_index.core import VectorStoreIndex
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.llms.openai import OpenAI
openai.api_key = os.environ.get("OPENAI_API_KEY")
def process_pdf(file, question):
try:
reader = PDFReader()
documents = reader.load_data(file=file.name)
embed_model = OpenAIEmbedding()
llm = OpenAI()
index = VectorStoreIndex.from_documents(documents, embed_model=embed_model)
query_engine = index.as_query_engine(llm=llm)
response = query_engine.query(question)
return str(response)
except Exception as e:
return f"❌ Error: {e}"
# Gradio Blocks UI
with gr.Blocks(title="Resume Analyzer by Advaith") as demo:
gr.Markdown("""
# πŸ“„ Resume Analyzer
Upload a resume and ask any question about the candidate!
Powered by **LlamaIndex** + **OpenAI**
""")
with gr.Row():
pdf_file = gr.File(label="πŸ“ Upload your resume (PDF)", file_types=[".pdf"])
question = gr.Textbox(lines=2, label="πŸ’¬ Ask something", placeholder="e.g., What are the candidate's technical strengths?")
analyze_button = gr.Button("πŸ” Analyze")
result = gr.Textbox(label="🧠 Answer", lines=10)
def run_analysis(file, question):
return process_pdf(file, question)
analyze_button.click(run_analysis, inputs=[pdf_file, question], outputs=result)
# Launch app
if __name__ == "__main__":
demo.launch()