CN116955674B - 一种通过LLM生成图数据库语句的方法及web装置 - Google Patents

一种通过LLM生成图数据库语句的方法及web装置 Download PDF

Info

Publication number
CN116955674B
CN116955674B CN202311217342.4A CN202311217342A CN116955674B CN 116955674 B CN116955674 B CN 116955674B CN 202311217342 A CN202311217342 A CN 202311217342A CN 116955674 B CN116955674 B CN 116955674B
Authority
CN
China
Prior art keywords
sentence
document
graph
graph database
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311217342.4A
Other languages
English (en)
Other versions
CN116955674A (zh
Inventor
苗壮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Yueshu Technology Co ltd
Original Assignee
Hangzhou Yueshu Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Yueshu Technology Co ltd filed Critical Hangzhou Yueshu Technology Co ltd
Priority to CN202311217342.4A priority Critical patent/CN116955674B/zh
Publication of CN116955674A publication Critical patent/CN116955674A/zh
Application granted granted Critical
Publication of CN116955674B publication Critical patent/CN116955674B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Abstract

本申请涉及图数据库技术领域,解决了现有技术中大语言模型存在泛而不精的长尾效应的问题,公开了一种通过LLM生成图数据库语句的方法及web装置,该方法包括:基于图数据库语句文档构建知识库,将备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一请求语句,将所述第一请求语句发送至大语言模型以获取输出结果,筛选出所述输出结果中的图数据库语句并通过Codemirror进行展示,该方法能够通过自然语言对话的形式生成图数据库语句,并且通过先识别文档目录,再学习相关语句资料和实例,从而能够达到快速学习生成图数据库查询语句的效果。

Description

一种通过LLM生成图数据库语句的方法及web装置
技术领域
本申请涉及图数据库技术领域,尤其是一种通过LLM生成图数据库语句的方法及web装置。
背景技术
图数据库(Graph Database)是一种基于图论实现的新型NoSQL数据库。它以图论为基础,将数据存储为节点和边构成的图结构,并在此结构上实现数据库的所有特性,如创建、读取、更新、删除(CRUD)等操作,以及处理事务和高可用性等能力。在图数据库中,节点和边分别表示实体和实体之间的关系。
目前LLM(大语言模型技术)在业界得到了广泛应用和验证,以chatGPT为代表在众多行业得到了广泛应用,是有可能引起下一代技术革命的重要技术。
而在图数据库领域,作为人机交互入口的图查询语句,目前还未有广泛实现的标准图数据库语句,由于大语言模型存在泛而不精的长尾效应,因而导致大模型在辅助生成各个厂商的自研语句时往往效果不佳。
发明内容
本申请的目的在于克服现有技术中大语言模型存在泛而不精的长尾效应的问题,提供一种通过LLM生成图数据库语句的方法及web装置,通过模拟人类查阅资料的方式,先识别目录,再学习相关语句资料和实例,进而达到能快速学习生成图数据库查询语句的能力。
第一方面,提供了一种通过LLM生成图数据库语句的方法,包括:
基于图数据库语句文档构建知识库,其中,所述知识库包括图数据库语句文档和示例语句;
基于所述知识库创建JSON字符串形式的文档目录,并通过大语言模型推理出与用户问题匹配度最高的前N个文档目录,其中,N为正整数;
根据推理出的文档目录从知识库中取出对应的示例语句并进行合并,取合并后形成语句的前M个字之内的语句形成备用语句文档,其中,1000≤M≤3000;
根据用户所选择的图空间生成所述图空间的元数据信息;
将所述备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一请求语句;
将所述第一请求语句发送至大语言模型以获取输出结果,筛选出所述输出结果中的图数据库语句并通过Codemirror进行展示。
进一步的,基于图数据库语句文档构建知识库,包括:
从文档网站中爬取图数据库语句文档;
将图数据库语句文档的网页网址去除冗余信息后作为key,并对key进行文案优化;
以图数据库语句文档的内容为值匹配出所有的示例语句;
将所述网页网址和值以map形式存储到JSON文件中。
进一步的,根据用户所选择的图空间生成所述图空间的元数据信息,包括:
查询出用户所选择的图空间;
查询所述图空间中图数据库的点标签类型和边类型;
查询图数据库的点标签类型和边类型所对应的属性名和类型值;
将图数据库的点标签类型和边类型以及对应的属性名和类型值分别拼接成点标签类型字符串和边类型字符串;
将所述图空间、点标签类型字符串、边类型字符串和点标签类型拼接成所述图空间的元数据信息。
可选的,将图数据库的点标签类型和边类型拼接成字符串的拼接方式为:
遍历点标签和边类型,将每一项点标签类型或边类型的类型名和类型的数据类型用括号包裹起来形成类型描述字符串,再将多项类型描述字符串用逗号拼接在一起,以形成描述当前图空间的点标签拼接字符串和边类型拼接字符串。
可选的,将所述图空间、点标签类型字符串、边类型字符串和点标签类型拼接成所述图空间的元数据信息的拼接方式为:
将图空间名称、点标签描述拼接字符串、边类型描述拼接字符串以及图空间的VID类型分别与对应的文案描述用冒号合并,再用分号合并在一起以生成图空间的元数据信息。
进一步的,将所述备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一请求语句,包括:
将所述备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一字符串,其中,拼接方式为:用自然语言描述图空间的元数据信息和文档信息的作用,并告知LLM使用Makrdown返回对应的答案,以及将返回的答案中的NGQL代码段用分隔符包裹且无需进行代码解释;
将所述第一字符串与用户问题拼接在一起,以形成第二字符串;
在第二字符串的开头拼接上用户历史对话的最近X条记录,且每条记录保留Y个字,其中,1≤X≤9,50≤Y≤150,以形成第一请求语句。
可选的,还包括:
根据用户实时输入的图数据库语句识别出需要补全的语句文档;
根据用户所选择的图空间生成所述图空间的元数据信息;
将语句文档、元数据信息以及用户输入语句的上下文信息拼接成第二请求语句;
将所述第二请求语句发送至大语言模型以获取推测的补全语句,将所述补全语句在用户输入界面进行展示以供用户选用。
第二方面,提供了一种通过LLM生成图数据库语句的web装置,包括:
知识库构建模块,用于基于图数据库语句文档构建知识库,其中,所述知识库包括图数据库语句文档和示例语句;
最优文档匹配模块,用于基于所述知识库创建JSON字符串形式的文档目录,并通过大语言模型推理出与用户问题匹配度最高的前N个文档目录,其中,N为正整数;
备用文档生成模块,用于根据推理出的文档目录从知识库中取出对应的示例语句并进行合并,取合并后形成语句的前M个字之内的语句形成备用语句文档,其中,1000≤M≤3000;
第一元数据获取模块,用于根据用户所选择的图空间生成所述图空间的元数据信息;
第一请求语句组装模块,用于将所述备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一请求语句;
第一推理与展示模块,用于将所述第一请求语句发送至大语言模型以获取输出结果,筛选出所述输出结果中的图数据库语句并通过Codemirror进行展示。
可选的,还包括:
识别模块,用于根据用户实时输入的图数据库语句识别出需要补全的语句文档;
第二元数据获取模块,用于根据用户所选择的图空间生成所述图空间的元数据信息;
第二请求语句组装模块,用于将语句文档、元数据信息以及用户输入语句的上下文信息拼接成第二请求语句;
第二推理与展示模块,用于将所述第二请求语句发送至大语言模型以获取推测的补全语句,将所述补全语句在用户输入界面进行展示以供用户选用。
第三方面,提供了一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如第一方面中的任意一种实现方式中方法的步骤。
本申请具有如下有益效果:本申请不需要使用embeding的API或词嵌入模型,减少花费和部署成本,并且通过文档目录的方式,将知识目录通过树状结构传递给LLM,利用LLM已有的广域知识和推理能力,选择出适合的知识文档,可以得到更加符合逻辑的输出结果,从而能够通过自然语言对话的形式生成图数据库语句,并且通过先识别文档目录,再学习相关语句资料和实例,从而能够达到快速学习生成图数据库查询语句的效果。
附图说明
构成本申请的一部分的附图用于来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例1的通过LLM生成图数据库语句的方法的流程图;
图2是本申请实施例1的通过LLM生成图数据库语句的方法中生成图数据库语句的简易流程图;
图3是本申请实施例1的通过LLM生成图数据库语句的方法中图数据库语句预测补全的简易流程图;
图4是本申请实施例1的通过LLM生成图数据库语句的方法中图数据库语句展示的示例图;
图5是本申请实施例2的通过LLM生成图数据库语句的web装置的结构框图一;
图6是本申请实施例2的通过LLM生成图数据库语句的web装置的结构框图二。
附图标记:
1、知识库构建模块;2、最优文档匹配模块;3、备用文档生成模块;4、第一元数据获取模块;5、第一请求语句组装模块;6、第一推理与展示模块;7、识别模块;8、第二元数据获取模块;9、第二请求语句组装模块;10、第二推理与展示模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1
本申请实施例1所涉及的一种通过LLM生成图数据库语句的方法,包括:基于图数据库语句文档构建知识库,其中,所述知识库包括图数据库语句文档和示例语句;基于所述知识库创建JSON字符串形式的文档目录,并通过大语言模型推理出与用户问题匹配度最高的前N个文档目录,其中,N为正整数;根据推理出的文档目录从知识库中取出对应的示例语句并进行合并,取合并后形成语句的前M个字之内的语句形成备用语句文档,其中,1000≤M≤3000;根据用户所选择的图空间生成所述图空间的元数据信息;将所述备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一请求语句;将所述第一请求语句发送至大语言模型以获取输出结果,筛选出所述输出结果中的图数据库语句并通过Codemirror(CodeMirror是一个用JavaScript实现的通用文本编辑器,它专门用于代码编辑,内置多种开发语言模式和插件,支持代码高亮、自动补全、查找、快捷键等)进行展示,该方法不需要使用embeding(embedding,即嵌入,是一个数学概念,指的是将一个数学结构中的实例嵌入到另一个数学结构中的过程,在自然语言处理领域,特别是神经网络模型中,也需要进行嵌入,即将语义信息嵌入到连续的向量空间中的过程)的API或词嵌入模型,减少花费和部署成本,并且通过文档目录的方式,将知识目录通过树状结构传递给LLM,利用LLM已有的广域知识和推理能力,选择出适合的知识文档,可以得到更加符合逻辑的输出结果,从而能够通过自然语言对话的形式生成图数据库语句,并且通过先识别文档目录,再学习相关语句资料和实例,从而能够达到快速学习生成图数据库查询语句的效果。
具体的,图1示出了申请实施例1中的通过LLM生成图数据库语句的方法的流程图,在本实施例中:使用的LLM模型以GPT为例,使用的图数据库语句以NebulaGraph的NGQL为例,使用的服务器语音以golang为例,该方法大部分逻辑处理在前端通过Javascript在浏览器客户端完成,服务端所需的准备工作为:将GPT的API地址通过Golang服务进行代理转发,避免其中的API key泄露,检查代理后的http响应头,若符合event-stream协议,则通过websocket协议,监听读取Body并端对端的将每条event-stream消息内容下发到浏览器客户端,直到收到[DONE]标识为止,如图2所示,该方法具体包括:
S101、基于图数据库语句文档构建知识库,其中,所述知识库包括图数据库语句文档和示例语句;
具体的:
S1011、通过爬虫对文档网站的对应ngql文档进行爬取;
S1012、将URL(即网页网址)去除冗余信息(如:域名,相同的路径等)后作为key,并根据实际情况对key进行文案优化,尽可能的将ngql文档内容总结性的表述在url上;
S1013、以ngql文档内容为值,匹配出所有的示例语句;
S1014、将上述的url和值以map形式存储到JSON文件中。
S102、基于所述知识库创建JSON字符串形式的文档目录,并通过大语言模型推理出与用户问题匹配度最高的前N个文档目录,其中,N为正整数;
具体的,将上述ngql文档map中的key全部取出转为JSON字符串作为文档目录,参考以下模板拼接上用户问题,得到GPT推理的最匹配N个文档目录,其中,N可以取1、2、3、4、5等正整数,在较优的实施例中,N的值取2;
模板:"the graph database docs with","split is below:${文档目录}.giveme the top 2relevant value for the question:"${用户问题}".just give me thevalue without any prefix words.the value is:"。
S103、根据推理出的文档目录从知识库中取出对应的示例语句并进行合并,取合并后形成语句的前M个字之内的语句形成备用语句文档,其中,1000≤M≤3000;
以N取2为例,根据结果匹配的两个最优的文档目录,从json文件中取出对应的示例语句合并,取前M个字之内的语句作为备用语句文档,M可以为1000、1200、1500、2000、3000等数值,在较优的实施例中,取前2000个字之内的语句作为备用语句文档,目的是为了避免语句太长导致超过GPT的API限制,也是为了节省一部分开支,匹配两个最优的文档目录,可以避免某些需要字句查询或联合查询的情况,多个语句文档可以有效的提高这种情况的准确率。
S104、根据用户所选择的图空间生成所述图空间的元数据信息;
具体的,查询出当前用户所选择的图空间,查出当前图空间的所有Tags(即点标签类型)和EdgeTypes(即边类型),并且查出对应的所有属性名和类型值,将Tags和EdgeTypes分别用以下方式拼接成字符串:
遍历点标签和边类型,将每一项点标签类型或边类型的类型名和类型的数据类型用括号包裹起来形成类型描述字符串,再将多项类型描述字符串用逗号拼接在一起,以形成描述当前图空间的点标签拼接字符串和边类型拼接字符串。
示例性的,将图数据库的点标签类型和边类型拼接成字符串的拼接代码为:`${item.name}[${item.fields.map((p)=>p.Field+`(${p.Type})`).join(",")}]`。
其中,这种方式拼接方式对比JSON字符串,可以节省大量的key,双引号,冒号等字符,在拼接大型空间时,能减少单次发送HTTP接口的数据量。
然后按照以下格式拼接当前图空间的元数据信息:
将图空间名称、点标签描述拼接字符串、边类型描述拼接字符串以及图空间的VID类型分别与对应的文案描述用冒号合并,再用分号合并在一起以生成图空间的元数据信息。
示例性的,拼接代码为:
`now space:${图空间};tags:\n:${Tag拼接字符串}\nedges:\n${Edges拼接字符串}\nspace vid type:"${图空间VID类型}"`。
S105、将所述备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一请求语句;
具体的,将上述获得的备用语句文档、元数据以及用户输入的语句上下文拼接成第一字符串,其中,拼接方式为:用自然语言描述图空间的元数据信息和文档信息的作用,并告知LLM使用Makrdown返回对应的答案,以及将返回的答案中的NGQL代码段用分隔符包裹且着重强调无需进行相关代码解释,其中,分隔符可以是引号(``或""或”)、括号(())等任意分隔符;
示例性的,拼接代码为:
`learn the below NGQL,and use it to help user write the ngql,the userspace schema is"{schema}"the doc is:\n${docString}the question is"{query_str}"`;
将所述第一字符串与用户问题拼接在一起,以形成第二字符串,示例性的,在上述字符串的基础上拼接上"you need use markdown to reply short and clear.don'texplain and add```as markdown code block to write the ngql."来保证最后能生成ngql能足够简洁,并通过markdown格式能更好的进行后处理,其中,Markdown是一种轻量级标记语言,它使用易读易写的文本格式,将文本转换成HTML格式,它的目标是实现易读易写,相比于其他的标记语言,Markdown具有简单易学、易于上手、可读性强等优点。
最后将历史对话取最近X条记录,并且每条保留Y个字,拼接在所有语句开头以形成第一请求语句,来实现历史对话参考功能,其中,X可以取1、2、3、5、8、9等,Y可以取50、100、150等,在较优的实施例中,X取5,Y取100。
S106、将所述第一请求语句发送至大语言模型以获取输出结果,筛选出所述输出结果中的图数据库语句并通过Codemirror进行展示。
具体的,将上述第一请求语句发送到GPT,将temperature设为1,提高一定的生成自由度,得到结果后,将其中的NGQL语句过滤出来,将其中的语句部分使用Codemirror展示,如图4所示,并且可以添加运行按钮,用户可以通过按钮快速跳转至控制台,至此,就完成了通过自然语言对话生成NebulaGraph的NGQL语句功能。
在进一步的实施例中,如图3所示,还包括代码推测步骤:
S107、根据用户实时输入的图数据库语句识别出需要补全的语句文档;
具体的,代码推测需要根据用户实时输入的ngql,识别到需要补全的语句文档,因此需要实现一个简单的语法解析器。
示例性的,需要先获取用户当前输入行的字符串记为lineStr,然后将lineStr用分号分割,取最后一个语句作为当前用户输入的主语句,然后通过"|"符号分割字句,获取最后一个字句,若没字句则用主语句代替字句。将字句用空格分隔,取出第一个单词得到当前需要补齐的语句类型,若该语句类型没有在知识库的json中存储,则放弃本次补全,避免产生误导性结果。
S108、根据用户所选择的图空间生成所述图空间的元数据信息;
S109、将语句文档、元数据信息以及用户输入语句的上下文信息拼接成第二请求语句;
具体的,将上一步语法解析得到的语句类型找到对应的语句文档,其中,步骤S108和步骤S109同上述的步骤S104和步骤S105,这里不再进行赘述,目的在于拼接用户当前图空间的元数据,文档,当前输入的语句,最后再拼接如下语句,让GPT返回最后可能的结果:
`As a NebulaGraph NGQL code autocomplete copilot,you have access tothe following information:document"${文档}"and user space schema"${元数据}".
Use this information to guess the user's next NGQL code autocompleteas accurately as possible.
Please provide your guess as a response without any prefix words.
Don't explain anything.
the next autocomplete text can combine with the given text.
use space schema to help you write the ngql.
if you can't guess,say"Sorry",
if you think the ngql is over,return";"
The user's NGQL text is:${用户当前输入的语句}
the next autocomplete text is:`,
其中,上述prompt(即拼接的字符串)在GPT无法正常生成提示时返回Sorry作为异常标识。
S110、将所述第二请求语句发送至大语言模型以获取推测的补全语句,将所述补全语句在用户输入界面进行展示以供用户选用。
具体的,获得预测的补全语句后,将GPT有时出现的语句描述符如:gql,cypher,nql等正则替换掉,然后将推测的语句插入到界面中进行提示。还可以在检测到用户按下Tab键时,将推测的语句直接跟在当前光标处进行补齐,当然也可以定义其它操作方式来让用户进行补全语句的自动补齐操作。
实施例2
本申请实施例2所涉及的一种通过LLM生成图数据库语句的web装置,如图5所示,包括:
知识库构建模块1,用于基于图数据库语句文档构建知识库,其中,所述知识库包括图数据库语句文档和示例语句;
最优文档匹配模块2,用于基于所述知识库创建JSON字符串形式的文档目录,并通过大语言模型推理出与用户问题匹配度最高的前N个文档目录,其中,N为正整数;
备用文档生成模块3,用于根据推理出的文档目录从知识库中取出对应的示例语句并进行合并,取合并后形成语句的前M个字之内的语句形成备用语句文档,其中,1000≤M≤3000;
第一元数据获取模块4,用于根据用户所选择的图空间生成所述图空间的元数据信息;
第一请求语句组装模块5,用于将所述备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一请求语句;
第一推理与展示模块6,用于将所述第一请求语句发送至大语言模型以获取输出结果,筛选出所述输出结果中的图数据库语句并通过Codemirror进行展示。
为了实现对用户所输入的代码(即图数据库查询语句)的自动补齐功能,如图6所示,还包括:
识别模块7,用于根据用户实时输入的图数据库语句识别出需要补全的语句文档;
第二元数据获取模块8,用于根据用户所选择的图空间生成所述图空间的元数据信息;
第二请求语句组装模块9,用于将语句文档、元数据信息以及用户输入语句的上下文信息拼接成第二请求语句;
第二推理与展示模块10,用于将所述第二请求语句发送至大语言模型以获取推测的补全语句,将所述补全语句在用户输入界面进行展示以供用户选用。
需要说明的是,本发明实施例中通过LLM生成图数据库语句的web装置的其他具体实施方式,可参见上述通过LLM生成图数据库语句的方法的具体实施方式,为避免冗余,此处不再赘述。
实施例3
本申请实施例3所涉及的一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如本申请实施例1中的任意一种实现方式中方法的步骤;
其中,计算机可读存储介质可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM);计算机可读存储介质可以存储程序代码,当计算机可读存储介质中存储的程序被处理器执行时,处理器用于执行如本申请实施例1中的任意一种实现方式中方法的步骤。
以上,仅为本申请较佳的具体实施方式;但本申请的保护范围并不局限于此。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,根据本申请的技术方案及其改进构思加以等同替换或改变,都应涵盖在本申请的保护范围内。

