LLMs and SQL

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,尽量把复杂查询分解成子查询,降低复杂度

 

posted on 2023-06-28 14:34  fxjwind  阅读(211)  评论(0编辑  收藏  举报