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

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

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


🚀 快速阅读

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

正文(附运行示例)

Memoripy 是什么

在这里插入图片描述

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值