Vanna.ai: Conversando com bancos de dados SQL
(github.com/vanna-ai)- Open source para gerar Text-To-SQL com precisão usando LLM com RAG (Retrieval-Augmented Generation) aplicado
Como o Vanna funciona
- Treinamento do "modelo" RAG: treina um modelo RAG com os dados do usuário.
- Fazer perguntas: ao fazer perguntas usando o modelo treinado, ele retorna consultas SQL que podem ser executadas automaticamente no banco de dados.
Interface do usuário
- Algumas interfaces de usuário criadas com Vanna incluem Jupyter Notebook, vanna-ai/vanna-streamlit, vanna-ai/vanna-flask e vanna-ai/vanna-slack.
Primeiros passos
- Instalação: é possível instalar o Vanna com o comando
pip install vanna. - Importação: é possível usar o Vanna com o código
import vanna as vn.
Treinamento
- Treinamento com instruções DDL: é possível treinar o modelo usando instruções DDL que incluem informações sobre nomes de tabelas do banco de dados, colunas, tipos de dados, relacionamentos etc.
- Treinamento com documentação: é possível treinar o modelo adicionando documentação sobre termos de negócio ou definições.
- Treinamento com SQL: é possível gerar novo SQL adicionando consultas SQL existentes como dados de treinamento.
Fazer perguntas
- Ao usar o método
vn.ask("질문"), é possível receber consultas SQL relacionadas.
RAG versus fine-tuning
- O RAG é portável entre LLMs, permite remover facilmente os dados de treinamento, tem baixo custo e alta adaptabilidade ao futuro.
- O fine-tuning é útil quando é necessário minimizar os tokens no prompt, mas tem início lento e custos altos de treinamento e execução.
Por que escolher o Vanna
- Alta precisão em datasets complexos: a capacidade do Vanna é determinada com base nos dados de treinamento.
- Segurança e privacidade: o conteúdo do banco de dados não é enviado para o LLM nem para o banco de dados vetorial.
- Autoaprendizado: ao usar com Jupyter, ele pode aprender automaticamente com consultas executadas com sucesso.
- Suporte a todos os bancos de dados SQL: pode se conectar a qualquer banco de dados SQL que possa ser conectado com Python.
- Escolha de front-end: é possível começar com Jupyter Notebook e depois disponibilizar para os usuários via Slackbot, app web, app Streamlit ou um front-end personalizado.
Expandindo o Vanna
- O Vanna foi projetado para se conectar a qualquer banco de dados, LLM e banco de dados vetorial.
- A classe base abstrata VannaBase define as funcionalidades básicas e oferece uma implementação que usa OpenAI e ChromaDB.
Materiais adicionais
- São fornecidos a documentação completa, o site e um grupo no Discord para suporte.
Opinião do GN⁺:
- O Vanna é uma ferramenta poderosa para automatizar o gerenciamento de bancos de dados e a geração de consultas SQL, permitindo que os usuários criem facilmente consultas SQL altamente precisas para datasets complexos.
- Com uma interface amigável e recursos de autoaprendizado, até usuários não especialistas podem usar bancos de dados com eficiência, o que pode acelerar ainda mais a tomada de decisões orientada por dados.
- A escalabilidade e a adaptabilidade futura do Vanna oferecem às empresas a oportunidade de responder com flexibilidade às mudanças tecnológicas e melhorar continuamente seus processos de gestão de dados.
1 comentários
Comentários do Hacker News
Experiência de um usuário desenvolvendo o projeto ChatDB.ai
Experiência pessoal usando GPT-4
SHOW TABLEdo MySQL CLI e gerou consultas baseadas nessas tabelas para mostrar métricas de negócio, como taxa de abandono de carrinho.Visão cética sobre sistemas que traduzem linguagem natural para SQL
Interesse em produtos semelhantes, incluindo startups apoiadas pela YC
Experiência com um serviço de relatórios baseado em duckdb
Preocupações e explicações sobre como o RAG funciona
Curiosidade sobre o problema de alucinação dos LLMs
Compartilhamento de experiência usando conjuntos de dados e tecnologia próprios
Experiência na bit.io e reação dos clientes