Rode seu segundo cérebro Khoj em uma base URL OpenAI personalizada.
Updated 2026-07-29
O Khoj documenta uma configuração de proxy OpenAI com duas superfícies: uma variável de ambiente OPENAI_BASE_URL que semeia modelos na primeira execução, e uma entrada AI Model API no painel admin com um campo Api Base Url. Aponte qualquer uma delas para https://api.apisrouter.com/v1 e chat, agentes, e automações rodam em qualquer modelo do catálogo.
Resposta rápida: variável de ambiente na primeira execução, painel admin a qualquer momento.
O arquivo compose de auto-hospedagem do Khoj carrega uma linha OPENAI_BASE_URL comentada destinada, em suas próprias palavras, a outros provedores compatíveis com a API OpenAI. Defina-a como https://api.apisrouter.com/v1 com OPENAI_API_KEY carregando uma chave do gateway antes da primeira inicialização, e a inicialização do Khoj faz algo incomumente útil: ela consulta a lista de modelos do endpoint e semeia sua tabela de chat models com todo id que o endpoint serve, então o catálogo aparece no seletor de modelo do Khoj sem entrada manual. Em um servidor já inicializado, use o painel admin em vez disso. Crie uma entrada AI Model API (campos: Name, Api Key, Api Base Url) apontando para o gateway, depois crie entradas Chat Model cujo Name seja o id exato do modelo, com Model Type definido como Openai e vinculado a essa AI Model API. As duas superfícies estão documentadas no guia de proxy OpenAI do Khoj em docs.khoj.dev.
services:
server:
environment:
- OPENAI_BASE_URL=https://api.apisrouter.com/v1
- OPENAI_API_KEY=sk-YOUR-APISROUTER-KEYO que o Khoj faz com seu chat model.
O Khoj (khoj-ai no GitHub, cerca de 36 mil estrelas) é um segundo cérebro de IA auto-hospedável: ele indexa suas notas e documentos (markdown, org-mode, PDFs, e mais), depois deixa você conversar sobre eles, rodar agentes personalizados com suas próprias personas e ferramentas, agendar automações que disparam em um cron, e lançar execuções de pesquisa em múltiplas etapas. Existe um app hospedado, mas o servidor auto-hospedado é onde endpoints personalizados se aplicam, e é o deployment que esta página descreve. Cada um desses recursos passa pelo chat model que você seleciona. O chat de documentos empacota trechos de nota recuperados no prompt, agentes adicionam chamadas de ferramenta e instruções de persona, automações rodam o mesmo pipeline sem supervisão, e o modo pesquisa encadeia muitas chamadas de modelo por pergunta. Model Type Openai diz ao Khoj para falar /v1/chat/completions com a Api Base Url da entrada AI Model API vinculada, encaminhando o Name do modelo como uma string simples, o que é por isso que um id Claude ou DeepSeek funciona ali contanto que o endpoint o sirva. Embeddings de busca são um subsistema diferente. O Khoj embarca seus documentos com um modelo local sentence-transformers por padrão, então a indexação e a busca semântica continuam funcionando independentemente do que você faça com o endpoint de chat. Rotear o chat por um gateway move só a conta do raciocínio.
Configuração completa: entradas do painel admin passo a passo.
Em um servidor rodando, a integração inteira são três telas de admin. Primeiro, adicione o AI Model API: abra /server/admin/database/aimodelapi/add, nomeie-o, cole a chave do gateway em Api Key, e defina Api Base Url como https://api.apisrouter.com/v1. Segundo, adicione chat models: em /server/admin/database/chatmodel/add, defina Name como um id exato do catálogo (claude-sonnet-4-6, deepseek-v4-flash), defina Model Type como Openai, vincule a entrada Ai Model Api que você acabou de criar, e defina Max prompt size para um valor que caiba na janela de contexto do modelo. A documentação recomenda deixar Tokenizer sem definir para modelos do tipo OpenAI. Repita por modelo que você quiser no seletor. Terceiro, selecione o modelo: em /settings, escolha seu novo chat model como o padrão. Agentes podem sobrescrever o modelo por agente, o que é como uma instância do Khoj roda um id rápido para automações diárias e um id de ponta para pesquisa.
1) /server/admin/database/aimodelapi/add
Name: APIsRouter
Api Key: sk-YOUR-APISROUTER-KEY
Api Base Url: https://api.apisrouter.com/v1
2) /server/admin/database/chatmodel/add
Name: claude-sonnet-4-6 (exact catalog id)
Model Type: Openai
Ai Model Api: APIsRouter
Max prompt size: 100000
3) /settings -> select the new chat modelEscolhendo modelos para um segundo cérebro.
Como chat models são linhas que você adiciona contra um AI Model API, manter dois ou três ids no seletor não custa nada. A configuração prática é um padrão rápido mais uma escalada de ponta, ambos faturados pela mesma chave para que o log de uso mostre o que cada nível realmente custa nas suas notas.
- O chat de documentos é pesado em entrada: trechos de nota recuperados ofuscam a resposta. O preço por token de entrada comanda o custo por pergunta, o que favorece claude-haiku-4-5-20251001, deepseek-v4-flash, ou gemini-3.5-flash para lembrança do dia a dia.
- O modo pesquisa multiplica chamadas. Uma pergunta de pesquisa pode encadear muitas viradas de modelo, então o id que você atribui ali move a conta mais do que qualquer outra configuração; claude-sonnet-4-6 é a escolha equilibrada, gpt-5.4 a escalada.
- Automações agendadas rodam sem supervisão. Precifique-as como uma assinatura: chamadas por dia vezes tokens por chamada, exatamente o que o log de uso por chave reporta.
- Conhecimento pessoal é rico em contradições (planos mudam, notas ficam obsoletas), e os modelos diferem em quão bem eles sinalizam notas conflitantes em vez de misturá-las; teste dois ids no mesmo conjunto de perguntas antes de decidir.
- Max prompt size é por chat model no Khoj, então um id de contexto longo só compensa se você elevar esse campo para corresponder.
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.
| Modelo | Preço oficial | Nosso preço |
|---|---|---|
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| GPT-5.4 | $2.50 / $15.00 per M | $2.00 / $12.00 per M |
| DeepSeek V4 Flash | $0.14 / $0.28 per M | $0.10 / $0.30 per M |
| Gemini 3.5 Flash | $1.50 / $9.00 per M | $1.20 / $7.20 per M |
Modos de falha específicos do Khoj.
A variável de ambiente é uma semente de primeira execução, não uma configuração ao vivo. OPENAI_BASE_URL é lida durante a inicialização para criar a entrada de provedor e descobrir modelos; em um servidor que já inicializou, editar o arquivo compose não muda nada que você consiga ver. Use o painel admin para mudanças depois da primeira inicialização, ou reinicie o banco de dados se você genuinamente quiser uma nova semeadura. A armadilha da chave placeholder: quando OPENAI_BASE_URL é definida sem OPENAI_API_KEY, o Khoj preenche a chave com um placeholder para que servidores locais como o Ollama funcionem. Um gateway exige uma chave real, então se a semeadura da primeira execução aconteceu sem uma, os chats falham com erros de autenticação até você colar a chave na entrada AI Model API no painel admin. A auto-descoberta semeia tudo. Como a inicialização lista todo modelo que o endpoint serve, um gateway multi-fornecedor pode semear uma tabela de modelos longa. Inofensivo, mas vale a pena podar no painel admin para que o seletor continue usável. O Name do chat model é exato. O Khoj o encaminha literalmente; um erro de digitação aparece como model-not-found na primeira mensagem, e a saída /v1/models do gateway é a grafia autoritativa. E se a busca semântica sobre suas notas se comportar mal, isso é o subsistema de embedding local, sem relação com o endpoint de chat.
Quem roteia o Khoj por um gateway.
- Auto-hospedeiros que querem chat com modelo de ponta sobre suas notas sem uma conta de fornecedor por família de modelo; uma chave cobre ids de Claude, GPT, DeepSeek, e Gemini.
- Usuários rodando automações agendadas diariamente, onde um id rápido mantém o custo recorrente estável e o log de uso o torna visível.
- Configurações preocupadas com privacidade que mantêm indexação e embeddings locais e expõem só prompts de chat a um endpoint auditável.
- Curiosos comparando chat models sobre um corpus pessoal idêntico: cada candidato é uma linha de chat model contra o mesmo AI Model API.
- 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 o primeiro chat.
Confira o gateway primeiro: liste modelos com sua chave e confirme os ids que você planeja registrar. A própria auto-descoberta do Khoj faz a mesma chamada durante a semeadura da primeira execução, então se esse curl funciona, a semeadura também vai funcionar. As falhas se localizam de forma limpa. Erros de autenticação significam que a Api Key na entrada AI Model API está errada ou ainda é o placeholder semeado. Model-not-found significa que um Name de chat model não corresponde à grafia do catálogo. Respostas que cortam no meio geralmente significam que Max prompt size ou o teto de saída do modelo está definido baixo demais para a conversa. Problemas de indexação e busca são o pipeline de embedding local e não têm nada a ver com o endpoint. Assim que os chats fluem, o console da APIsRouter mostra modelo, contagens de token e gasto por requisição. Automações e execuções de pesquisa são onde os custos do segundo cérebro se escondem, e o uso por chave é como você os vê por recurso em vez de como uma surpresa mensal.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Perguntas frequentes
O Khoj suporta um proxy ou gateway compatível com OpenAI?
Sim, como uma configuração documentada: crie uma entrada AI Model API com um Api Base Url apontando para o endpoint, depois adicione chat models com Model Type Openai. O arquivo compose também expõe OPENAI_BASE_URL para semeadura na primeira execução.
O Khoj pode conversar com modelos Claude ou DeepSeek através disso?
Sim. Model Type Openai encaminha o Name do chat model como uma string simples via /v1/chat/completions para a Api Base Url. Qualquer id que o gateway sirva funciona, incluindo ids Claude, DeepSeek, GLM, e Gemini.
Por que mudar OPENAI_BASE_URL no docker-compose não fez nada?
A variável semeia provedores e modelos só durante a inicialização da primeira execução. Em um servidor já inicializado, edite a entrada AI Model API no painel admin em vez disso; essa é a configuração ao vivo.
A base URL personalizada afeta a busca de documentos do Khoj?
Não. O Khoj embarca e busca seus documentos com um modelo local sentence-transformers por padrão. A entrada AI Model API move só chat, agentes, automações, e pesquisa.
O que é Max prompt size na entrada de chat model?
Um teto por modelo de quanto prompt o Khoj empacota em uma requisição. Defina-o para caber na janela de contexto do modelo; baixo demais trunca notas recuperadas, e um id de contexto longo só ajuda se esse campo for elevado para corresponder.
Isso se aplica ao app hospedado do Khoj?
Não, endpoints personalizados são um recurso de auto-hospedagem. O app hospedado gerencia seus próprios modelos no lado do servidor; as superfícies de painel admin e ambiente aqui pertencem a um servidor que você mesmo roda.