class ChatSession:
def __init__(self, user_id):
self.session = {
"id": f"chat-{user_id}-{uuid.uuid4()}",
"name": f"AI Chat - User {user_id}"
}
self.history = []
@ze.span(name="process_message", session=lambda self: self.session)
async def process_message(self, message):
# Add to history
self.history.append({"role": "user", "content": message})
# Generate response
response = await self.generate_response()
self.history.append({"role": "assistant", "content": response})
return response
@ze.span(name="generate_response", session=lambda self: self.session)
async def generate_response(self):
return await llm.chat(self.history)