You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
哈喽,最近在关注 AIRI 的记忆设计,也希望探索 TriviumDB(TDB) 在这个场景中的应用,先来交流一下接入方向。
根据 Alaya 的 #879,以及已经合并的 #2748,AIRI 现在已有按角色管理的长期记忆条目和读写、遗忘工具。继续查源码后,发现:Telegram bot 已经有实际的向量召回链路,可以先从这里做一个对照实验。
桌面/Web 的角色记忆目前是条目索引加按名称读取;Telegram bot 则会生成 embedding、写入 PostgreSQL,再按相似度和时间评分找历史消息,并补上前后文。它的配套部署配置用的是 pgvecto.rs,具体召回在 findRelevantMessages() 中。这里说的是当前主分支的实现,还没有在本地把 AIRI 服务跑起来验证。
我想尝试的是,让 TDB 承担这类功能下面的存储和检索,先保留 AIRI 原来的聊天流程,通过适配器接入。第一步可以做成可选后端,方便对照和回退。
TDB 是 Apache-2.0 许可的 Rust 嵌入式数据库,提供 Node.js 绑定。比较想在 AIRI 中试的是这几件事:
.tdb。README 和 Node.js API 里有目前的能力说明。
如果这个入口有价值,后面还可以看看 Minecraft 的事件与关系记忆、图片日记或表情包检索,以及让不同客户端通过服务使用同一套记忆检索能力。这些是后续想法,还需要确定接口和数据怎么组织。
也说明一下当前的限制:TDB 尚无浏览器原生 WASM/OPFS 支持,所以不能直接用于纯浏览器离线运行;Web 客户端通过服务端访问则是另一种接法。写路径仍需统一管理,共享只读不代表多个进程可以独立写同一个库。TDB 自带的 HTTP Server 还是 nightly,若先做实验,更倾向于在 AIRI 的 Node.js 服务中使用嵌入式库。Electron 打包和原生调用的响应性也需要另行验证。
接下来想先沿 Telegram 现有流程测:使用相同的数据和 embedding,保留聊天范围过滤、时间评分、排除规则及上下文拼接,比较结果和 p50/p95、内存等开销。也会检查原查询的执行计划,确认索引使用情况。之后再单独加 BM25 和图关联,看它们对召回有没有帮助,避免把“增加了功能”和“换了数据库”的收益混在一起。
角色隔离、更新和删除同样要测。记忆提取、整合、遗忘策略和 embedding 生成仍由 AIRI 负责,TDB 不会自动补齐这些功能。
目前还没有 AIRI 场景的对照结果,所以先不放旧版 QPS 或“快几倍”的数字。后续会固定 TDB 版本、基线和运行条件,把脚本、原始结果以及没有收益的项目一起补在这帖。
All reactions