Skip to content

Lucas-Abner/agent_sql_query

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# 🤖 Agente IA para Consulta de Banco de Dados - Case Areco ## 📋 Descrição do Projeto Este projeto implementa um **agente de IA** capaz de interpretar perguntas em **linguagem natural (português brasileiro)** e consultar um banco de dados MySQL para fornecer respostas relevantes. O agente foi desenvolvido para facilitar o acesso a dados em sistemas ERP, permitindo que usuários façam consultas sem conhecimento técnico de SQL. ## 🎯 Objetivo Criar um agente inteligente que: - ✅ Recebe perguntas em português - ✅ Traduz automaticamente para consultas SQL - ✅ Conecta-se ao banco de dados MySQL - ✅ Retorna respostas claras e objetivas - ✅ Lida com ambiguidades e perguntas variadas ## 🛠️ Tecnologias Utilizadas - **Linguagem:** Python 3.11+ - **Framework IA:** LangChain + LangGraph - **LLM:** Groq (LLaMA 3.1 via API) - **Banco de Dados:** MySQL - **Bibliotecas:** - `langchain` - Framework para agentes de IA - `langchain-community` - Ferramentas de banco de dados - `pymysql` - Conector MySQL - `python-dotenv` - Gerenciamento de variáveis de ambiente - `sqlalchemy` - ORM para SQL ## 📊 Estrutura do Banco de Dados ### Banco: `empresa` **Tabela: clientes** ```sql CREATE TABLE clientes ( id INT AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(100) NOT NULL, email VARCHAR(150) UNIQUE NOT NULL, idade INT ); ``` **Tabela: pedidos** ```sql CREATE TABLE pedidos ( id INT AUTO_INCREMENT PRIMARY KEY, cliente_id INT NOT NULL, produto VARCHAR(150) NOT NULL, valor DECIMAL(10,2) NOT NULL, FOREIGN KEY (cliente_id) REFERENCES clientes(id) ON DELETE CASCADE ); ``` ### Dados de Exemplo **Clientes:** - Ana Paula (25 anos) - Bruno Silva (30 anos) - Carla Souza (28 anos) - Daniel Oliveira (35 anos) - Elisa Mendes (27 anos) **Pedidos:** - Notebook (R$ 2.500,00), Mouse (R$ 50,00), etc. ## 🚀 Como Executar ### 1. Pré-requisitos - Python 3.11 ou superior - MySQL Server instalado e rodando - Conta Groq (API Key gratuita) ### 2. Instalação ```bash # Clone o repositório git clone cd agent_bd # Instale as dependências pip install -r requirements.txt ``` ### 3. Configuração Crie um arquivo `.env` na raiz do projeto: ```env GROQ_API_KEY=sua_chave_api_aqui ``` ### 4. Criar o Banco de Dados Execute o script SQL em `bd/banco.sql` no MySQL Workbench ou terminal caso o 'empresa.db' não exista na pasta bd: ```bash mysql -u root < bd/banco.sql ``` ### 5. Executar o Agente ```bash python main.py ``` ## 💬 Exemplos de Uso O agente pode responder perguntas como: - "Quantos produtos o Bruno Silva comprou?" - "Quem comprou mais?" - "Qual o valor total de vendas?" - "Liste todos os clientes com idade acima de 25 anos" - "Quais produtos foram comprados pela Ana Paula?" ## 📂 Estrutura do Projeto ``` agent_bd/ ├── bd/ │ └── banco.sql # Script de criação do banco ├── main.py # Código principal do agente ├── requirements.txt # Dependências do projeto ├── .env # Variáveis de ambiente (não versionado) ├── README.md # Este arquivo └── README_PROJETO.md # Documentação detalhada ``` ## 🧠 Funcionamento do Agente 1. **Recebe pergunta** em linguagem natural 2. **Analisa tabelas** disponíveis no banco 3. **Examina schema** das tabelas relevantes 4. **Gera query SQL** automaticamente 5. **Valida a query** antes de executar 6. **Executa consulta** no banco 7. **Interpreta resultados** e formata resposta 8. **Retorna resposta** em português claro ## 🔒 Segurança - ❌ O agente **NÃO executa** comandos DML (INSERT, UPDATE, DELETE, DROP) - ✅ Apenas consultas SELECT são permitidas - ✅ API Keys armazenadas em arquivo `.env` (não versionado) - ✅ Validação de queries antes da execução ## 📝 Observações - O projeto usa **Groq API** (gratuita) em vez de OpenAI - Limite de 5 resultados por consulta (configurável) - Respostas formatadas em português brasileiro - Sistema preparado para lidar com ambiguidades ## 👨‍💻 Desenvolvedor Lucas - Case Técnico Areco Data: Novembro 2025 ## 📄 Licença Este projeto foi desenvolvido como parte de um processo seletivo. # agent_sql_query

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages