Adicione modelos do catálogo em nuvem ao Jan sem abandonar o local-first.

Updated 2026-07-29

O Jan roda modelos na sua máquina por design, e suas configurações de Model Providers aceitam qualquer endpoint compatível com OpenAI para os dias em que o local não basta: adicione um provedor, defina a Base URL como https://api.apisrouter.com/v1, cole uma chave, e ids de Claude, GPT, Gemini, e DeepSeek entram na sua lista local.

Resposta rápida: um provedor em Settings.

Abra as configurações do Jan e vá para Model Providers. Clique no controle de mais ao lado da lista de provedores para adicionar um provedor personalizado, dê um nome a ele (APIsRouter), e nas builds recentes escolha o formato OpenAI API quando o diálogo perguntar (o Jan v0.8.1 adicionou um seletor de formato OpenAI-ou-Anthropic; para um gateway escolha OpenAI). Depois preencha os dois campos que importam: Base URL https://api.apisrouter.com/v1 e sua API key. Adicione os modelos que você quer por id: a documentação do Jan é explícita que a propriedade id precisa corresponder ao nome do modelo que o endpoint serve, então copie ids da listagem do catálogo (claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flash) em vez de digitar de memória. Salve, e os ids aparecem no seletor de modelo ao lado do que você roda localmente. Os rótulos mudaram entre releases (versões mais antigas chamavam essa área de Remote Engines), então trate provedor, formato, URL, chave, modelos como o esqueleto estável.

Name:        APIsRouter
API Format:  OpenAI          (v0.8.1+ selector)
Base URL:    https://api.apisrouter.com/v1
API Key:     sk-YOUR-APISROUTER-KEY

Models: add ids that match the endpoint, e.g.
  claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flash

Como o Jan trata provedores remotos.

O Jan (menloresearch no GitHub, cerca de 44 mil estrelas) é o cliente de desktop local-first: modelos baixam para sua máquina, rodam pelo llama.cpp, e funcionam offline, com o app até expondo seu próprio servidor compatível com OpenAI em http://127.0.0.1:1337/v1 para outras ferramentas. Provedores remotos são a segunda faixa deliberada, para modelos grandes demais para rodar localmente ou tarefas que merecem qualidade de ponta. Um provedor personalizado no formato OpenAI é uma descrição simples de endpoint: base url, chave, ids de modelo declarados. Conversas contra esses ids saem como requisições padrão de chat-completions com o id como a string do modelo, então um gateway multi-fornecedor precisa de exatamente uma entrada. Claude para escrita cuidadosa, DeepSeek para resumo de volume, Gemini para velocidade, uma chave atrás de todos eles. O encaixe filosófico é melhor do que parece à primeira vista. Usuários local-first tendem a ser deliberados sobre o que sai da máquina, e um gateway mantém a faixa remota igualmente deliberada: um endpoint para colocar atrás de firewall, um log de uso para ler, um saldo que só se move quando você escolheu enviar algo para fora. Nada na faixa local muda; seus modelos baixados continuam funcionando offline exatamente como antes.

Declarando modelos: o contrato do id.

O Jan não busca o catálogo de um endpoint personalizado por você; os modelos que você declara são os modelos que você recebe, e o id é o contrato. A grafia autoritativa vem da listagem /v1/models do gateway, sufixos de versão incluídos. Um id declarado que se afasta da listagem produz erros not-found só quando aquele modelo é selecionado, o que soa como um provedor instável até você comparar as strings. Declare deliberadamente. Um seletor local-first funciona melhor quando as linhas remotas são poucas e propositais: um id rápido para as viradas remotas do dia a dia (gpt-5.4-mini ou claude-haiku-4-5-20251001), um id de ponta para o trabalho que justifica sair da máquina (claude-sonnet-4-6), e qualquer especialista que sua carga de trabalho mereça (deepseek-v4-flash para resumos multilíngues longos, gemini-3.5-flash quando a latência é o recurso). Cada linha é fácil de adicionar depois; um catálogo colado inteiro é ruído que você rola diariamente. Se você também usa o servidor de API local do Jan para servir outras ferramentas, mantenha o modelo mental claro: esse servidor é o Jan sendo um provedor em 127.0.0.1:1337/v1; a entrada de provedor personalizado é o Jan sendo um cliente. Os dois são independentes, e configurar um nunca afeta o outro.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50
# declare these ids verbatim in the provider's model list

Escolhendo quais conversas saem da máquina.

Como o uso remoto é pré-pago e medido por chave, o custo da faixa remota é um número que você lê, não uma assinatura que você chuta. Rode um mês da sua divisão real e o log de uso te diz exatamente quanto sair da máquina custa, por modelo, por dia.

  • Viradas remotas do dia a dia, perguntas rápidas, reescritas, traduções, pertencem ao nível rápido: gpt-5.4-mini e claude-haiku-4-5-20251001 respondem rápido e mantêm o saldo quase parado.
  • claude-sonnet-4-6 é o degrau acima para trabalho que um modelo local visivelmente não aguenta: redação longa e cuidadosa, revisão de código sutil, análise que você vai encaminhar.
  • gemini-3.5-flash merece sua linha pela latência; para viradas interativas curtas ele parece o mais próximo da responsividade de um modelo local.
  • deepseek-v4-flash é a escolha de volume para resumir documentos longos que você não daria a um modelo local pequeno.
  • Mantenha material privado inteiramente em modelos locais; a divisão entre faixas é o ponto de rodar o Jan em primeiro lugar.

