mirror of
https://gitcode.com/JianFeeeee/TrulyMEM-TrueHumanMEM.git
synced 2026-09-20 17:08:18 +00:00
- 修正 PROCESS_MESSAGE 响应数据访问路径 (result['content'] -> result['data']['content']) - 添加 CLEAR_HISTORY 文档说明 (基于 SAVE_HISTORY 空消息实现) - 添加 test_clear_history 和 test_send_message_is_alias 测试用例 - 优化 BackendClient 历史相关方法的返回值处理
91 lines
2.6 KiB
Python
91 lines
2.6 KiB
Python
import threading
|
|
import time
|
|
from typing import Any, Dict
|
|
|
|
from .server import BackendServer, Packet, PacketType
|
|
|
|
|
|
class BackendClient:
|
|
|
|
def __init__(self, server: BackendServer):
|
|
self._server = server
|
|
self._counter = 0
|
|
self._lock = threading.Lock()
|
|
|
|
def _next_id(self) -> str:
|
|
with self._lock:
|
|
self._counter += 1
|
|
return f"{time.time()}_{self._counter}"
|
|
|
|
def send(self, message: str) -> Dict:
|
|
return self.process_message(message)
|
|
|
|
def process_message(self, user_input: str) -> Dict:
|
|
return self._server.process_message(user_input)
|
|
|
|
def get_settings(self) -> Dict:
|
|
packet = Packet(
|
|
id=self._next_id(),
|
|
type=PacketType.GET_SETTINGS,
|
|
body={}
|
|
)
|
|
return self._server.send(packet).body
|
|
|
|
def update_settings(self, api_config: Dict = None, tool_limits: Dict = None) -> Dict:
|
|
packet = Packet(
|
|
id=self._next_id(),
|
|
type=PacketType.SET_SETTINGS,
|
|
body={
|
|
"api_config": api_config or {},
|
|
"tool_limits": tool_limits or {}
|
|
}
|
|
)
|
|
return self._server.send(packet).body
|
|
|
|
def execute_tool(self, name: str, arguments: Dict) -> Dict:
|
|
packet = Packet(
|
|
id=self._next_id(),
|
|
type=PacketType.EXECUTE_TOOL,
|
|
body={"tool_name": name, "arguments": arguments}
|
|
)
|
|
return self._server.send(packet).body
|
|
|
|
def get_status(self) -> Dict:
|
|
packet = Packet(
|
|
id=self._next_id(),
|
|
type=PacketType.GET_STATUS,
|
|
body={}
|
|
)
|
|
return self._server.send(packet).body
|
|
|
|
def save_history(self, messages: list) -> Dict:
|
|
packet = Packet(
|
|
id=self._next_id(),
|
|
type=PacketType.SAVE_HISTORY,
|
|
body={"messages": messages}
|
|
)
|
|
response = self._server.send(packet)
|
|
return response.body.get("data", {})
|
|
|
|
def get_history(self) -> list:
|
|
packet = Packet(
|
|
id=self._next_id(),
|
|
type=PacketType.GET_HISTORY,
|
|
body={}
|
|
)
|
|
response = self._server.send(packet)
|
|
data = response.body.get("data", {})
|
|
return data.get("history", [])
|
|
|
|
def clear_history(self) -> Dict:
|
|
packet = Packet(
|
|
id=self._next_id(),
|
|
type=PacketType.SAVE_HISTORY,
|
|
body={"messages": []}
|
|
)
|
|
response = self._server.send(packet)
|
|
return response.body.get("data", {})
|
|
|
|
def shutdown(self) -> None:
|
|
self._server.shutdown()
|