Implantación local de Vanna: conversiones Text2SQL eficientes con facilidad

Vanna 是一个备受关注的 Text2SQL 开源框架,能够将自然语言转化为 SQL 查询语句。本文将详细介绍如何在本地部署 Vanna,并结合 MySQL 数据库和 Búsqueda profunda 模型进行配置与测试,助你快速上手这一工具。所有操作均基于实际测试,确保步骤清晰可行。

 

Python 环境搭建

要运行 Vanna,首先需要一个稳定的 Python 环境。以下以 Miniconda3 为例,逐步完成配置。

安装 Miniconda3

  1. Descargue el paquete de instalación:
    wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
    
  2. 执行安装脚本:
    sh Miniconda3-latest-Linux-x86_64.sh
    
  3. Configurar variables de entorno:
    vim /etc/profile
    

    在文件中添加:

    export PATH="/data/apps/miniconda3/bin:$PATH"
    

    保存后刷新配置:

    source /etc/profile
    
  4. 如需卸载,可直接删除安装目录:
    rm -rf /data/apps/miniconda3/
    

Creación de un entorno virtual

  1. 创建 Python 3.10 环境:
    conda create -n test python=3.10
    
  2. 激活环境(需在新终端或重启后生效):
    conda activate test
    
  3. 其他常用命令:
    • 退出环境:
      conda deactivate
      
    • 查看环境信息:
      conda info --env
      

完成以上步骤后,你已拥有一个独立的 Python 虚拟环境,为 Vanna 的部署奠定了基础。

 

Vanna 部署与配置

在 Python 环境准备就绪后,接下来进入 Vanna 的核心配置环节。以下操作参考官方文档(https://vanna.ai/docs/),并以 MySQL 数据库为例。

数据库连接配置

首先,确保能通过 MySQL 的账号、密码和端口正常登录数据库。测试连接成功后,打开 Vanna 官方文档的 MySQL 配置页面(左侧菜单栏选择 MySQL)。页面会展示连接代码示例,如下图所示:

Vanna 本地部署实战:轻松实现 Text2SQL 的高效转换

根据你的数据库信息,调整代码中的参数(如 host、user、password 等),以确保 Vanna 能顺利连接。

Elegir un modelo lingüístico

Vanna 支持多种大语言模型(LLM)。官方页面会提示选择模型,例如 Ollama 或 API 调用。这里以硅基流动的 Deepseek 模型为例进行说明。

  • Ollama 经验:曾尝试部署量化后的 Deepseek-7b 模型,但效果不佳,建议跳过此方案。
  • Deepseek API:通过硅基流动调用 Deepseek 模型表现更优。但需注意,若使用非官方支持的模型,需自定义 LLM 类。可参考 Vanna 开源项目中的 Mistral 实现(mistral.py),依样创建一个适配 Deepseek 的类。

配置界面如下:

Vanna 本地部署实战:轻松实现 Text2SQL 的高效转换

向量数据库设置

Vanna 默认集成 ChromaDB 作为小型向量数据库,无需额外安装。官方文档会根据你的选择生成相应代码,如下图:

Vanna 本地部署实战:轻松实现 Text2SQL 的高效转换

安装依赖与代码准备

  1. 在激活的虚拟环境中安装 Vanna 及其依赖:
    pip install vanna
    
  2. Crear un .py 文件,将官方生成的代码复制进去。以下是适配 MySQL 和 Deepseek 的示例代码片段(需根据实际情况调整参数):
    from vanna.remote import VannaDefault
    vn = VannaDefault(model='deepseek', api_key='your_api_key')
    vn.connect_to_mysql(host='localhost', dbname='test_db', user='root', password='your_password', port=3306)
    

formación de datos

Vanna 支持三种训练数据:SQL 语句、产品文档和数据库表结构描述。这里推荐使用表结构描述,效果更直观。训练步骤如下:

  1. 准备表结构数据(如 DDL 文件)。
  2. 使用官方提供的训练代码:
    vn.train(ddl="CREATE TABLE employees (id INT, name VARCHAR(255), salary INT)")
    
  3. 训练过程如下图所示:
Vanna 本地部署实战:轻松实现 Text2SQL 的高效转换

更多训练结果展示:

Vanna 本地部署实战:轻松实现 Text2SQL 的高效转换
Vanna 本地部署实战:轻松实现 Text2SQL 的高效转换

运行 Web 界面

训练完成后,运行以下 Flask API 代码即可启动 Vanna 的 Web UI:

from vanna.flask import VannaFlaskApp
app = VannaFlaskApp(vn)
app.run()

访问本地地址(通常为 http://127.0.0.1:5000),即可通过界面进行 SQL 查询。

Vanna 本地部署实战:轻松实现 Text2SQL 的高效转换

 

查询效果展示

部署完成后,Vanna 的问答功能表现令人满意。以下是几个实际测试结果:

  • 输入:“请查询2024年3季度季报提交报告情况。”
    Vanna 本地部署实战:轻松实现 Text2SQL 的高效转换
  • 输入:“统计数量”
    Vanna 本地部署实战:轻松实现 Text2SQL 的高效转换
  • 输入:“污染物统计”
    Vanna 本地部署实战:轻松实现 Text2SQL 的高效转换

Resumen y recomendaciones

通过以上步骤,你可以在本地成功部署 Vanna,并结合 MySQL 和 Deepseek 模型实现高效的 Text2SQL 功能。相比其他工具,Vanna 在易用性和效果上均有明显优势。建议初学者优先使用表结构训练数据,并根据实际需求调整语言模型配置。

© declaración de copyright
AiPPT

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...