Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库

简介: Memoripy 是一个 Python 库,用于管理 AI 应用中的上下文感知记忆,支持短期和长期存储,兼容 OpenAI 和 Ollama API。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  • 功能:Memoripy 支持短期和长期记忆管理、上下文检索、概念提取和嵌入生成、图基关联、层次聚类及记忆衰减和强化。
  • 技术原理:使用内存和 JSON 文件存储交互数据,通过自然语言处理技术将文本转换为嵌入向量,基于余弦相似度算法进行相似性检索。
  • 应用场景:适用于聊天机器人、虚拟助手、教育软件、推荐系统和健康监测等场景。

正文(附运行示例)

Memoripy 是什么

Memoripy.png

Memoripy 是一个 Python 库,为 AI 应用提供上下文感知的记忆管理。它支持短期和长期记忆存储,兼容 OpenAI 和 Ollama API。核心功能包括记忆检索、概念提取、图基关联、层次聚类及记忆衰减和强化。

Memoripy 帮助 AI 系统更好地理解和响应用户交互,提升对话的连贯性和个性化体验。通过这些功能,Memoripy 可以应用于聊天机器人、虚拟助手、教育软件、推荐系统和健康监测等多种场景。

如何运行 Memoripy

你可以使用 pip 安装 Memoripy:

pip install memoripy

以下示例展示了如何在 Python 脚本中设置和使用 Memoripy。

示例:example.py

这个示例脚本展示了 Memoripy 的主要功能,包括初始化、存储交互、检索相关记忆和生成响应。

from memoripy import MemoryManager, JSONStorage

def main():
    # 替换为你的实际 OpenAI API 密钥
    api_key = "your-key"
    if not api_key:
        raise ValueError("请设置你的 OpenAI API 密钥。")

    # 定义聊天和嵌入模型
    chat_model = "openai"            # 选择 'openai' 或 'ollama' 进行聊天
    chat_model_name = "gpt-4o-mini"  # 具体的聊天模型名称
    embedding_model = "ollama"       # 选择 'openai' 或 'ollama' 进行嵌入
    embedding_model_name = "mxbai-embed-large"  # 具体的嵌入模型名称

    # 选择存储选项
    storage_option = JSONStorage("interaction_history.json")
    # 或者使用内存存储:
    # from memoripy import InMemoryStorage
    # storage_option = InMemoryStorage()

    # 初始化 MemoryManager
    memory_manager = MemoryManager(
        api_key=api_key,
        chat_model=chat_model,
        chat_model_name=chat_model_name,
        embedding_model=embedding_model,
        embedding_model_name=embedding_model_name,
        storage=storage_option
    )

    # 新用户提示
    new_prompt = "我的名字是 Khazar"

    # 加载历史交互(用于提供上下文)
    short_term, _ = memory_manager.load_history()
    last_interactions = short_term[-5:] if len(short_term) >= 5 else short_term

    # 检索相关的历史交互,排除最后 5 条
    relevant_interactions = memory_manager.retrieve_relevant_interactions(new_prompt, exclude_last_n=5)

    # 生成响应
    response = memory_manager.generate_response(new_prompt, last_interactions, relevant_interactions)

    # 显示响应
    print(f"生成的响应:\n{response}")

    # 提取新交互的概念
    combined_text = f"{new_prompt} {response}"
    concepts = memory_manager.extract_concepts(combined_text)

    # 存储新的交互及其嵌入和概念
    new_embedding = memory_manager.get_embedding(combined_text)
    memory_manager.add_interaction(new_prompt, response, new_embedding, concepts)

if __name__ == "__main__":
    main()

类和模块

  • MemoryManager:管理记忆交互,检索相关信息,并基于过去的交互生成响应。
  • MemoryStore:存储和组织在短期和长期记忆中的交互,支持基于相关性的聚类和检索。
  • InMemoryStorage 和 JSONStorage:分别将记忆存储在内存数据结构或 JSON 文件中。
  • BaseStorage:定义存储方法的抽象基类。

核心功能

  1. 初始化记忆:从选定的存储中加载先前的交互并初始化记忆。
  2. 添加交互:存储新的交互及其嵌入、概念、提示和输出。
  3. 检索相关交互:基于查询使用余弦相似度、衰减因子和传播激活搜索过去的交互。
  4. 生成响应:结合当前提示和检索到的交互生成情境相关的响应。
  5. 衰减和强化:对未使用的记忆增加衰减,对频繁访问的记忆进行强化。

依赖项

Memoripy 依赖于以下几个库,这些库将通过 pip install memoripy 自动安装:

  • openai
  • faiss-cpu
  • numpy
  • networkx
  • scikit-learn
  • langchain
  • ollama

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
7月前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
本文介绍如何在Spring AI中自定义Advisor实现日志记录、结构化输出、对话记忆持久化及多模态开发,结合阿里云灵积模型Qwen-Plus,提升AI应用的可维护性与功能性。
1699 125
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
|
7月前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
1805 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
7月前
|
存储 人工智能 搜索推荐
一种专为AI代理设计的内存层,能够在交互过程中记忆、学习和进化
Mem0 是专为 AI 代理设计的内存层,支持记忆、学习与进化。提供多种记忆类型,可快速集成,适用于开源与托管场景,助力 AI 代理高效交互与成长。
760 123
一种专为AI代理设计的内存层,能够在交互过程中记忆、学习和进化
|
7月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
707 0
|
6月前
|
存储 人工智能 搜索推荐
LangGraph 记忆系统实战:反馈循环 + 动态 Prompt 让 AI 持续学习
本文介绍基于LangGraph构建的双层记忆系统,通过短期与长期记忆协同,实现AI代理的持续学习。短期记忆管理会话内上下文,长期记忆跨会话存储用户偏好与决策,结合人机协作反馈循环,动态更新提示词,使代理具备个性化响应与行为进化能力。
1309 10
LangGraph 记忆系统实战:反馈循环 + 动态 Prompt 让 AI 持续学习
|
6月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
679 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
6月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
538 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
7月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
894 7
|
7月前
|
机器学习/深度学习 算法 安全
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
591 6
|
6月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
1682 73

热门文章

最新文章

推荐镜像

更多