ChatGPT实战之「基于你的数据库,为你智能生成SQL」

闪电发卡1年前ChatGPT661

chatGPT为你生成SQL的落地效果演示


这几天很很多粉丝进行了深度交流,发现大家对于SQL学习或者编写都遇到过困难,因此勇哥突发奇想是否可以借助chatGPT来帮一下大家呢?于是就开启了chatGPT的落地之旅。从官网了解到chatGPT支持49种场景的,其中2中常见与sql相关,既:

  • 无依据,通过一句话来生成sql语句

  • 有依据,通过一句话来生成sql语句

这两种方式进过效果对比,第2种效果非常的好,于是我就在我的产品中按照第2中模式开发了一个对大家有帮助的功能:“基于你自己的数据库结构,通过一句中文,自动生成SQL语句”,演示效果如下:

第一种生成方式:单独窗口生成SQL,操作步骤:

  • 1、选中生成SQL可能要用到的表,这个将作为上下文,发送给chatGPT

  • 2、在打开的窗口中用中文描述你想要的SQL的需求,然后点击RUN按钮

  • 3、生成成功后的SQL会在右中面板中显示出来,同时你可以直接点运行,查看生成SQL语句的执行结果

通过多张表,通过中文生成SQL

第二种生成方式:查询器中生成SQL操作步骤:

  • 1、随便打开一个数据库表的查询器

  • 2、在查询器中写一句描述要生成sql语句的中文,选中后右键点击【Sq lGenerator】菜单,即可生成

  • 3、选中生成的SQL语句,即可执行查看结果

通过中文注释来生成SQL

chatGPT为你生成SQL的落地代码赏析

chatGPT的入门案例

其实chatGPT的API调用非常简单,但是复杂的是他的参数非常的复杂,举个两个例子:

  • 1、下面temperature参数写成0.0D或者0.1D,其它参数都不变,那么获得结果都是不同类的,也就是0.0D是你想要的SQL,0.1D就变成了小说内容了;

  • 2、prompt是输入的信息,49中场景,prompt的输入格式就有49种,非常复杂,一不小说错误输入,就会获取不到结果;

PS:下周一勇哥回专门开一场直播,来教大家入门chatGPT,以及49种场景的介绍,欢迎大家关注我,到时候直播实现好及时通知。

public static void main(String[] args) {
    String token = "换成你自己的Token";

    OpenAiService service = new OpenAiService(token);
    CompletionRequest completionRequest = CompletionRequest.builder()
        .model("code-davinci-002")
        .prompt("### Mysql SQL tables, 表字段信息如下:\\n#\\n# Employee(id, name, department_id)\\n# Department(id, name, address)\\n# Salary_Payments(id, employee_id, amount, date)\\n#\\n### 创建表的语法\\n HELP")
        .temperature(0.0D)
        .maxTokens(1000)
        .topP(1D)
        .frequencyPenalty(0D)
        .presencePenalty(0D)
        .stop(Arrays.asList("#",";"))
        .build();
    service.createCompletion(completionRequest).getChoices().forEach(System.out::println);}

chatGPT的落地案例

下面这段代码就是最开始我验收那些效果的真实代码,基本和入门代码差不多,不同的是我在上面增加了输入需求的初步过滤,这样生成的SQL精准度会高非常多。

public class AiUtils {