Pague pelo uso · abaixo do preço oficial

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModeloPreço oficialNosso preço
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
GPT-5.4 mini$0.75 / $4.50 per M$0.60 / $3.60 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M

Modos de falha específicos do Jan.

Erros not-found em um modelo específico são o contrato do id: o id declarado não corresponde à grafia do endpoint. Compare contra a saída de /v1/models caractere por caractere. Falhas de autenticação em toda requisição são o campo da chave. Um provedor que salva mas nunca responde geralmente tem um problema de Base URL: o sufixo /v1 precisa estar presente, já que o Jan anexa caminhos de rota como /chat/completions à base que você fornece, e um segmento duplicado ou faltando dá 404. Se o provedor foi criado em uma build mais antiga, confira o formato de API: o v0.8.1 introduziu o seletor OpenAI-ou-Anthropic, e uma entrada de gateway acidentalmente definida no formato Anthropic fala o dialeto errado a um endpoint /v1/chat/completions. E lembre qual faixa você está depurando. Falhas de modelo local (VRAM, quantização, configurações do llama.cpp) e falhas remotas (URL, chave, ids) compartilham uma janela de chat mas nada mais; o seletor de modelo mostra a qual faixa uma conversa falha pertence antes de você começar a puxar o fio errado.

Quem adiciona uma faixa de gateway ao Jan.

  • Usuários local-first que ocasionalmente precisam de qualidade de ponta e querem essa faixa ocasional em um saldo pré-pago em vez de uma assinatura de fornecedor.
  • Desenvolvedores em máquinas que não conseguem rodar bem modelos locais grandes, usando o Jan como interface e o gateway para o trabalho pesado.
  • Usuários deliberados sobre privacidade que querem exatamente um endpoint remoto para raciocinar, colocar atrás de firewall, e auditar, em vez de um por fornecedor.
  • Pessoas comparando saída local versus nuvem em tarefas reais, onde os candidatos remotos são linhas declaradas, não novas contas.
  • Desenvolvedores sem acesso ao faturamento de um determinado fornecedor. O acesso baseado em recarga sem exigência de cartão remove a dependência de cadastro por provedor.

Verifique o endpoint e depure a primeira virada remota.

Faça curl na listagem de modelos e em uma chat completion primeiro; com os dois passando, tudo que resta está na entrada de provedor. Isso também te dá as grafias exatas de id para declarar. Dentro do Jan, envie uma mensagem curta no id remoto rápido. Erros de autenticação são a chave; not-found é o id; silêncio ou 404s são o formato da Base URL. Se a faixa remota funciona mas parece lenta no id de ponta, isso é latência do modelo, não um problema de configuração; modelos de raciocínio se demoram em viradas longas. Assim que as viradas remotas fluem, o console da APIsRouter mostra modelo, contagens de token e gasto por requisição. Para um usuário local-first esse log é uma leitura incomumente satisfatória: é o registro completo de tudo que já saiu da máquina, por modelo, por dia, com a faixa local contribuindo exatamente nada para ele.

curl -s https://api.apisrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $APISROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.4-mini",
       "messages":[{"role":"user","content":"ping"}]}'

Perguntas frequentes

Como eu adiciono um provedor personalizado compatível com OpenAI ao Jan?

Settings, Model Providers, depois o controle de mais para adicionar um provedor. Nomeie-o, escolha o formato de API OpenAI nas builds que perguntam (v0.8.1+), defina Base URL https://api.apisrouter.com/v1, cole sua chave, e declare ids de modelo que correspondam à listagem do endpoint.

Por que meu modelo declarado retorna not-found?

O Jan envia o id declarado literalmente como a string do modelo, e sua documentação exige que o id corresponda exatamente ao nome do modelo do endpoint. Puxe a listagem /v1/models e copie a grafia, sufixos de versão incluídos, em vez de digitar ids de memória.

Adicionar um provedor remoto muda como os modelos locais funcionam?

Não. Modelos locais continuam rodando no dispositivo pelo llama.cpp, offline incluído. A entrada de provedor adiciona uma faixa remota separada ao seletor, e as conversas só tocam a rede quando você escolhe um id remoto.

A Base URL deve incluir /v1?

Sim: https://api.apisrouter.com/v1. O Jan anexa rotas como /chat/completions à base que você configura, então um /v1 faltando dá 404 e um duplicado também. Se as requisições falharem, leia a URL composta no erro antes de mudar qualquer outra coisa.

O Jan pode alcançar Claude e Gemini através de uma entrada de provedor?

Sim. No formato OpenAI o id do modelo viaja como uma string simples, então claude-sonnet-4-6, gemini-3.5-flash, gpt-5.4-mini, e deepseek-v4-flash podem todos ser declarados sob uma entrada, faturados por uma chave, e trocados por conversa.

Isso é o mesmo que o servidor de API local do Jan?

Não. O servidor local em 127.0.0.1:1337/v1 é o Jan servindo seus modelos locais para outras ferramentas. A entrada de provedor personalizado é o Jan consumindo um endpoint remoto. São recursos independentes que por acaso compartilham o formato de fio OpenAI.