careerv3 / resume.py
ombhojane's picture
Upload 88 files
8d404bc verified
raw
history blame contribute delete
No virus
3.33 kB
import streamlit as st
import os
import json
import google.generativeai as genai
API_KEY = "AIzaSyCA4__JMC_ZIQ9xQegIj5LOMLhSSrn3pMw"
def configure_genai_api():
genai.configure(api_key=API_KEY)
generation_config = {
"temperature": 0.9,
"top_p": 1,
"top_k": 40,
"max_output_tokens": 2048,
}
safety_settings = [
{"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},
{"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},
{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},
{"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},
]
return genai.GenerativeModel(model_name="gemini-1.0-pro",
generation_config=generation_config,
safety_settings=safety_settings)
def load_user_data():
try:
with open('gemini_responses.json', 'r') as file:
return json.load(file)
except FileNotFoundError:
st.error("User data file not found. Please ensure 'gemini_responses.json' exists.")
return {}
def load_data():
try:
with open('data.json', 'r') as file:
return json.load(file)
except FileNotFoundError:
st.error("Data file not found. Please ensure 'data.json' exists.")
return {}
def combine_responses(user_data, data, *args):
combined_responses = []
for key, value in user_data.items():
combined_responses.append(f"{key}: {value}")
combined_responses.append(f"Name: {data['name']}")
combined_responses.append(f"Email: {data['email']}")
combined_responses.append(f"LinkedIn: {data['linkedin']}")
combined_responses.append(f"GitHub: {data['github']}")
for response_set in args:
if isinstance(response_set, dict):
combined_responses.extend(response_set.values())
elif isinstance(response_set, list):
combined_responses.extend(response_set)
combined_responses.extend(data.values()) # Add data.json values
return " ".join(combined_responses)
def app():
st.header("Resume Creator")
model = configure_genai_api()
if not model:
return
# Load user data
user_data = load_user_data()
data = load_data()
combined_responses_text = combine_responses(user_data, data) # Pass the 'data' argument
prompt_template = f"""
Based on the following inputs, print the basic details in proper manner line by line (name, github url, etc), generate a professional resume that includes sections for a Summary, Experience, Skills, Certifications (dont give education section).
{combined_responses_text}
Provide optimized content for each section of the resume to highlight the individual's qualifications, achievements, and career progression.
"""
try:
response = model.generate_content([prompt_template])
st.subheader("Resume Content")
st.write(response.text)
except Exception as e:
st.error("An error occurred while generating your Resume content. Please try again later.")
st.error(f"Error: {e}")
if __name__ == "__main__":
app()