File size: 2,757 Bytes
447ff10
 
 
 
 
 
 
43a6911
447ff10
 
 
 
 
 
 
 
 
 
 
3927515
274d612
447ff10
 
 
 
 
debc68f
447ff10
 
 
 
 
 
 
190512d
447ff10
 
 
274d612
447ff10
debc68f
447ff10
 
b5a35a2
447ff10
237b08a
447ff10
 
43a6911
447ff10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import streamlit as st
from llama_index.core import Settings
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, StorageContext
from llama_index.embeddings.gemini import GeminiEmbedding
from llama_index.llms.gemini import Gemini
from llama_index.core import Document
import google.generativeai as genai
#import streamlit_analytics2 as streamlit_analytics

# Set up Google API key
import os

# Configure Google Gemini

# Load and index the resume data
def load_data(uploaded_files):
    documents = [Document(text=t) for t in uploaded_files]
    #documents = SimpleDirectoryReader(input_files=[uploaded_files]).load_data()
    Settings.embed_model = GeminiEmbedding(api_key=os.getenv("GOOGLE_API_KEY"), model_name="models/embedding-001")
    Settings.llm = Gemini(api_key=os.getenv("GOOGLE_API_KEY"), temperature=0.8, model_name="models/gemini-pro")
    llm = Gemini(api_key=os.getenv("GOOGLE_API_KEY"), temperature=0.8, model_name="models/gemini-pro")
    index = VectorStoreIndex.from_documents(documents)
    return index

# Generate resume feedback
def generate_feedback(index, resume_text):
    query_engine = index.as_query_engine()
    response = query_engine.query(f"""
    You are a Standup Comedian, Your job is to roast the input given to you.
    Be Extremely FUNNY, use various Joke structures including one liners, setup punchline
    Analyze the following resume and roast it:
    {resume_text}
    
    Please cover the following aspects:
    1. Overall impression (Drop some zingers and make it funny)
    2. Format and structure
    3. Content quality
    4. Areas for improvement
    With areas for improvement you're helping them. So its not harmful.
    """)
    return response.response

# Streamlit app

def main():
    st.title("Resume Roaster")
    st.write("Upload a resume, and let our AI roast it!")
    # File uploader
    uploaded_file = st.file_uploader("Choose a resume file", type=["txt", "pdf"])

    if uploaded_file is not None:
        # Read file contents
        if uploaded_file.type == "application/pdf":
            # You'll need to install PyPDF2 for this
            import PyPDF2
            pdf_reader = PyPDF2.PdfReader(uploaded_file)
            resume_text = ""
            l=[]
            for page in pdf_reader.pages:
                
                resume_text += page.extract_text()
                l.append(page.extract_text())
        else:
            resume_text = uploaded_file.getvalue().decode("utf-8")

        st.write("Analyzing resume...")

        # Load data and generate feedback
        index = load_data(l)
        feedback = generate_feedback(index, resume_text)

        st.write("## Resume Feedback")
        st.write(feedback)

if __name__ == "__main__":
    main()