xiaozhi-sdk 0.2.4__py3-none-any.whl → 0.2.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
xiaozhi_sdk/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
- __version__ = "0.2.4"
1
+ __version__ = "0.2.5"
2
2
 
3
3
  from xiaozhi_sdk.core import XiaoZhiWebsocket # noqa
xiaozhi_sdk/mcp.py CHANGED
@@ -12,24 +12,23 @@ from xiaozhi_sdk.utils.tool_func import _get_random_music_info
12
12
 
13
13
  logger = logging.getLogger("xiaozhi_sdk")
14
14
 
15
- mcp_initialize_payload: Dict[str, Any] = {
16
- "jsonrpc": "2.0",
17
- "id": 1,
18
- "result": {
19
- "protocolVersion": "2024-11-05",
20
- "capabilities": {"tools": {}},
21
- "serverInfo": {"name": "", "version": "0.0.1"},
22
- },
23
- }
24
-
25
- mcp_tools_payload: Dict[str, Any] = {
26
- "jsonrpc": "2.0",
27
- "id": 2,
28
- "result": {"tools": []},
29
- }
30
-
31
15
 
32
16
  class McpTool(object):
17
+ mcp_initialize_payload: Dict[str, Any] = {
18
+ "jsonrpc": "2.0",
19
+ "id": 1,
20
+ "result": {
21
+ "protocolVersion": "2024-11-05",
22
+ "capabilities": {"tools": {}},
23
+ "serverInfo": {"name": "", "version": "0.0.1"},
24
+ },
25
+ }
26
+
27
+ mcp_tools_payload: Dict[str, Any] = {
28
+ "id": 2,
29
+ "jsonrpc": "2.0",
30
+ "result": {"tools": []},
31
+ }
33
32
 
34
33
  def __init__(self):
35
34
  self.session_id = ""
@@ -131,8 +130,8 @@ class McpTool(object):
131
130
  # self.explain_url = "http://82.157.143.133:8000/vision/explain"
132
131
  self.explain_token = payload["params"]["capabilities"]["vision"]["token"]
133
132
 
134
- mcp_initialize_payload["id"] = payload["id"]
135
- await self.websocket.send(self.get_mcp_json(mcp_initialize_payload))
133
+ self.mcp_initialize_payload["id"] = payload["id"]
134
+ await self.websocket.send(self.get_mcp_json(self.mcp_initialize_payload))
136
135
 
137
136
  elif method == "notifications/initialized":
138
137
  # print("\nMCP 工具初始化")
@@ -142,9 +141,9 @@ class McpTool(object):
142
141
  logger.error("[MCP] 工具加载失败")
143
142
 
144
143
  elif method == "tools/list":
145
- mcp_tools_payload["id"] = payload["id"]
146
144
  tool_name_list = []
147
145
  mcp_tool_dict = copy.deepcopy(self.mcp_tool_dict)
146
+ mcp_tool_list = []
148
147
  for _, mcp_tool in mcp_tool_dict.items():
149
148
  tool_name_list.append(mcp_tool["name"])
150
149
  tool_func = mcp_tool.pop("tool_func", None)
@@ -152,9 +151,11 @@ class McpTool(object):
152
151
  logger.error("[MCP] Tool %s has no tool_func", mcp_tool["name"])
153
152
  return
154
153
  mcp_tool.pop("is_async", None)
155
- mcp_tools_payload["result"]["tools"].append(mcp_tool)
154
+ mcp_tool_list.append(mcp_tool)
156
155
 
157
- await self.websocket.send(self.get_mcp_json(mcp_tools_payload))
156
+ self.mcp_tools_payload["id"] = payload["id"]
157
+ self.mcp_tools_payload["result"]["tools"] = mcp_tool_list
158
+ await self.websocket.send(self.get_mcp_json(self.mcp_tools_payload))
158
159
  logger.debug("[MCP] 加载成功,当前可用工具列表为:%s", tool_name_list)
159
160
 
160
161
  elif method == "tools/call":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xiaozhi-sdk
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Summary: 一个用于连接和控制小智智能设备的Python SDK,支持实时音频通信、MCP工具集成和设备管理功能。
5
5
  Author-email: dairoot <623815825@qq.com>
6
6
  License-Expression: MIT
