Este projeto apresenta uma ferramenta poderosa e intuitiva que traduz linguagem natural em consultas SQL. Utilizando a API do Google Gemini, a aplicação permite que usuários interajam com bancos de dados e extraiam informações sem precisar escrever uma única linha de código SQL.
A interface, construída com Streamlit, oferece uma experiência de usuário simples e direta: você se conecta ao banco de dados, faz uma pergunta, e a ferramenta gera a consulta SQL correspondente, exibindo os resultados em uma tabela.
Este projeto foi realizado pelos alunos Gustavo Padovam Ferreira e Vinícius Ferreira Matias.
- Tradução de Linguagem Natural para SQL: Pergunte em português "Quais clientes fizeram mais de 3 pedidos no último mês?" e obtenha o código SQL e os resultados.
- Interface Web Interativa: Interface limpa e fácil de usar desenvolvida com Streamlit.
- Suporte a Múltiplos Bancos de Dados: Conecte-se facilmente a bancos de dados MySQL e PostgreSQL.
- Visualização de Resultados: Os dados retornados pela consulta são exibidos de forma clara em tabelas usando Pandas.
- Transparência: O código SQL gerado pela IA é exibido, permitindo auditoria e aprendizado.
O projeto utiliza um fluxo de trabalho inteligente para converter texto em SQL:
- Conexão e Schema: A ferramenta se conecta ao banco de dados selecionado usando SQLAlchemy e lê o schema (estrutura das tabelas e colunas).
- Orquestração com LangChain: O LangChain atua como o cérebro da operação. Ele pega o schema do banco e a pergunta do usuário.
- Prompt Engineering: As informações são inseridas em um prompt otimizado, que instrui o modelo de linguagem (Google Gemini) a se comportar como um especialista em SQL e traduzir a pergunta do usuário para uma consulta válida para o dialeto SQL específico (MySQL, PostgreSQL, etc.).
- Geração da Query: A API Google Gemini processa o prompt e gera a consulta SQL.
- Limpeza e Execução: A consulta é limpa de formatações desnecessárias (como a marcação de bloco de código) e executada no banco de dados.
- Exibição dos Dados: O resultado é formatado em um DataFrame do Pandas e exibido na interface do Streamlit.
Esta seção detalha as bibliotecas que dão vida ao projeto.
- streamlit: Responsável pela criação da interface web interativa.
- pandas: Utilizado para exibir os resultados das consultas em formato de tabelas (DataFrames).
- sqlalchemy: Atua como uma camada de abstração (ORM) para comunicação com diferentes bancos de dados SQL.
- mysql-connector-python: Driver específico para a conexão com bancos de dados MySQL.
- psycopg2-binary: Driver específico para a conexão com bancos de dados PostgreSQL.
- langchain: A principal biblioteca para orquestrar as interações com a IA. Ela gerencia o schema, formata os prompts e processa a tradução para SQL.
- langchain-google-genai: Conector que integra o LangChain com a API do Google Gemini, o cérebro da nossa aplicação.
- os: Usado para gerenciar variáveis de ambiente, como a chave da API do Google.
- re: Biblioteca de expressões regulares, utilizada aqui para limpar a formatação da query SQL gerada pela IA (remove o markdown
'''sql ... ''').
Para o código, foi utilizado a versão 3.11 do Python. A seguir temos os passos para instalar as dependências do projeto.
Para criar o ambiente virtual, ativá-lo e instalar todas as dependências de uma vez, abra seu terminal no diretório "scripts" e execute o seguinte comando:
### Criação do ambiente virtual
python -m venv venv
### Ativação venv em Linux
source venv/bin/activate
### Instalação das dependências
pip install -r requirements.txtPara executar o script, com o ambiente virtual ativado e no diretório "scripts", rode o seguinte comando no terminal:
streamlit run consulta_db.pyLogo após isso, a aplicação será iniciada como uma página HTML, que abrirá no navegador. Nas abas laterais, faça a configuração do seu banco de dados, adicionando o nome de usuário, senha, a database e selecione o SGBD (MySQL ou PostgreSQL). Após clicar no botão "Conectar e Analisar Esquema", será feita a conexão com o banco de dados e mostrará a lista de tabelas e campos na parte principal da página.
Para utilizar a ferramenta de Text to SQL, será necessário adquirir uma chave de API do Google, no site do Google AI Studio. Acessando a página, basta fazer login ou se registrar, clicar em adquirir uma chave de API, criar ela (se necessário) e utilizá-la, a colocando na aba lateral. Após isso, você apenas precisa fazer sua pergunta na parte principal da página e clicar em "Gerar e Executar SQL". Após isso, será mostrado a query em SQL criada e o resultado gerado.
Para finalizar a execução, basta usar Ctrl+C no terminal.
Ações que envolvem modificação da estrutura da database ou a modificação das tuplas do banco estão bloqueadas.