Kùzu 是一个可嵌入、可扩展、极速的图数据库。它采用 MIT 许可证,您可以在此处查看其源代码。
Kùzu 的主要特点
- 性能和可扩展性:实现了现代最先进的图连接算法。
- 易用性:设置和上手非常容易,因为它没有服务器(嵌入式架构)。
- 互操作性:可以方便地从外部列式格式、CSV、JSON 和关系数据库扫描和复制数据。
- 结构化属性图模型:实现了具有附加结构的属性图模型。
- Cypher 支持:允许使用声明性查询语言 Cypher 方便地查询图。
访问 Kùzu 文档开始使用。
设置
Kùzu 是一个嵌入式数据库(它在进程内运行),因此无需管理服务器。安装以下依赖项即可开始使用:创建 KuzuGraph
Kùzu 与 LangChain 的集成使得从非结构化文本创建和更新图变得方便,还可以通过利用 LangChain LLM 链功能的 Text2Cypher 管道查询图。首先,我们创建一个 KuzuGraph 对象,该对象使用我们上面创建的数据库对象与 KuzuGraph 构造函数结合使用。
LLMGraphTransformer 来使用 LLM 从文本中提取节点和关系。为了使图更有用,我们将定义以下模式,以便 LLM 只提取与该模式匹配的节点和关系。
LLMGraphTransformer 类提供了一种方便的方法将文本转换为图文档列表。
KuzuGraph 对象的 add_graph_documents 方法将图文档摄取到 Kùzu 数据库中。include_source 参数设置为 True,这样我们还在每个实体节点和其来源文档之间创建关系。
创建 KuzuQAChain
要通过 Text2Cypher 管道查询图,我们可以定义一个 KuzuQAChain 对象。然后,我们可以通过连接到存储在上面定义的 test_db 目录中的现有数据库来使用查询调用该链。
刷新图模式
如果您修改或更新图,可以检查 Text2Cypher 链用于生成 Cypher 语句的刷新模式信息。您不需要每次都手动调用refresh_schema(),因为它在您调用链时会自动调用。
对 Cypher 和答案生成使用单独的 LLM
您可以分别指定cypher_llm 和 qa_llm,以便为 Cypher 生成和答案生成使用不同的 LLM。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。