Publiczne API
Libre WebUI udostępnia API zgodne z OpenAI, dzięki czemu istniejące SDK, edytory i skrypty mogą wskazywać instancję po zmianie tylko bazowego adresu URL.
Uwierzytelnianie
Utwórz token API o określonym zakresie w Ustawienia → Konto → Tokeny API (tokeny mają prefiks lwk_ i są przechowywane jako skróty). Powierzchnia /v1 wymaga zakresu chat. Przekaż token jako zwykły klucz bearer:
export OPENAI_BASE_URL="https://your-instance/v1"
export OPENAI_API_KEY="lwk_..."
Żądania podlegają limitowi tokenu (600 żądań na minutę) i wspólnemu limitowi czatu.
Punkty końcowe
| Punkt końcowy | Cel |
|---|---|
GET /v1/models | Dostępne modele lokalne i z wtyczek dostawców |
POST /v1/chat/completions | Bezstanowe uzupełnianie czatu, strumieniowe lub nie |
POST /v1/chat/completions przyjmuje znaną treść: model, messages (system/user/assistant; multimodalne części tekstowe są spłaszczane), stream, temperature, top_p, max_tokens/max_completion_tokens, seed i stop. Odpowiedzi strumieniowe to ramki SSE chat.completion.chunk zakończone data: [DONE]; pozostałe zawierają liczbę tokenów usage, jeśli dostawca ją zgłosi.
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."}]
}'
Zamierzone granice
Powierzchnia /v1 służy do bezstanowego wnioskowania: nigdy nie tworzy czatów, nie zmienia bazy wiedzy i nie uruchamia narzędzi. Rozmowy ze stanem, trwałe odtwarzalne zdarzenia, anulowanie według tożsamości, idempotentne kolejkowanie i natywna pętla narzędzi znajdują się w API zdarzeń /api/chat, które te same tokeny mogą wywoływać z zakresem chat. Role inne niż system/user/assistant, np. tool, są odrzucane, a nie cicho akceptowane.
Powiązana dokumentacja
- Uwierzytelnianie — konta, sesje i tokeny API
- Narzędzia czatu — natywna pętla narzędzi w API zdarzeń