mem0使用尝试

一.背景

        在大模型应用落地加速的当下,企业对 “智能交互 + 数据实时响应 + 成本可控” 的诉求日益强烈。传统大模型应用面临两大核心痛点:一方面,大模型存在上下文窗口限制,无法高效关联外部动态数据(如企业内部知识库、实时业务数据),导致交互响应缺乏精准性与时效性;另一方面,频繁调用大模型 API 会产生高额成本,且重复计算相同或相似请求会造成资源浪费,难以满足企业规模化应用的需求。

        同时,企业在智能客服、内部协同助手、业务咨询系统等场景中,既需要大模型具备 “理解复杂需求、生成自然语言” 的核心能力,又要求系统能快速接入私有数据、保障数据安全性,且能灵活适配不同业务场景的定制化需求(如数据更新实时生效、交互延迟低)。传统方案或依赖大模型原生能力导致数据割裂,或通过复杂的中间件集成增加架构复杂度,难以兼顾 “易用性、实时性、低成本” 三大诉求。

        Mem0 作为一款轻量级、高兼容的大模型记忆与数据增强工具,凭借其核心优势成为破解上述痛点的理想选择:它支持高效的外部数据接入与记忆管理,可突破大模型上下文窗口限制,让模型能实时关联私有数据进行精准响应;同时具备智能缓存与增量更新能力,能减少重复请求的大模型调用次数,显著降低使用成本;此外,其简洁的集成方式、良好的生态兼容性(支持主流大模型与开发框架),以及对私有数据的安全隔离支持,可快速适配企业现有技术架构,无需复杂改造。

        在此背景下,开展 Mem0 使用尝试,核心目标是验证其在实际业务场景中的适用性与价值:通过接入企业私有数据(如内部知识库、业务系统数据),测试 Mem0 能否提升大模型交互的精准度与时效性;通过对比使用前后的 API 调用成本与响应延迟,评估其降本增效潜力;通过实际集成与定制开发,验证其在现有技术架构中的兼容性与易用性。此次尝试不仅是对新型大模型增强工具的技术探索,更是为企业构建 “低成本、高精准、可扩展” 的智能交互系统寻找最优解,助力企业在大模型应用落地中突破数据割裂与成本控制的核心瓶颈,提升智能应用的业务价值与落地效率。

二.具体实现

1.创建python工程,安装mem0

pip install mem0ai

2.创建main.py,引入依赖包

import os
from openai import OpenAI
from mem0 import Memory
from config import OPENAI_API_KEY, OPENAI_API_BASE

3.定义大模型配置

openai_client = OpenAI(
    api_key=OPENAI_API_KEY,
    base_url=OPENAI_API_BASE
)

# 设置环境变量
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
os.environ["OPENAI_BASE_URL"] = OPENAI_API_BASE

4.定义memory实例(本地已经搭建好向量数据库,图数据库)

memory = Memory.from_config({
    "vector_store": {
        "provider": "qdrant",
        "config": {
            "url": "http://xxx:16333",
            "embedding_model_dims": 1536
        }
    },
    "llm": {
        "provider": "openai",
        "config": {
            "model": "gpt-3.5-turbo",
            "api_key": OPENAI_API_KEY,
            "openai_base_url": OPENAI_API_BASE
        }
    },
    "embedder": {
        "provider": "openai",
        "config": {
            "model": "text-embedding-3-small",
            "api_key": OPENAI_API_KEY,
            "openai_base_url": OPENAI_API_BASE,
            "embedding_dims": 1536
        }
    },
    "graph_store": {
        "provider": "neo4j",
        "config": {
            "url": "neo4j://localhost:7687",
            "username": "neo4j",
            "password": "xxxx"
        }
    },
    "history_db_path": "./mem0_history.db"
})

5.测试memory

    messages = [
         {"role": "user", "content": "我今晚想看电影,有什么推荐?"},
    ]

    memory.add(messages, user_id="alice", metadata={"category": "电影推荐"})
    memory.add([
        {"role": "user", "content": "我喜欢吃苹果,香蕉"},
    ], user_id="alice")

    memory.add([
        {"role": "user", "content": "我喜欢喝牛奶"},
    ], user_id="alice")

    relevant_memories = memory.search(query="我喜欢什么食物", user_id="alice", limit=2)

    print(relevant_memories)

6.结果

{
        'results': [{
                'id': 'aa9ff45c-33c6-4166-9b94-c20242a56264',
                'memory': '喜欢吃苹果,香蕉',
                'hash': '6e049298ec1641799fd1a039dee5691b',
                'metadata': None,
                'score': 0.8558062314987183,
                'created_at': '2025-08-21T01:06:40.666898-07:00',
                'updated_at': '2025-08-24T20:13:37.008707-07:00',
                'user_id': 'alice'
        }, {
                'id': 'a6c9b986-6437-4416-990c-a385ccee2f86',
                'memory': '喜欢吃香蕉',
                'hash': '553cb759b0671e815b97f3aa5df02887',
                'metadata': None,
                'score': 0.8957499265670776,
                'created_at': '2025-08-24T20:13:38.938117-07:00',
                'updated_at': None,
                'user_id': 'alice'
        }],
        'relations': []
}

7.查看neo4j可以看到记忆构建成了实体-关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路边草随风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值