Session data#
GPT Bot extends the basic session data with conversation-specific information:
@dataclass
class GPTSessionData:
"""Session data for GPT conversations"""
messages: List[Dict[str, Any]] = field(default_factory=list)
last_activity: int = field(default_factory=lambda: int(time.time()))
user_data: Dict[str, Any] = field(default_factory=dict)
context: Dict[str, Any] = field(default_factory=dict)
You can access and modify this data in your middleware BY:
def message_middleware(notification, content, messages, session_data):
# Setting context variables
if "variables" not in session_data.context:
session_data.context["variables"] = {}
session_data.context["variables"]["last_interaction"] = int(time.time())
return {"message_content": content, "messages": messages}