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

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

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

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

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

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

通过多张表,通过中文生成SQL
通过中文注释来生成SQL

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

chatGPT的入门案例

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的落地案例

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

本文链接:https://my.lmcjl.com/post/7937.html

展开阅读全文

4 评论

留下您的评论.