Hoppa till huvudinnehåll

Anslut tredjepartsleverantörer och självhostade leverantörer

Libre WebUI 0.16.0 lägger till den fokuserade arbetsytan Provider connections i Settings > Plugins. Använd den för att aktivera en medföljande leverantör, rikta ett kompatibelt plugin mot ett annat API, granska den faktiska modellkatalogen eller ansluta en självhostad gateway på ett betrott nätverk.

Libre WebUI leverantörsanslutningar med leverantörssökning och val, anslutningskontroller, modelluppdatering och en leverantörsspecificerad funktionskatalog.

Libre WebUI har för närvarande stöd för följande kommunikationsformat:

  • OpenAI Chat Completions;
  • OpenAI Responses;
  • Anthropic Messages; och
  • Google Gemini-innehåll och funktionsanrop.

De medföljande definitionerna för Anthropic och Gemini använder särskilda adaptrar som väljs genom leverantörsidentiteten. En nyimporterad leverantör använder semantiken för OpenAI Chat Completions eller OpenAI Responses. Att rikta den mot ett API som är kompatibelt med Anthropic eller Gemini väljer inte dessa medföljande adaptrar. En leverantör med en annan struktur för förfrågningar, strömning, verktygsanrop eller svar behöver en backendadapter. Plugin-JSON beskriver dirigering och konfiguration; den översätter inte ett orelaterat protokoll.

Öppna Provider connections

  1. Logga in och öppna Settings > Plugins.
  2. Sök i leverantörslistan i den vänstra panelen.
  3. Välj en leverantör för att granska dess aktiva status och faktiska modellkatalog.
  4. Aktivera leverantören för ditt konto.
  5. Välj Configure endast när du behöver spara uppgifter eller åsidosätta en anslutningsinställning.

Leverantörskonfigurationen är stängd som standard. Anslutningsinställningarna visas först för administratörer, medan samplingskontroller som temperature och tokengränser ligger i den separata, infällda sektionen Advanced parameters. Ärvda standardvärden visas som ledtrådar i stället för förifyllda kontoåsidosättningar.

Plugindefinitioner är gemensam instanskonfiguration, så endast administratörer kan importera, installera, uppdatera eller radera dem. Varje autentiserad användare styr sin egen aktiveringsstatus, sina uppgifter och tillåtna genereringsinställningar.

Lägg snabbt till en anslutning

Settings > Connections är en kortare väg för det vanliga fallet: en OpenAI-kompatibel slutpunkt och en API-nyckel. Administratörer ser ett kort för den lokala Ollama-körtiden med hälsa och version, en lista över befintliga OpenAI-kompatibla anslutningar och ett litet formulär för att lägga till en ny.

För att lägga till en anslutning behövs ett visningsnamn, den fullständiga URL:en för Chat Completions och en valfri API-nyckel. Libre WebUI härleder anslutnings-ID:t från namnet, installerar leverantörsdefinitionen, lagrar nyckeln på serversidan, aktiverar anslutningen och frågar slutpunkten vilka modeller den tillhandahåller. De upptäckta modellerna ersätter platshållarkatalogen och visas i chattens modellväljare.

Varje rad visar slutpunkt, modellantal, om en nyckel är lagrad, ett aktiveringsreglage, modelluppdatering och radering. Allt utöver detta — Responses API-lägen, åsidosättningar av Base URL, kataloger per funktion och policy för genereringsparametrar — finns fortfarande i den fullständiga arbetsytan Settings > Plugins som beskrivs ovan.

Codex (inloggning med ChatGPT)

Den medföljande leverantören Codex (ChatGPT) behöver ingen API-nyckel. När servern har en Codex CLI-inloggning (codex login som serverns operativsystemsanvändare) visas leverantören för administratörer och erbjuder den dokumenterade Codex-modellfamiljen genom ChatGPT-sessionen. Åtkomsttoken läses från CLI:ns egen auth.json, uppdateras genom samma OAuth-klient som CLI:n använder och skrivs tillbaka så att CLI:n fortsätter fungera. Tokenvärden visas aldrig i loggar.

