agentic_huge_data_base / wiki
页面 Cognee · 1.2 快速开始指南·DeepWiki 中文全文译文

1.2 · 快速开始指南(Quick Start Guide)

记忆管道与知识图谱构建 · 聚焦本章的模块关系、源码依据与实现要点。

项目Cognee 章节1.2 状态全文译文 模块入库与解析、工作流与编排、系统架构、测试、发布与运维
源码线索
  • cognee/api/v1/add/add.py
  • cognee/api/v1/cognify/cognify.py
  • cognee/modules/data/models/Data.py
  • cognee/modules/graph/utils/get_graph_from_model.py
  • cognee/modules/graph/utils/get_model_instance_from_graph.py
  • cognee/modules/pipelines/operations/pipeline.py
  • cognee/modules/pipelines/operations/run_tasks.py
  • cognee/tasks/graph/extract_graph_and_summarize.py
  • cognee/tasks/ingestion/ingest_data.py
  • cognee/tasks/ingestion/save_data_item_to_storage.py
模块标签
  • 入库与解析
  • 工作流与编排
  • 系统架构
  • 测试、发布与运维
  • 存储与持久化

章节正文

快速开始指南

快速入门指南

相关源文件

以下文件为本维基页面的生成提供了上下文:

  • cognee/api/v1/add/add.py
  • cognee/api/v1/cognify/cognify.py
  • cognee/modules/data/models/Data.py
  • cognee/modules/graph/utils/get_graph_from_model.py
  • cognee/modules/graph/utils/get_model_instance_from_graph.py
  • cognee/modules/pipelines/operations/pipeline.py
  • cognee/modules/pipelines/operations/run_tasks.py
  • cognee/tasks/graph/extract_graph_and_summarize.py
  • cognee/tasks/ingestion/ingest_data.py
  • cognee/tasks/ingestion/save_data_item_to_storage.py
  • cognee/tasks/storage/add_data_points.py
  • cognee/tasks/summarization/summarize_text.py
  • cognee/tests/unit/api/v1/__init__.py
  • cognee/tests/unit/api/v1/config/__init__.py
  • cognee/tests/unit/api/v1/config/test_config_set_method.py
  • examples/demos/simple_cognee_example.py
  • notebooks/cognee_demo.ipynb
  • notebooks/cognee_multimedia_demo.ipynb
  • notebooks/cognee_simple_demo.ipynb
  • notebooks/data/alice_in_wonderland.txt
  • notebooks/data/enriched_medical_ontology_with_classes.owl
  • notebooks/data/scientific_papers/TOJ-22-0073_152Mendoza.pdf
  • notebooks/data/scientific_papers/nutrients-13-01241.pdf
  • notebooks/ontology_demo.ipynb
  • poetry.lock
  • pyproject.toml
  • uv.lock

本指南通过实际示例演示 Cognee 的核心工作流。在安装 Cognee 并配置好环境后(参见 1.1. 安装与设置),您可以通过三个简单步骤开始构建 AI 记忆:使用 add() 入库数据,使用 cognify() 将其处理为知识图谱,以及使用 search() 检索洞察信息。

核心工作流总览

Cognee 的主要工作流包含一系列操作,将原始数据转换为可查询的知识。系统提供了高级 API,包括 remember()(整合了 add、cognify 和 improve)和 recall()(自动路由搜索)。

Cognee · 核心工作流总览 · 图 1
Cognee · 核心工作流总览 · 图 1

来源: cognee/api/v1/add/add.py:116-120cognee/api/v1/cognify/cognify.py:60-65cognee/api/v1/cognify/cognify.py:136-150

系统中的数据流

下图将用户操作映射到内部管线任务和具体的代码实体。

Cognee · 系统中的数据流 · 图 2
Cognee · 系统中的数据流 · 图 2

来源: cognee/api/v1/add/add.py:92-114cognee/tasks/ingestion/ingest_data.py:26-34cognee/tasks/ingestion/save_data_item_to_storage.py:27-97cognee/api/v1/cognify/cognify.py:43-59cognee/modules/pipelines/operations/pipeline.py:33-44cognee/modules/pipelines/operations/run_tasks.py:56-65cognee/modules/data/models/Data.py:1-41

