Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -482,7 +482,7 @@ class TeachingAssistant:
|
|
| 482 |
self.context_history = []
|
| 483 |
self.max_context_length = 5 # Keep last 5 exchanges for context
|
| 484 |
|
| 485 |
-
def generate_response(self, message: str, history: List[
|
| 486 |
"""Generate personalized response based on student profile and context."""
|
| 487 |
try:
|
| 488 |
# Load profile (simplified - in real app would handle multiple profiles)
|
|
@@ -517,13 +517,15 @@ class TeachingAssistant:
|
|
| 517 |
print(f"Error generating response: {str(e)}")
|
| 518 |
return "I encountered an error processing your request. Please try again."
|
| 519 |
|
| 520 |
-
def _update_context(self, message: str, history: List[
|
| 521 |
"""Maintain conversation context."""
|
| 522 |
-
self.context_history.append(
|
| 523 |
if history:
|
| 524 |
for h in history[-self.max_context_length:]:
|
| 525 |
-
|
| 526 |
-
|
|
|
|
|
|
|
| 527 |
|
| 528 |
# Trim to maintain max context length
|
| 529 |
self.context_history = self.context_history[-(self.max_context_length*2):]
|
|
@@ -765,10 +767,6 @@ def create_interface():
|
|
| 765 |
with gr.Column(scale=1):
|
| 766 |
step5 = gr.Button("5. AI Assistant")
|
| 767 |
|
| 768 |
-
# Tab navigation logic
|
| 769 |
-
def navigate_to_tab(tab_index):
|
| 770 |
-
return {tab: gr.update(visible=(i == tab_index)) for i, tab in enumerate(tabs)}
|
| 771 |
-
|
| 772 |
# Main tabs
|
| 773 |
with gr.Tabs() as tabs:
|
| 774 |
# ===== TAB 1: Transcript Upload =====
|
|
@@ -949,26 +947,29 @@ def create_interface():
|
|
| 949 |
title=""
|
| 950 |
)
|
| 951 |
|
| 952 |
-
# Tab navigation
|
|
|
|
|
|
|
|
|
|
| 953 |
step1.click(
|
| 954 |
fn=lambda: navigate_to_tab(0),
|
| 955 |
-
outputs={
|
| 956 |
)
|
| 957 |
step2.click(
|
| 958 |
fn=lambda: navigate_to_tab(1),
|
| 959 |
-
outputs={
|
| 960 |
)
|
| 961 |
step3.click(
|
| 962 |
fn=lambda: navigate_to_tab(2),
|
| 963 |
-
outputs={
|
| 964 |
)
|
| 965 |
step4.click(
|
| 966 |
fn=lambda: navigate_to_tab(3),
|
| 967 |
-
outputs={
|
| 968 |
)
|
| 969 |
step5.click(
|
| 970 |
fn=lambda: navigate_to_tab(4),
|
| 971 |
-
outputs={
|
| 972 |
)
|
| 973 |
|
| 974 |
return app
|
|
|
|
| 482 |
self.context_history = []
|
| 483 |
self.max_context_length = 5 # Keep last 5 exchanges for context
|
| 484 |
|
| 485 |
+
def generate_response(self, message: str, history: List[List[Union[str, None]]]) -> str:
|
| 486 |
"""Generate personalized response based on student profile and context."""
|
| 487 |
try:
|
| 488 |
# Load profile (simplified - in real app would handle multiple profiles)
|
|
|
|
| 517 |
print(f"Error generating response: {str(e)}")
|
| 518 |
return "I encountered an error processing your request. Please try again."
|
| 519 |
|
| 520 |
+
def _update_context(self, message: str, history: List[List[Union[str, None]]]) -> None:
|
| 521 |
"""Maintain conversation context."""
|
| 522 |
+
self.context_history.append({"role": "user", "content": message})
|
| 523 |
if history:
|
| 524 |
for h in history[-self.max_context_length:]:
|
| 525 |
+
if h[0]: # User message
|
| 526 |
+
self.context_history.append({"role": "user", "content": h[0]})
|
| 527 |
+
if h[1]: # Assistant message
|
| 528 |
+
self.context_history.append({"role": "assistant", "content": h[1]})
|
| 529 |
|
| 530 |
# Trim to maintain max context length
|
| 531 |
self.context_history = self.context_history[-(self.max_context_length*2):]
|
|
|
|
| 767 |
with gr.Column(scale=1):
|
| 768 |
step5 = gr.Button("5. AI Assistant")
|
| 769 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 770 |
# Main tabs
|
| 771 |
with gr.Tabs() as tabs:
|
| 772 |
# ===== TAB 1: Transcript Upload =====
|
|
|
|
| 947 |
title=""
|
| 948 |
)
|
| 949 |
|
| 950 |
+
# Tab navigation logic
|
| 951 |
+
def navigate_to_tab(tab_index: int):
|
| 952 |
+
return {tabs: gr.update(selected=tab_index)}
|
| 953 |
+
|
| 954 |
step1.click(
|
| 955 |
fn=lambda: navigate_to_tab(0),
|
| 956 |
+
outputs={tabs: tabs}
|
| 957 |
)
|
| 958 |
step2.click(
|
| 959 |
fn=lambda: navigate_to_tab(1),
|
| 960 |
+
outputs={tabs: tabs}
|
| 961 |
)
|
| 962 |
step3.click(
|
| 963 |
fn=lambda: navigate_to_tab(2),
|
| 964 |
+
outputs={tabs: tabs}
|
| 965 |
)
|
| 966 |
step4.click(
|
| 967 |
fn=lambda: navigate_to_tab(3),
|
| 968 |
+
outputs={tabs: tabs}
|
| 969 |
)
|
| 970 |
step5.click(
|
| 971 |
fn=lambda: navigate_to_tab(4),
|
| 972 |
+
outputs={tabs: tabs}
|
| 973 |
)
|
| 974 |
|
| 975 |
return app
|