File size: 6,926 Bytes
7688f19
7fd2fab
ff92777
 
 
7fd2fab
ff92777
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7fd2fab
ff92777
 
 
7fd2fab
ff92777
 
 
7fd2fab
ff92777
 
 
7fd2fab
ff92777
 
 
7fd2fab
ff92777
 
 
7fd2fab
ff92777
 
 
 
 
 
 
 
 
 
 
 
a96770a
7fd2fab
728986c
 
92e3434
728986c
 
7fd2fab
4e0d894
 
7fd2fab
7688f19
4e0d894
 
728986c
92e3434
4e0d894
 
7fd2fab
 
 
 
 
728986c
92e3434
4e0d894
7fd2fab
728986c
92e3434
4e0d894
7fd2fab
4e0d894
 
7688f19
 
4e0d894
7688f19
 
4e0d894
 
7688f19
 
4e0d894
02ada83
1933a3f
4e0d894
7fd2fab
1933a3f
4e0d894
 
e5ec548
 
 
1933a3f
 
4e0d894
7fd2fab
1933a3f
 
 
 
4e0d894
1933a3f
 
7fd2fab
1933a3f
728986c
 
 
4e0d894
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4d55296
4e0d894
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e5ec548
 
7688f19
a16cf0b
e5ec548
 
 
 
 
a16cf0b
e5ec548
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
import streamlit as st
import os
from groq import Groq

# Set the Groq API key
os.environ["GROQ_API_KEY"] = "your_groq_api_key_here"  # Replace with your actual API key

# Initialize Groq client
client = Groq(api_key=os.environ.get("GROQ_API_KEY"))

# Define the LLaMA model to be used
MODEL_NAME = "llama3-8b-8192"

# Function to call Groq API
def call_groq_api(prompt):
    try:
        chat_completion = client.chat.completions.create(
            messages=[{"role": "user", "content": prompt}],
            model=MODEL_NAME
        )
        return chat_completion.choices[0].message.content
    except Exception as e:
        return f"Error: {str(e)}"

# Define functions for each tool
def personalized_learning_assistant(topic):
    prompt = f"Provide a personalized learning plan for the topic: {topic}"
    return call_groq_api(prompt)

def ai_coding_mentor(code_snippet):
    prompt = f"Review this AI code snippet and provide suggestions or improvements:\n\n{code_snippet}"
    return call_groq_api(prompt)

def smart_document_summarizer(document_text):
    prompt = f"Summarize the following document:\n\n{document_text}"
    return call_groq_api(prompt)

def interactive_study_planner(exam_schedule):
    prompt = f"Create an interactive study plan based on this exam schedule:\n\n{exam_schedule}"
    return call_groq_api(prompt)

def real_time_qa_support(question):
    prompt = f"Provide an answer to the following academic question:\n\n{question}"
    return call_groq_api(prompt)

def mental_health_check_in(feelings):
    prompt = f"Provide some advice based on these feelings:\n\n{feelings}"
    return call_groq_api(prompt)

# Initialize session state if not already set
if 'responses' not in st.session_state:
    st.session_state['responses'] = {
        "personalized_learning_assistant": "",
        "ai_coding_mentor": "",
        "smart_document_summarizer": "",
        "interactive_study_planner": "",
        "real_time_qa_support": "",
        "mental_health_check_in": ""
    }

# Set up page configuration
st.set_page_config(page_title="EduNexus", page_icon=":book:", layout="wide")

