Um serviço de API que utiliza modelos de IA para converter perguntas em linguagem natural em consultas SQL válidas.
- Conversão de linguagem natural para consultas SQL
- Execução segura de consultas SQL (apenas SELECT)
- Validação de entrada com Zod
- Logs detalhados para monitoramento
- TypeScript
- Node.js
- Express
- SQLite
- Ollama (para modelos de IA locais)
- Zod (validação)
- Pino (logging)
magic-query/
├── src/
│ ├── config/ # Configurações do aplicativo
│ ├── controllers/ # Controladores da API
│ ├── database/ # Conexão e migrações do banco de dados
│ ├── middlewares/ # Middlewares Express
│ ├── routes/ # Rotas da API
│ ├── schemas/ # Schemas de validação Zod
│ ├── services/ # Lógica de negócios
│ ├── types/ # Definições de tipos TypeScript
│ ├── utils/ # Funções utilitárias
│ └── server.ts # Ponto de entrada do aplicativo
├── test/ # Arquivos de teste HTTP
└── package.json # Dependências e scripts
- Node.js 18+
- PNPM
- Ollama instalado e configurado
-
Clone o repositório:
git clone https://github.com/seu-usuario/magic-query.git cd magic-query -
Instale as dependências:
pnpm install
-
Configure as variáveis de ambiente:
cp .env.example .env
Edite o arquivo
.envcom suas configurações. -
Inicie o servidor de desenvolvimento:
pnpm dev
POST /api/query/generate
Content-Type: application/json
{
"query": "Quais são os 5 dispositivos mais recentes?"
}POST /api/query/execute
Content-Type: application/json
{
"sql": "SELECT * FROM devices ORDER BY created_at DESC LIMIT 5"
}- Apenas consultas SELECT são permitidas
- Validação rigorosa de entrada
- Verificação de palavras-chave proibidas
Execute os testes HTTP usando uma ferramenta como o REST Client para VS Code:
test/api.httpMIT