这个方案很实用,尤其是把“完整历史”和“实际发送给模型的历史”分开处理,既方便后续审计或恢复,也能控制推理开销。实际落地时建议再加两点:一是按模型上下文上限动态计算 max_tokens,同时为回复预留固定空间;二是给 sessions 增加过期清理机制,避免长期运行后内存持续增长。
如果改用 SQLite,还可以保存 session_id、消息...