(message: SubscribeEvent, stream: Stream)
| 25 | |
| 26 | |
| 27 | async def on_message(message: SubscribeEvent, stream: Stream) -> None: |
| 28 | if message.type == "chat_metadata": |
| 29 | log(f"<{message.type}> Chat ID: {message.chat_id}, Chat Group ID: {message.chat_group_id}") |
| 30 | elif message.type == "user_message" or message.type == "assistant_message": |
| 31 | log(f"{message.message.role}: {message.message.content}") |
| 32 | print_emotions(extract_top_n_emotions(dict(message.models.prosody and message.models.prosody.scores or {}), 3)) |
| 33 | elif message.type == "audio_output": |
| 34 | await stream.put(base64.b64decode(message.data.encode("utf-8"))) |
| 35 | elif message.type == "error": |
| 36 | raise RuntimeError(f"Received error message from Hume websocket ({message.code}): {message.message}") |
| 37 | else: |
| 38 | log(f"<{message.type}>") |
| 39 | |
| 40 | |
| 41 | async def main() -> None: |
no test coverage detected