Visão Geral
Esta ferramenta é utilizada para converter linguagem natural em consultas SQL. Quando passada para o agente, ela irá gerar as consultas e, em seguida, utilizá-las para interagir com o banco de dados. Isso possibilita múltiplos fluxos de trabalho, como por exemplo ter um Agente acessando o banco de dados para buscar informações com base em um objetivo e, então, usar essas informações para gerar uma resposta, relatório ou qualquer outro tipo de saída. Além disso, permite que o Agente atualize o banco de dados de acordo com seu objetivo. Atenção: Por padrão, a ferramenta opera em modo somente leitura (apenas SELECT/SHOW/DESCRIBE/EXPLAIN). Operações de escrita exigemallow_dml=True ou a variável de ambiente CREWAI_NL2SQL_ALLOW_DML=true. Quando o acesso de escrita estiver habilitado, certifique-se de que o Agente use um usuário de banco de dados com privilégios mínimos ou um Read-Replica sempre que possível.
Modo Somente Leitura e Configuração de DML
ONL2SQLTool opera em modo somente leitura por padrão. Apenas os seguintes tipos de instrução são permitidos sem configuração adicional:
SELECTSHOWDESCRIBEEXPLAIN
INSERT, UPDATE, DELETE, DROP, CREATE, ALTER, TRUNCATE, etc.) resultará em erro, a menos que o DML seja habilitado explicitamente.
Consultas com múltiplas instruções contendo ponto e vírgula (ex.: SELECT 1; DROP TABLE users) também são bloqueadas no modo somente leitura para prevenir ataques de injeção.
Habilitando Operações de Escrita
Você pode habilitar DML (Linguagem de Manipulação de Dados) de duas formas: Opção 1 — parâmetro do construtor:Exemplos de Uso
Somente leitura (padrão) — seguro para análise e relatórios:Requisitos
- SqlAlchemy
- Qualquer biblioteca compatível com o banco de dados (ex.: psycopg2, mysql-connector-python)
Instalação
Instale o pacote crewai_toolsUso
Para utilizar o NL2SQLTool, você precisa passar a URI do banco de dados para a ferramenta. O formato da URI deve serdialect+driver://username:password@host:port/database.
Code
