赞
踩
传统BI工具通常分为数据接入层、分析工具层和基于该工具平台的各种行业应用层面,大模型可以在这些环节发挥作用。
在LLM赋能BI的过程中,Text2SQL(或者称为NL2SQL)将自然语言表述的查询语句转化为SQL语句,是构建智能BI不可缺少的步骤。
Text2SQL的实现路径有几种:
NL2SQL核心在于如何把自然语言组装成Prompt,并交给LLM转化成SQL。OpenAI官网上一个标准的chatGPT做自然语言转SQL的例子:
- System
-
- /*系统指令*/
- Given the following SQL tables, your job is to write queries given a user’s request.
-
- /*数据库内表结构*/
- CREATE TABLE Orders (
- OrderID int,
- CustomerID int,
- OrderDate datetime,
- OrderTime varchar(8),
- PRIMARY KEY (OrderID)
- );
-
- ...此处省略其他表...
-
- /*问题*/
- Write a SQL query which computes the average total order value for all orders on 2023-04-01.
NL2SQL的Prompt基本上就是几个部分组成:
LangChain提供基于LLM的SQLDatabaseChain,可以利用LLM的能力将自然语言表述的query转化为SQL,连接DB进行查询,并利用LLM组装润色结果,返回最终answer。
- from langchain.llms import OpenAI
- from langchain.utilities import SQLDatabase
- from langchain_experimental.sql import SQLDatabaseChain
- import os
-
- os.environ["OPENAI_API_KEY"] = "Your openai key"
-
- db = SQLDatabase.from_uri("sqlite:///..../Chinook.db")
- llm = OpenAI(temperature=0, verbose=True)
- db_chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)
- db_chain.run("总共有多少员工?")
基于SQLDatabaseChain实现的Text2SQL是最基础的实践方式,但对于逻辑复杂的查询在稳定性、可靠性、安全性方面可能无法达到预期,比如输出幻觉问题、数据安全问题。
LangChain的SQL Agent提供一种比Chain更灵活的与SQL数据库交互的方式。使用SQL Agent主要有以下优点:
使用create_sql_agent构造器来初始化SQL Agent,Agent使用的SQLDatabaseToolkit包含用于执行以下操作的工具:
AI科技智库声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。