- db.py: FTS5 改用 trigram 分词(中文可检索),旧 unicode61 表自动迁移回灌;search_memories 增加 LIKE 兜底(%/_ 转义、MATCH 异常防护) - conversation_compressor.py: should_compress 补齐 Token 阈值判断(原为死配置),Token 触发时按比例压缩早期消息 - ConversationCompressor 抽离至 subsystems,注入 llm_client 打破与 DeepSeekChat 循环引用;aibox.py 3517→3018 行 - 新增 21 项测试(中文检索/旧表迁移/LIKE 转义/token 估算/压缩流程/失败回退),全量 232 项通过
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
"""
|
||
subsystems - aibox 子系统模块(包)
|
||
|
||
抽离自 aibox.py 的基础设施子系统,按职责分文件。
|
||
当前包含(Wave 1):
|
||
- executors.py : CommandExecutor + SubprocessCommandExecutor
|
||
- prompt_manager.py : PromptManager(单例)
|
||
- db.py : MemoryDatabase + MemoDatabase
|
||
- skill_manager.py : SkillManager
|
||
Wave 2:
|
||
- conversation_history.py : ConversationHistory(对话历史管理)
|
||
- conversation_compressor.py : ConversationCompressor(对话压缩,注入 llm_client)
|
||
|
||
依赖方向:common <- subsystems <- aibox
|
||
不反向依赖 aibox 任何符号。
|
||
|
||
采用"重导出"策略:外部统一用 `from subsystems import MemoryDatabase`,
|
||
调用点无需关心具体子模块所在文件。
|
||
"""
|
||
|
||
from .executors import CommandExecutor, SubprocessCommandExecutor
|
||
from .prompt_manager import PromptManager
|
||
from .db import MemoryDatabase, MemoDatabase
|
||
from .skill_manager import SkillManager
|
||
from .conversation_history import ConversationHistory
|
||
from .conversation_compressor import ConversationCompressor
|
||
|
||
__all__ = [
|
||
"CommandExecutor",
|
||
"SubprocessCommandExecutor",
|
||
"PromptManager",
|
||
"MemoryDatabase",
|
||
"MemoDatabase",
|
||
"SkillManager",
|
||
"ConversationHistory",
|
||
"ConversationCompressor",
|
||
]
|