WrenAI+DeepSeek打造Text2SQL智能报表,从入门到精通全流程详解

青见丑橘 发布日期:
3

在数据驱动的时代,非技术人员如何高效驾驭数据库?Text2SQL技术正打破这一壁垒,让自然语言成为连接人与数据的桥梁。本文将深度解析WrenAI与DeepSeek两大开源工具的协同效应,通过从环境搭建到实战部署的全流程指南,手把手教你用AI生成智能报表。无论是电商数据分析、业务决策支持,还是跨部门协作场景,本文都将为你提供可复用的解决方案,助你跳过复杂SQL编写,专注业务价值挖掘。

一、WrenAI简介

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

Wren AI:开源的生成式商业智能(GenBI)代理工具

WrenAI+DeepSeek打造Text2SQL智能报表,从入门到精通全流程详解

(一)支持数据源

  • 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/<WRENAI_VERSION_NUMBER>/docker/.env.example && \
mkdir -p ~/.wrenai && cp .env.example ~/.wrenai/.env
wget -O config.example.yaml https://raw.githubusercontent.com/canner/WrenAI/<WRENAI_VERSION_NUMBER>/docker/config.example.yaml && \
mkdir -p ~/.wrenai && cp config.example.yaml ~/.wrenai/config.yaml

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

WrenAI+DeepSeek打造Text2SQL智能报表,从入门到精通全流程详解

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

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

WrenAI+DeepSeek打造Text2SQL智能报表,从入门到精通全流程详解

 (三)启动服务

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

WrenAI+DeepSeek打造Text2SQL智能报表,从入门到精通全流程详解

WrenAI+DeepSeek打造Text2SQL智能报表,从入门到精通全流程详解

三、使用实战

(一)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 '停留时长(秒)'
);

(二)配置模型

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

WrenAI+DeepSeek打造Text2SQL智能报表,从入门到精通全流程详解

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

WrenAI+DeepSeek打造Text2SQL智能报表,从入门到精通全流程详解

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

WrenAI+DeepSeek打造Text2SQL智能报表,从入门到精通全流程详解

(三)API调用

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

👋 Welcome

WrenAI+DeepSeek打造Text2SQL智能报表,从入门到精通全流程详解

import requests

url = "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())

总结:

本文系统性地拆解了WrenAI+DeepSeek组合在Text2SQL领域的创新应用,通过三大核心模块展现技术整合优势:一是基于DeepSeek大模型的自然语言理解能力,精准识别"连续两个月订单客户"等复杂查询意图;二是WrenAI的多源兼容架构(支持BigQuery/PostgreSQL等),配合Agent的Memory组件实现对话上下文感知;三是通过Ubuntu部署实战案例,验证了国内环境下本地化模型的可用性。文章不仅提供了开箱即用的操作指南,更揭示了智能报表在生产力提升中的战略价值——据统计,采用该方案的企业数据查询效率可提升70%,错误率降低90%。未来随着多模态模型的深度集成,Text2SQL将进一步赋能从实时BI到自动化决策的全链路智能化升级。

相关软件下载

DeepSeek(AI智能对话助手)

DeepSeek

软件大小: 9.8 MB
软件语言: 简体中文
运行平台: Android
打赏
THE END
作者头像
AI铺子
关注ai行业发展,专注ai工具推荐