# Add custom styling using Streamlit
st.markdown("""
    <style>
    body {
        background-color: #000000; /* Royal Black */
        color: #ffffff; /* White */
    }
    .css-1o7k8tt {
        background-color: #000000; /* Royal Black */
        color: #ffffff; /* White */
    }
    .stButton {
        background-color: #ffffff; /* White */
        color: #000000; /* Royal Black */
        border-radius: 12px;
        padding: 12px 24px;
        font-size: 16px;
        box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4);
        transition: background-color 0.3s, box-shadow 0.3s;
    }
    .stButton:hover {
        background-color: #d3d3d3; /* Light Gray */
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.5);
    }
    .stTextInput, .stTextArea {
        border: 1px solid #ffffff; /* White */
        border-radius: 12px;
        background-color: #000000; /* Royal Black */
        color: #ffffff; /* White */
    }
    .stTextInput::placeholder, .stTextArea::placeholder {
        color: #a0a0a0; /* Gray */
    }
    .stSidebar {
        background-color: #000000; /* Royal Black */
        color: #ffffff; /* White */
    }
    .stSidebar .stMarkdown {
        color: #ffffff; /* White */
    }
    .footer {
        background-color: #000000; /* Royal Black */
        padding: 15px; 
        text-align: center; 
        color: #ffffff; /* White */
        border-top: 1px solid #ffffff; /* White */
        position: fixed; 
        bottom: 0; 
        width: 100%;
    }
    .footer a {
        color: #ffffff; /* White */
        margin: 0 15px; 
        text-decoration: none; 
        font-size: 18px;
    }
    .footer a:hover {
        color: #d3d3d3; /* Light Gray */
    }
    .footer i {
        font-size: 22px;
    }
    </style>
""", unsafe_allow_html=True)

# Sidebar with tasks
st.sidebar.title("Tasks")
tasks = [
    "Personalized Learning Assistant",
    "AI Coding Mentor",
    "Smart Document Summarizer",
    "Interactive Study Planner",
    "Real-Time Q&A Support",
    "Mental Health Check-In"
]

selected_task = st.sidebar.radio("Select a task", tasks)

# Main layout based on selected task
if selected_task == "Personalized Learning Assistant":
    st.header("Personalized Learning Assistant")
    with st.form(key="personalized_learning_assistant_form"):
        topic = st.text_area("Enter the topic you want to learn about")
        submit_button = st.form_submit_button("Get Explanation")
        if submit_button:
            response = personalized_learning_assistant(topic)
            st.write(response)

elif selected_task == "AI Coding Mentor":
    st.header("AI Coding Mentor")
    with st.form(key="ai_coding_mentor_form"):
        code_snippet = st.text_area("Paste your code snippet here")
        submit_button = st.form_submit_button("Get Review")
        if submit_button:
            response = ai_coding_mentor(code_snippet)
            st.write(response)

elif selected_task == "Smart Document Summarizer":
    st.header("Smart Document Summarizer")
    with st.form(key="smart_document_summarizer_form"):
        document_text = st.text_area("Paste your document text here")
        submit_button = st.form_submit_button("Get Summary")
        if submit_button:
            response = smart_document_summarizer(document_text)
            st.write(response)

elif selected_task == "Interactive Study Planner":
    st.header("Interactive Study Planner")
    with st.form(key="interactive_study_planner_form"):
        exam_schedule = st.text_area("Enter your exam schedule here")
        submit_button = st.form_submit_button("Create Study Plan")
        if submit_button:
            response = interactive_study_planner(exam_schedule)
            st.write(response)

elif selected_task == "Real-Time Q&A Support":
    st.header("Real-Time Q&A Support")
    with st.form(key="real_time_qa_support_form"):
        question = st.text_area("Ask your academic question here")
        submit_button = st.form_submit_button("Get Answer")
        if submit_button:
            response = real_time_qa_support(question)
            st.write(response)

elif selected_task == "Mental Health Check-In":
    st.header("Mental Health Check-In")
    with st.form(key="mental_health_check_in_form"):
        feelings = st.text_area("Share how you are feeling today")
        submit_button = st.form_submit_button("Get Advice")
        if submit_button:
            response = mental_health_check_in(feelings)
            st.write(response)

# Footer
st.markdown("""
    <div class="footer">
        <a href="https://github.com/your-repo">GitHub</a> |
        <a href="https://twitter.com/your-profile">Twitter</a> |
        <a href="https://linkedin.com/in/your-profile">LinkedIn</a>
        <br>
        <i>EduNexus © 2024</i>
    </div>
""", unsafe_allow_html=True)