mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-14 21:52:56 +08:00
Some checks failed
检查bot是否运行正常 / bot check (push) Waiting to run
Sequential Lint and Type Check / ruff-call (push) Waiting to run
Sequential Lint and Type Check / pyright-call (push) Blocked by required conditions
Release Drafter / Update Release Draft (push) Waiting to run
Force Sync to Aliyun / sync (push) Waiting to run
Update Version / update-version (push) Waiting to run
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
* ♻️ refactor(pydantic): 提取 Pydantic 兼容函数到独立模块 * ♻️ refactor!(llm): 重构LLM服务,引入现代化工具和执行器架构 🏗️ **架构变更** - 引入ToolProvider/ToolExecutable协议,取代ToolRegistry - 新增LLMToolExecutor,分离工具调用逻辑 - 新增BaseMemory抽象,解耦会话状态管理 🔄 **API重构** - 移除:analyze, analyze_multimodal, pipeline_chat - 新增:generate_structured, run_with_tools - 重构:chat, search, code变为无状态调用 🛠️ **工具系统** - 新增@function_tool装饰器 - 统一工具定义到ToolExecutable协议 - 移除MCP工具系统和mcp_tools.json --------- Co-authored-by: webjoin111 <455457521@qq.com>
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
from abc import ABC, abstractmethod
|
|
from collections import defaultdict
|
|
from typing import Any
|
|
|
|
from .types import LLMMessage
|
|
|
|
|
|
class BaseMemory(ABC):
|
|
"""
|
|
记忆系统的抽象基类。
|
|
定义了任何记忆后端都必须实现的接口。
|
|
"""
|
|
|
|
@abstractmethod
|
|
async def get_history(self, session_id: str) -> list[LLMMessage]:
|
|
"""根据会话ID获取历史记录。"""
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def add_message(self, session_id: str, message: LLMMessage) -> None:
|
|
"""向指定会话添加一条消息。"""
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def add_messages(self, session_id: str, messages: list[LLMMessage]) -> None:
|
|
"""向指定会话添加多条消息。"""
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def clear_history(self, session_id: str) -> None:
|
|
"""清空指定会话的历史记录。"""
|
|
raise NotImplementedError
|
|
|
|
|
|
class InMemoryMemory(BaseMemory):
|
|
"""
|
|
一个简单的、默认的内存记忆后端。
|
|
将历史记录存储在进程内存中的字典里。
|
|
"""
|
|
|
|
def __init__(self, **kwargs: Any):
|
|
self._history: dict[str, list[LLMMessage]] = defaultdict(list)
|
|
|
|
async def get_history(self, session_id: str) -> list[LLMMessage]:
|
|
return self._history.get(session_id, []).copy()
|
|
|
|
async def add_message(self, session_id: str, message: LLMMessage) -> None:
|
|
self._history[session_id].append(message)
|
|
|
|
async def add_messages(self, session_id: str, messages: list[LLMMessage]) -> None:
|
|
self._history[session_id].extend(messages)
|
|
|
|
async def clear_history(self, session_id: str) -> None:
|
|
if session_id in self._history:
|
|
del self._history[session_id]
|