    /**
     * 生成需求
     * @return
     */
    public static List<CompletionChoice>  generatorSqlQuery(String tables,String demand){
        String keyword = "";
        if(demand.contains("查询")||demand.contains("select")){
            keyword = "SELECT";
        }else if(demand.contains("删除数据")||demand.contains("delete")){
            keyword = "DELETE";
        }else if(demand.contains("删除")||demand.contains("drop")){
            keyword = "DROP";
        }else if(demand.contains("修改数据")||demand.contains("update")){
            keyword = "UPDATE";
        }else if(demand.contains("修改")||demand.contains("alter")){
            keyword = "ALTER";
        }else if(demand.contains("增加")||demand.contains("insert")){
            keyword = "INSERT";
        }else if(demand.contains("创建")||demand.contains("create")){
            keyword = "CREATE";
        }else if(demand.contains("显示")||demand.contains("show")){
            keyword = "SHOW";
        }else if(demand.contains("清空")||demand.contains("truncate")){
            keyword = "TRUNCATE";
        }
        OpenAiService service = new OpenAiService(TOKEN);
        CompletionRequest completionRequest = CompletionRequest.builder()
                .model("code-davinci-002")
                .prompt(String.format("%s %s\\n%s",tables,demand,keyword))
                .temperature(0.0D)
                .maxTokens(1000)
                .topP(1D)
                .frequencyPenalty(0D)
                .presencePenalty(0D)
                .stop(Arrays.asList("#",";"))
                .build();
        List<CompletionChoice> choices = service.createCompletion(completionRequest).getChoices();
        for (CompletionChoice choice : choices) {
            choice.setText(keyword+choice.getText());
        }
        return choices;
    }}



闪电发卡ChatGPT产品推荐:

ChatGPT独享账号:https://xingtupai.com/post/86.html

ChatGPT Plus共享账号:https://xingtupai.com/post/319.html

ChatGPT Plus独享账号(购买充值代充订阅):https://xingtupai.com/post/306.html

ChatGPT APIKey购买充值(直连+转发):https://xingtupai.com/post/305.html

ChatGPT Plus国内镜像逆向版:https://xingtupai.com/post/312.html

ChatGPT国内版(AIChat):https://xingtupai.com/post/318.html


相关文章

这个简单的 ChatGPT 提示调整如何帮助完善 AI 生成的内容

这个简单的 ChatGPT 提示调整如何帮助完善 AI 生成的内容

通过这个方便的提示写作技巧,可以节省时间并在第一时间获得您需要的内容。大阪韦恩工作室/盖蒂图片社ChatGPT可以帮助您完成工作和个人生活中的日常任务,这已不是什么秘密。然而,输入完美的提示以获得您想...

ChatGPT函数调用初体验:让ChatGPT具备抓取网页文本的能力

 OpenAI在6月13号升级了ChatGPT,推出了类似其网页版插件的功能——函数调用(Function calling),13号当天我在很多微信公众号就看到了这个消息,甚至有人将函数调用称为杀手级...

如何编写更好的 ChatGPT 提示以获得最佳的 AI 生成结果

如何编写更好的 ChatGPT 提示以获得最佳的 AI 生成结果

编写有效的聊天机器人提示以从友好的邻居人工智能中获得您想要的结果是一门艺术。以下是如何提高你的提示写作游戏大卫·格维茨/ZDNET吉戈。这是一个缩写词,可以追溯到 1957 年 ,当时美国陆...

Open ai亲自致歉:流量远超预期

Open ai亲自致歉:流量远超预期

OpenAI前脚科技春晚炸翻全球,后脚自家院子却没能守住。原因无他,就是火爆,太太太太火爆!火爆到直接全线崩溃,无论是ChatGPT还是API,压根没法用,堪称史上最大的一次事故。ChatGPT全线崩...

如何使用 ChatGPT 计划假期

如何使用 ChatGPT 计划假期

ChatGPT 可以兼作您的个人按需旅行社。就是这样。马尔特·穆勒/盖蒂图片社由于ChatGPT可以执行许多技术任务,例如写作、编码和研究,因此围绕聊天机器人的大量宣传都集中在其彻底改变工作空间的能力...

ChatGPT的工作原理:深入探究和分析ChatGPT背后的原理

ChatGPT的工作原理:深入探究和分析ChatGPT背后的原理

这篇文章主要探讨了ChatGPT的工作原理。ChatGPT是基于OpenAI开发的GPT-4架构的大型语言模型。首先,文章介绍了GPT的基本概念,即生成预测性网络模型。GPT模型利用大量的文本数据进行...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。