Eftersom förfrågningarna görs av backend — aldrig inifrån en uppgiftscontainer — kan dessa modeller även driva Work med den vanliga sandlådebaserade verktygsloopen. Leverantören är endast för administratörer eftersom varje anrop använder serverägarens ChatGPT-prenumeration. Dölj den helt med CODEX_OAUTH_MODELS_ENABLED=false eller peka på en annan inloggning med CODEX_HOME.

Välj en medföljande eller importerad leverantör

Libre WebUI innehåller definitioner för OpenAI, Anthropic, Gemini, Groq, Mistral, OpenRouter, Kimi Code från Moonshot AI, Hugging Face, GitHub Models, lokal MLX LM och andra modell- eller medietjänster. Börja med en medföljande post när dess protokoll och autentiseringskontrakt passar tjänsten du vill använda.

För en annan kompatibel tjänst kan en administratör importera en plugin-JSON-definition. Detta minimala exempel beskriver en OpenAI-kompatibel gateway:

{
"id": "private-ai-gateway",
"name": "Private AI Gateway",
"type": "completion",
"endpoint": "http://ai-gateway:8080/v1/chat/completions",
"api_mode": "chat_completions",
"auth": {
"header": "Authorization",
"prefix": "Bearer ",
"key_env": "PRIVATE_AI_GATEWAY_API_KEY"
},
"model_map": ["gateway-chat"]
}

Importera filen från Settings > Plugins, aktivera den och spara API-nyckeln för kontot som ska använda anslutningen. Lägg till anslutningsvariabler i definitionen när administratörer behöver redigerbara fält för Base URL, sökväg, modellsökning eller funktionsspecifika slutpunkter. Den medföljande plugins/openai.json är ett fullständigt exempel.

För en avsiktligt oautentiserad gateway på ett betrott nätverk ställer du både auth.header och auth.key_env till tomma strängar och utelämnar auth.prefix. Libre WebUI kräver eller skickar då ingen API-nyckel för pluginet.

Välj Chat Completions eller Responses

OpenAI-kompatibla kompletteringsplugin kan använda något av API-lägena:

API-lägeStandardsökväg för förfråganTypiskt förfrågningsfält
chat_completions/chat/completionsmessages
responses/responsesinput

Den medföljande OpenAI-leverantören visar API Mode i sin konfiguration. Libre WebUI mappar slutförda och strömmade Responses-resultat tillbaka till Chat och Work, inklusive begränsat återuppspelningstillstånd för resonemang och verktygsanrop.

Att ändra läge påverkar den normala åtgärdssökvägen. Det ändrar inte protokollet som uppströmsservern talar, så välj Responses endast när servern implementerar kompatibla strukturer för Responses-förfrågningar och händelser.

Konfigurera Base URL eller en fullständig slutpunkt

Libre WebUI väljer en kompletteringsrutt i denna ordning:

  1. En fullständig, icke-standardmässig åsidosättning av endpoint.
  2. base_url plus en valfri api_path.
  3. Slutpunkten som deklareras av plugindefinitionen.

Använd Base URL för API-roten:

https://gateway.example/v1

Utan en anpassad sökväg skickar Chat Completions-läget förfrågningar till:

https://gateway.example/v1/chat/completions

Läget Responses skickar dem i stället till:

https://gateway.example/v1/responses

Använd API Path när leverantören exponerar en kompatibel åtgärd på en annan sökväg relativt roten. Använd Legacy Full Endpoint endast när du behöver ange hela åtgärds-URL:en. En verklig fullständig slutpunkt har företräde framför Base URL och API Path.

Kända slutsuffix /chat/completions, /completions och /responses identifierar också förfrågans semantik. En anpassad, okänd åtgärdssökväg behåller uttryckligen valt API-läge.

Efter en ändring av rutt eller API-nyckel sparar du leverantören igen innan Chat testas. När pluginet deklarerar autentisering kräver en anpassad anslutningsrutt uppgifter som sparats av samma konto. Ett avsiktligt oautentiserat plugin kan lämna båda autentiseringsfälten tomma. Libre WebUI skickar inte en operatörshanterad miljönyckel till en användardefinierad destination. Miljöreserv är förbehållen den betrodda medföljande rutten.

