Publikt API
Libre WebUI exponerar ett OpenAI-kompatibelt API så att befintliga SDK:er, redigerare och skript kan riktas mot din instans genom att endast ändra bas-URL.
Autentisering
Skapa en avgränsad API-token under Settings → Account → API tokens (tokenen
har prefixet lwk_ och lagras hashad). Ytan /v1 kräver
omfånget chat. Skicka token som en vanlig bearer-nyckel:
export OPENAI_BASE_URL="https://your-instance/v1"
export OPENAI_API_KEY="lwk_..."
Förfrågningar styrs av gränsen per token (600 förfrågningar per minut) och den gemensamma hastighetsgränsen för chatt.
Slutpunkter
| Slutpunkt | Syfte |
|---|---|
GET /v1/models | Tillgängliga modeller (lokala och via leverantörsplugin) |
POST /v1/chat/completions | Tillståndslös chattkomplettering, strömmad eller inte |
POST /v1/chat/completions tar emot den välkända kroppen: model,
messages (system/user/assistant; multimodala textdelar plattas ut),
stream, temperature, top_p, max_tokens/max_completion_tokens,
seed och stop. Strömmade svar är SSE-ramar av typen
chat.completion.chunk som avslutas med data: [DONE]. Icke-strömmade svar
innehåller antalet token i usage när leverantören rapporterar dem.
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."}]
}'
Avsiktliga gränser
Ytan /v1 är tillståndslös inferens: den skapar aldrig chattar,
rör aldrig din kunskapsbas och kör inga verktyg. Tillståndsbevarande konversationer
med beständiga, återuppspelningsbara händelser, identitetsbunden avbrytning,
idempotenta köläggningar och den inbyggda verktygsloopen finns i det inbyggda
händelse-API:et /api/chat. Samma token kan anropa det med omfånget chat.
Andra roller än system/user/assistant (till exempel tool) avvisas i
stället för att accepteras i tysthet.
Relaterad dokumentation
- Autentisering — konton, sessioner och API-token
- Chattverktyg — den inbyggda verktygsloopen i händelse-API:et