|
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;border-left: none;border-radius: 4px;background: rgba(27, 31, 35, 0.05);"> ⭐ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;font-weight: bold;">小贴士 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;">查看Graphiti的新MCP服务器[1]!为Claude、Cursor和其他MCP客户端提供强大的基于知识图谱的记忆功能。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.2em;display: table;border-bottom: 1px solid rgb(248, 57, 41);">Graphiti简介ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;">Graphiti是一个构建和查询时间感知知识图谱的框架,专门为在动态环境中运行的AI代理量身定制。与传统的检索增强生成(RAG)方法不同,Graphiti不断将用户交互、结构化和非结构化的企业数据以及外部信息整合到一个连贯的、可查询的图谱中。该框架支持增量数据更新、高效检索和精确的历史查询,而无需重新计算整个图谱,使其非常适合开发交互式、上下文感知的AI应用。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;">使用Graphiti,您可以:ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;list-style: circle;">•集成并维护动态的用户交互和业务数据。•促进基于状态的推理和任务自动化。•使用语义、关键词和基于图谱的搜索方法查询复杂且不断发展的数据。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;list-style: circle;"> ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;">知识图谱是一个由互联事实构成的网络,例如“Kendra喜欢Adidas鞋子”。每个事实都是一个由两个实体或节点(“Kendra”,“Adidas鞋子”)以及它们的关系或边(“喜欢”)组成的“三元组”。知识图谱在信息检索中已经得到了广泛的探索。Graphiti的独特之处在于,它能够在处理变化关系并保持历史上下文的同时,自动构建一个知识图谱。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.2em;display: table;border-bottom: 1px solid rgb(248, 57, 41);">Graphiti与Zep记忆Graphiti为Zep的AI代理记忆层提供核心支持。 通过使用Graphiti,我们证明了Zep是AI代理记忆领域的最先进技术[2]。 阅读我们的论文:Zep: 一种用于代理记忆的时间知识图谱架构[3]。 我们很高兴开源Graphiti,并相信它的潜力远超AI记忆应用。 Agent Memory" class="rich_pages wxw-img" data-imgfileid="100000766" data-type="png" style="height: auto !important;" data-ratio="0.42962962962962964" data-w="1080" src="https://api.ibos.cn/v4/weapparticle/accesswximg?aid=110728&url=aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9LNTlSWlAyYkhpYUR1VjFFYkx6UFloOWdVeTEzNmFVZEZzSENnMHhQd1BuTHBEalhsTDB5dllaMW01TGMwYW5HdlZoWm5zSUtVTlQ1UXlGQ2FzaWJlUEh3LzY0MD93eF9mbXQ9cG5nJmFtcA==;from=appmsg">
为什么选择Graphiti?传统的RAG方法通常依赖于批处理和静态数据摘要,这使得它们在处理频繁变化的数据时效率较低。Graphiti通过提供以下功能来解决这些挑战: •实时增量更新:无需批量重新计算,能够即时集成新的数据片段。•双时间模型:明确跟踪事件发生和摄取的时间,允许进行精确的时间点查询。•高效的混合检索:结合语义嵌入、关键词检索(BM25)和图遍历,实现低延迟查询,而无需依赖LLM摘要。•自定义实体定义:通过简单的Pydantic模型支持灵活的本体创建和开发者定义的实体。•可扩展性:通过并行处理高效管理大数据集,适用于企业环境。 
Graphiti 和GraphRAG的区别 | | | | 主要用途 | | | | 数据处理 | | | | 知识结构 | | | | 检索方法 | | | | 适应性 | | | | 时间处理 | | | | 矛盾处理 | | | | 查询延迟 | | | | 自定义实体类型 | | | | 可扩展性 | | |
Graphiti专门设计用于解决动态和频繁更新的数据集所面临的挑战,使其特别适用于需要实时交互和精确历史查询的应用。 安装系统要求:•Python 3.10 或更高版本•Neo4j 5.26 或更高版本(作为嵌入存储后端)•OpenAI API 密钥(用于LLM推理和嵌入) 重要提示Graphiti 最适用于支持结构化输出的LLM服务(如 OpenAI 和 Gemini)。使用其他服务可能会导致输出模式错误和数据摄取失败。尤其是在使用较小模型时,这个问题更加明显。 可选项:•Google Gemini、Anthropic 或 Groq API 密钥(用于其他LLM提供商) 小贴士安装 Neo4j 的最简单方法是通过Neo4j Desktop[4]。它提供了一个用户友好的界面来管理 Neo4j 实例和数据库。 安装 Graphiti或者 您还可以安装可选的 LLM 提供商作为附加功能: # 安装支持 Anthropic 的版本pip install graphiti-core[anthropic]
# 安装支持 Groq 的版本pip install graphiti-core[groq]
# 安装支持 Google Gemini 的版本pip 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 示例[5]。该示例展示了: 1.连接到 Neo4j 数据库2.初始化 Graphiti 索引和约束3.向图谱中添加事件(包括文本和结构化 JSON)4.使用混合搜索查找关系(边)5.使用图距离重新排序搜索结果6.使用预定义搜索配方查找节点 该示例有完整文档,清晰解释每项功能,并包含详细的 README,提供了设置说明和后续步骤。 MCP 服务器mcp_server目录包含 Graphiti 的模型上下文协议(MCP)服务器实现。该服务器允许 AI 助手通过 MCP 协议与 Graphiti 的知识图谱功能进行交互。
MCP 服务器的关键功能包括: •事件管理(添加、检索、删除)•实体管理和关系处理•语义和混合搜索功能•用于组织相关数据的组管理•图谱维护操作 MCP 服务器可以使用 Docker 和 Neo4j 部署,使得将 Graphiti 集成到您的 AI 助手工作流中变得更加简便。 有关详细的设置说明和使用示例,请参见 MCP 服务器的README 文件[6]。 REST 服务server目录包含与 Graphiti API 交互的 API 服务。该服务是使用 FastAPI 构建的。
更多信息,请参见服务器的 README 文件。 可选环境变量除了 Neo4j 和兼容 OpenAI 的凭证外,Graphiti 还具有一些可选的环境变量。如果您使用的是我们支持的模型,如 Anthropic 或 Voyage 模型,必须设置必要的环境变量。 •USE_PARALLEL_RUNTIME是一个可选的布尔变量,如果您希望为我们的多个搜索查询启用 Neo4j 的并行运行时功能,可以将其设置为true。请注意,该功能不支持 Neo4j 社区版或较小的 AuraDB 实例,因此默认情况下该功能是关闭的。 使用 Graphiti 与 Azure OpenAIGraphiti 支持 Azure OpenAI 进行 LLM 推理和嵌入。要使用 Azure OpenAI,您需要使用您的 Azure OpenAI 凭证配置 LLM 客户端和嵌入器。 from openai importAsyncAzureOpenAIfrom graphiti_core importGraphitifrom graphiti_core.llm_client importOpenAIClientfrom graphiti_core.embedder.openai importOpenAIEmbedder,OpenAIEmbedderConfigfrom graphiti_core.cross_encoder.openai_reranker_client importOpenAIRerankerClient
# Azure OpenAI 配置api_key ="<your-api-key>"api_version ="<your-api-version>"azure_endpoint ="<your-azure-endpoint>"
# 创建 Azure OpenAI 客户端用于 LLMazure_openai_client =AsyncAzureOpenAI( api_key=api_key, api_version=api_version, azure_endpoint=azure_endpoint)
# 使用 Azure OpenAI 客户端初始化 Graphitigraphiti =Graphiti("bolt://localhost:7687","neo4j","password", llm_client=OpenAIClient( client=azure_openai_client), embedder=OpenAIEmbedder( config=OpenAIEmbedderConfig( embedding_model="text-embedding-3-small"# 使用您的 Azure 部署的嵌入模型名称), client=azure_openai_client),# 可选:使用 Azure OpenAI 配置 OpenAI 交叉编码器 cross_encoder=OpenAIRerankerClient( client=azure_openai_client))
# 现在您可以使用 Azure OpenAI 与 Graphiti 进行集成
确保用您实际的 Azure OpenAI 凭证替换占位符值,并指定在 Azure OpenAI 服务中部署的正确嵌入模型名称。 使用 Graphiti 与 Google GeminiGraphiti 支持 Google 的 Gemini 模型进行 LLM 推理和嵌入。要使用 Gemini,您需要使用您的 Google API 密钥配置 LLM 客户端和嵌入器。 安装 Graphitipoetry add "graphiti-core[google-genai]"
# or
uv add "graphiti-core[google-genai]"
from graphiti_core importGraphitifrom graphiti_core.llm_client.gemini_client importGeminiClient,LLMConfigfrom graphiti_core.embedder.gemini importGeminiEmbedder,GeminiEmbedderConfig
# Google API 密钥配置api_key ="<your-google-api-key>"
# 使用 Gemini 客户端初始化 Graphitigraphiti =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")))
# 现在您可以使用 Google Gemini 与 Graphiti 进行集成
|