Upptäck eller underhåll modell-ID:n

Välj en aktiv chattleverantör och använd Refresh models för att köra modellsökning. Libre WebUI läser in både den valda leverantörens katalog och Chat-modellistan igen.

Modellsökning körs också automatiskt. En aktiv leverantörs katalog söks på nytt när den saknas eller är äldre än PLUGIN_MODEL_DISCOVERY_TTL_MS, så modellerna som visas följer leverantören snarare än ögonblicket då den aktiverades. Refresh models tvingar fram en omedelbar kontroll och rapporterar vad som hände:

ResultatBetydelse
Katalogen uppdateradesLeverantören svarade och modellistan skiljer sig från den lagrade
Katalogen är redan aktuellLeverantören svarade med samma lista
API-nyckel krävsIngen användbar nyckel, så ingen förfrågan gjordes; föregående katalog visas
Katalogen kunde inte läsasLeverantören kunde inte nås eller returnerade inget användbart

En nyckel som endast finns i miljön används inte för en leverantör som kör en installerad definition i stället för den medföljande. Meddelandet förklarar det när det gäller. Tal-, bild- och inbäddningsmodeller som hittas i leverantörskatalogen listas här med sina funktionsetiketter men hålls utanför chattens modellväljare.

För en OpenAI-kompatibel rutt väljs URL:en för modellistan så här:

  • en rutt som slutar med /models används som den är;
  • ett känt åtgärdssuffix som /chat/completions, /completions, /responses, /embeddings eller /messages ersätts med /models; och
  • annars läggs /models till efter rutten.

Exempelvis härleder båda kompletteringsrutterna samma sök-URL:

https://gateway.example/v1/chat/completions
https://gateway.example/v1/responses

-> https://gateway.example/v1/models

När härledningen inte kan skapa rätt fullständig URL exponerar du models_endpoint i pluginets variables-array:

{
"name": "models_endpoint",
"type": "string",
"label": "Models Endpoint",
"default": "https://gateway.example/v1/models"
}

Det ärvda standardvärdet eller det administratörssparade värdet har företräde framför den härledda adressen. Egenskapen models_endpoint på manifestets toppnivå läses inte. Sökningen förväntar sig ett OpenAI-kompatibelt svar med modellobjekt i en data-array:

{
"data": [{ "id": "gateway-chat" }, { "id": "gateway-code" }]
}

Upptäckta ID:n lagras per användare och skriver inte om den gemensamma pluginfilen. Om leverantören saknar kompatibel sökning underhåller du reserv-ID:n i model_map i pluginets JSON. Katalogen i Provider connections är skrivskyddad. Funktionsetiketter beskriver vilken pluginrutt som listar en modell och är inte hälsokontroller.

Modell-ID:n är inte globalt unika. Chat lagrar rått modell-ID tillsammans med dess exakta Ollama- eller pluginleverantörsidentitet, så en Ollama-modell och flera plugin kan säkert exponera samma namn. Om den sparade leverantören inte längre är tillgänglig visar Libre WebUI valet som otillgängligt i stället för att dirigera förfrågan till en annan leverantör i tysthet.

Konfigurera bildgenerering separat

Den medföljande OpenAI-leverantören exponerar bildgenerering via https://api.openai.com/v1/images/generations och använder för närvarande gpt-image-2 som standard för nya konfigurationer. Äldre GPT Image-ID:n finns kvar i reservkatalogen för kompatibla befintliga installationer.

Chatt- och bildrutter är avsiktligt isolerade. En anpassad Chat Base URL tar inte automatiskt emot bildförfrågningar. Lämna image_endpoint tom för att använda bildslutpunkten som pluginet deklarerar eller ange hela den kompatibla Image API-URL:en när leverantören tillhandahåller en.

Bildval är leverantörsspecificerade precis som Chat-val. Om två aktiva plugin exponerar samma bildmodell-ID skickar Libre WebUI endast förfrågan till leverantören som valts i bildpanelen.

Anslut en HTTP-gateway säkert

