Graphiti 驱动着 Zep 的 AI 智能体记忆核心。
通过 Graphiti,我们证明了:Zep 是当前智能体记忆领域的最先进方案。
? 阅读我们的论文:Zep:面向智能体记忆的时间知识图架构[2]
我们非常激动地将 Graphiti 开源,因为我们相信它的潜力远远超越了 AI 记忆应用。
传统的 RAG 方法通常依赖批量处理和静态数据摘要,因此在处理经常变化的数据时效率低下。
Graphiti 针对这一挑战,带来了以下优势:
•实时增量更新
新数据片段能够即时整合,无需批量重计算。•双时间数据模型
明确记录事件的发生时间和接收时间,支持精准的时点查询。•高效的混合检索
结合了语义嵌入、关键词检索(BM25)和图遍历,实现了低延迟查询,且无需依赖大型语言模型(LLM)摘要。•自定义实体定义
通过直观简单的 Pydantic 模型,开发者可以灵活创建本体论和自定义实体。•优异的可扩展性
支持并行处理,能够高效管理大规模数据集,适用于企业级应用场景。
Graphiti 专门为应对动态和频繁更新的数据集挑战而设计,特别适用于需要实时交互与精确历史查询的应用场景。
•Python 3.10 或更高版本•Neo4j 5.26 或更高版本(用作嵌入存储后端)•OpenAI API 密钥(用于 LLM 推理与嵌入生成)
重要提示
Graphiti 在支持结构化输出的 LLM 服务(如 OpenAI 和 Gemini)上效果最佳。
使用其他服务可能导致输出模式错误或数据导入失败,尤其是在使用小型模型时问题更为明显。
•Google Gemini、Anthropic 或 Groq 的 API 密钥(用于接入其他 LLM 提供商)
小提示
安装 Neo4j 最简单的方式是使用 Neo4j Desktop。
它提供了一个用户友好的界面,便于管理 Neo4j 实例和数据库。
pipinstallgraphiti-core
或者
poetryaddgraphiti-core
你也可以通过安装可选的 LLM 提供商支持来扩展功能:
# 安装并支持 Anthropicpipinstall graphiti-core[anthropic]# 安装并支持 Groqpip install graphiti-core[groq]# 安装并支持 Google Geminipip install graphiti-core[google-genai]# 同时安装多个提供商支持pip install graphiti-core[anthropic,groq,google-genai]
重要提示
Graphiti 使用 OpenAI 进行 LLM 推理和嵌入生成。请确保你的环境中已设置
OPENAI_API_KEY。
同时也支持 Anthropic 和 Groq 的 LLM 推理。其他 LLM 提供商可通过兼容 OpenAI API 的方式接入。
完整的示例请参考examples目录中的Quickstart Example[3]。
该快速入门示例演示了以下内容:
•连接到 Neo4j 数据库•初始化 Graphiti 的索引与约束•将情节(包括文本和结构化 JSON)添加到图中•使用混合检索方法搜索关系(边)•通过图距离对搜索结果进行重新排序•使用预定义的搜索配方搜索节点
示例中包含了每项功能的详细说明,并提供了一个完整的 README,包含环境搭建指南和后续步骤。
mcp_server目录包含了 Graphiti 的**模型上下文协议(MCP)**服务器实现。
通过 MCP 协议,AI 助手可以与 Graphiti 的知识图谱能力进行交互。
•情节管理(添加、检索、删除)•实体管理与关系处理•支持语义与混合搜索•分组管理,用于组织相关数据•图谱维护操作
MCP 服务器可以通过 Docker 与 Neo4j 一起部署,
这使得将 Graphiti 集成到你的 AI 助手工作流中变得非常简单。
详细的安装说明和使用示例,请参阅MCP server目录下的 README 文档。
server目录包含了一个用于与 Graphiti API 交互的 API 服务,
该服务基于 FastAPI 构建。
更多信息请参考server目录下的 README 文档。
除了 Neo4j 和 OpenAI 兼容的认证信息外,Graphiti 还支持一些可选的环境变量。
如果你使用的是我们支持的模型(如 Anthropic 或 Voyage 模型),那么必须设置对应的环境变量。
•USE_PARALLEL_RUNTIME是一个可选的布尔类型环境变量。
如果希望在某些搜索查询中启用 Neo4j 的并行运行时特性,可以将其设置为true。
需要注意的是,该特性不适用于 Neo4j Community 版本或较小规模的 AuraDB 实例,因此默认是关闭状态。
Graphiti 支持在 Azure OpenAI 平台上进行 LLM 推理和嵌入生成。
如果你希望使用 Azure OpenAI,需要为 LLM 客户端和嵌入器分别配置你的 Azure OpenAI 认证信息。
fromopenai importAsyncAzureOpenAIfromgraphiti_core importGraphitifromgraphiti_core.llm_client importOpenAIClientfromgraphiti_core.embedder.openai importOpenAIEmbedder,OpenAIEmbedderConfigfromgraphiti_core.cross_encoder.openai_reranker_client importOpenAIRerankerClient# Azure OpenAI 配置api_key ="<你的 API 密钥>"api_version ="<你的 API 版本>"azure_endpoint ="<你的 Azure 终端地址>"# 创建 Azure OpenAI 客户端(用于 LLM)azure_openai_client =AsyncAzureOpenAI(api_key=api_key,api_version=api_version,azure_endpoint=azure_endpoint)# 使用 Azure OpenAI 客户端初始化 Graphitigraphiti =Graphiti("bolt://localhost:7687",# Neo4j 数据库连接地址"neo4j",# Neo4j 用户名"password",# Neo4j 密码llm_client=OpenAIClient(client=azure_openai_client),embedder=OpenAIEmbedder(config=OpenAIEmbedderConfig(embedding_model="text-embedding-3-small"# 使用你在 Azure 部署的嵌入模型名称),client=azure_openai_client),# (可选)配置 Azure OpenAI 用于交叉编码器cross_encoder=OpenAIRerankerClient(client=azure_openai_client))# 现在,你可以使用基于 Azure OpenAI 的 Graphiti 了
请确保将示例代码中的占位符(如<你的 API 密钥>、<你的 API 版本>、<你的 Azure 终端地址>)替换为你实际的 Azure OpenAI 认证信息, 并指定正确的嵌入模型名称,该模型必须已经在你的 Azure OpenAI 服务中部署。
Graphiti 支持使用 Google 的 Gemini 模型进行 LLM 推理与嵌入生成。
要使用 Gemini,需要分别为 LLM 客户端和嵌入器配置你的 Google API 密钥。
安装 Graphiti:
poetryadd"graphiti-core[google-genai]"#oruvadd"graphiti-core[google-genai]"
fromgraphiti_core importGraphitifromgraphiti_core.llm_client.gemini_client importGeminiClient,LLMConfigfromgraphiti_core.embedder.gemini importGeminiEmbedder,GeminiEmbedderConfig# Google API key configurationapi_key ="<your-google-api-key>"# Initialize Graphiti with Gemini clientsgraphiti =Graphiti("bolt://localhost:7687","neo4j","password",llm_client=GeminiClient(config=LLMConfig(api_key=api_key,model="gemini-2.0-flash")),embedder=GeminiEmbedder(config=GeminiEmbedderConfig(api_key=api_key,embedding_model="embedding-001")))# Now you can use Graphiti with Google Gemini
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |