Spaces:
Runtime error
Runtime error
| #teachers_dashboard.py | |
| import gradio as gr | |
| import thinkingframes | |
| from dotenv import load_dotenv | |
| from openai import OpenAI | |
| from database_functions import get_submissions_by_date_and_class, getUniqueSubmitDate, getUniqueClass | |
| load_dotenv() | |
| client = OpenAI() | |
| def validate_password(password): | |
| correct_password = "Happyteacher2024" | |
| return password == correct_password | |
| def show_dashboard(password): | |
| if validate_password(password): | |
| date_choices = getUniqueSubmitDate() | |
| class_choices = getUniqueClass() | |
| return "<p>Dashboard content goes here</p>", gr.update(visible=True), gr.update(visible=False), gr.Dropdown(choices=date_choices, label="Select a date"), gr.Dropdown(choices=class_choices, label="Select a class") | |
| return "<p>Incorrect password</p>", gr.update(visible=False), gr.update(visible=False), gr.Dropdown(choices='', label="Select a date"), gr.Dropdown(choices='', label="Select a class") | |
| def updateReportByDateAndClass(start_date, end_date, class_name, display_ai_feedback): | |
| json_output = get_submissions_by_date_and_class(start_date, end_date, class_name, display_ai_feedback) | |
| chat_history = [] | |
| return json_output, chat_history | |
| def chat_with_json_output(query, json_output, chat_history): | |
| questions = thinkingframes.questions | |
| strategies = [strategy[0] for strategy in thinkingframes.strategy_options.values()] | |
| picture_description = thinkingframes.description | |
| history_openai_format = [ | |
| {"role": "system", "content": f"Here is the JSON output of the student responses and AI interactions:\n{json_output}"}, | |
| {"role": "user", "content": f"Selected Analysis Prompt: {query}"} | |
| ] | |
| for human, assistant in chat_history: | |
| history_openai_format.append({"role": "user", "content": human}) | |
| history_openai_format.append({"role": "assistant", "content": assistant}) | |
| system_prompt = f""" | |
| You are an English Language Teacher analyzing student responses to oral questions. The questions and strategies used are: | |
| Questions: | |
| 1. {questions[0]} | |
| 2. {questions[1]} | |
| 3. {questions[2]} | |
| Strategies: | |
| 1. {strategies[0]} | |
| 2. {strategies[1]} | |
| 3. {strategies[2]} | |
| Picture Description (relevant only for Question 1): | |
| {picture_description} | |
| Based on the provided JSON output and the selected analysis prompt, please perform the following: | |
| General Analysis: | |
| - If the selected prompt is "General Analysis: Summarize overall performance and identify patterns": | |
| - Summarize the overall performance of students for each question, considering the relevant strategies and picture description. | |
| - Identify notable patterns and trends in student responses and AI feedback. | |
| - Highlight exemplary responses or feedback that demonstrate effective use of strategies or insightful interpretations. | |
| Specific Analysis: | |
| - If the selected prompt is "Specific Analysis: Identify common misconceptions and suggest interventions": | |
| - Identify common misconceptions or errors in student responses. | |
| - Suggest targeted interventions to address these misconceptions and improve student understanding. | |
| - If the selected prompt is "Specific Analysis: Analyze the effectiveness of strategies used": | |
| - Analyze the effectiveness of each strategy used by students. | |
| - Provide recommendations for improving the use of strategies and enhancing student performance. | |
| - If the selected prompt is "Specific Analysis: Compare performance of different student groups": | |
| - Compare the performance of different student groups (e.g., high performers vs. struggling students). | |
| - Offer insights and recommendations based on the identified differences and patterns. | |
| - If the selected prompt is "Specific Analysis: Track individual student progress over time": | |
| - Track the progress of individual students over time, if data is available. | |
| - Highlight areas where students have shown improvement or require additional support. | |
| Completion Rate Analysis: | |
| - If the selected prompt is "Completion Rate Analysis: Breakdown of questions attempted and insights": | |
| - Identify the students who have attempted all three questions, two questions, only Question 1, or no questions at all. | |
| - Calculate the percentage of students in each category. | |
| - Provide insights on the potential reasons for the completion rates (e.g., difficulty level, student engagement, etc.). | |
| - Offer recommendations for improving completion rates, such as providing additional support or incentives. | |
| Please provide the analysis in a clear and organized format, using bullet points, tables, or paragraphs as appropriate. Include specific examples and data-driven insights to support your recommendations. Focus on actionable feedback that can directly impact student learning and engagement. | |
| """ | |
| history_openai_format.append({"role": "user", "content": system_prompt}) | |
| history_openai_format.append({"role": "user", "content": query}) | |
| response = client.chat.completions.create( | |
| model='gpt-4o-2024-05-13', | |
| messages=history_openai_format, | |
| temperature=0.2, | |
| max_tokens=1000, | |
| stream=True | |
| ) | |
| partial_message = "" | |
| for chunk in response: | |
| if chunk.choices[0].delta.content is not None: | |
| partial_message += chunk.choices[0].delta.content | |
| yield chat_history + [("Assistant", partial_message)] | |
| chat_history.append(("Assistant", partial_message)) | |
| return chat_history |