API publique
Libre WebUI expose une API compatible avec OpenAI afin que les SDK, éditeurs et scripts existants puissent cibler votre instance en ne modifiant que l’URL de base.
Authentification
Créez un jeton d’API à portée limitée sous Paramètres → Compte → Jetons d’API
(les jetons utilisent le préfixe lwk_ et sont stockés sous forme de hachage). La
surface /v1 exige la portée chat. Transmettez le jeton comme une clé bearer
ordinaire :
export OPENAI_BASE_URL="https://your-instance/v1"
export OPENAI_API_KEY="lwk_..."
Les requêtes sont soumises à la limite de débit propre au jeton (600 requêtes par minute) ainsi qu’à la limite de débit partagée du chat.
Points de terminaison
| Point de terminaison | Fonction |
|---|---|
GET /v1/models | Modèles disponibles (locaux ou fournis par un plugin de fournisseur) |
POST /v1/chat/completions | Complétion de chat sans état, avec ou sans diffusion en continu |
POST /v1/chat/completions accepte le corps habituel : model, messages
(system/user/assistant ; les parties de texte multimodales sont aplaties),
stream, temperature, top_p, max_tokens/max_completion_tokens, seed et
stop. Les réponses diffusées en continu sont des trames SSE
chat.completion.chunk terminées par data: [DONE] ; les réponses non diffusées
incluent les nombres de jetons usage lorsque le fournisseur les communique.
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 intentionnelles
La surface /v1 assure une inférence sans état : elle ne crée jamais de chats,
ne touche pas à votre base de connaissances et n’exécute aucun outil. Les
conversations avec état, dotées d’événements durables et rejouables, d’une
annulation par identité, de mises en file idempotentes et de la boucle d’outils
native, passent par l’API d’événements native /api/chat. Les mêmes jetons peuvent
l’appeler avec la portée chat. Les rôles autres que
system/user/assistant (par exemple tool) sont rejetés au lieu d’être
acceptés silencieusement.
Documentation connexe
- Authentification — comptes, sessions et jetons d’API
- Outils de chat — boucle d’outils native sur l’API d’événements