feat: add config/history management to core layer

- Add GET_CONFIG, SET_CONFIG, GET_HISTORY, SAVE_HISTORY to BackendServer
- Update BackendClient with get_config, get_message_history, save_message_history
- All API key and message history now stored in core layer
This commit is contained in:
root
2026-04-12 18:22:07 +08:00
parent c8a69b3926
commit 04a0d94796
43 changed files with 123 additions and 4306 deletions

View File

@ -1,7 +1,7 @@
import threading
from typing import Any, Dict
from .server import BackendServer
from .server import BackendServer, MessageType
class BackendClient:
@ -20,8 +20,42 @@ class BackendClient:
self._request_counter += 1
return self._server.execute_tool(tool_name, arguments, timeout)
def update_config(self, api_key: str, base_url: str = "https://api.deepseek.com") -> None:
self._server.update_config(api_key, base_url)
def update_config(self, api_key: str, base_url: str = "https://api.deepseek.com") -> Dict[str, Any]:
return self._send_request(MessageType.SET_CONFIG, {"api_key": api_key, "base_url": base_url})
def get_config(self) -> Dict[str, str]:
result = self._send_request(MessageType.GET_CONFIG, {})
return result.get("data", {"api_key": "", "base_url": "https://api.deepseek.com"})
def get_message_history(self) -> list:
result = self._send_request(MessageType.GET_HISTORY, {})
return result.get("data", {}).get("history", [])
def save_message_history(self, messages: list) -> None:
self._send_request(MessageType.SAVE_HISTORY, {"messages": messages})
def _send_request(self, message_type: MessageType, payload: Dict[str, Any]) -> Dict[str, Any]:
import queue
request_id = f"{id(self)}"
response_queue = queue.Queue()
from .server import BackendRequest
request = BackendRequest(
request_id=request_id,
message_type=message_type,
payload=payload,
response_queue=response_queue
)
self._server._request_queue.put(request)
try:
response = response_queue.get(timeout=5.0)
if not response.success:
raise Exception(response.error)
return {"success": True, "data": response.data}
except queue.Empty:
return {"success": False, "error": "timeout"}
def shutdown(self) -> None:
self._server.shutdown()