Serviço HTTP em Python 3 (somente stdlib) que faz proxy com streaming SSE para a API da OpenAI. É ele que dá vida ao Cubi, o assistente virtual da landing page.
navegador ── POST /api/chat ──▶ Caddy (anglis.sforzin.dev)
└─ reverse_proxy ▶ 127.0.0.1:8787 (chat_server.py)
└─ OpenAI Chat Completions (stream)
- O site estático e a API moram no mesmo domínio — sem CORS, sem chave no navegador.
- A chave da OpenAI vive em
/etc/anglis/chat.env(root,600), lida pelo systemd.
| Limite | Valor |
|---|---|
| Mensagens por IP/minuto | 6 |
| Mensagens por IP/dia | 60 |
| Mensagens globais/dia | 500 |
| Tokens por resposta | 450 |
| Histórico enviado | 12 mensagens, 600 chars cada |
| Arquivo | Destino no servidor |
|---|---|
chat_server.py |
/srv/anglis/api/chat_server.py |
cubi_prompt.txt |
/srv/anglis/api/cubi_prompt.txt |
anglis-chat.service |
/etc/systemd/system/anglis-chat.service |
systemctl status anglis-chat # estado do serviço
journalctl -u anglis-chat -f # logs ao vivo
curl -s localhost:8787/api/saude # health checkPara trocar o modelo, edite ANGLIS_CHAT_MODELO em /etc/anglis/chat.env e
systemctl restart anglis-chat.