Spaces:
Sleeping
Sleeping
import os | |
import streamlit as st | |
import google.generativeai as genai | |
from dotenv import load_dotenv | |
# Load environment variables | |
load_dotenv() | |
api_key = os.getenv("GEMINI_API_KEY") | |
# Check if API key is set | |
if not api_key: | |
st.error("API key not found. Please set GEMINI_API_KEY in your .env file.") | |
st.stop() | |
# Configure the generative AI model | |
genai.configure(api_key=api_key) | |
generation_config = { | |
"temperature": 1, | |
"top_p": 0.95, | |
"top_k": 64, | |
"max_output_tokens": 8192, | |
"response_mime_type": "text/plain", | |
} | |
try: | |
model = genai.GenerativeModel( | |
model_name="gemini-1.5-flash", | |
generation_config=generation_config | |
) | |
except Exception as e: | |
st.error(f"Failed to load model: {str(e)}") | |
st.stop() | |
# Main function for Streamlit app | |
def main(): | |
st.title("Career Path Recommendation System") | |
# List of questions for the user | |
questions = [ | |
"Tell me about yourself. (Your characteristics, your preferred working environment, your likings, your dislikings, your team work nature, your dedication level etc.)", | |
"Tell me something about your career interests.", | |
"What types of work satisfy you most?", | |
"How many specific skills do you have and what are those?", | |
"Elaborate the best professional skill you have.", | |
"Elaborate the lowest professional skill you have.", | |
"What are your long-term goals?" | |
] | |
# Collect user responses | |
responses = {q: st.text_area(q, "") for q in questions} | |
# Button to get recommendations | |
if st.button("Get Career Path Recommendation"): | |
if all(responses.values()): | |
with st.spinner("Generating recommendations..."): | |
try: | |
# Start chat session and send the message | |
chat_session = model.start_chat( | |
history=[{"role": "user", "parts": [{"text": f"{q}: {a}"} for q, a in responses.items()]}] | |
) | |
response = chat_session.send_message("Based on the answers provided, what career path should the user choose?") | |
recommendation = response.text.strip() | |
# Display the recommendation | |
st.subheader("Career Path Recommendation:") | |
st.write(recommendation) | |
except Exception as e: | |
st.error(f"An error occurred while generating recommendations: {str(e)}") | |
else: | |
st.error("Please answer all the questions to get a recommendation.") | |
# Run the app | |
if __name__ == "__main__": | |
main() | |