NeoConverse - 利用自然语言进行图数据库搜索

neoconverse latest

NeoConverse是一个演示使用生成式AI进行自然语言数据库搜索的应用程序。它使现有图数据库可供非技术用户使用,允许他们提出自然语言问题。利用图数据库Schema、问句-陈述示例和微调,自然语言问题由LLM翻译成图查询(Cypher)。然后,该查询将针对数据库进行验证和执行。

查询结果与用户问题一起发送给LLM,以生成自然语言答案。或者,LLM可以配置为生成数据和配置,将查询结果渲染为图表以进行可视化表示。

neoconverse chart

功能包括

  • 尝试不同云提供商的生成式AI模型:目前支持GCP和OpenAI,AWS Bedrock即将推出。

  • 将您自己的Neo4j数据库作为代理连接到NeoConverse,并以纯英文与其交互

    • 配置Schema信息作为大型语言模型(LLM)的上下文。

    • 可选地添加少量示例,为LLM提供上下文学习。

    • 将对话保存在配置的数据库中以供未来分析

      1. 评估LLM响应。

      2. 对响应进行排名,并利用它们改进未来的LLM交互。

      3. Prompt工程调整。

  • 从自然语言问题生成图表可视化。

  • 与来自不同领域的预定义代理交互

    • 与这些代理聊天。

    • 探索预定义代理数据集的数据模型。

    • 加载了示例问题以帮助您开始使用。

配置代理

NeoConverse包含一系列预定义对话代理,每个代理都由Neo4j数据库支持。为了使用这些代理探索和对话Neo4j数据库,用户可以从探索预定义代理部分选择任何代理。选择后,用户可以通过屏幕右侧显示的聊天界面与所选代理进行交互。这使用户能够直接与数据库图进行交互,促进知识图谱的互动探索。

用户可以灵活地添加自己的本地代理,这些代理由您组织的Neo4j数据库支持,并开始与您的数据库知识图谱进行交互。

下面是添加删除编辑代理以及与您自己的数据库交互的快速可视化指南

集成您自己的代理时请注意,这些代理存储在客户端的浏览器存储中,而不是在服务器上。这意味着所有交互,包括API调用和结果处理,都发生在客户端,不会到达我们的服务器。因此,如果由于浏览数据清理、选择“Cookie及其他网站数据”或本地存储容量超出等原因清除了浏览器的本地存储,所有自定义代理都将永久丢失。

我们正在考虑未来的更新以增强用户体验。这些更新可能包括代理的导出/导入功能以及用户定义代理配置在用户自己的数据库中的持久化。这些功能旨在为不同用户和会话提供更统一和简化的体验。

生成图表可视化

NeoConverse使用户能够直接从聊天界面创建图表可视化。通过在聊天窗口的文本输入和图表图标之间切换,用户可以无缝地将其查询转换为视觉表示。其工作原理如下:用户以纯英文提出问题,然后将其转换为Cypher查询并在Neo4j数据库中执行。之后,查询结果会传递给大型语言模型(LLM),LLM根据数据生成图表元数据。LLM智能地选择最适合当前数据的图表类型,并返回相应的图表元数据。然后,此元数据用于渲染图表,使用户能够更有效、更易于理解地可视化和解释数据洞察。

展望未来,NeoConverse正在考虑扩展其可视化功能以包括图可视化。这项开发将取决于NeoConverse用户的兴趣和反馈,这可能会扩大交互式数据探索的范围。

NeoConverse工作原理:克服LLM局限性

大型语言模型(LLM)通过海量公共数据集进行训练,这使得它们擅长基于这些知识的任务。然而,它们在企业环境中的实用性有限,因为

  • 它们的知识仅限于训练数据。

  • 用内部数据更新其知识可能具有挑战性。

  • 信息可能已过时。

NeoConverse利用检索增强生成(RAG)来解决这些问题。 RAG为LLM提供从Neo4j图数据库中托管的内部数据源检索到的额外上下文。

以下是NeoConverse的工作分步流程

  1. 用户提问: 用户提出关于存储在Neo4j中的企业数据的自然语言问题。

  2. LLM上下文: NeoConverse为LLM提供与问题相关的上下文

    • 关于存储在Neo4j数据库中的数据的Schema信息。

    • 来自数据的少量相关示例,以指导LLM。

  3. LLM生成Cypher查询: 基于问题和上下文,LLM生成Cypher查询,这是Neo4j的查询语言。

  4. 查询优化与执行: NeoConverse清理、格式化并在Neo4j数据库上执行Cypher查询。

  5. 数据检索: 根据执行的查询从Neo4j数据库中检索相关数据。

  6. LLM答案生成: 最后,LLM利用检索到的数据和原始问题生成准确且相关的答案,该答案基于用户的特定数据。

通过利用内部数据,NeoConverse使LLM能够在企业环境中为用户查询提供更准确、更相关的答案。

neoconverse arch

可用预定义数据集

  • 安然邮件语料库数据集: publicly available enron email corpus data的子集已被匿名化并导入到Neo4j数据库中,导入的数据集包含大约50万封电子邮件。该数据集有助于深入探索安然内部领导层与外部方之间的邮件通信,提供了分析异常和邮件泄露的手段。除了邮件通信元数据外,该数据集还通过从邮件主题和正文中提取的实体和关注词进行了丰富。

  • 患者旅程数据集: 患者旅程数据集包含了100万名患者的医疗保健体验,详细记录了4100万次就诊,涵盖医生就诊、诊断、治疗和过敏等医疗事件。该丰富数据集包含1100万份处方、2600万次观察、900万次特定病情观察、200种独特病情和50万次过敏就诊,提供了个人健康叙述的全面视图。它是分析治疗模式、患者结局和药物疗效的关键资源,提供可增强医疗服务交付和个性化患者护理策略的洞察。

  • 零售数据集: 该零售数据集利用从公共亚马逊电子产品数据集中构建的知识图谱,其中包含产品信息、评论以及用户购买和评论历史。为了提取更深层次的洞察,已应用Neo4j GDS图算法来计算用户和产品之间的相似度分数,不仅考虑产品特征和用户人口统计信息,还考虑用户如何与产品互动。

  • 商业智能: 这是一个软件应用程序的知识图谱,包含支持的业务流程、部署实例、软件漏洞报告和数据概念,提供漏洞影响分析以及应用程序变更影响分析和数据可追溯性。

增强NeoConverse

NeoConverse依赖大型语言模型(LLM)的Cypher生成能力,虽然LLM在生成Cypher查询方面已显示出改进,但不一致性依然存在。NeoConverse旨在识别这些不一致性,为用户提供有效的方法来导航或绕过它们,而不是让他们面对原始错误。这种方法确保了更流畅的用户体验。

未来,NeoConverse可以通过以下方式增强以缓解这些不一致性:

  • 微调LLM: 微调LLM以生成更准确、更一致的Cypher查询。

  • 开发语义层: 深化LLM的上下文理解,提高结果准确性。

  • 整合领域特定术语: 提高查询的相关性和精确性。

  • 利用历史对话: 使用过往交互为LLM提供更丰富的上下文和更相关的示例。

这些举措旨在解决当前的挑战,并提高NeoConverse中LLM生成Cypher查询的可靠性。

在线

https://neoconverse.graphapp.io/

作者

Kumar SS, Eric Monk

社区支持

Neo4j在线社区

代码仓库

GitHub

问题

GitHub问题

安装

演示版在线可用:https://neoconverse.graphapp.io

您也可以通过克隆代码库并遵循README.md文件中的说明来本地运行它。

© . All rights reserved.