Pular para o conteúdo principal

API pública

O Libre WebUI oferece uma API compatível com OpenAI para que SDKs, editores e scripts existentes se conectem à sua instância alterando somente a URL base.

Autenticação

Crie um token de API com escopo em Configurações → Conta → Tokens de API (os tokens usam o prefixo lwk_ e são armazenados com hash). A interface /v1 exige o escopo chat. Passe o token como uma chave bearer comum:

export OPENAI_BASE_URL="https://your-instance/v1"
export OPENAI_API_KEY="lwk_..."

As solicitações seguem o limite de taxa por token (600 solicitações por minuto) e o limite compartilhado de taxa do chat.

Endpoints

EndpointFinalidade
GET /v1/modelsModelos disponíveis (locais e fornecidos por plugins)
POST /v1/chat/completionsConclusão de chat sem estado, com ou sem streaming

POST /v1/chat/completions aceita o corpo conhecido — model, messages (system/user/assistant; partes de texto multimodais são achatadas), stream, temperature, top_p, max_tokens/max_completion_tokens, seed e stop. Respostas em streaming são quadros SSE chat.completion.chunk encerrados por data: [DONE]; respostas sem streaming incluem as contagens de tokens em usage quando informadas pelo provedor.

curl "$OPENAI_BASE_URL/chat/completions" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2",
"messages": [{"role": "user", "content": "One sentence on herons."}]
}'

Limites deliberados

A interface /v1 oferece inferência sem estado: ela nunca cria chats, acessa sua base de conhecimento nem executa ferramentas. Conversas com estado, eventos persistentes e reproduzíveis, cancelamento por identidade, enfileiramento idempotente e o ciclo nativo de ferramentas ficam na API de eventos nativa /api/chat, que os mesmos tokens podem chamar com o escopo chat. Funções diferentes de system/user/assistant (por exemplo, tool) são rejeitadas, em vez de serem aceitas silenciosamente.

Documentação relacionada