Cognee

嵌入使得检索相似信息块变得容易,但大多数代理任务需要更多:结构、时间上下文和跨文档推理。这就是 Cognee 的用武之地:它将原始数据源转化为 AI 记忆——一个基于模块化、可查询的知识图的语义数据层,并由嵌入提供支持,因此代理可以有结构地检索、推理和记忆。

为什么选择 Qdrant 作为记忆层

在运行时,Cognee 的语义记忆层需要快速且可预测的查找,以发现用于图推理的候选对象,以及对元数据的严格控制,以支撑多跳遍历。Qdrant 的设计通过其以下特点满足了这些需求:

  • 最近邻搜索,用于快速候选召回。
  • 富有表现力的有效载荷过滤,可按时间戳窗口、文档类型或源标签等因素进行约束。
  • 操作简单,团队可以专注于记忆层。

此集成将 Qdrant 的向量搜索和 Cognee 的图推理整合到同一个循环中。用户的查询不再仅仅命中单个存储——它被嵌入、搜索、映射并融合到证据中,然后才进行最终生成。

  1. 嵌入查询 → 发送到 Qdrant 进行最近邻检索。
  2. 识别实体/关系 → Cognee 的图层将候选对象映射到知识图。
  3. 融合和排序 → Cognee 将向量候选对象与图上下文结合并对证据进行排序。
  4. 生成 → 最终答案由向量广度和图精度共同支撑。

结果是向量的广度和图的精度——当问题围绕着谁连接到什么以及这些联系如何随时间变化时,这非常有用。

原生集成

Cognee 提供了一个 Qdrant 适配器,并将 Qdrant 作为首选的内置向量数据库选项。这意味着您只需配置一个 URI 和密钥,Cognee 的管道就会在构建和查询图时直接读取/写入嵌入到 Qdrant。

pip install Cognee-community-vector-adapter-qdrant

最小化设置

下面的示例来自 Cognee-community 存储库,并反映了许多团队最初采用的结构:SQLite 用于小型关系元数据,Qdrant 用于向量,以及 Kùzu 用于图。注册导入足以让 Cognee 发现并使用 Qdrant 适配器。

import asyncio, os, pathlib
from os import path
from cognee_community_vector_adapter_qdrant import register

async def main():
    from Cognee import SearchType, add, cognify, config, prune, search

    system_path = pathlib.Path(__file__).parent
    config.system_root_directory(path.join(system_path, ".cognee_system"))
    config.data_root_directory(path.join(system_path, ".data_storage"))

    config.set_relational_db_config({"db_provider": "sqlite"})
    config.set_vector_db_config({
        "vector_db_provider": "qdrant",
        "vector_db_url": os.getenv("QDRANT_API_URL", "https://:6333"),
        "vector_db_key": os.getenv("QDRANT_API_KEY", ""),
    })
    config.set_graph_db_config({"graph_database_provider": "kuzu"})

    await prune.prune_data(); await prune.prune_system(metadata=True)
    await add("Natural language processing (NLP) ...")
    await cognify()

    for txt in await search(query_type=SearchType.GRAPH_COMPLETION,
                            query_text="Tell me about NLP"):
        print(txt)

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

工作原理

Cognee 的记忆管道通过提取 → 嵌入 → 图构建 → 检索来处理内容,在笔记本电脑、分布式作业和托管运行中保持一致的配置。图感知的语义层是检索成为推理的地方。

以下是生产环境中的突出特点

  • 时间上下文/“截至”查询——分析实体和关系如何随时间演变。
  • 反馈驱动的优化——用于合并重复项和优化边缘的例程。
  • 持续实验——测试图嵌入,以便相似性可以作用于子图,而不仅仅是文本。
  • 本体——领域本体(金融、临床、客户运营)支持一致性、丰富性和控制

这些功能旨在增强多跳性能;例如,Cognee 在最近的评估中报告了 92.5% 的性能,并指出其开源的思维链检索器有助于连接不同上下文中的概念,尤其是在多跳场景中。

关于评估的说明

Cognee 团队在 HotPotQA 中对 24 个问题进行了 45 个评估周期,HotPotQA 是一个需要结合文本多个部分信息才能回答的基准。与真实世界的记忆系统相比,它仍然是一个狭窄的上下文,但它是一个有用的基线。使用的指标是精确匹配(EM)、F1、DeepEval 正确性(基于 LLM)和类人正确性(基于 LLM 对人类评估的近似)。

如果您不想运行基础设施,Cognee 的托管选项——cogwit——正在测试中。它将 Cognee 的 API 作为托管服务公开,因此团队可以加载数据并查询记忆层,而无需维护集群。

延伸阅读

此页面有用吗?

感谢您的反馈!🙏

很抱歉听到这个消息。😔 您可以在 GitHub 上编辑此页面,或者创建一个 GitHub issue。