A.X.E.L.
Automated X-electronic Engineering Link
Assistente técnico via CLI, especializado em debug e otimização de código Python e queries SQL. Interpreta descrições em linguagem natural, classifica a intenção do pedido e responde com diagnóstico estruturado — sem inventar causas quando falta contexto.
Overview
O AXEL nasceu como desafio do bootcamp DIO (Dados, IA Generativa e
Cibersegurança) e evoluiu para uma implementação autoral com foco em
Engenharia de Prompt e arquitetura desacoplada. Detalhes de escopo e decisões
de produto em docs/product_brief.md; detalhes
técnicos de arquitetura em docs/architecture.md.
Problem
Transformar descrições informais de bugs, lentidão ou erros em diagnósticos objetivos e acionáveis — sem exigir que o usuário formule a pergunta de forma técnica.
Architecture
Pipeline desacoplado: classificação de intenção → montagem de prompt em
camadas → chamada ao LLM (provider-agnostic, Ollama por padrão) → resposta
estruturada. Ver diagrama completo em docs/architecture.md.
Prompt Engineering
Prompts organizados por responsabilidade em app/prompts/: identidade e
comportamento (system_prompt.txt), regras de segurança
(security_prompt.txt), classificação de intenção (intent_prompt.txt) e
formatação de resposta (response_prompt.txt).
Technologies
Python 3.11+, Ollama, requests, rich, pytest.
Security
.envnunca versionado (.gitignore);.env.exampledocumenta as variáveis necessárias sem expor valores.- System prompt nunca é exposto, mesmo sob pedido direto ou tentativa de
prompt injection — regra ativa em
security_prompt.txt. - Sem execução de código arbitrário fornecido pelo usuário.
Evaluation
Dataset de casos de teste em tests/test_cases.json, cobrindo classificação
correta de intenção, pedidos ambíguos e tentativa de prompt injection.
Duas formas de rodar:
# Testes automatizados (pass/fail, integra com CI no futuro)
pytest tests/test_intent.py -v
# Relatório de avaliação com accuracy e histórico (Fase 05)
python -m scripts.run_eval
O segundo comando gera docs/evaluation.md com a accuracy geral e o detalhe
de cada caso — é o que deve ser reexecutado a cada iteração de prompt para
medir se a mudança melhorou ou piorou os resultados.
Se qualquer um dos dois falhar com erro de conexão, o problema quase sempre
é o Ollama não estar rodando — confira ollama serve antes de investigar o
código do AXEL. Este projeto não usa Docker nem Postgres; a única
dependência externa é o processo do Ollama.
Installation
Duas formas de instalar:
Via pip (recomendado, uma vez publicado):
pip install axel-tech-assistant
axel
A partir do código-fonte (desenvolvimento):
# 1. Instalar e subir o Ollama
# https://ollama.com
ollama pull qwen2.5:1.5b
# se sua máquina tiver pouca RAM (≤4GB) e mesmo assim faltar memória,
# use qwen2.5:0.5b (ainda mais leve) e ajuste OLLAMA_MODEL no .env
ollama serve
# 2. Ambiente Python
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# 3. Configurar variáveis
cp .env.example .env
Nos dois casos, o Ollama continua sendo pré-requisito rodando na máquina de
quem usa — ver docs/architecture.md, seção "Por que não há deploy
tradicional", para o raciocínio completo por trás dessa decisão.
Usage
python -m app.main
você > minha query SQL está demorando 20s para 50 mil registros
AXEL: DIAGNÓSTICO
...
Comandos disponíveis no CLI: sair (encerra), /historico (lista os turnos
da sessão atual), /limpar (apaga o histórico).
Memória entre execuções (opcional): por padrão o histórico é só em RAM
e some ao fechar o CLI. Para persistir entre execuções (útil se você fecha e
reabre o terminal no mesmo problema), configure no .env:
AXEL_MEMORY_BACKEND=sqlite
Isso grava as mensagens num arquivo axel_history.db local (nunca vai pro
Git — está no .gitignore, mesma lógica do .env). É opt-in de propósito:
persistir significa guardar trechos de código em texto puro em disco.
Deployment
Não definido ainda — depende da stack final avaliada após validação do MVP
local (ver docs/product_brief.md, seção Limitações).
Roadmap
- v1 (atual): CLI, domínio Python/SQL, Ollama local.
- v2: persistência de memória, análise de dados como segundo domínio.
- v3: API REST, provider de produção (API paga) como alternativa ao Ollama.
Author
Projeto desenvolvido como parte do bootcamp DIO (Bradesco — Dados, Cibersegurança e IA Generativa), evoluído para implementação autoral.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file axel_tech_assistant-0.1.0.tar.gz.
File metadata
- Download URL: axel_tech_assistant-0.1.0.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91d995a3a0f5b1f831f193dd27d184eb662442077a19a2dcb15296aee1a9f89d
|
|
| MD5 |
164e031dca46415eaf7cb11e40d21096
|
|
| BLAKE2b-256 |
16a3c5ba2e5702563055eca218c34cfacb782b8d283c9f1664d27acc12c9c79c
|
File details
Details for the file axel_tech_assistant-0.1.0-py3-none-any.whl.
File metadata
- Download URL: axel_tech_assistant-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36fb4888648daa91b054b847504dbf9f9ff2db7d0c08fd91e9d807b45332ffd2
|
|
| MD5 |
c9669df2dc0ceee7d2887a9213dd416c
|
|
| BLAKE2b-256 |
e321c171ddf0f90c579027af084de55a5c8337f12ace35fc57aa4c8b78b8222a
|