2025-02-02 23:01:14 +08:00
|
|
|
import json
|
2025-03-23 22:02:13 +08:00
|
|
|
import asyncio
|
2025-06-26 09:28:29 +08:00
|
|
|
from core.providers.tools.device_mcp import (
|
2025-06-01 02:26:19 +08:00
|
|
|
MCPClient,
|
|
|
|
|
send_mcp_initialize_message,
|
|
|
|
|
send_mcp_tools_list_request,
|
|
|
|
|
)
|
2025-02-02 23:01:14 +08:00
|
|
|
|
2025-04-12 17:36:04 +08:00
|
|
|
TAG = __name__
|
2025-02-02 23:01:14 +08:00
|
|
|
|
|
|
|
|
|
2025-05-06 14:57:29 +08:00
|
|
|
async def handleHelloMessage(conn, msg_json):
|
|
|
|
|
"""处理hello消息"""
|
|
|
|
|
audio_params = msg_json.get("audio_params")
|
|
|
|
|
if audio_params:
|
|
|
|
|
format = audio_params.get("format")
|
2025-05-08 11:31:12 +08:00
|
|
|
conn.logger.bind(tag=TAG).info(f"客户端音频格式: {format}")
|
2025-05-06 14:57:29 +08:00
|
|
|
conn.audio_format = format
|
2025-05-08 11:11:28 +08:00
|
|
|
conn.welcome_msg["audio_params"] = audio_params
|
2025-05-28 11:49:18 +08:00
|
|
|
features = msg_json.get("features")
|
|
|
|
|
if features:
|
|
|
|
|
conn.logger.bind(tag=TAG).info(f"客户端特性: {features}")
|
|
|
|
|
conn.features = features
|
2025-05-28 18:32:15 +08:00
|
|
|
if features.get("mcp"):
|
|
|
|
|
conn.logger.bind(tag=TAG).info("客户端支持MCP")
|
2025-05-29 13:42:31 +08:00
|
|
|
conn.mcp_client = MCPClient()
|
2025-05-28 18:32:15 +08:00
|
|
|
# 发送初始化
|
2025-05-29 13:42:31 +08:00
|
|
|
asyncio.create_task(send_mcp_initialize_message(conn))
|
2025-05-28 18:32:15 +08:00
|
|
|
# 发送mcp消息,获取tools列表
|
2025-05-29 13:42:31 +08:00
|
|
|
asyncio.create_task(send_mcp_tools_list_request(conn))
|
2025-05-06 14:57:29 +08:00
|
|
|
|
2025-02-02 23:01:14 +08:00
|
|
|
await conn.websocket.send(json.dumps(conn.welcome_msg))
|