agentic_huge_data_base / wiki
页面 Graphiti · 13 术语表·DeepWiki 中文全文译文

13 · 术语表(Glossary)

时序知识图谱与动态事实记忆 · 聚焦本章的模块关系、源码依据与实现要点。

项目Graphiti 章节13 状态全文译文 模块图谱与关系、测试、发布与运维、检索、召回与索引、安装与启动
源码线索
  • README.md
  • examples/podcast/podcast_runner.py
  • examples/quickstart/README.md
  • graphiti_core/driver/driver.py
  • graphiti_core/driver/falkordb_driver.py
  • graphiti_core/driver/neo4j_driver.py
  • graphiti_core/edges.py
  • graphiti_core/graphiti.py
  • graphiti_core/helpers.py
  • graphiti_core/nodes.py
模块标签
  • 图谱与关系
  • 测试、发布与运维
  • 检索、召回与索引
  • 安装与启动
  • 存储与持久化

章节正文

术语表

术语表

相关源文件

本章引用的主要源码文件:

  • README.md
  • examples/podcast/podcast_runner.py
  • examples/quickstart/README.md
  • graphiti_core/driver/driver.py
  • graphiti_core/driver/falkordb_driver.py
  • graphiti_core/driver/neo4j_driver.py
  • graphiti_core/edges.py
  • graphiti_core/graphiti.py
  • graphiti_core/helpers.py
  • graphiti_core/nodes.py
  • graphiti_core/prompts/dedupe_edges.py
  • graphiti_core/prompts/dedupe_nodes.py
  • graphiti_core/prompts/extract_edges.py
  • graphiti_core/prompts/extract_nodes.py
  • graphiti_core/prompts/summarize_nodes.py
  • graphiti_core/search/search.py
  • graphiti_core/search/search_config.py
  • graphiti_core/search/search_config_recipes.py
  • graphiti_core/search/search_utils.py
  • graphiti_core/utils/maintenance/community_operations.py
  • graphiti_core/utils/maintenance/graph_data_operations.py
  • tests/test_graphiti_int.py

本术语表定义了 Graphiti 框架中使用的代码库专用术语、行话和领域概念。它作为技术参考,帮助工程师理解高层时序图概念与其代码实现之间的映射关系。

核心领域概念

事件(Episode)

事件是 Graphiti 中入库的基本单元。它代表一个离散的事件或原始数据片段(例如聊天消息、文档片段或 JSON 对象),实体和关系从中被提取出来 README.md:67-71。图中的每个事实都通过链接回产生它的事件来维护溯源信息 README.md:127-128

  • 实现:由 EpisodicNode 类表示 graphiti_core/nodes.py:270-345
  • 类型:在 EpisodeType 枚举中定义:message(消息)、jsontext(文本)和 fact_triple(事实三元组)graphiti_core/nodes.py:54-78
上下文图(上下文 Graph)

上下文图是一种时序知识图谱,用于追踪事实和实体随时间的变化 README.md:42-44。与静态图不同,它使用双时态模型保留历史状态,允许用户查询"在时间 X 什么是真实的"与"现在什么是真实的" README.md:125-126

双时态模型(双时态模型)

Graphiti 使用四个特定的时间戳来管理事实和节点的生命周期:

  1. created_at:记录首次写入数据库的时间 graphiti_core/nodes.py:98
  2. valid_at:事实在现实世界中变为真实的时间 graphiti_core/nodes.py:284
  3. invalid_at:事实被取代或变为虚假的时间 graphiti_core/edges.py:341
  4. expired_at:用于数据保留和 TTL 管理。

节点类型

术语代码实体描述
实体节点EntityNode表示现实世界中的对象,如人物、组织或概念。包含名称、摘要和嵌入向量 graphiti_core/nodes.py:355-443
事件节点EpisodicNode表示源数据/事件。作为溯源和时序有效性的锚点 graphiti_core/nodes.py:270-345
社区节点CommunityNode表示相关实体集群的高级节点,用于全局摘要和分层搜索 graphiti_core/nodes.py:446-521
叙事链节点SagaNode用于将一系列事件分组为叙事链或会话的特殊节点 graphiti_core/nodes.py:524-585

来源: graphiti_core/nodes.py:270-585README.md:77-83

边类型

术语代码实体描述
实体边EntityEdge两个 EntityNodes 之间的关系(例如"WORKS_AT")。包含时序有效性和关系事实 graphiti_core/edges.py:330-466
事件边EpisodicEdge连接 EpisodicNodeEntityNodeMENTIONS 关系 graphiti_core/edges.py:143-241
社区边CommunityEdge连接 CommunityNode 到其组成 EntityNodesHAS_MEMBER 关系 graphiti_core/edges.py:244-327
拥有事件HasEpisodeEdge连接 SagaNode 到其组成 EpisodicNodes graphiti_core/edges.py:541
下一个事件NextEpisodeEdge在序列中的事件之间创建时间顺序链接 graphiti_core/edges.py:587

来源: graphiti_core/edges.py:143-631

技术术语与行话

组 ID(Group ID)

group_id 是一个字符串,用于将图划分为逻辑命名空间(例如每个用户一个或每个组织一个)。Graphiti 中的大多数操作都需要 group_id 来确保数据隔离 graphiti_core/graphiti.py:44-47

  • 实现:通过 validate_group_id 进行校验 graphiti_core/helpers.py:136-159,并通过 handle_multiple_group_ids 装饰器进行批量处理 graphiti_core/graphiti.py:28
标签传播(Label Propagation)

一种在社区检测中使用的算法,根据节点间的连接密度对节点进行聚类。它迭代地将节点分配给它邻居中最常见的社区 graphiti_core/utils/maintenance/community_operations.py:93-138

  • 函数label_propagation 位于 graphiti_core/utils/maintenance/community_operations.py:93
MMR(最大边际相关性)

一种在搜索中使用的重排序策略,用于平衡查询相关性与结果多样性,防止检索到的上下文中出现冗余信息 graphiti_core/search/search.py:60

  • 常量DEFAULT_MMR_LAMBDA graphiti_core/search/search_utils.py:66
信号量收集(Semaphore Gather)

一个在整个代码库中使用的工具函数,用于在遵守全局并发限制(SEMAPHORE_LIMIT)的同时并发运行多个协程,以防止过载大语言模型(LLM)API 或数据库 graphiti_core/graphiti.py:45

  • 实现semaphore_gather 位于 graphiti_core/helpers.py:123-133
事件归因(Episode Attribution)

在节点和边提取过程中,系统识别多事件窗口中的特定事件属于哪个事实或实体的过程 graphiti_core/utils/maintenance/node_operations.py:103-111

  • 逻辑:使用大语言模型(LLM)指令设置 episode_indices(从 1 开始索引)graphiti_core/prompts/extract_nodes.py:34-38

自然语言到代码实体的映射

搜索与检索空间

下图将搜索概念映射到实现它们的特定代码函数和类。

"搜索概念到代码实体映射"

Graphiti · 搜索与检索空间 · 图 1
Graphiti · 搜索与检索空间 · 图 1

来源: graphiti_core/search/search.py:98-108graphiti_core/search/search_utils.py:185-191graphiti_core/search/search_filters.py:23-48

数据库抽象空间

下图说明了高级图操作如何转换为特定提供商的驱动程序。

"数据库操作到驱动程序映射"

Graphiti · 数据库抽象空间 · 图 2
Graphiti · 数据库抽象空间 · 图 2

来源: graphiti_core/graphiti.py:137-151graphiti_core/driver/driver.py:100-110graphiti_core/driver/neo4j_driver.py:30graphiti_core/driver/falkordb_driver.py:32