fix(teamsbot): SSE rate-limit 60/min, TTS message format for bot protocol

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
patrick-motsch 2026-02-15 15:19:31 +01:00
parent 729c6355b5
commit 02dedc972d
2 changed files with 8 additions and 4 deletions

View file

@ -242,7 +242,7 @@ async def getSession(
@router.get("/{instanceId}/sessions/{sessionId}/stream")
@limiter.limit("10/minute")
@limiter.limit("60/minute")
async def streamSession(
request: Request,
instanceId: str,

View file

@ -497,10 +497,14 @@ class TeamsbotService:
audioContent = ttsResult.get("audioContent")
if audioContent and websocket:
# Send TTS audio to bot via WebSocket
# Bot expects: {type: "playAudio", sessionId, audio: {data, format}}
await websocket.send_text(json.dumps({
"type": "tts_audio",
"data": base64.b64encode(audioContent if isinstance(audioContent, bytes) else audioContent.encode()).decode(),
"format": "mp3",
"type": "playAudio",
"sessionId": sessionId,
"audio": {
"data": base64.b64encode(audioContent if isinstance(audioContent, bytes) else audioContent.encode()).decode(),
"format": "mp3",
},
}))
elif audioContent and not websocket:
logger.info(f"TTS audio generated for session {sessionId} (HTTP mode - no WebSocket for playback)")