Python API:基本示例

Cognee 提供了两种 API 模式:细粒度的 addcognifysearch 工作流,以及简化的 rememberrecall 工作流。

细粒度工作流
import cognee
import asyncio

async def main():
    # 步骤 1:添加数据
    await cognee.add("Cognee 将文档转化为 AI 记忆。")

    # 步骤 2:处理为知识图谱
    await cognee.cognify()

    # 步骤 3:搜索知识
    results = await cognee.search("Cognee 有什么作用?")

    for result in results:
        print(result)

if __name__ == '__main__':
    asyncio.run(main())
简化的智能体工作流

remember 函数会自动运行 addcognifyimprove 任务。

import cognee
import asyncio

async def main():
    # 永久存储到知识图谱中
    await cognee.remember("Cognee 将文档转化为 AI 记忆。")

    # 使用自动路由进行查询(自动选择最佳搜索策略)
    results = await cognee.recall("Cognee 有什么作用?")
    for result in results:
        print(result)

if __name__ == '__main__':
    asyncio.run(main())

来源: cognee/api/v1/add/add.py:116-126cognee/api/v1/cognify/cognify.py:136-150notebooks/cognee_demo.ipynb:8-35

处理文件和 URL

Cognee 通过 save_data_item_to_storage 将各种输入类型解析为内部存储路径。

输入格式示例内部逻辑
绝对路径/path/to/file.pdfsave_data_item_to_storage 转换为 URI cognee/tasks/ingestion/save_data_item_to_storage.py:72-79
相对路径data/file.txt通过 Path.cwd() 解析 cognee/tasks/ingestion/save_data_item_to_storage.py:48-51
S3 路径s3://bucket/key.pdf通过 parsed_url.scheme == "s3" 处理 cognee/tasks/ingestion/save_data_item_to_storage.py:59-60
HTTP(S) URLhttps://example.com通过 fetch_page_content 获取 cognee/tasks/ingestion/save_data_item_to_storage.py:61-63
二进制对象open("f.txt", "rb")通过 hasattr(data_item, "file") 处理 cognee/tasks/ingestion/save_data_item_to_storage.py:41-42

来源: cognee/tasks/ingestion/save_data_item_to_storage.py:27-97cognee/api/v1/add/add.py:127-143

管线执行细节

run_tasks 函数负责编排各个 Task 对象的执行。它使用基于信号量的并发模型来处理数据项。

Cognee · 管线执行细节 · 图 3
Cognee · 管线执行细节 · 图 3

来源: cognee/modules/pipelines/operations/run_tasks.py:56-160cognee/api/v1/cognify/cognify.py:82-88cognee/api/v1/cognify/cognify.py:22-33

高级配置选项

增量加载

默认情况下,Cognee 使用内容哈希检测。如果再次添加同一个文件但内容未发生变化,系统会识别出已有的数据点。这一过程在 ingest_data 中通过比较 new_content_hashData 模型中存储的 content_hash 来实现。

来源: cognee/tasks/ingestion/ingest_data.py:148-163cognee/api/v1/cognify/cognify.py:54cognee/modules/data/models/Data.py:27

批量调优

用户可以通过批量参数控制性能:

  • data_per_batch:并发处理的文件数量(默认值:20)。cognee/api/v1/cognify/cognify.py:57
  • chunks_per_batch:在 cognify 任务中每个批次处理的文本片段数量。cognee/api/v1/cognify/cognify.py:49

来源: cognee/api/v1/cognify/cognify.py:49-57cognee/modules/pipelines/operations/run_tasks.py:63

自定义图谱模型

cognify() 中的 graph_model 参数允许用户传入自定义的 Pydantic BaseModel。这会指示大语言模型(LLM)提取符合特定模式的实体和关系,而不是使用默认的 KnowledgeGraph

来源: cognee/api/v1/cognify/cognify.py:46cognee/api/v1/cognify/cognify.py:90-95cognee/api/v1/cognify/cognify.py:102-103