返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

一行代码,让你的 AI 拥有永久记忆!告别昂贵的向量数据库

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 22:40 |阅读模式 打印 上一主题 下一主题

你是否也曾苦恼,精心调教的 AI 助手,转头就把你们的对话忘得一干二净?每开启一次新的会话,都得把前情提要再说一遍,仿佛在和一个只有七秒记忆的鱼对话。

这背后的原因其实很简单:大多数大型语言模型(LLM)天生是无状态的,它们不会主动保留过去的交互信息。为了解决这个问题,开发者们通常会引入向量数据库来存储对话历史和上下文。但这也带来了新的挑战:技术栈更复杂了,成本也上去了,还可能被特定的服务商“套牢”。

今天,我们要介绍一个名为 Memori 的开源项目,它为 AI 的“失忆症”提供了一剂优雅且经济的良方。

Memori LabsingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;display: block;max-width: 100%;margin: 0.1em auto 0.5em;border-radius: 4px;height: auto !important;" title="null" src="https://api.ibos.cn/v4/weapparticle/accesswximg?aid=128450&url=aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy9ORVdFb3l2c3Y1QTFPcWhjVTN5eTBJYWhhZUZEbTFUUHZBYmM4a2pFcVJCMkRNZkppYnNHaWE5ZHRmY3ZUaWNnMFdxVG1NVlcxZlpLRE1KSTQ3S2hJZ0xWUS82NDA/ZnJvbT1hcHBtc2cmYW1w;wx_fmt=png"/>

Memori 是什么?

Memori 是一个为 LLM、AI Agent 和多智能体系统设计的开源记忆引擎。它的核心理念是:用一行代码,为你熟悉的标准 SQL 数据库(如 SQLite, PostgreSQL, MySQL)赋予 AI 记忆能力。

没错,你没看错,只需要一行代码:memori.enable()

为什么选择 Memori?

  • 一键集成:无论是 OpenAI、Anthropic、LangChain 还是其他 LLM 框架,都能无缝接入。
  • 原生 SQL 存储:将记忆数据存储在你完全控制的 SQL 数据库中,数据可移植、可查询、可审计。
  • 节省 80-90% 成本:不再需要昂贵且复杂的向量数据库。
  • 零厂商锁定:你可以随时将记忆数据导出为 SQLite 文件,轻松迁移。
  • 智能记忆:自动提取实体、映射关系,并根据上下文智能判断记忆的优先级。

快速上手

体验 Memori 的魔力有多简单?我们来看一段代码。

首先,安装 SDK:

pipinstallmemorisdk

然后,在你的代码中加入 Memori:

frommemoriimportMemori
fromopenaiimportOpenAI

#初始化并启用Memori
memori=Memori(conscious_ingest=True)
memori.enable()

client=OpenAI()

#第一次对话
response=client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role":"user","content":"我正在开发一个FastAPI项目"}]
)

#过了一段时间,开启新的对话
response=client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role":"user","content":"帮我为这个项目添加用户认证功能"}]
)
#此时,LLM已经知道你在谈论的是之前的FastAPI项目

就是这么简单!在第二次对话中,你无需重复提及项目背景,Memori 已经悄悄地将上下文信息注入,让 LLM “记起”了你们之前的谈话内容。

工作原理

Memori 的实现方式非常巧妙,它通过“拦截” LLM 的调用请求来工作。


整个流程可以分为两部分:

  1. 1. 调用前(上下文注入):当你的应用调用 LLM 时,Memori 会先拦截这个请求。它会根据当前对话,从你的 SQL 数据库中检索最相关的记忆片段,然后将这些上下文信息“注入”到发送给 LLM 的消息中。
  2. 2. 调用后(记忆存储):当 LLM 返回响应后,Memori 再次拦截。它的记忆代理(Memory Agent)会从这次交互中提取关键实体、事实、偏好等信息,进行分类和结构化,然后存入 SQL 数据库,以备将来使用。

此外,Memori 还有一个后台的“意识代理”(Conscious Agent),它会定期分析长期记忆,将重要的信息提升到短期工作记忆中,进一步优化检索效率。

强大的兼容性

Memori 的设计初衷就是为了让开发者能够轻松地将其集成到现有工作流中。

数据库支持

你可以使用任何你熟悉的 SQL 数据库,只需提供一个连接字符串即可。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;border-width: 1px;border-style: solid;border-color: rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);word-break: keep-all;background: rgba(0, 0, 0, 0.05);">数据库ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;border-width: 1px;border-style: solid;border-color: rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);word-break: keep-all;background: rgba(0, 0, 0, 0.05);">连接字符串示例
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;border-width: 1px;border-style: solid;border-color: rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);word-break: keep-all;">SQLiteingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;border-width: 1px;border-style: solid;border-color: rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);word-break: keep-all;">sqlite:///my_memory.db
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;border-width: 1px;border-style: solid;border-color: rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);word-break: keep-all;">PostgreSQLingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;border-width: 1px;border-style: solid;border-color: rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);word-break: keep-all;">postgresql://user:pass@localhost/memori
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;border-width: 1px;border-style: solid;border-color: rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);word-break: keep-all;">MySQLingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;border-width: 1px;border-style: solid;border-color: rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);word-break: keep-all;">mysql://user:pass@localhost/memori
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;border-width: 1px;border-style: solid;border-color: rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);word-break: keep-all;">Neonpostgresql://user:pass@ep-*.neon.tech/memori
Supabasepostgresql://postgres:pass@db.*.supabase.co/postgres

LLM 框架支持

得益于 LiteLLM 的回调系统,Memori 可以支持几乎所有的 LLM 框架。

框架状态
OpenAI✓ 原生支持
Anthropic✓ 原生支持
LiteLLM✓ 原生支持
LangChain✓ 支持
Azure OpenAI✓ 支持
100+ 模型✓ 支持

总结

对于正在构建 AI 应用的开发者来说,记忆管理是一个无法回避的核心问题。Memori 项目提供了一种全新的解决思路,它通过拥抱开发者最熟悉的 SQL 技术,极大地降低了实现持久化记忆的门槛和成本。

它不仅让 AI “记住”了过去,更让开发者能够完全掌控自己的数据,避免了被特定技术或服务锁定。如果你也想让你的 AI 应用变得更聪明、更善解人意,那么 Memori 绝对是一个值得尝试的开源利器。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