From 659c470eba542383987aad227b7f918100f131fa Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期五, 11 九月 2026 15:09:05 +0800
Subject: [PATCH] 小智终端 5种 场景模式 OK
---
xiaozhi-esp32-server/main/xiaozhi-server/config/manage_api_client.py | 46 +++++++++++++++++++++++++++++++++++-----------
1 files changed, 35 insertions(+), 11 deletions(-)
diff --git a/xiaozhi-esp32-server/main/xiaozhi-server/config/manage_api_client.py b/xiaozhi-esp32-server/main/xiaozhi-server/config/manage_api_client.py
index 8eb2da2..002c5cb 100644
--- a/xiaozhi-esp32-server/main/xiaozhi-server/config/manage_api_client.py
+++ b/xiaozhi-esp32-server/main/xiaozhi-server/config/manage_api_client.py
@@ -221,31 +221,55 @@
async def report(
- mac_address: str, session_id: str, chat_type: int, content: str, audio, report_time
+ mac_address: str, session_id: str, chat_type: int, content: str, audio, report_time,
+ task_instance_id: str = None, step_index: int = None,
) -> Optional[Dict]:
"""寮傛鑱婂ぉ璁板綍涓婃姤"""
if not content or not ManageApiClient._instance:
return None
try:
+ payload = {
+ "macAddress": mac_address,
+ "sessionId": session_id,
+ "chatType": chat_type,
+ "content": content,
+ "reportTime": report_time,
+ "audioBase64": (
+ base64.b64encode(audio).decode("utf-8") if audio else None
+ ),
+ }
+ if task_instance_id:
+ payload["taskInstanceId"] = task_instance_id
+ if step_index is not None:
+ payload["stepIndex"] = step_index
return await ManageApiClient._instance._execute_async_request(
"POST",
f"/agent/chat-history/report",
- json={
- "macAddress": mac_address,
- "sessionId": session_id,
- "chatType": chat_type,
- "content": content,
- "reportTime": report_time,
- "audioBase64": (
- base64.b64encode(audio).decode("utf-8") if audio else None
- ),
- },
+ json=payload,
)
except Exception as e:
print(f"TTS涓婃姤澶辫触: {e}")
return None
+async def upsert_task_instance(payload: Dict) -> Optional[Dict]:
+ """涓婃姤 TaskSession 鍏ㄦ枃銆傚け璐ヨ繑鍥� None锛屼笉鎶涚粰璇煶鐑矾寰勩�傛湭閰嶇疆绠$悊绔涓烘垚鍔熴��"""
+ if not payload or not ManageApiClient._instance:
+ return {"skipped": True}
+ instance_id = payload.get("task_session_id") or ""
+ if not instance_id:
+ return {"skipped": True}
+ try:
+ return await ManageApiClient._instance._async_request(
+ "PUT",
+ f"/task/instance/{instance_id}",
+ json=payload,
+ )
+ except Exception as e:
+ print(f"TaskInstance 涓婃姤澶辫触: {e}")
+ return None
+
+
async def lookup_address_book(caller_mac: str, nickname: str) -> Optional[Dict]:
"""鏍规嵁鏄电О鏌ユ壘鐩爣璁惧"""
if not ManageApiClient._instance:
--
Gitblit v1.9.1