Memary 项目介绍
项目概述
Memary 是一个软件项目,旨在通过模拟人类记忆的方式,促进智能代理的能力提升。智能代理承担着类人思维的功能,这是构建通用人工智能(AGI)和帮助人类理解自身的重要一步。而记忆功能在人类任务处理过程中的关键作用需要在构建 AI 代理时予以重视。Memary 的目标是通过增强代理的记忆功能,使其在处理不同任务时更加智能和高效。
快速开始
安装 Memary
要使用 Memary,可以通过以下方式安装:
-
使用 pip 安装: 确保 Python 版本为 <= 3.11.9,运行以下命令:
pip install memary
-
本地安装:
- 创建一个 Python 虚拟环境,确保 Python 版本符合要求。
- 安装依赖:
pip install -r requirements.txt
指定使用的模型
Memary 目前支持通过 Ollama 平台安装的本地模型,例如建议使用的 Llama 3 8B/40B
、gpt-3.5-turbo
、LLaVA
或 gpt-4-vision-preview
。默认情况下,Memary 会使用本地运行的模型,开发者也可以方便地在不同模型间切换。
运行 Memary
步骤如下:
-
(可选)如果使用 Ollama 运行本地模型,请参考 Ollama 仓库 获取更多信息。
-
确保存在
.env
文件并包含必要的凭证。以下是一个示例:OPENAI_API_KEY="你的API_KEY" PERPLEXITY_API_KEY="你的API_KEY" GOOGLEMAPS_API_KEY="你的API_KEY" ALPHA_VANTAGE_API_KEY="你的API_KEY"
-
获取相关 API 凭证,如 OpenAI、FalkorDB、Neo4j、Perplexity 和 Google Maps 的 API 密钥。
-
更新用户画像和系统画像,分别在
streamlit_app/data/user_persona.txt
和streamlit_app/data/system_persona.txt
中更改。 -
(可选)对于使用 FalkorDB 的用户,可以生成多个图谱,以便在不同 ID 的代理间切换,实现无缝记忆和知识上下文管理。
-
运行以下命令启动应用:
cd streamlit_app streamlit run app.py
基本用法
通过 Python 代码展示如何使用 Memary 创建聊天代理:
from memary.agent.chat_agent import ChatAgent
chat_agent = ChatAgent(
"Personal Agent",
"data/memory_stream.json",
"data/entity_knowledge_store.json",
"data/system_persona.txt",
"data/user_persona.txt",
"data/past_chat.json",
)
增加和移除自定义工具
Memary 允许开发者为代理增加自定义工具,例如:
def multiply(a: int, b: int) -> int:
return a * b
chat_agent.add_tool({"multiply": multiply})
可以通过以下方式移除自定义工具:
chat_agent.remove_tool("multiply")
核心概念
Memary 的结构包括一个路由代理、知识图谱和记忆模块。以下是其核心概念:
- 自动生成记忆:初始化后,代理的记忆会自动更新,支持轻松的数据库合并。
- 记忆模块:追踪用户偏好,允许用户在仪表盘上分析。
- 系统改进:模仿人类记忆学习和进化的过程,并在仪表盘上显示代理的改进速度。
- 回溯记忆:追踪所有对话以便回溯代理执行状态(即将推出)。
知识图谱
Memary 使用图数据库来存储知识,通过递归和多跳检索方法将知识图谱与 LLMs 联系,以实现低延时的信息检索。
记忆模块
记忆模块由记忆流和实体知识库组成,捕捉了用户的知识广度和深度,并通过频率和时效性分析来排名实体。
新的上下文窗口
在新的上下文窗口中,Memary 根据用户的当前兴趣和知识水平调整代理的响应,包括:
- 代理响应
- 最相关的实体
- 聊天历史(经过总结以避免超出令牌限制)
许可证
Memary 在 MIT 许可证下发布,允许用户自由使用和修改软件。