一、前言
目前,大模型的一个热门应用方向Text2SQL,它可以帮助用户快速生成想要查询的SQL语句,再结合可视化技术可以降低使用数据的门槛,更便捷的支持决策。本文将从以下四个方面介绍LLM在Text2SQL应用上的基础实践。
· Text2SQL概述
· LangChain基础知识
· 基于SQLDatabaseChain的Text2SQL实践
· 后续计划
二、Text2SQL概述
Text-to-SQL(或者Text2SQL),顾名思义就是把文本转化为SQL语言,更学术一点的定义是:把数据库领域下的自然语言(Natural Language,NL)问题,转化为在关系型数据库中可以执行的结构化查询语言(Structured Query Language,SQL),因此Text-to-SQL也可以被简写为NL2SQL。

· 输入:自然语言问题,比如“
查询表t_user的相关信息,结果按id降序排序,只保留前10个数据
”
· 输出:SQL,比如 “
SELECT * FROM t_user ORDER BY id DESC LIMIT 10
”
Text2SQL应用主要是帮助用户减少开发时间,降低开发成本。“打破人与结构化数据之间的壁垒”,即普通用户可以通过自然语言描述完成复杂数据库的查询工作,得到想要的结果。

基于LLM的应用开发基本架构如上图,本文介绍以LangChain + OpenAI + RDB的方式来实现Text2SQL的实践方案。
三、LangChain基础知识
LangChain是一个面向大语言模型的应用开发框架,如果将大语言模型比作人的大脑,那么可以将LangChain可以比作人的五官和四肢,它可以将外部数据源、工具和大语言模型连接在一起,既可以补充大语言模型的输入,也可以承接大语言模型的输出。
LangChain提供各种不同的组件帮助使用LLM,如下图所示,核心组件有Models、Indexes、Chains、Memory、Prompt以及Agent。

3.1 Models
LangChain本身不提供LLM,提供通用的接口访问LLM,可以很方便的更换底层的LLM以及自定义自己的LLM。主要有2大类的Models:
1)LLM:将文本字符串作为输入并返回文本字符串的模型,类似OpenAI的text-davinci-003


4222

被折叠的 条评论
为什么被折叠?



