当前位置:   article > 正文

chatGPT实战之「基于你的数据库,为你智能生成SQL」_intext:chatgpt直接访问sql文件

intext:chatgpt直接访问sql文件

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种场景的介绍,欢迎大家关注我,到时候直播实现好及时通知。

  1. public static void main(String[] args) {
  2. String token = "换成你自己的Token";
  3. OpenAiService service = new OpenAiService(token);
  4. CompletionRequest completionRequest = CompletionRequest.builder()
  5. .model("code-davinci-002")
  6. .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")
  7. .temperature(0.0D)
  8. .maxTokens(1000)
  9. .topP(1D)
  10. .frequencyPenalty(0D)
  11. .presencePenalty(0D)
  12. .stop(Arrays.asList("#",";"))
  13. .build();
  14. service.createCompletion(completionRequest).getChoices().forEach(System.out::println);
  15. }

chatGPT的落地案例

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

  1. public class AiUtils {
  2. /**
  3. * 生成需求
  4. * @return
  5. */
  6. public static List<CompletionChoice> generatorSqlQuery(String tables,String demand){
  7. String keyword = "";
  8. if(demand.contains("查询")||demand.contains("select")){
  9. keyword = "SELECT";
  10. }else if(demand.contains("删除数据")||demand.contains("delete")){
  11. keyword = "DELETE";
  12. }else if(demand.contains("删除")||demand.contains("drop")){
  13. keyword = "DROP";
  14. }else if(demand.contains("修改数据")||demand.contains("update")){
  15. keyword = "UPDATE";
  16. }else if(demand.contains("修改")||demand.contains("alter")){
  17. keyword = "ALTER";
  18. }else if(demand.contains("增加")||demand.contains("insert")){
  19. keyword = "INSERT";
  20. }else if(demand.contains("创建")||demand.contains("create")){
  21. keyword = "CREATE";
  22. }else if(demand.contains("显示")||demand.contains("show")){
  23. keyword = "SHOW";
  24. }else if(demand.contains("清空")||demand.contains("truncate")){
  25. keyword = "TRUNCATE";
  26. }
  27. OpenAiService service = new OpenAiService(TOKEN);
  28. CompletionRequest completionRequest = CompletionRequest.builder()
  29. .model("code-davinci-002")
  30. .prompt(String.format("%s %s\\n%s",tables,demand,keyword))
  31. .temperature(0.0D)
  32. .maxTokens(1000)
  33. .topP(1D)
  34. .frequencyPenalty(0D)
  35. .presencePenalty(0D)
  36. .stop(Arrays.asList("#",";"))
  37. .build();
  38. List<CompletionChoice> choices = service.createCompletion(completionRequest).getChoices();
  39. for (CompletionChoice choice : choices) {
  40. choice.setText(keyword+choice.getText());
  41. }
  42. return choices;
  43. }
  44. }

chatGPT落地收获

chatGPT更多的应用场景和落地注意事项,勇哥将在12月16号的直播中阐述,欢迎各位同学来捧场交流。+关注,届时好通知直播时间。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/364628
推荐阅读
相关标签
  

闽ICP备14008679号