首页 > 数据库 >LLMs and SQL

LLMs and SQL

时间:2023-06-28 14:45:30浏览次数:39  
标签:LLMs SQL 查询 LLM sql query 生成

https://blog.langchain.dev/llms-and-sql/

LLM生成SQL很容易

解决的问题是如果让LLM生成的SQL,是valid并且结果正确的

模拟人是如何写SQL的,本身人也是要上下文的,

那么问题就是需要什么上下文,并且如何组织

比较直觉的是,给出schema和几条真实数据的example

当然,langchain会自动生成这种context,

但是有时候,需要去hand-crafted,比如limit3的数据不具备代表性,需要更多的数据,或者limit3的数据有隐私问题需要处理

然后LLM生成的sql,怎么保证语法上是正确的,

这里会用一个工具query_checker_sql_db,去检查,如果语法有错,

可以把报错结果和原始查询发过LLM,让模型自己去纠正

We send the original query with the traceback log to the LLM and ask it to make it right

文中后面说了,两种可能的优化

一种是few-shots,给几个例子

二是,分解成subquerys,尽量把复杂查询分解成子查询,降低复杂度

 

标签:LLMs,SQL,查询,LLM,sql,query,生成
From: https://www.cnblogs.com/fxjwind/p/17511342.html

相关文章

  • mysql workbench 从模型导出表结构
    前言本教程,主要讲述,利用mysqlworkbench从数据库模型导出建表语句mysqlworkbench导出建表语句概述mysql生成数据库模型从数据库模型生成建表语句首先,浏览数据库模型导出建表语句导出一个库的建表语句在EER视图中,File—>Export—->forwarengineersqlcreatescript导出整个模型......
  • mysql collation 校对规则 utf8_general_ci 与 utf8_unicode_ci的区别
    援引官方文档 MysqldocumentForanyUnicodecharacterset,operationsperformedusingthe xxx_general_ci collationarefasterthanthoseforthe xxx_unicode_ci collation.Forexample,comparisonsforthe utf8_general_ci collationarefaster,butslightly......
  • java8 LocalDateTime/LocalDate/LocalTime、java.util.Date/java.sql.Date区别及日期
    先介绍一下,LocalDateTime/LocalDate/LocalTime、java.util.Date/java.sql.Date区别LocalDateTime/LocalDate/LocalTimejava.time.LocalDateTime,是一个日期+时间,不带时区,它是个不可更改对象,精确到纳秒。它的日期可以认为是生日,它的时间可以认为是挂钟的时间,比较LocalDateTime时用eq......
  • mysql workbench 快捷键
    mysqlworkbench常用快捷键新建tab(newtab)ctrl+t执行当前语句(executecurrentstatement)ctrl+enter执行全部或选中的语句(executeallorselection)ctrl+shift+enter查看执行计划(explaincurrentstatement)ctrl+alt+x注释--加空格,如–select*fromt;以上快捷......
  • 使用 SQLAlchemy 库来实现对 MySQL 数据库的增删改查
    在 Flask 中使用SQLAlchemy库来实现对MySQL数据库的增删改查fromflaskimportFlask,request,jsonifyfromflask_sqlalchemyimportSQLAlchemyapp=Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI']='mysql://username:password@localhost/dbname'ap......
  • sql server jdbc
    驱动<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>6.2.0.jre8</version></dependency>SSL连接出错[08S01]驱动程序无法通过使用安全套接字层(SSL)加密与SQLServer建立安全连接。错误:“......
  • mysql系列基础篇03----约束
    一、概述1、概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据2、目的:保证数据库中数据的正确,有效性和完整性。3、分类  二、约束演示创建一个用户表createtablemyuser(idintprimarykeyauto_incrementcomment'主键',namevarchar(10)notnulluniq......
  • (转载)Mysql里的锁(排它锁、共享锁、行锁、表锁、间隙锁、临键锁、意向锁)
    转载自:Mysql里的锁(排它锁、共享锁、行锁、表锁、间隙锁、临键锁、意向锁)一、加锁的目的是什么?在我们了解数据库锁之前,首先我们必须要明白加锁的目的是为了解决什么问题,如果你还不清楚的话,那么从现在起你应该知道,数据库的锁是为了解决事务的隔离性问题,为了让事务之间相互不影......
  • G1垃圾回收参数调优及MySQL虚引用造成GC时间过长分析 | 京东云技术团队
    1.背景我方有一应用,偶尔会出现GC时间过长(间隔约4小时),导致性能波动的问题(接口最长需要耗时3秒以上)。经排查为G1垃圾回收器参数配置不当叠加MySQL链接超过闲置时间回收,产生大量的虚引用,导致G1在执行老年代混合GC,标记阶段耗时过长导致。以下为对此问题的分析及问题总结。此外,此......
  • mysql系列基础篇01---通用的语法及分类
    通用语法及分类DDL:数据定义语言,用来定义数据库对象(数据库、表、字段)DML:数据操作语言,用来对数据库表中的数据进行增删改DQL:数据查询语言,用来查询数据库中表的记录DCL:数据控制语言,用来创建数据库用户、控制数据库的控制权限一、DDL(数据定义语言)1、数据库操作1.1创......