> 技术文档 > 超全指南!Text2SQL问答生成报表,WrenAI+DeepSeek完整实战手册(附操作截图)_wrenai配置其他大模型的步骤

超全指南!Text2SQL问答生成报表,WrenAI+DeepSeek完整实战手册(附操作截图)_wrenai配置其他大模型的步骤


一、WrenAI简介

WrenAI是一个开源的Text - to - SQL工具,由Canner开发,旨在通过自然语言交互界面帮助用户更便捷地查询数据库。它支持多种大型语言模型和嵌入模型,提供直观的用户界面,具有开源、安全、自我学习等特点,适用于数据分析、业务查询、数据探索等场景。

Canner/WrenAI: ⚡️Wren AI is your GenBI Agent, that you can query any database with natural language → get accurate SQL(Text-to-SQL), charts(Text-to-Charts) & AI-generated insights in seconds.

(一)支持数据源

  • BigQuery
  • DuckDB
  • PostgreSQL
  • MySQL
  • Microsoft SQL Server
  • ClickHouse
  • Trino
  • Snowflake

(二)大语言模型

Wren AI 支持与多种大语言模型 (LLM) 集成,包括但不限于:

  • OpenAI 模型
  • Azure OpenAI 模型
  • DeepSeek 模型
  • Google AI Studio - Gemini 模型
  • Vertex AI 模型(Gemini + Anthropic)
  • Bedrock 模型
  • Anthropic API 模型
  • Groq 模型
  • Ollama 模型
  • Databricks 模型

二、Linux环境部署(Ubuntu 22.04为例)

(一)安装前提条件

需要安装Docker环境,并拥有OpenAI Key,国内无法正常访问OpenAI,我这里直接使用DeepSeek,去官网申请充值十块钱生成API key备用。

(二)详细安装过程

以下是在  Linux 系统中下载并运行 Wren AI Launcher 的终端命令操作指南:

curl -L https://github.com/Canner/WrenAI/releases/latest/download/wren-launcher-linux.tar.gz | tar -xz && ./wren-launcher-linux

耐心等待安装完毕,选择Custom选项,如果需要自定义模型就要下载.envconfig.yml两个文件:

wget -O .env.example https://raw.githubusercontent.com/canner/WrenAI//docker/.env.example && \\mkdir -p ~/.wrenai && cp .env.example ~/.wrenai/.env
wget -O config.example.yaml https://raw.githubusercontent.com/canner/WrenAI//docker/config.example.yaml && \\mkdir -p ~/.wrenai && cp config.example.yaml ~/.wrenai/config.yaml

打开 ~/.wrenai/config.yaml 文件并进行更新,以匹配自定义的大语言模型(LLM)、嵌入模型(Embedder)或文档存储(Document Store)设置。可以参考相关章节获取如何配置这些设置的指导。此外,需要更新 .env 文件以填入所需的 API 密钥。

以下是常用模型配置示例(含千问、DeepSeek等),具体设置请参照下图所示:

WrenAI/wren-ai-service/docs/config_examples/config.deepseek.yaml at main · Canner/WrenAI

 (三)启动服务

进入到.wrenai执行脚本如下图,启动完成通过浏览器输入:http://服务地址:3000

三、使用实战

(一)DeepSeek生成测试数据

用DeekSeek生成测试数据,例如:

我需要一些电商数据,你帮我建立相关的数据表并生产测试数据,都需要sql语句。这些数据我要用来分析,请结合电商平台实际情况生成。

按照DeepSeek提供的表结构创建数据库表并插入测试数据:

