一、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应用主要是帮助用户减少开发时间,降低开发成本。“打破人与结构化数据之间的壁垒”,即普通用户可以通过自然语言描述完成复杂数据库的查询工作,得到想要的结果。
添加图片注释,不超过 140 字(可选)
二、LLM 应用架构
LangChian 作为一个大语言模型开发框架,是 LLM 应用架构的重要一环。那什么是 LLM 应用架构呢?其实就是指基于语言模型的应用程序设计和开发的架构。
LangChian 可以将 LLM 模型、向量数据库、交互层 Prompt、外部知识、外部工具整合到一起,进而可以自由构建 LLM 应用。
添加图片注释,不超过 140 字(可选)
基于LLM的应用开发基本架构如上图,本文介绍以LangChain + LLM + RDB的方式来实现Text2SQL的实践方案。
三、LangChain 组件
添加图片注释,不超过 140 字(可选)
如上图,LangChain 包含六部分组成,分别为:Models、Prompts、Indexes、Memory、Chains、Agents。
四、Text2SQL实战应用
我们可以用来构建问答系统的一种最常见类型的数据库是SQL数据库。LangChain提供了许多内置的链和代理,它们与SQLAlchemy支持的任何SQL方言兼容(例如,MySQL、PostgreSQL、Oracle SQL、Databricks、SQLite)。它们支持以下用例:●根据自然语言问题生成要运行的查询;●创建能够根据数据库数据回答问题的聊天机器人;●基于用户想要分析的洞察构建自定义仪表板;●......
架构
在高层次上,任何SQL链和代理的步骤