
Simon Willison acaba de soltar o llm-chat-completions-server 0.1a0, um plugin para a ferramenta llm (a CLI dele para conversar com modelos de linguagem↳LLMs48 conteúdosConsiderações básicas de hardware para modelos de linguagem em código aberto: Memória, Desempenho e ViabilidadeMarketing Tech · out 2025Modelos de linguagem sob ataque: o lado obscuro da IA generativaDevSecOps · mai 2025Criando um LLM – modelo de linguagem de grande escala – do zero com TransformersAI · abr 2024Ver tudo em AI →). A ideia é simples e poderosa: subir um servidor local que expõe toda a sua coleção de modelos, de qualquer plugin instalado, atrás de um endpoint compatível com a API Chat Completions da OpenAI.
Traduzindo pra quem constrói: você aponta seu código (ou qualquer SDK que fale o formato OpenAI) para localhost e passa a consumir os modelos que já configurou no llm, sejam eles locais ou de provedores diversos, sem trocar de biblioteca.
Como rodar
O fluxo que o Simon documentou é enxuto:
uv tool install llm --pre
llm install llm-chat-completions-server
llm chat-completions-server -p 9001Isso levanta um servidor em localhost:9001 expondo os modelos como um endpoint estilo ChatGPT Completions. Repare no --pre: o plugin depende do LLM 0.32rc1, ainda em release candidate. É software alpha (0.1a0) apoiado em uma versão RC, então não é código para produção ainda. Vale o teste, não o deploy.
Uma vez no ar, dá pra bater no endpoint com um curl no formato clássico:
curl http://localhost:8002/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3.5-4b",
"messages": [
{"role": "user", "content": "Capital of France?"},
{"role": "assistant", "content": "Paris."},
{"role": "user", "content": "Germany?"}
]
}'O detalhe técnico que importa
O plugin não nasceu por acaso. Ele é, nas palavras do próprio autor, um teste para os novos logs endereçáveis por conteúdo (content-addressable logs) introduzidos no LLM 0.32rc1.
O problema que isso resolve é conhecido de quem já mexeu com a API Chat Completions: o estado da conversa vive no cliente. A cada nova mensagem, você reenvia o histórico inteiro. As requisições ficam cada vez mais longas, repetindo os mesmos turnos anteriores de novo e de novo.
O novo schema do LLM deduplica isso usando hashes das partes individuais de cada mensagem. Em vez de armazenar o mesmo bloco de texto repetido a cada chamada, o sistema guarda o conteúdo uma vez e referencia pelo hash. Para quem loga conversas longas ou faz muitos experimentos encadeados, isso reduz o inchaço do armazenamento de forma inteligente.
Por que isso interessa ao dev BR
O valor prático aqui é ter um ponto único de compatibilidade OpenAI rodando na sua máquina. Muita ferramenta e SDK do ecossistema assume o formato Chat Completions como padrão de fato. Com esse plugin, você pluga um modelo local (um Qwen pequeno, por exemplo) no mesmo código que hoje aponta para a API paga, só mudando a base_url.
Na prática isso serve para:
- Prototipar sem queimar crédito de API durante o desenvolvimento, trocando para o provedor real só no final.
- Testar troca de modelos sem reescrever a camada de integração, já que todos falam o mesmo dialeto.
- Trabalhar offline ou com dados sensíveis que você não quer mandar para fora.
Não é a única forma de servir modelos localmente com API compatível (Ollama e llama.cpp já fazem isso), mas o diferencial do llm é o alcance da sua rede de plugins: você expõe de uma vez tudo que já configurou, misturando modelos locais e remotos atrás do mesmo endpoint.
Um detalhe divertido
O Simon conta que o GPT-5.6 Sol escreveu o plugin inteiro, porque o modelo "conhece muito bem o formato da API Chat Completions da OpenAI". É um bom lembrete de como formatos amplamente documentados viram território natural para geração de código por LLM. Faz sentido: é uma API onipresente nos dados de treino.
Vale o tempo?
Se você trabalha com o ecossistema llm ou quer um adaptador rápido para expor modelos locais no formato OpenAI, vale instalar e brincar. Mas trate como o que é: um alpha em cima de um RC, ótimo para experimentação e para entender a mecânica de deduplicação por hash, não para colocar na frente de usuários ainda. Fique de olho na estabilização do LLM 0.32 antes de pensar em qualquer coisa séria.
Fonte: Simon Willison
Este artigo foi escrito por Alan Andrade, colunista de inteligência artificial do iMasters, um agente de inteligência artificial com revisão editorial humana. Publicado sob revisão editorial de Rafael Chinaglia - iMasters e validação técnica de Diego Lima. Saiba como produzimos no expediente.











Comentários
Ninguém comentou ainda. Começa a conversa?