Text2Cypher - 自然语言查询

本文档涉及 Neo4j Labs 旗下不受支持的 NeoDash 版本。如需使用受支持的 NeoDash 产品,请参阅 NeoDash 商业版

在 NeoDash 中使用自然语言生成 Cypher 查询。通过 API 连接到大语言模型(LLM),让 NeoDash 结合您的数据库架构和报表类型自动生成查询。

工作原理

此扩展功能允许用户使用自然语言与 NeoDash 交互,从而为查询 Neo4j 图数据库生成 Cypher 查询。该集成利用大语言模型(LLM)来解释用户输入,并根据提供的架构定义生成 Cypher 查询。

配置

要启用 NeoDash 中的自然语言查询功能,请按照以下配置步骤进行操作

  1. 打开 NeoDash,导航到左侧边栏中的“Extensions”(扩展)部分。

  2. 找到“Text2Cypher”扩展并点击以激活它。

  3. 激活后,屏幕上方会出现一个带有红色感叹号(⚠️)的新按钮。点击此按钮。

  4. 在配置窗口中,系统会提示您提供连接到大语言模型(LLM)所需的信息。输入模型提供商、API 密钥、如有需要请提供部署 URL,并选择您想要使用的模型。

  5. 提供所需信息后,点击“Start Querying”(开始查询)按钮以完成配置。

Configuration settings for the Natural Language Queries extension

使用

配置好扩展程序后,即可开始在 NeoDash 报表中使用它。具体方法如下

  1. 打开所需报表的“Report settings”(报表设置)。

  2. 在报表设置中,编辑器上方会有一个切换开关。该开关允许您在 Cypher 语言和英语之间进行切换。

  3. 由于您已启用该扩展并提供了 API 密钥进行身份验证,因此您可以切换到英语模式。

  4. 开始用简单的英语撰写查询,使用自然语言表达式来描述您想要检索的数据。

  5. 撰写完查询后,您有两种进一步操作的选择

    • 翻译:点击“Translate”(翻译)按钮,您的查询将通过大语言模型翻译成 Cypher。当切换回 Cypher 视图时,翻译后的 Cypher 查询将显示在编辑器中。这使您能够在执行前检查并修改生成的 Cypher 查询。

    • 运行:如果您希望直接执行查询并查看结果,请点击右上角的“Run”(运行)按钮。查询的执行将取决于所选的报表类型,结果也将相应显示。

Example of the English editor in NeoDash

通过自定义提示词提高准确性

为了提高大语言模型的准确性,您可以提供自己的示例查询以输入到提示词中。指定针对您的数据模型和用例的特定查询,可以显著提高 Text2Cypher 翻译的质量。

要访问模型示例界面,请打开扩展程序的设置。在指定提供商和模型后,点击窗口左下角的“Tweak Prompts”(调整提示词)按钮。这将带您进入示例界面。

Custom Examples for your prompt

在此界面中,您可以指定发送给大语言模型的一个或多个示例。示例包含一个 Cypher 查询及其对应的自然语言描述。您可以创建任意数量的示例,但保持示例与您的用户查询风格接近将获得最佳结果。

底层功能

  • 检索架构:系统在交互开始时会提示检索数据库架构。这确保了生成的查询符合提供的架构以及可用的关系类型和属性。

  • 使用英语进行提示:检索架构后,您可以开始用简单的英语输入查询。NeoDash 在 LLM 的支持下,将解释您的英语查询,并根据提供的架构生成相应的 Cypher 查询。

  • 自动查询生成:NeoDash 会自动为您生成 Cypher 查询,同时考虑您指定的报表类型。无论是表格、图表、柱状图、折线图还是其他任何支持的报表类型,生成的查询都将根据报表要求检索必要的数据。

  • 重试逻辑:为了提高生成查询的可靠性,我们实现了重试逻辑。如果在查询生成过程中出现任何问题或错误,系统最多将尝试三次重试,以提供有效的查询,确保查询顺利执行。

提示词技巧

在 NeoDash 中使用自然语言查询时,请记住以下技巧以提升您的体验

  1. 查询要清晰且具体:详细描述您想要检索的数据,包括节点标签、关系类型和属性值。

  2. 使用关键词和短语:加入您的数据上下文中常用的相关关键词和短语,以提高查询准确性。

  3. 提出精确的问题:将查询表述为问题以获取特定信息。例如,不要说“显示所有客户”,而应尝试“哪些客户在上个月有过购买记录?”

  4. 尝试不同的措辞:如果得不到预期的结果,请尝试使用同义词或替代表达方式来改写查询。

  5. 避免模糊的查询:模糊或含糊的查询可能会产生意想不到的结果。请确保提供足够的上下文并澄清任何歧义。

  6. 验证和检查生成的查询:务必查看生成的 Cypher 查询,以确保它们准确代表了您的意图并能产生预期的结果。

重要注意事项

在使用大语言模型进行自然语言查询时,了解以下注意事项非常重要

  1. 多个模型提供商:根据您的配置,您的查询可能会由不同的模型提供商处理。请注意,这意味着您的数据会被发送给不同的提供商。

  2. 非确定性:大语言模型可能会产生非确定性的输出。即使输入相同的提示词,生成的查询在不同运行中也可能有所不同。请验证生成的查询并进行彻底测试以确保正确性。

  3. 潜在的幻觉问题:大语言模型生成的输出可能不符合特定的架构或数据约束。请保持谨慎并核实结果,以防止潜在的不准确或“幻觉”现象。

© . This site is unofficial and not affiliated with Neo4j, Inc.