API Flask + Frontend para consulta ao Manual Operacional do Elevador MC-70 usando IA (Groq - llama-3.3-70b).
- Python 3.9+
- Chave de API da Groq (gratuita em console.groq.com)
pip install -r requirements.txtCrie um arquivo .env na raiz do projeto:
GROQ_API_KEY=sua-chave-aqui
python app.pyAcesse: http://localhost:5000
- Tela 1 — Carregar Texto: cole o conteúdo do Manual MC-70 e clique em "Enviar texto para a IA"
- Tela 2 — Fazer Pergunta: digite sua pergunta e clique em "Consultar Manual"
A IA responde somente com base no texto enviado. Se a resposta não estiver no manual, retorna: "Não sei com base nas informações fornecidas."
Armazena o texto-base em memória.
Body:
{ "text": "conteúdo do manual..." }Resposta:
{ "message": "Texto armazenado com sucesso.", "chars": 3842 }Envia uma pergunta à IA, que responde com base no texto armazenado.
Body:
{ "question": "Qual é a capacidade máxima de carga?" }Resposta:
{ "answer": "A capacidade máxima absoluta é 180 kg..." }├── app.py # API Flask (backend)
├── requirements.txt # Dependências Python
├── .env # Chave da API (não commitado)
├── .gitignore # Ignora o .env
├── README.md
└── static/
└── index.html # Frontend (single file)
- Flask: leve, sem overhead, ideal para APIs pequenas e protótipos rápidos
- Armazenamento em memória: variável global
stored_text— sem necessidade de banco para o escopo do teste - flask-cors: permite chamadas do frontend em qualquer origem
- Groq (llama-3.3-70b): API compatível com padrão OpenAI, gratuita e com baixa latência
O system prompt instrui o modelo a responder somente com base no texto enviado e a retornar a frase padrão "Não sei com base nas informações fornecidas." quando a resposta não estiver disponível. O texto completo é incluído em cada requisição (stateless por design).
- HTML/CSS/JS puro em único arquivo (
static/index.html) servido pelo próprio Flask - Sem dependências de build (zero configuração)
- Estética industrial/retro adequada ao contexto do equipamento (anos 70)
- Interface em duas abas: upload do texto → perguntas
- Arquivo
.envno.gitignore— chave nunca exposta no repositório - Validação de campos vazios em ambos os endpoints
- Timeout de 30s nas chamadas à IA
- Tratamento de erros HTTP e de rede com mensagens claras ao usuário