Assistente de código deixou de ser novidade e virou ferramenta de trabalho. O que ainda incomoda são duas coisas: a assinatura por cabeça, que cresce com o time, e o fato de que o seu código-fonte sai da empresa a cada tecla digitada.
Dá para resolver os dois. Este guia monta um copiloto para a equipe inteira em duas configurações — uma que você liga em 15 minutos e cobra por uso, outra que roda numa GPU sua com controle total — e mostra a conta de qual compensa no seu tamanho de time.
O editor é o mesmo (VS Code, JetBrains, Neovim); o que muda é para onde ele aponta. Chat e refatoração funcionam bem por token, a centavos por desenvolvedor por dia. Autocompletar linha a linha pede modelo próprio numa GPU dedicada, por causa da latência.
Antes de tudo: são dois produtos, não um
Quase todo mundo trata "copiloto" como uma coisa só, e é aí que a montagem dá errado. São dois modos de uso com exigências opostas:
| Autocompletar (inline) | Chat / agente | |
|---|---|---|
| Gatilho | Cada pausa na digitação | Quando o dev pede |
| Latência aceitável | Abaixo de 300 ms | Alguns segundos |
| Volume | Centenas de chamadas/hora | Dezenas por dia |
| Tipo de modelo | Pequeno, treinado em fill-in-the-middle | Modelo geral, quanto melhor melhor |
| Melhor arranjo | GPU dedicada, na sua rede | API por token |
A recomendação honesta: comece pelo chat. Ele entrega a maior parte do valor (explicar código, escrever teste, refatorar, revisar diff), é o que menos custa e liga em minutos. Autocompletar é ótimo, mas é o modo caro e chato de operar — deixe para a segunda fase.
Configuração 1: chat e agente por token (15 minutos)
Vamos usar o Continue, que é aberto, roda em VS Code e JetBrains, e aceita qualquer endpoint compatível com a API da OpenAI — que é o caso da API da GPUBrasil.
Passo 1: a chave
No painel, em Chaves de API, gere uma chave. O ideal é uma chave por desenvolvedor: assim você vê o consumo individual no painel e revoga a de quem sai da empresa sem mexer no resto do time.
Passo 2: instalar e apontar
Instale a extensão Continue e edite ~/.continue/config.json:
{
"models": [
{
"title": "Padrão (código e chat)",
"provider": "openai",
"model": "gpub-plus",
"apiBase": "https://gpubrasil.com.br/v1",
"apiKey": "gpub_live_suachaveaqui"
},
{
"title": "Econômico (perguntas rápidas)",
"provider": "openai",
"model": "gpub-fast",
"apiBase": "https://gpubrasil.com.br/v1",
"apiKey": "gpub_live_suachaveaqui"
},
{
"title": "Máximo (base inteira, refatoração grande)",
"provider": "openai",
"model": "gpub-max",
"apiBase": "https://gpubrasil.com.br/v1",
"apiKey": "gpub_live_suachaveaqui"
}
],
"allowAnonymousTelemetry": false
}
Pronto. Ctrl+L abre o chat com o arquivo aberto no contexto; Ctrl+I edita a seleção com instrução em linguagem natural.
"Explica esta função" e "refatora este módulo de 2 mil linhas" não são o mesmo problema. Deixe os três configurados e o dev escolhe no seletor: o gpub-fast custa R$ 0,49 por milhão de tokens de entrada, o gpub-max custa R$ 17,90. Usar o caro para tudo multiplica a conta por 36 sem melhorar as perguntas simples.
Passo 3: mesma coisa nos outros editores
- JetBrains: a mesma extensão Continue, mesmo arquivo de configuração.
- Zed: em Settings, defina um provedor compatível com OpenAI apontando para
https://gpubrasil.com.br/v1. - Neovim / terminal: o Aider é excelente e trabalha direto sobre o Git, criando commits por alteração.
pip install aider-chat
export OPENAI_API_BASE="https://gpubrasil.com.br/v1"
export OPENAI_API_KEY="gpub_live_suachaveaqui"
aider --model openai/gpub-plus src/servico.py
# "adicione tratamento de erro e um teste para o caso de timeout"
Quanto isso custa por desenvolvedor
Uso realista de chat: 40 interações por dia, cerca de 6 mil tokens de entrada (o arquivo mais o contexto) e 700 de saída por interação.
| Modelo | Por dia | Por mês (22 dias) | Time de 10 |
|---|---|---|---|
gpub-fast | R$ 0,15 | R$ 3,26 | R$ 33 |
gpub-plus | R$ 0,28 | R$ 6,10 | R$ 61 |
gpub-base | R$ 2,40 | R$ 52,74 | R$ 527 |
gpub-max | R$ 6,67 | R$ 146,80 | R$ 1.468 |
Para comparação, uma assinatura corporativa dos assistentes de mercado fica em torno de US$ 19 por desenvolvedor por mês — perto de R$ 115 com o dólar em R$ 6. Com o gpub-plus, o mesmo time de 10 gasta R$ 61 no total, e você paga só quem realmente usou.
A economia não é o argumento mais forte, no entanto. O mais forte é o próximo.
Configuração 2: modelo próprio numa GPU dedicada
Duas razões levam à segunda configuração, e nenhuma é preço:
- Autocompletar precisa de latência baixa. Abaixo de 300 ms por sugestão. Isso é difícil de garantir por qualquer API pública e fácil de garantir com o modelo servido perto de você.
- Governança. Numa instância dedicada, o modelo, os pesos, os logs e os prompts estão sob o seu controle — não existe API de terceiro no caminho do seu código-fonte. É o argumento que costuma destravar a aprovação de segurança, e ele é sobre controle, não sobre onde a máquina fica.
Passo 1: subir o servidor de modelo
O template vLLM sobe em 1 clique e serve uma interface compatível com a da OpenAI. Para autocompletar, escolha um modelo de código pequeno com suporte a fill-in-the-middle — é o que permite completar no meio do arquivo, olhando o que vem antes e depois do cursor.
| Uso | Tamanho | GPU sugerida | Preço/h | Mês 24×7 |
|---|---|---|---|---|
| Autocompletar (time pequeno) | 1B–3B | RTX A4000 16 GB | R$ 1,07 | R$ 781 |
| Autocompletar (time médio) | 7B | RTX 4090 24 GB | R$ 2,38 | R$ 1.737 |
| Autocompletar + chat | 14B–32B | RTX 5090 32 GB | R$ 4,77 | R$ 3.482 |
| Chat de alta qualidade | 70B+ | RTX PRO 6000 96 GB | R$ 10,73 | R$ 7.833 |
Uma GPU dedicada 24×7 para autocompletar custa a partir de R$ 781/mês. Isso só se paga contra assinaturas de mercado com 7 desenvolvedores ou mais. Abaixo disso, você está pagando por controle e latência — o que pode ser perfeitamente racional, mas não é economia. Não venda internamente como corte de custo se não for.
E desligue fora do horário: 10 h por dia útil derruba os R$ 781 para cerca de R$ 235.
Passo 2: apontar o Continue para as duas fontes
A configuração madura usa autocompletar local e chat por token. Você paga GPU só pelo que exige latência, e usa modelo grande no que exige qualidade:
{
"models": [
{
"title": "Chat (por token)",
"provider": "openai",
"model": "gpub-plus",
"apiBase": "https://gpubrasil.com.br/v1",
"apiKey": "gpub_live_suachaveaqui"
}
],
"tabAutocompleteModel": {
"title": "Autocompletar (GPU dedicada)",
"provider": "openai",
"model": "modelo-de-codigo-servido",
"apiBase": "http://SEU_IP:8000/v1",
"apiKey": "chave-interna"
},
"tabAutocompleteOptions": {
"debounceDelay": 250,
"maxPromptTokens": 1024,
"multilineCompletions": "auto"
}
}
O debounceDelay é o parâmetro que decide o custo e o incômodo: baixo demais dispara uma chamada por tecla; alto demais e a sugestão chega quando o dev já digitou a linha. 250 ms é um bom ponto de partida.
Passo 3: não exponha o servidor na internet
Um endpoint de LLM aberto vira consumo de terceiros na sua conta em questão de horas. Duas formas de fechar:
- Túnel SSH por desenvolvedor — simples e seguro; nada exposto:
ssh -N -L 8000:localhost:8000 gpu-copiloto
# agora, no config: "apiBase": "http://localhost:8000/v1"
- Proxy com autenticação — para times maiores. O template LiteLLM Proxy resolve: chave por desenvolvedor, limite de uso, registro de consumo e um único ponto de entrada que pode rotear para o modelo local ou para a API por token conforme a tarefa.
Um proxy no meio, chave por desenvolvedor, autocompletar indo para a GPU local e chat indo para a API por token. Você troca modelo, ajusta limite e vê consumo por pessoa sem tocar na máquina de ninguém — e o dev não precisa saber que existe roteamento.
Regras de uso que valem escrever
A parte que quase ninguém documenta e que separa adoção de bagunça:
- Revisão continua obrigatória. Código gerado entra por pull request como qualquer outro. O assistente não é autor, é ferramenta.
- Nunca cole segredo no chat. Vale para qualquer assistente, inclusive o seu. Configure
.continueignorepara excluir.env, chaves e diretórios sensíveis. - Desligue a telemetria.
allowAnonymousTelemetry: false. Padrão de fábrica costuma vir ligado. - Escolha do modelo é decisão de custo. Ensine o time: pergunta rápida no barato, refatoração grande no caro. A diferença é de 36 vezes.
- Teste gerado por IA sem asserção é teste que passa sempre. Revise a asserção, não só a execução.
- Uma chave por pessoa. Consumo rastreável e desligamento limpo na saída.
Medindo se está valendo
Depois de um mês, olhe três números — e não confie na percepção, que é sempre otimista:
- Custo por desenvolvedor ativo (não por cadastrado). Se metade do time não usa, a média engana.
- Distribuição de uso por modelo. Se 80% das chamadas vão para o modelo mais caro, há dinheiro parado na mesa.
- Onde o time realmente usa. Se é só para escrever teste e explicar código legado, ótimo — mas então você não precisa do modelo mais caro do catálogo.
Copiloto para o time, cobrado em reais
API por token compatível com a da OpenAI a partir de R$ 0,49 por milhão, e GPUs dedicadas quando o time crescer. Sem assinatura por cabeça — você paga o uso.
Criar conta →Problemas comuns
| Sintoma | Causa |
|---|---|
| Chat funciona, autocompletar não sugere nada | Modelo sem suporte a fill-in-the-middle — troque por um modelo de código |
| Sugestão chega tarde demais | debounceDelay alto, ou modelo grande demais para autocompletar |
| Conta muito acima do previsto | Autocompletar apontado para modelo caro por token |
| Respostas ignoram o projeto | Falta indexar a base — ative o contexto de repositório no Continue |
| Erro 401 | Chave revogada, ou apiBase sem o /v1 no fim |
| Consumo de alguém que já saiu da empresa | Chave compartilhada — é exatamente o que uma chave por pessoa evita |
Conclusão
Copiloto de código não precisa ser assinatura por cabeça nem projeto de infraestrutura. Comece pelo chat por token — 15 minutos de configuração, alguns reais por desenvolvedor por mês — e só monte a GPU dedicada quando aparecer uma razão concreta: autocompletar com latência baixa, ou uma exigência de governança que peça controle sobre modelo, pesos e logs.
Os dois arranjos convivem no mesmo editor. Essa é a vantagem de tudo falar o mesmo protocolo: a decisão deixa de ser arquitetural e vira uma linha de configuração que você muda quando a conta mandar.
Continue: GPU como máquina de desenvolvimento · LiteLLM Proxy · servir modelo com vLLM