Text2Cypher - 自然语言查询

工作原理

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

配置

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

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

  2. 找到“Text2Cypher”扩展,然后单击它以激活它。

  3. 激活后,屏幕顶部将出现一个带有红色感叹号 (⚠️) 的新按钮。单击此按钮。

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

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

Configuration settings for the Natural Language Queries extension

使用

配置完扩展后,您就可以在 NeoDash 报表中开始使用它了。方法如下

  1. 打开所需报表的报表设置。

  2. 在报表设置中,您将在编辑器上方找到一个切换开关。此开关允许您在 Cypher 和英语语言之间切换。

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

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

  5. 撰写完查询后,您可以选择以下两种操作

    • 翻译:单击“翻译”按钮,您的查询将使用语言模型翻译成 Cypher。当您切换到 Cypher 视图时,翻译后的 Cypher 查询将显示在编辑器中。这使您能够在执行之前查看和修改生成的 Cypher 查询。

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

Example of the English editor in NeoDash

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

要提高语言模型的准确性,您可以提供您自己的示例查询,这些查询将被输入提示。指定与您的数据模型和用例相关的查询可以显着提高 Text2Cypher 翻译的质量。

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

Custom Examples for your prompt

在此界面中,您可以指定一个或多个发送到语言模型的示例。一个示例包含 Cypher 查询及其自然语言等效项。您可以创建任意数量的示例,但将它们保持与您的用户查询接近将产生最佳结果。

底层功能

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

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

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

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

提示技巧

在 NeoDash 中使用自然语言查询时,请牢记以下提示以增强您的体验

  1. 在您的查询中要清晰明了:提供要检索的数据的详细描述,包括节点标签、关系类型和属性值。

  2. 使用关键字和短语:加入与您的数据相关的常见关键字和短语,以提高查询的准确性。

  3. 提出精准的问题:将您的查询格式化为问题以获取特定信息。例如,不要使用“显示所有客户”,而应使用“哪些客户在过去一个月内进行了购买?”

  4. 尝试不同的表达方式:如果无法获得期望的结果,请尝试使用同义词或其他表达方式重新表达您的查询。

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

  6. 验证和查看生成的查询:始终查看生成的 Cypher 查询以确保它们准确地反映了您的意图并产生期望的结果。

重要注意事项

在使用语言模型进行自然语言查询时,请注意以下事项

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

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

  3. 潜在的幻觉:语言模型可能会生成与特定模式或数据约束不一致的输出。请谨慎行事并验证结果,以防止潜在的错误或幻觉。