Spaces:
Build error
Build error
| import streamlit as st | |
| import openai | |
| import os | |
| import PyPDF2 | |
| # Load OpenAI API Key from environment variables | |
| openai.api_key = os.getenv("OPENAI_API_KEY") | |
| if not openai.api_key: | |
| st.error("β οΈ OpenAI API key is missing! Please add it in Hugging Face secrets.") | |
| st.stop() | |
| st.title("π AI-Powered Resume Reviewer") | |
| st.write("Upload your resume (PDF/TXT), and AI will provide feedback!") | |
| # File uploader | |
| uploaded_file = st.file_uploader("Upload your resume", type=["txt", "pdf"]) | |
| def extract_text_from_file(uploaded_file): | |
| """Extract text from uploaded TXT or PDF file.""" | |
| if uploaded_file is not None: | |
| file_extension = uploaded_file.name.split(".")[-1] | |
| if file_extension == "txt": | |
| return uploaded_file.read().decode("utf-8") | |
| elif file_extension == "pdf": | |
| pdf_reader = PyPDF2.PdfReader(uploaded_file) | |
| text = "\n".join([page.extract_text() for page in pdf_reader.pages if page.extract_text()]) | |
| return text | |
| return "" | |
| def analyze_resume(resume_text): | |
| """Send resume text to OpenAI for feedback.""" | |
| response = openai.chat.completions.create( | |
| model="gpt-4", | |
| messages=[{"role": "user", "content": f"Review this resume and provide constructive feedback:\n\n{resume_text}"}] | |
| ) | |
| return response.choices[0].message.content.strip() | |
| if uploaded_file: | |
| st.write("β **Resume Uploaded Successfully!**") | |
| resume_text = extract_text_from_file(uploaded_file) | |
| if st.button("Analyze Resume"): | |
| with st.spinner("Analyzing... β³"): | |
| feedback = analyze_resume(resume_text) | |
| st.subheader("π AI Feedback:") | |
| st.write(feedback) | |