Files
TrulyMEM-TrueHumanMEM/core/client.py
root dd685485b5 docs: 重构为双语文档结构,添加人设图机制
- 拆分为 docs/(CN) 和 docs_en/(EN) 两个文件夹
- 主 README 索引对应语言文档
- 新增 persona.md (人设图机制详细说明)
- 文件重命名为英文名
2026-04-14 13:20:24 +08:00

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 update_config(self, api_key: str, base_url: str = "https://api.deepseek.com", model: str = "deepseek-chat") -> Dict:
packet = Packet(
id=self._next_id(),
type=PacketType.SET_CONFIG,
body={"api_key": api_key, "base_url": base_url, "model": model}
)
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 get_config(self) -> Dict:
packet = Packet(
id=self._next_id(),
type=PacketType.GET_CONFIG,
body={}
)
return self._server.send(packet).body
def get_tool_limits(self) -> Dict:
packet = Packet(
id=self._next_id(),
type=PacketType.GET_TOOL_LIMITS,
body={}
)
return self._server.send(packet).body
def update_tool_limits(self, **kwargs) -> Dict:
packet = Packet(
id=self._next_id(),
type=PacketType.SET_TOOL_LIMITS,
body=kwargs
)
return self._server.send(packet).body
def save_history(self, messages: list) -> None:
packet = Packet(
id=self._next_id(),
type=PacketType.SAVE_HISTORY,
body={"messages": messages}
)
self._server.send(packet)
def get_history(self) -> list:
packet = Packet(
id=self._next_id(),
type=PacketType.GET_HISTORY,
body={}
)
return self._server.send(packet).body.get("history", [])
def shutdown(self) -> None:
self._server.shutdown()