caramelo-chat
v0.6.2
Published
Chat com o Caramelo, por Guilherme Favaron, direto no terminal
Readme
caramelo
Um modelo de IA brasileiro, com a nossa cara. Base Gemma 4 E4B adaptada ao jeito de escrever do Gui com fine-tune LoRA, servida com uma API compatível com OpenAI, interface web e uma CLI no terminal. A camada de segurança fica sempre ligada e tem prioridade sobre as instruções do usuário.
Desenvolvido, disponibilizado e mantido por Guilherme Favaron — guifav.github.io · guilhermefavaron.com.br
O que é
- Modelos:
caramelo(geral) ecaramelo-code(programação) — duas variantes do mesmo modelo (Gemma 4 E4B + LoRA, treinado em 414 pares de correção de estilo destilados dos artigos do Substack ia-aplicada), que diferem pelo system prompt injetado. - API compatível com OpenAI: aponte qualquer SDK para
https://ia-caramelo.com/v1. - Web: crie conta, gere chave e converse em ia-caramelo.com.
- CLI: pacote
caramelo-chatno npm. - Segurança sempre ligada: recusa armas, malware/invasão, abuso infantil, violência, autolesão, doxxing e desinformação — independentemente do prompt, sem revelar as próprias instruções.
Usar
Web
Acesse ia-caramelo.com, crie sua conta e gere uma chave crml_....
API (compatível com OpenAI)
curl https://ia-caramelo.com/v1/chat/completions \
-H "Authorization: Bearer crml_SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{"model":"caramelo","messages":[{"role":"user","content":"e aí, beleza?"}]}'Funciona com qualquer SDK da OpenAI: aponte o base URL (base_url no Python, baseURL no JS) para https://ia-caramelo.com/v1, com a chave crml_....
CLI
npm install -g caramelo-chat
caramelo login # loga com Google no navegador e cria sua chave
caramelo "me explica RAG em duas frases"
caramelo -m caramelo-code "função de debounce em python"
caramelo keys # suas chaves: uso e economia estimada
caramelo update # atualiza a CLI para a última versão| Config | Default | Descrição |
|---------------|----------------------------|----------------------------|
| apiUrl | https://ia-caramelo.com | URL do gateway |
| apiKey | (vazio) | Chave de API (crml_...), criada pelo login |
| model | caramelo | caramelo ou caramelo-code |
| temperature | 0.7 | Criatividade 0–1 |
| maxTokens | 512 | Máx tokens na resposta |
Config em ~/.caramelo/config.json. Comandos no chat: /sair, /limpar, /help.
Como foi construído
- Base — Gemma 4 E4B (Google), modelo aberto que roda até em CPU.
- Fine-tune — LoRA sobre 414 pares de correção de estilo (destilados de ~229 artigos, ~365 mil palavras), treinado no Hugging Face (Jobs, GPU).
- Quantização — merge do adapter com a base e export para GGUF.
- Deploy — servido em CPU na VPS via llama.cpp, atrás de um gateway com auth, chaves e rate limit.
Estrutura
caramelo/
├── gateway/ API pública + web (FastAPI)
│ ├── app.py rotas (/ landing, /app web app, /v1/chat/completions, /admin), auth, chaves, rate limit, proxy
│ ├── personas.py CARAMELO, CARAMELO_CODE, SAFETY (estilo + segurança injetados server-side)
│ ├── db.py SQLite (usuários, chaves, conversas, logs)
│ ├── static/ landing.html (vitrine), index.html (app), admin.html, tailwind.css, icons.svg, landing.js
│ └── .env.example
├── bin/caramelo.js CLI (pacote npm caramelo-chat)
├── finetune/ pipeline LoRA + hf-space/ (treino no HF Spaces)
└── eval/ comparativo Caramelo vs modelo basePersonalizar
- Estilo: edite
gateway/personas.py(CARAMELO,CARAMELO_CODE). A constanteSAFETYé a camada de segurança — não a remova. - Limites: veja
gateway/.env.example(rate limit, concorrência,MAX_OUTPUT_TOKENS).
Hugging Face
- Adapter LoRA (4.4.1): guifav/caramelo-gemma4-e4b-lora-adapter; anteriores: caramelo-lora-adapter-v2 (3.4.2), caramelo-lora-adapter (3.4.1)
Licença
Código sob MIT. O modelo herda os termos de uso do Gemma (Google): treinar e servir é permitido; ao redistribuir os pesos, inclua a atribuição ao Gemma e a política de uso proibido.