Leverantörsslutpunkter kan använda absoluta HTTP- eller HTTPS-URL:er. HTTP är användbart för en självhostad gateway på ett betrott LAN, Tailscale-nätverk eller privat containernätverk, men skickar API-nycklar, promptar, verktygsresultat och genererat innehåll utan transportkryptering. Föredra HTTPS när rutten korsar en nätverksgräns eller gatewayen stöder TLS.

Förfrågningar kommer från Libre WebUI:s backend, inte från webbläsaren. Välj en adress som kan nås från backend:

BackendplatsExempel på leverantörsrot
Inbyggd process, samma maskinhttp://127.0.0.1:8081/v1
Docker Compose-tjänsthttp://ai-gateway:8080/v1
Container till värd som stödshttp://host.docker.internal:8081/v1
Betrodd LAN- eller Tailscale-värdhttp://192.168.1.20:8081/v1

Inuti en container identifierar localhost Libre WebUI-containern själv. Det identifierar inte en annan Compose-tjänst och når inte automatiskt värden.

Libre WebUI accepterar endast HTTP- och HTTPS-URL:er för leverantörer, validerar den slutliga destinationen innan uppgifter väljs och följer inte omdirigeringar för leverantörs- eller sökförfrågningar. Konfigurera den slutliga åtgärds-URL:en direkt.

Verifiera gatewayen före aktivering

Testa modellsökning från maskinen eller containern som kör Libre WebUI:s backend:

curl http://ai-gateway:8080/v1/models \
-H 'Authorization: Bearer YOUR_GATEWAY_KEY'

Testa sedan åtgärden som motsvarar valt API-läge.

Chat Completions:

curl http://ai-gateway:8080/v1/chat/completions \
-H 'Authorization: Bearer YOUR_GATEWAY_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "gateway-chat",
"messages": [{"role": "user", "content": "Reply with: ready"}],
"stream": false
}'

Responses:

curl http://ai-gateway:8080/v1/responses \
-H 'Authorization: Bearer YOUR_GATEWAY_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "gateway-chat",
"input": "Reply with: ready",
"store": false
}'

När båda anropen fungerar konfigurerar du samma rutt, läge, uppgifter och modell-ID i Provider connections. Aktivera leverantören, välj Refresh models och välj sedan dess leverantörsspecificerade modell i Chat. Work kan också använda den när modellen tillförlitligt stöder verktygsanrop.

Felsökning

SymptomKontrollera
Förfrågningar når fortfarande medföljande slutpunktTa bort en gammal fullständig slutpunktsåsidosättning och spara avsedd Base URL och API Path
Leverantören får fel nyttolastMatcha API Mode mot uppströms protokoll för Chat Completions eller Responses och verifiera slutsuffixet
Refresh models returnerar inga ID:nTesta /models, verifiera formen data[].id, exponera/konfigurera models_endpoint eller underhåll model_map
En tidigare modell finns kvar efter ruttändringSpara anslutningsändringen; Libre WebUI rensar användarens gamla upptäckta katalog före uppdatering
API-nyckeln rapporteras saknadSpara uppgifter per användare för den anpassade rutten; medföljande miljöreserv följer inte åsidosättningar
En Docker-installation når inte localhostAnvänd gatewayens Compose-tjänstenamn, ett värdalias som stöds eller en nåbar privat nätverksadress
Chat fungerar men bildgenerering gör det inteKonfigurera en separat fullständig image_endpoint och välj en modell som exponerats av bildfunktionen
Chat fungerar men Work avvisar modellenBekräfta att modellen stöder kompatibla verktygsanrop; vanlig textkomplettering räcker inte
Leverantören returnerar en omdirigeringKonfigurera den slutliga validerade URL:en direkt; Libre WebUI följer avsiktligt inte leverantörsomdirigeringar

Läs Plugin för detaljer om dirigering, uppgifter, återuppspelningstillstånd och auktorisering. Se Felsökning för distributionsspecifika fel.

Tack till gemenskapen

Denna guide och upplevelsen Provider connections i Libre WebUI 0.16.0 formades av ZhengJin (@fangzhengjin), vars detaljerade återkoppling om tredjepartsleverantörer och AI-stödda UX-koncept i #163 bidrog till arbetsflödet.

Relaterad dokumentation