Pontos principais
- Execuções locais precisam de RAM ou VRAM suficientes para o arquivo quantizado mais o cache da janela de contexto.
- Ollama é a opção mais rápida; llama.cpp oferece mais controle sobre quantização e parâmetros.
- Ambos expõem um servidor no estilo OpenAI, então o mesmo código de cliente pode apontar para local ou hospedado.
- Um endpoint hospedado custa $0,15 por 1M de tokens de entrada e $0,50 por 1M de tokens de saída e leva minutos para ser configurado.
Decida primeiro: qual hardware você tem?
A memória decide tudo. Um modelo de linguagem é um conjunto muito grande de números, e todo esse conjunto precisa ficar na memória rápida enquanto gera. A quantização reduz esses números. Um modelo quantizado em 4 bits ocupa cerca de meio byte por parâmetro, então um modelo com 8 bilhões de parâmetros ocupa cerca de 5 GB, e um com 70 bilhões ocupa cerca de 40 GB. Considere esses valores como aproximados, já que o tamanho exato depende do formato de quantização.
Além dos pesos, você precisa de espaço para o cache de contexto. Ele cresce com o tamanho do prompt, então um histórico longo de roleplay ou um documento grande consome mais memória do que uma pergunta curta. Planeje alguns gigabytes extras para contextos modestos, mais se você for usar prompts longos.
- Notebook de 8 GB sem GPU: apenas modelos pequenos, saída lenta.
- Mac com Apple Silicon de 16 a 32 GB: modelos de tamanho médio funcionam bem porque a CPU e a GPU compartilham memória.
- GPU de consumidor única com 12 a 24 GB de VRAM: modelos de tamanho médio com boa velocidade.
- Qualquer coisa maior: múltiplas GPUs ou um servidor alugado.
Método 1: Ollama em alguns comandos
Ollama é o caminho mais curto. Ele baixa um modelo quantizado, inicia um servidor em segundo plano e oferece um prompt de chat. Instale-o no site oficial para o seu sistema operacional, depois verifique quais tags do Dolphin a biblioteca de modelos Ollama lista atualmente, pois nomes e tamanhos mudam entre versões.
# replace <tag> with a Dolphin tag from the Ollama library
ollama pull <tag>
ollama run <tag>
O primeiro comando baixa o arquivo, o que pode demorar em uma conexão lenta. O segundo abre um chat interativo no terminal. Ollama também serve uma API HTTP na sua máquina, incluindo uma rota no estilo OpenAI em /v1, para que outros programas possam usá-la.
Se a geração estiver muito lenta, o modelo provavelmente não coube na VRAM e parte dele está sendo executada na CPU. Escolha uma tag menor ou uma quantização de bits mais baixa.
Método 2: llama.cpp para mais controle
llama.cpp é o mecanismo em C++ no qual muitas outras ferramentas são construídas. Você baixa um arquivo GGUF do modelo e depois inicia seu servidor. Isso exige mais etapas que o Ollama, mas permite definir o comprimento da janela de contexto, o número de camadas alocadas na GPU e a quantização desejada.
# after building llama.cpp and downloading a GGUF file
llama-server -m ./model.gguf -c 8192 -ngl 99 --port 8080
Aqui, -c define o comprimento do contexto, -ngl define quantas camadas vão para a GPU, e --port escolhe a porta. Consulte o README do projeto para ver as flags da sua versão, pois elas evoluem. Um -c maior usa mais memória, então aumente-o apenas quando precisar.
Para uso gráfico, interfaces front-end como o Open WebUI podem se conectar a qualquer um dos servidores. Nossa nota sobre endpoints da API do Open WebUI mostra como adicionar um endpoint personalizado.
Chamando seu servidor local do código
Ambas as ferramentas podem falar o formato de chat OpenAI, então você escreve o cliente uma vez e alterna o destino com duas configurações. Este script mantém ambos os destinos lado a lado. O local usa a porta que o Ollama usa por padrão; altere-a se você iniciou o llama.cpp na 8080.
from openai import OpenAI
TARGETS = {
"local": {"base_url": "http://localhost:11434/v1", "key": "not-needed", "model": "your-local-tag"},
"hosted": {"base_url": "https://api.dolphinllm.com/v1", "key": "YOUR_KEY", "model": "uncensored"},
}
t = TARGETS["hosted"]
client = OpenAI(base_url=t["base_url"], api_key=t["key"])
resp = client.chat.completions.create(
model=t["model"],
messages=[{"role": "user", "content": "Summarize what a GGUF file is."}],
)
print(resp.choices[0].message.content)
Servidores locais geralmente ignoram a chave, mas o SDK exige uma string não vazia. O nome do modelo para um servidor local é qualquer tag ou alias que você carregou, enquanto o ID do modelo hospedado é sempre uncensored.
Método 3: pule a configuração e use um endpoint hospedado
Se a matemática do hardware parecer ruim, ou se você quiser o mesmo comportamento em todas as máquinas, um endpoint hospedado é mais simples. Este serviço oferece um modelo de pesos abertos, executado por um provedor independente e ajustado para responder sem recusas de conteúdo para uso adulto legal. Não é a API oficial de nenhum fornecedor de modelo e não permite escolher outros modelos. O que você recebe é uma URL estável, uma chave e cobrança por token.
Os passos são curtos. Cadastre-se com Google ou com e-mail e senha, abra a página de chave de API e obtenha o crédito de teste de $0,50 com um clique. Não precisa de cartão, é válido por 7 dias e limitado a um por pessoa. Em seguida, execute o script Python acima com o destino hospedado. Se preferir curl:
curl https://api.dolphinllm.com/v1/chat/completions -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}],"stream":false}'
A janela de contexto tem 100.000 tokens, o que é mais do que a maioria dos laptops pode manter no cache confortavelmente. Os prompts não são usados para treinamento.
Custo e esforço comparados
Local parece gratuito, mas não é. Você paga por hardware, eletricidade e seu próprio tempo. Hospedado custa dinheiro por requisição, mas os valores são pequenos. A $0,15 por 1 milhão de tokens de entrada e $0,50 por 1 milhão de tokens de saída, uma rodada de chat com 3.000 tokens de entrada e 700 tokens de saída custa:
- Entrada: 3.000 x $0,15 / 1.000.000 = $0,00045
- Saída: 700 x $0,50 / 1.000.000 = $0,00035
- Total: $0,0008 por turno, ou seja, $0,80 por 1.000 turnos
Mesmo um usuário intenso enviando 5.000 dessas rodadas em um mês gastaria cerca de $4. Uma GPU que custa centenas de dólares precisaria de anos de uso para compensar esse volume. A comparação muda quando você tem volume alto contínuo, precisa de um ajuste fino específico ou não pode enviar dados para fora da sua máquina.
Os detalhes completos de preços, incluindo os bônus de recarga de +5%, +10% e +15%, estão na página de preços, e a documentação cobre limites e parâmetros.
Uma regra simples para escolher
Execute localmente se quiser experimentar com muitos ajustes finos, trabalhar offline ou manter todos os prompts no seu próprio disco. Use o endpoint hospedado se estiver construindo algo que outras pessoas vão usar, se seu hardware for modesto ou se quiser um contexto de 100.000 tokens sem gerenciar memória. Muitos desenvolvedores fazem os dois: um modelo local para experimentação privada e um endpoint hospedado para qualquer coisa que precise ficar online. Como o código do cliente é o mesmo, a mudança custa uma linha.

