链载Ai

标题: 一行代码,让你的 AI 拥有永久记忆!告别昂贵的向量数据库 [打印本页]

作者: 链载Ai    时间: 昨天 22:40
标题: 一行代码,让你的 AI 拥有永久记忆!告别昂贵的向量数据库

你是否也曾苦恼,精心调教的 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?

快速上手

体验 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 (https://www.lianzai.com/) Powered by Discuz! X3.5