简介
基于 ChatGPT API 和 OpenMLDB 数据库实现的 openmldb-chatgpt-plugin 我的项目开源了,作为人类迄今为止最强 AI 模型之一(GPT4 未凋谢 API),集成了 ChatGPT 模型的数据库有多好用,上面将带大家体验一下。
原理
实现原理是在 ChatGPT API 根底上做了肯定的 Prompt engineering,没有用 fine tune,在规范 SQL 场景上成果曾经十分不错,具体的 system prompt 设计大家能够看源码实现。
这个插件对于其余 SQL 数据库实践上也实用,不过因为加了一些间接查询数据库内容的集成性能,目前还是举荐应用 OpenMLDB。应用时须要全程联网,并且须要 OpenAI API key 和特定的网络条件,暂无条件的能够间接看上面的 Prompt 演示成果。
指令演示
自然语言对话能力
openmldb-chatgpt-plugin(后文简称 GPT 插件)有 ChatGPT 自身的自然语言对话能力,能够间接在客户端用中英文来询问数据库的根本用法以及特定 SQL 语法的介绍,这部分不须要特地的 prompt 优化,只是比 ChatGPT 网页版缩小须要关上浏览器发问的步骤。
并且得益于多轮对话的实现,用户能够依据上下文发问,相比传统搜索引擎找到须要的材料效率进一步提高。默认中文输入对国内用户也更加敌对。
SQL 执行、剖析与举荐
用户在 GPT 插件执行的 SQL 代码,理论也会提交到 OpenMLDB 集群执行,并且用户输出 (User >)、数据库输入(OpenMLDB >) 和 GPT 模型输入 (GTP >) 都会有不同的前缀和色彩辨别。
上图解决依照用户命令执行 SQL 外,还对上表的 SQL 语句进行了概要剖析,介绍这个表的名字,以及每一列的类型以及含意,最初还举荐应用 Insert 和 Select 语句进行插入和查问,这就是对 ChatGPT 模型应用 Prompt 工程实现的执行、剖析与举荐性能。
前面无论是 Insert 语句还是其余 SQL 语句,在执行后都会通过 AI 模型的解析与举荐,在执行 SQL 过程中不盲目学到了更多常识。这里也有些 Prompt 工程技巧,如果不心愿每次举荐的内容靠近,能够通过 temperature 参数管制文本生成的“探索性”。
简单表剖析
对于用户创立的一个列较多略微简单对表,GPT 插件也会适时地进行数据分析,除了简略统计列数和 Schema 等根底性能,它还会依据表名和列名信息进一步挖掘内容,对原始数据表列的含意剖析得清清楚楚。例如上面的表中,“乘客上下车工夫”、“上下车地点的经纬度”等信息都能够剖析和翻译进去,在没有额定信息收集和编程实现的根底上提供这些信息对数据科学家来说也是一种馈赠。
失败 SQL 调试和更正
后面例子展现的是可能胜利执行的 SQL,对于用户曾经编写没有语法错误的 SQL 进行剖析只是“精益求精”,但如果能够疾速帮忙用户解决执行失败的 SQL 那才是“雪中送炭”。通过 SQL 语句自身以及 OpenMLDB 提供的错误信息,ChatGPT 模型显然是具备这种 SQL 调试以及 SQL 更正的能力。
下面是一个 SQL 语法正确但类型谬误的状况,对于有教训的 SQL 工程师通过错误信息兴许能猜测出谬误的端倪,但可能以自然语言的模式并且无比正确地间接通知用户谬误中央以及后续的更正计划,从我集体测试的多个场景来看,这个可能 7*24 小时工作的工具曾经能够媲美身边高级的 DBA 了。
简单 SQL 剖析能力
上面是 OpenMLDB 官网文档的一个例子,应用 SQL 进行时许特色的抽取并且保留样本文件。
首先 ChatGPT 模型解析的 SQL 语义毫无问题,但更令人诧异的是,因为这个 SQL 语法的确不是在所有 SQL 都反对的,这里最初面补充的注意事项充沛表明”定制化“模型与通用闲聊机器人的区别。本插件提供的 SQL 解析能力都是建设在应用 OpenMLDB 数据库的根底上,对于非通用 SQL 可能解析并且讲清楚与规范 SQL 的区别,目前恐怕除了数据库的外围研发和深度用户也很少人能够“了解”分明。
数据库内容查问
后面演示的性能次要是 text to sql、SQL 剖析等性能,放在 ChatGPT 网页端或者任意公开的 ChatGPT 服务上都能够做,但 OpenMLDB ChatGPT 插件还是做了内容的深度整合,能够以自然语言的模式来查询数据库的内容。
这里还演示了 ChatGPT 无比优良的间断对话能力,能够以不同粒度、不同角度屡次按需查问,查到的内容不仅正确,而且还依据中文语义进一步丰盛了内容,格局也工整,能够很容易让它输入咱们须要的 CSV 或者任意格局,这是程序员人工写代码无论如何都达不到的效率。
总结
实际上 ChatGPT 插件很多的性能代码也是基于 ChatGPT 模型生成的,尽管不能间接依照集体须要实现整个数据库插件,但它弱小的代码搜寻和生成能力曾经能够简化咱们大量搜寻学习工夫,而基于历史积攒的海量 SQL 文献,它的业余能力更是能够失去程序员甚至资深 DBA 的认可。
除了下面的 Prompt 提醒词和性能演示,ChatGPT 模型还有十分多可玩、易用、高效的用法期待大家去开掘。