File size: 2,876 Bytes
253769c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4733c33
253769c
 
 
e4164b0
fd15cca
 
 
1da559c
fd15cca
 
 
 
 
 
 
253769c
 
 
 
12ae765
253769c
 
 
 
 
 
 
 
 
 
c02707b
253769c
 
 
 
 
 
 
 
 
 
 
 
 
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
77
78
79
80
81
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("Personalized Course Recommendation System")

    # List of questions for the user
    questions = [
        "How would you want your course look like? ",
        "From previous semesters which course was your favorite?",
        "list some of your strongest skills or competencies.",
        "If you had unlimited resources, what research topic would you dedicate your time to?",
        "Where do you envision yourself five years from now?",
        "When face an intellectual problem what strategies do you naturally tend to employ to find solutions?",

        # "What is your specific skills?",
        # "How much time can you give to learning?",
        # "Your preferred working environment",
        # "What are your long-term goals?",
        # "How do you prefer to learn new concepts?"
    ]

    # Collect user responses
    responses = {q: st.text_area(q, "") for q in questions}
    print(responses)

    # 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, which major Subject of Department of Computer Science & Engineering should the user can take?")
                    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()