❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 功能:Memoripy 支持短期和长期记忆管理、上下文检索、概念提取和嵌入生成、图基关联、层次聚类及记忆衰减和强化。
- 技术原理:使用内存和 JSON 文件存储交互数据,通过自然语言处理技术将文本转换为嵌入向量,基于余弦相似度算法进行相似性检索。
- 应用场景:适用于聊天机器人、虚拟助手、教育软件、推荐系统和健康监测等场景。
正文(附运行示例)
Memoripy 是什么
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:定义存储方法的抽象基类。
核心功能
- 初始化记忆:从选定的存储中加载先前的交互并初始化记忆。
- 添加交互:存储新的交互及其嵌入、概念、提示和输出。
- 检索相关交互:基于查询使用余弦相似度、衰减因子和传播激活搜索过去的交互。
- 生成响应:结合当前提示和检索到的交互生成情境相关的响应。
- 衰减和强化:对未使用的记忆增加衰减,对频繁访问的记忆进行强化。
依赖项
Memoripy 依赖于以下几个库,这些库将通过 pip install memoripy
自动安装:
openai
faiss-cpu
numpy
networkx
scikit-learn
langchain
ollama
资源
- GitHub 仓库:https://github.com/caspianmoon/memoripy
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