今天在朋友圈刷到TiDB在他们的 TiDB Cloud Serverless Tier中集成的chat2query功能。看到chatXXX这个名字,大家应该都能顾名思义。显然,它能通过对话的方式帮你生成Query。
这里是演示的动图,分别展示了一个Top 10查询和date histogram的聚合查询:
查询的语句不算复杂,“直观”上似乎是能够降低用户的使用入门门槛的。
可惜,就像唐刘自己在公众号里说的 ——
“但是,我推荐的朋友几乎全是有技术背景的人,所以当我跟一位不懂技术的朋友进行推荐的时候,我才突然意识到,我们的这款产品离好看以及好用,还有很长的路要走。”
关于数据库,query,BI这档事,业界早有定论,普通人需要的是不用学习query就能够知道查询和分析的结果。而拖拽式的可视化工具,难道不是更好的答案?
好了,不扯远了。其实我们今天要谈的是如何借助类似ChatGPT这种生成式的大模型来生成Elasticsearch搜索语句,嗯,就像Chat2Query所做的一样。
其实,随着数据量的增长和业务需求的不断变化,传统的查询和分析语言已经不能满足现代应用的需求。因此,越来越多的企业和技术公司开始尝试开发新的数据查询语言,或者利用人工智能等新技术提供更加智能化的数据查询解决方案。
在这方面,GPT模型作为一种先进的自然语言处理技术,能够生成领域特定的DSL表达式,使得用户可以使用更加自然、直观的方式来进行数据查询和分析。这样可以大大提高数据查询的效率和准确性,使得用户可以更加方便地从数据中获取有用的信息和洞察。因此,不少公司正在积极探索并利用这些新技术,以满足用户不断增长的需求。
其中,Copilot的出现更表明了人工智能技术在编程领域的应用越来越成熟,未来这种技术将会在软件开发领域扮演更加重要的角色。通过自动化代码生成、错误检测和调试等工作,将大大降低开发者的工作量,提高代码的质量和效率。
而ChatGPT更加加重了这一趋势和需求,因为ChatGPT的出现使生成式对话模型的应用变得更加普及化和便捷化,其火爆程度,直接把AIGC带入我们每个人的生活。
所以,如果我们对ES的DSL感到恐惧,不妨试一试现有各种AIGC工具,寻求AI的帮助,本文,我们就从Copilot和chatGPT开始。
第一个,我们先来看看在VS code上使用Copilot来生成ES DSL的例子。
首先,我们的先注册和申请Copliot的使用账号,并且将其安装到VS code中,步骤如下:
就如在下图中,我们只需要在注释中写入我们的需求,换行之后,通过tab键,就可以让Copilot为我们生成Elasticsearch的DSL:
接下来,我们再来看看在intellij上使用chatGPT的例子。
这里,我们将借助一个叫做EDQL的工具。
EDQL是基于Intellij平台的Elasticsearch专业查询和管理工具。它用于管理 Elasticsearch 集群和从 Elasticsearch 查询数据,具有以下功能。
安装并试用:https ://github.com/chengpohi/edql/releases/tag/v1.9.16
使用的方式和Copilot类似:
时代是在进步的,AIGC终将会带来一场不小的革命,而通过AIGC自动代码生成功能,能帮助我们提高编程效率和减少出错率。
然而,在使用过程中,我们还是需要保护好自己的隐私和知识产权,并遵守相关法律法规和道德规范。
同时,我们也需要意识到,作为一条经验法则,我们应该假设它可能会做最糟糕的事情:生成一个看起来正确、语法正确但产生错误答案的查询。
因此,工具为我们带来效率的同时,绝不意味着我们不再需要学习。当我们自己,停止进步的时候,或许,就会是潘多拉魔盒中厄运降临的时候