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

Written by 30115776@qq.com

随着 AI 应用越来越广泛,如何管理和优化记忆成为提升用户体验和系统智能的关键因素。Memoripy,作为一款 Python 库,专为 AI 应用设计,提供了一个强大的上下文感知记忆管理解决方案。它不仅支持短期和长期记忆存储,还能够进行概念提取、图基关联、层次聚类等操作,使得 AI 系统能够更好地理解和响应用户交互。

本文将深入介绍 Memoripy 的功能、技术原理及应用场景,并提供详细的安装和使用示例,帮助开发者更轻松地将该库应用到自己的项目中。

🚀 快速阅读

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

Memoripy 是什么

Memoripy 是一个专为 AI 应用设计的 Python 库,旨在为系统提供上下文感知的记忆管理能力。该库通过存储并管理用户交互中的记忆,帮助 AI 系统在多轮对话或长期使用中,持续提供个性化和智能的响应。

Memoripy 的核心功能包括:

  • 短期和长期记忆存储:Memoripy 支持将交互数据存储在内存或 JSON 文件中,并根据记忆的重要性进行衰减和强化。
  • 概念提取与嵌入生成:通过自然语言处理技术,Memoripy 能够从文本中提取关键信息,并将其转换为嵌入向量,支持基于余弦相似度的相似性检索。
  • 记忆衰减与强化:通过自定义的记忆衰减和强化机制,Memoripy 可以管理记忆的生命周期,确保最相关的记忆得到强化,而不再使用的记忆逐步衰减。

Memoripy 的这些功能使得它非常适合用于需要上下文理解的 AI 应用场景,如聊天机器人、虚拟助手、教育软件等。

如何运行 Memoripy

你可以通过 pip 安装 Memoripy:

pip install memoripy

以下是一个示例脚本,展示了如何在 Python 脚本中设置和使用 Memoripy:

示例:example.py

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()

类和模块

Memoripy 中包含了多个类和模块,帮助用户高效管理记忆和交互。

  • 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 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

总结

Memoripy 提供了一个非常实用的记忆管理框架,能够使 AI 系统在多轮对话中保持上下文的连贯性,并能根据历史交互生成更为个性化的响应。无论是开发聊天机器人、虚拟助手,还是教育软件、健康监测等,Memoripy 都能提供强大的技术支持,帮助开发者轻松实现上下文感知的记忆管理功能。

30115776@qq.com

Pretium lorem primis lectus donec tortor fusce morbi risus curae. Dignissim lacus massa mauris enim mattis magnis senectus montes mollis taciti accumsan semper nullam dapibus netus blandit nibh aliquam metus morbi cras magna vivamus per risus.

Perplexica:开源 AI 搜索引擎,支持多种搜索模式、实时信息更新

Documind:开源 AI 文档处理工具,将 PDF 转换为图像提取结构化数据

发表评论