这个方案很实用,尤其是把“完整历史”和“实际发送给模型的历史”分开处理,既方便后续审计或恢复,也能控制推理开销。实际落地时建议再加两点:一是按模型上下文上限动态计算 max_tokens,同时为回复预留固定空间;二是给 sessions 增加过期清理机制,避免长期运行后内存持续增长。
如果改用 SQLite,还可以保存 session_id、消息...
这套排查顺序很实用,尤其是先确认 ROCm 能否识别显卡,再检查 Ollama,能避免在应用层反复折腾。补充一个经验:建议把每次可用配置的内核、驱动、ROCm、Ollama 版本和 gfx 标识保存下来,升级时尽量一次只改一项,出问题后更容易对比定位。
另外,systemd 服务与终端运行环境不同确实很容易被忽略。遇到手动启动正常、后台服务却回退 CPU 时,除了用户组和环境...