Claims (10)

1.一种通过LLM生成图数据库语句的方法,其特征在于,包括:
基于图数据库语句文档构建知识库,其中,所述知识库包括图数据库语句文档和示例语句;
基于所述知识库创建JSON字符串形式的文档目录,并通过大语言模型推理出与用户问题匹配度最高的前N个文档目录,其中,N为正整数;
根据推理出的文档目录从知识库中取出对应的示例语句并进行合并,取合并后形成语句的前M个字之内的语句形成备用语句文档,其中,1000≤M≤3000;
根据用户所选择的图空间生成所述图空间的元数据信息;
将所述备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一请求语句;
将所述第一请求语句发送至大语言模型以获取输出结果,筛选出所述输出结果中的图数据库语句并通过Codemirror进行展示。
2.根据权利要求1所述的通过LLM生成图数据库语句的方法,其特征在于,基于图数据库语句文档构建知识库,包括:
从文档网站中爬取图数据库语句文档;
将图数据库语句文档的网页网址去除冗余信息后作为key,并对key进行文案优化;
以图数据库语句文档的内容为值匹配出所有的示例语句;
将所述网页网址和值以map形式存储到JSON文件中。
3.根据权利要求1所述的通过LLM生成图数据库语句的方法,其特征在于,根据用户所选择的图空间生成所述图空间的元数据信息,包括:
查询出用户所选择的图空间;
查询所述图空间中图数据库的点标签类型和边类型;
查询图数据库的点标签类型和边类型所对应的属性名和类型值;
将图数据库的点标签类型和边类型以及对应的属性名和类型值分别拼接成点标签类型字符串和边类型字符串;
将所述图空间、点标签类型字符串、边类型字符串和点标签类型拼接成所述图空间的元数据信息。
4.根据权利要求3所述的通过LLM生成图数据库语句的方法,其特征在于,将图数据库的点标签类型和边类型拼接成字符串的拼接方式为:
遍历点标签和边类型,将每一项点标签类型或边类型的类型名和类型的数据类型用括号包裹起来形成类型描述字符串,再将多项类型描述字符串用逗号拼接在一起,以形成描述当前图空间的点标签拼接字符串和边类型拼接字符串。
5.根据权利要求3所述的通过LLM生成图数据库语句的方法,其特征在于,将所述图空间、点标签类型字符串、边类型字符串和点标签类型拼接成所述图空间的元数据信息的拼接方式为:
将图空间名称、点标签描述拼接字符串、边类型描述拼接字符串以及图空间的VID类型分别与对应的文案描述用冒号合并,再用分号合并在一起以生成图空间的元数据信息。
6.根据权利要求1所述的通过LLM生成图数据库语句的方法,其特征在于,将所述备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一请求语句,包括:
将所述备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一字符串,其中,拼接方式为:用自然语言描述图空间的元数据信息和文档信息的作用,并告知LLM使用Makrdown返回对应的答案,以及将返回的答案中的NGQL代码段用分隔符包裹且无需进行代码解释;
将所述第一字符串与用户问题拼接在一起,以形成第二字符串;
在第二字符串的开头拼接上用户历史对话的最近X条记录,且每条记录保留Y个字,其中,1≤X≤9,50≤Y≤150,以形成第一请求语句。
7.根据权利要求1所述的通过LLM生成图数据库语句的方法,其特征在于,还包括:
根据用户实时输入的图数据库语句识别出需要补全的语句文档;
根据用户所选择的图空间生成所述图空间的元数据信息;
将语句文档、元数据信息以及用户输入语句的上下文信息拼接成第二请求语句;
将所述第二请求语句发送至大语言模型以获取推测的补全语句,将所述补全语句在用户输入界面进行展示以供用户选用。
8.一种通过LLM生成图数据库语句的web装置,其特征在于,包括:
知识库构建模块,用于基于图数据库语句文档构建知识库,其中,所述知识库包括图数据库语句文档和示例语句;
最优文档匹配模块,用于基于所述知识库创建JSON字符串形式的文档目录,并通过大语言模型推理出与用户问题匹配度最高的前N个文档目录,其中,N为正整数;
备用文档生成模块,用于根据推理出的文档目录从知识库中取出对应的示例语句并进行合并,取合并后形成语句的前M个字之内的语句形成备用语句文档,其中,1000≤M≤3000;
第一元数据获取模块,用于根据用户所选择的图空间生成所述图空间的元数据信息;
第一请求语句组装模块,用于将所述备用语句文档、元数据信息以及用户输入语句的上下文信息拼接成第一请求语句;
第一推理与展示模块,用于将所述第一请求语句发送至大语言模型以获取输出结果,筛选出所述输出结果中的图数据库语句并通过Codemirror进行展示。
9.根据权利要求8所述的通过LLM生成图数据库语句的web装置,其特征在于,还包括:
识别模块,用于根据用户实时输入的图数据库语句识别出需要补全的语句文档;
第二元数据获取模块,用于根据用户所选择的图空间生成所述图空间的元数据信息;
第二请求语句组装模块,用于将语句文档、元数据信息以及用户输入语句的上下文信息拼接成第二请求语句;
第二推理与展示模块,用于将所述第二请求语句发送至大语言模型以获取推测的补全语句,将所述补全语句在用户输入界面进行展示以供用户选用。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储用于设备执行的程序代码,该程序代码包括用于执行如权利要求1-7中任一项所述方法的步骤。
CN202311217342.4A 2023-09-20 2023-09-20 一种通过LLM生成图数据库语句的方法及web装置 Active CN116955674B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311217342.4A CN116955674B (zh) 2023-09-20 2023-09-20 一种通过LLM生成图数据库语句的方法及web装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311217342.4A CN116955674B (zh) 2023-09-20 2023-09-20 一种通过LLM生成图数据库语句的方法及web装置

