【入门实战】5分钟上手 ai-light-report:用自然语言驱动你的第一张智能报表
ai-light-report 是一个基于大语言模型(LLM)的轻量级开源报表系统,支持通过自然语言交互自动理解数据库语义并生成 SQL,快速产出可视化的报表。本文将手把手带你从零开始,搭建并体验这个报表工具。
Github项目开源仓库 https://github.com/isuixiang/ai-light-report
第一步:环境准备与项目安装
在开始之前,请确认本地已安装:
- Python 3.9 及以上(推荐 3.9 或 3.10)
- MySQL 5.7 及以上
首先,将项目克隆到本地:
gitclone https://github.com/isuixiang/ai-light-report.gitcdai-light-report为了隔离环境,建议创建并激活虚拟环境:
# Windowspython-mvenv venv venv\Scripts\activate# Mac/Linuxpython3-mvenv venvsourcevenv/bin/activate接着安装依赖包:
pipinstall-rrequirements.txt第二步:数据库初始化与配置
ai-light-report 需要两个数据库:项目数据库(存放数据源、报表模板等数据)和演示数据库(存放样例业务数据,方便上手测试)。
在 MySQL 中执行以下命令创建数据库并导入初始化脚本:
# 创建项目数据库mysql-uroot-p-e"CREATE DATABASE ailightreport;"mysql-uroot-pailightreport<data/db/ailightreport.sql# 创建演示数据库(可选,但强烈推荐)mysql-uroot-p-e"CREATE DATABASE demo;"mysql-uroot-pdemo<data/db/dataanalysis.sql接下来配置连接信息。复制示例配置文件:
cpexample.env .env编辑.env文件,填入正确的数据库连接信息:
DB_HOST = "127.0.0.1" DB_PORT = 3306 DB_NAME = "ailightreport" DB_USER = "root" DB_PASSWORD = "你的数据库密码" # 如果使用了演示数据库,后续在界面中配置数据源时会用到第三步:启动服务与登录
一切就绪后,启动 Flask 应用:
flask run启动成功后,打开浏览器访问:http://127.0.0.1:5000
系统默认的登录账户是:
- 用户名:
admin - 密码:
123456
登录后,你会看到主控台界面。
第四步:连接数据源与大模型
要让系统“听懂”你的问题,需要先告诉它数据在哪里,并给它装上“大脑”。
1. 创建数据源
在左侧菜单栏找到“数据源管理”,点击“新增”。选择数据库类型(MySQL 或 SQLServer),填入演示数据库的连接信息。这里以第二步中导入的 demo 数据库为例。
2. 配置大模型 API
进入“模型管理”,点击“添加模型”。ai-light-report 已集成 DeepSeek、Kimi、Qwen 等主流大模型。这里以DeepSeek为例:
- 选择模型类型:DeepSeek
- 填入 API Key(可从 DeepSeek 官网免费申请)
- 保存配置并设为默认
3. 添加“技能”(可选)
“技能”是指系统如何理解业务术语。项目根目录下的data/skills目录已经预制了一些示例技能文件,可以直接使用。后续也可以根据业务需要自定义。
第五步:用自然语言生成第一张报表
现在,让我们用自然语言生成第一张报表。
1. 准备 Excel 模板
ai-light-report 支持导入现有的 Excel 报表模板,可以是包含合并单元格、计算公式的复杂样式。在“报表模板”管理中,点击“上传模板”,选择项目目录data/excels下的示例文件。
2. 开始智能生成
上传成功后,点击“使用此模板”。在聊天对话框中输入你的需求,例如:
- “查询工资发放记录”
系统会自动将你的自然语言翻译成 SQL,查询数据库,并按照模板格式填充数据,最终生成一张完整的报表。
从提问到看到最终结果,整个过程通常只需要几分钟。
至此,我们已经成功安装并运行了 ai-light-report,并且生成了第一张智能报表。整个过程无需编写一行 SQL 代码,真正实现了“所说即所得”。
ai-light-report 还支持:
- 一键生成逻辑:自动识别报表模板的数据特征,无需手动配置报表与数据字段的映射关系;
- 自定义二次编辑:生成的报表逻辑可以手动调整,满足个性化的业务需求。
如果你在体验过程中遇到问题,可以通过项目主页的 GitHub Issues 或联系维护者获取帮助。
