本项目旨在实现一个text2sql工具,并借助微调对电力数据集进行适配
#实现了一个运行在命令行的简单sql查询程序
简介 | Introduction
- 通过自然语言生成 SQL 并执行查询,支持 Web 与交互式 CLI
- 暂仅支持 MySQL,支持自定义模型调用与 RAG 检索(txt/md/json 等文本)
初次启动配置 | First Run Setup
-
安装与环境
- 最低要求:Python 3.11;推荐使用 Conda 管理环境
- 创建环境:
conda create -y -n text2sql python=3.11conda activate text2sql
- 安装依赖:
pip install -r requirements.txt
-
必需配置
- 模型:
SILICONFLOW_API_KEY:API 密钥MODEL_NAME:模型名称- 可选
SILICONFLOW_BASE_URL:默认https://api.siliconflow.cn/v1
- 数据库(MySQL):
DB_URL:如mysql://user:pass@host:3306/dbname
- 可选:
KB_DIR:知识库目录路径(用于 RAG,多文件类型)KB_GLOB:文件匹配模式,逗号分隔(默认*.txt,*.md,*.csv,*.xlsx,*.xls,*.docx)
- 模型:
-
快速验证
- 运行单元测试:
python -m unittest discover -v -s text2sql/tests - 启动 Web:
text2sql\start_web.bat(后端 8001,前端 8000) - 首次连接可用
-s显示并生成text2sql/db_info/<db>.json - 保存结果:使用
-j导出 JSON(位于text2sql/results/)
- 运行单元测试:
注意事项 | Notes
.docx已原生支持;.doc解析依赖额外工具,默认不启用,建议转换为.docx或.txt- 仅支持单条只读 SELECT 语句,护栏会限制多语句与写操作
- 批量执行可使用
-import <json文件>,其格式为问题数组:[{"question": "..."}, ...]
开始使用 | Usage
-
CLI:
text2sql\start_cli.bat -
Web:打开浏览器
http://127.0.0.1:8000 -
交互命令 | Interactive Commands
-h查看帮助-l N设置结果上限-e显示执行计划(MySQL: EXPLAIN)-d干运行(仅显示 SQL)-j保存 JSON(保存三字段:用户问题、生成的sql、查询结果)-import 路径导入 JSON 格式的批量查询,格式参考./queries/q1.json-s切换显示数据库表结构(首次连接会生成./db_info/<db>.json)-showrag展示配置的 RAG 知识库信息
-
输出说明 | Output
- 默认表格输出;选择
-j或-c将保存到./results/
- 默认表格输出;选择
.env 示例 | .env Sample
# 模型
SILICONFLOW_API_KEY=sk-xxxx
SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1
MODEL_NAME=YOUR_MODEL_NAME
# 数据库
DB_URL=mysql://user:password@host:3306/db_name
# RAG 知识库
KB_DIR=./rag
KB_GLOB=*.txt,*.md,*.csv,*.xlsx,*.xls,*.docx相关文档 | Docs
- 前端 API 文档:
front_end/API.md - 版本变更:
CHANGELOG.md