-- 1. 用户表CREATE TABLE users ( user_id INT AUTO_INCREMENT PRIMARY KEY COMMENT \'用户ID\', username VARCHAR(50) NOT NULL COMMENT \'用户名\', email VARCHAR(100) UNIQUE COMMENT \'邮箱\', registration_date DATE NOT NULL COMMENT \'注册日期\', last_login DATETIME COMMENT \'最后登录时间\', city VARCHAR(50) COMMENT \'城市\', province VARCHAR(50) COMMENT \'省份\', total_orders INT DEFAULT 0 COMMENT \'总订单数\');-- 2. 商品分类表CREATE TABLE categories ( category_id INT AUTO_INCREMENT PRIMARY KEY COMMENT \'分类ID\', category_name VARCHAR(50) NOT NULL COMMENT \'分类名称\', parent_category_id INT COMMENT \'父分类ID\');-- 3. 商家表CREATE TABLE merchants ( merchant_id INT AUTO_INCREMENT PRIMARY KEY COMMENT \'商家ID\', merchant_name VARCHAR(100) NOT NULL COMMENT \'商家名称\', merchant_level ENUM(\'普通\', \'银牌\', \'金牌\', \'铂金\') COMMENT \'商家等级\', join_date DATE NOT NULL COMMENT \'加入日期\');-- 4. 商品表CREATE TABLE products ( product_id INT AUTO_INCREMENT PRIMARY KEY COMMENT \'商品ID\', product_name VARCHAR(255) NOT NULL COMMENT \'商品名称\', category_id INT NOT NULL COMMENT \'分类ID\', price DECIMAL(10,2) NOT NULL COMMENT \'价格\', stock INT NOT NULL COMMENT \'库存\', merchant_id INT NOT NULL COMMENT \'商家ID\', created_at DATE NOT NULL COMMENT \'上架日期\', avg_rating DECIMAL(3,2) DEFAULT 0.00 COMMENT \'平均评分\');-- 5. 订单表CREATE TABLE orders ( order_id VARCHAR(15) PRIMARY KEY COMMENT \'订单ID\', user_id INT NOT NULL COMMENT \'用户ID\', order_date DATETIME NOT NULL COMMENT \'下单时间\', total_amount DECIMAL(12,2) NOT NULL COMMENT \'订单总额\', status ENUM(\'待支付\', \'已付款\', \'已发货\', \'已完成\', \'已取消\') NOT NULL COMMENT \'订单状态\', payment_method ENUM(\'信用卡\', \'支付宝\', \'微信支付\', \'银联\') COMMENT \'支付方式\', shipping_city VARCHAR(50) COMMENT \'配送城市\');-- 6. 订单详情表CREATE TABLE order_details ( detail_id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT \'详情ID\', order_id VARCHAR(15) NOT NULL COMMENT \'订单ID\', product_id INT NOT NULL COMMENT \'商品ID\', quantity INT NOT NULL COMMENT \'购买数量\', unit_price DECIMAL(10,2) NOT NULL COMMENT \'成交单价\', subtotal DECIMAL(12,2) GENERATED ALWAYS AS (quantity * unit_price) STORED COMMENT \'小计金额\');-- 7. 用户行为表CREATE TABLE user_behavior ( behavior_id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT \'行为ID\', user_id INT NOT NULL COMMENT \'用户ID\', product_id INT COMMENT \'商品ID\', behavior_type ENUM(\'浏览\', \'加购\', \'购买\', \'评价\') COMMENT \'行为类型\', behavior_time DATETIME NOT NULL COMMENT \'行为时间\', duration_seconds INT COMMENT \'停留时长(秒)\');

(二)配置模型

在首页创建项目并且连接你的数据库,输入数据库地址、账号、密码等。

 数据库连接成功会自动导入数据库模型,这里可以配置表与表之间的关系,比如一对多、一对一,还可以设置计算字段,以便于AI更好地理解你的表述。

以上内容配置完毕,可随时开始提问,系统将返回SQL查询结果并支持图表生成,点击\"chart\"按钮即可可视化数据。 

(三)API调用

参考官方文档进行API调用,这里有一个简单的示例

👋 Welcome

import requestsurl = \"http://localhost:3000/api/v1/generate_sql\"headers = { \"accept\": \"application/json\", \"content-type\": \"application/json\"}data = { \"question\": \"your question here\"}response = requests.post(url, headers=headers, json=data)print(response.json())