@@ -8,19 +8,19 @@ file/opus/linux-x64-libopus.so,sha256=FmXJqkxLpDzNFOHYkmOzmsp1hP0eIS5b6x_XfOs-IQ
8
8
  file/opus/macos-arm64-libopus.dylib,sha256=H7wXwkrGwb-hesMMZGFxWb0Ri1Y4m5GWiKsd8CfOhE8,357584
9
9
  file/opus/macos-x64-libopus.dylib,sha256=MqyL_OjwSACF4Xs_-KrGbcScy4IEprr5Rlkk3ddZye8,550856
10
10
  file/opus/windows-opus.dll,sha256=kLfhioMvbJhOgNMAldpWk3DCZqC5Xd70LRbHnACvAnw,463360
11
- xiaozhi_sdk/__init__.py,sha256=Id2mMKG5QTHZk_W2nXnzQG1BpuG4QwUaMpinb6kS4T0,77
11
+ xiaozhi_sdk/__init__.py,sha256=VMDxwPy8TInmElVlOBSsiIjvXCQ7OCLzRJosuhXY8us,77
12
12
  xiaozhi_sdk/__main__.py,sha256=i0ZJdHUqAKg9vwZrK_w0TJkzdotTYTK8aUeSPcJc1ks,210
13
13
  xiaozhi_sdk/cli.py,sha256=CEpjXW-vnT8DieaK1MV0AYCG4bmK2_vpIz-9zhWHVgE,7001
14
14
  xiaozhi_sdk/config.py,sha256=h4mpMeBf2vT9qYAqCCbGVGmMemkgk98pcXP2Rh4TEFc,89
15
15
  xiaozhi_sdk/core.py,sha256=JfYH7dyKxb1ikVkam74V_SMvn07MTdBfY7u3X6OdUxk,10723
16
16
  xiaozhi_sdk/iot.py,sha256=VVAheynp1iV4GCaoPywQWpKtlyoACDLswH8yfV_JZgI,2699
17
- xiaozhi_sdk/mcp.py,sha256=TVSHrWIy7qDy8DQOjQ9EAzVZ1SFtXkSgTDYysL-dRhk,6559
17
+ xiaozhi_sdk/mcp.py,sha256=g80dijPgWQ-npx7sD4it4_kUMCTO40gIcbXoLgF1ksE,6712
18
18
  xiaozhi_sdk/opus.py,sha256=r3nnYg0ZKAJTreb_3nKgfHJh06MJiMvnNMPO1SWdoMM,2224
19
19
  xiaozhi_sdk/utils/__init__.py,sha256=XKSHWoFmuSkpwaIr308HybRzfFIXoT1Fd-eUKo_im6Y,1705
20
20
  xiaozhi_sdk/utils/mcp_tool.py,sha256=T6OIrSqcyAHQ85sduz5Klx646SoEnGD5ROBTKoX6NhE,4207
21
21
  xiaozhi_sdk/utils/tool_func.py,sha256=imwehfUlENjelYmGbGYgb6C82-ijs53XCxrtCpqrJps,3152
22
- xiaozhi_sdk-0.2.4.dist-info/licenses/LICENSE,sha256=Vwgps1iODKl43cAtME_0dawTjAzNW-O2BWiN5BHggww,1085
23
- xiaozhi_sdk-0.2.4.dist-info/METADATA,sha256=Z9KG9zhvIfBFNA5G95hFRIrEfw-dNVkEUN0fWmmDpaA,2121
24
- xiaozhi_sdk-0.2.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
25
- xiaozhi_sdk-0.2.4.dist-info/top_level.txt,sha256=nBpue4hU5Ykm5CtYPsAdxSa_yqbtZsIT_gF_EkBaJPM,12
26
- xiaozhi_sdk-0.2.4.dist-info/RECORD,,
22
+ xiaozhi_sdk-0.2.5.dist-info/licenses/LICENSE,sha256=Vwgps1iODKl43cAtME_0dawTjAzNW-O2BWiN5BHggww,1085
23
+ xiaozhi_sdk-0.2.5.dist-info/METADATA,sha256=h55NbddO9BM2IwSxhRRSJi_X40dmZHn-eItvi9Gs2bw,2121
24
+ xiaozhi_sdk-0.2.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
25
+ xiaozhi_sdk-0.2.5.dist-info/top_level.txt,sha256=nBpue4hU5Ykm5CtYPsAdxSa_yqbtZsIT_gF_EkBaJPM,12
26
+ xiaozhi_sdk-0.2.5.dist-info/RECORD,,