Publications (2)

Publication Number Publication Date
CN116955674A CN116955674A (zh) 2023-10-27
CN116955674B true CN116955674B (zh) 2024-01-09

Family

ID=88455059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311217342.4A Active CN116955674B (zh) 2023-09-20 2023-09-20 一种通过LLM生成图数据库语句的方法及web装置

Country Status (1)

Country Link
CN (1) CN116955674B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117251473B (zh) * 2023-11-20 2024-03-15 摩斯智联科技有限公司 车辆数据查询分析方法、系统、装置和存储介质
CN117391192B (zh) * 2023-12-08 2024-03-15 杭州悦数科技有限公司 基于图数据库的利用llm从pdf构建知识图谱的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114218472A (zh) * 2021-12-15 2022-03-22 北京工业大学 基于知识图谱的智能搜索系统
CN115248826A (zh) * 2022-09-21 2022-10-28 杭州悦数科技有限公司 一种大规模分布式图数据库集群运维管理的方法和系统
CN115618070A (zh) * 2022-12-15 2023-01-17 杭州悦数科技有限公司 一种基于图数据库的可视化建模方法、系统、装置和介质
CN116340584A (zh) * 2023-05-24 2023-06-27 杭州悦数科技有限公司 一种自动生成复杂图数据库查询语句服务的实现方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996567B2 (en) * 2014-05-30 2018-06-12 Georgetown University Process and framework for facilitating data sharing using a distributed hypergraph
US11893385B2 (en) * 2021-02-17 2024-02-06 Open Weaver Inc. Methods and systems for automated software natural language documentation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114218472A (zh) * 2021-12-15 2022-03-22 北京工业大学 基于知识图谱的智能搜索系统
CN115248826A (zh) * 2022-09-21 2022-10-28 杭州悦数科技有限公司 一种大规模分布式图数据库集群运维管理的方法和系统
CN115618070A (zh) * 2022-12-15 2023-01-17 杭州悦数科技有限公司 一种基于图数据库的可视化建模方法、系统、装置和介质
CN116340584A (zh) * 2023-05-24 2023-06-27 杭州悦数科技有限公司 一种自动生成复杂图数据库查询语句服务的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
数字地图出版原图数据库管理系统设计与实现;杨春成, 张清浦, 李宏;测绘通报(09);全文 *

