Passa al contenuto principale

API pubblica

Libre WebUI espone un'API compatibile con OpenAI, così SDK, editor e script esistenti possono puntare alla tua istanza modificando soltanto l'URL di base.

Autenticazione

Crea un token API con ambiti in Impostazioni → Account → Token API (i token usano il prefisso lwk_ e vengono archiviati sotto forma di hash). La superficie /v1 richiede l'ambito chat. Passa il token come una normale chiave bearer:

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

Le richieste sono soggette al limite per token (600 richieste al minuto) e al limite condiviso della chat.

Endpoint

EndpointScopo
GET /v1/modelsModelli disponibili, locali o basati sui plugin dei provider
POST /v1/chat/completionsCompletamento chat senza stato, in streaming oppure no

POST /v1/chat/completions accetta il corpo consueto: model, messages (system/user/assistant; le parti di testo multimodali vengono appiattite), stream, temperature, top_p, max_tokens/max_completion_tokens, seed e stop. Le risposte in streaming sono frame SSE chat.completion.chunk terminati da data: [DONE]; le risposte non in streaming includono i conteggi dei token in usage quando il provider li comunica.

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."}]
}'

Limiti intenzionali

La superficie /v1 è destinata all'inferenza senza stato: non crea mai chat, non modifica la tua base di conoscenze e non esegue strumenti. Le conversazioni con stato, eventi persistenti e riproducibili, annullamento tramite identità, accodamenti idempotenti e ciclo nativo degli strumenti risiedono nell'API eventi nativa /api/chat, che gli stessi token possono chiamare con l'ambito chat. I ruoli diversi da system/user/assistant, ad esempio tool, vengono rifiutati anziché accettati silenziosamente.

Documentazione correlata