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

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
简介: 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
AI 代码解读

以下示例展示了如何在 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()
AI 代码解读

类和模块

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

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

目录
打赏
0
6
6
0
309
分享
相关文章
Collaborative Gym:斯坦福人机协作框架开源!异步交互+三方感知,让你的AI学会主动补位
介绍Collaborative Gym,一个专注于人机协作的框架,支持异步交互和多种任务环境。
48 14
Collaborative Gym:斯坦福人机协作框架开源!异步交互+三方感知,让你的AI学会主动补位
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
34 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
939 14
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
Eino:字节跳动开源基于Golang的AI应用开发框架,组件化设计助力构建AI应用
Eino 是字节跳动开源的大模型应用开发框架,帮助开发者高效构建基于大模型的 AI 应用。支持组件化设计、流式处理和可视化开发工具。
144 27
通义灵码AI程序员实战:从零构建Python记账本应用的开发全解析
本文通过开发Python记账本应用的真实案例,展示通义灵码AI程序员2.0的代码生成能力。从需求分析到功能实现、界面升级及测试覆盖,AI程序员展现了需求转化、技术选型、测试驱动和代码可维护性等核心价值。文中详细解析了如何使用Python标准库和tkinter库实现命令行及图形化界面,并生成单元测试用例,确保应用的稳定性和可维护性。尽管AI工具显著提升开发效率,但用户仍需具备编程基础以进行调试和优化。
70 9
Airweave:快速集成应用数据打造AI知识库的开源平台,支持多源整合和自动同步数据
Airweave 是一个开源工具,能够将应用程序的数据同步到图数据库和向量数据库中,实现智能代理检索。它支持无代码集成、多租户支持和自动同步等功能。
72 14
阿里云携手DeepSeek,AI应用落地五折起!
近年来,人工智能技术飞速发展,越来越多的企业希望借助AI的力量实现数字化转型,提升效率和竞争力。然而,AI应用的开发和落地并非易事,企业往往面临着技术门槛高、成本投入大、落地效果难以保障等挑战。
28 1
Cursor 为低代码加速,AI 生成应用新体验!
通过连接 Cursor,打破了传统低代码开发的局限,我们无需编写一行代码,甚至连拖拉拽这种操作都可以抛诸脑后。只需通过与 Cursor 进行自然语言对话,用清晰的文字描述自己的应用需求,就能轻松创建出一个完整的低代码应用。
639 8
PolarDB 开源基础教程系列 7.4 应用实践之 AI大模型外脑
PolarDB向量数据库插件通过实现通义大模型AI的外脑,解决了通用大模型无法触达私有知识库和产生幻觉的问题。该插件允许用户将新发现的知识和未训练的私有知识分段并转换为向量,存储在向量数据库中,并创建索引以加速相似搜索。当用户提问时,系统将问题向量化并与数据库中的向量进行匹配,找到最相似的内容发送给大模型,从而提高回答的准确性和相关性。此外,PolarDB支持多种编程语言接口,如Python,使数据库具备内置AI能力,极大提升了数据处理和分析的效率。
38 4
现在最火的AI是怎么应用到体育行业的
AI在体育行业的应用日益广泛,涵盖数据分析、伤病预防、观众体验、裁判辅助等多个领域。通过传感器和可穿戴设备,AI分析运动员表现,提供个性化训练建议;预测伤病风险,制定康复方案;优化比赛预测和博彩指数;提升观众的个性化内容推荐和沉浸式观赛体验;辅助裁判判罚,提高准确性;发掘青训人才,优化训练计划;智能管理场馆运营和票务;自动生成媒体内容,提供实时翻译;支持电竞分析和虚拟体育赛事;并为运动员提供个性化营养和健康管理方案。未来,随着技术进步,AI的应用将更加深入和多样化。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等