Also Published As

Publication number Publication date
CN116955674A (zh) 2023-10-27

Similar Documents

Publication Publication Date Title
CN116955674B (zh) 一种通过LLM生成图数据库语句的方法及web装置
US9619448B2 (en) Automated document revision markup and change control
Fawcett et al. Beginning XML
CN1815477B (zh) 用于提供基于标记语言的限定词的方法和系统
US8868556B2 (en) Method and device for tagging a document
WO2009007181A1 (en) A method, system and computer program for intelligent text annotation
US10235363B2 (en) Instant translation of user interfaces of a web application
CN114945911A (zh) 使用自然语言处理从非结构化文档中提取信息并将非结构化文档转换为结构化文档
CN112527291A (zh) 网页生成方法、装置、电子设备及存储介质
US10489024B2 (en) UI rendering based on adaptive label text infrastructure
US11392753B2 (en) Navigating unstructured documents using structured documents including information extracted from unstructured documents
JPWO2006051954A1 (ja) 文書処理装置及び文書処理方法
CN104778232A (zh) 一种基于长查询的搜索结果的优化方法和装置
Liu et al. An XML-enabled data extraction toolkit for web sources
JPWO2006051955A1 (ja) サーバ装置及び名前空間発行方法
EP2711838A1 (en) Documentation parser
JPWO2006051956A1 (ja) サーバ装置及び検索方法
CN115794869A (zh) 语义查询可视化构建与生成的实现方法及装置
Hadlock Ajax for Web Application Developers
KR102585545B1 (ko) 음성 기반 제품사용설명서 안내 서비스 제공 방법
US8719693B2 (en) Method for storing localized XML document values
Lam et al. Web information extraction
JPWO2006051957A1 (ja) 文書処理装置及び文書処理方法
JP2004303097A (ja) 構造化文書の部分文書抽出プログラムおよび部分文書抽出方法
Burget Information Extraction from HTML Documents Based on Logical Document Structure

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant