Plugins
Libre WebUI używa pluginów do łączenia zewnętrznych dostawców i możliwości modeli z lokalną Ollama.
Typy pluginów
| Type | Cel |
|---|---|
| Chat/completion | Tekst/chat z API dostawców |
| Embeddings | Wektory do dokumentów/pamięci |
| Obrazy | Modele i backendy ComfyUI |
| Synteza mowy | Synteza |
| Transkrypcja | Transkrypcja |
| Audio | Dźwięk |
| Video | Asynchroniczne wideo |
Pluginy mogą udostępniać statyczne mapy modeli i wykrywanie na żywo.
Wbudowane rodziny dostawców
OpenAI, Anthropic, Google Gemini, Groq, Kimi Code od Moonshot AI, Mistral, OpenRouter, Hugging Face, GitHub Models, MLX LM, ComfyUI en ElevenLabs. Katalogi często się zmieniają; aktualny interfejs jest źródłem prawdy.
Własność i autoryzacja
Definicje są wspólną konfiguracją instancji. Każda /api/plugins-trasa wymaga uwierzytelnienia; tylko administratorzy przesyłają, instalują, zmieniają lub usuwają. Aktywacja jest per użytkownik, zapisana w SQLite i niezależna.
Podczas aktualizacji .status.json jest raz kopiowany do istniejących kont tylko dla dokładnych skompilowanych kotwic zaufania. Custom/shadow pozostaje w kwarantannie. Późniejsze konta zaczynają bez aktywnych pluginów.
Wbudowane definicje są zaufane tylko przy zgodnym znormalizowanym hashu. Zapisywalne definicje są zatwierdzane w SQLite według ścieżki i hasha. Admin-install/update/import registreert; directe wijziging maakt ongeldig. Zastąpienie czyści aktywacje i wymaga ponownej aktywacji. Stare własne definicje trzeba ponownie zaimportować przed katalogiem, wykrywaniem, poświadczeniami lub wykonaniem.
Tylko administratorzy zapisują trasowanie:
endpoint, base_url, api_path, models_endpoint, api_url, image_endpoint, embedding_endpoint, stt_endpoint, tts_endpoint, voice_clone_endpoint, api_mode, model, model_id, oraz config.endpoint_variable, config.models_endpoint_variable, config.voice_clone_endpoint_variable.
Inni zapisują ustawienia generowania. Stare trasowanie nieadministratorów jest ignorowane i usuwane przy resecie, aby nie odżyło po awansie.
Poświadczenia
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GROQ_API_KEY=gsk_...
GEMINI_API_KEY=...
MISTRAL_API_KEY=...
OPENROUTER_API_KEY=sk-or-...
KIMI_API_KEY=...
GITHUB_API_KEY=github_pat_...
ELEVENLABS_API_KEY=...
Poświadczenia użytkownika są lepsze współdzielnie; środowiskowe dla pojedynczego użytkownika, demo lub zarządzanego wdrożenia.
Klucz środowiskowy jest fallbackiem tylko dla niezmienionego wbudowanego routingu/auth. Import, zapis z wbudowanym ID lub własna trasa wymaga klucza tego konta. Libre porównuje endpoint główny, auth, możliwości, selektory i domyślne wartości. Skompilowany hash pozostaje nadrzędny, także przy wspólnych katalogach.
Dotyczy wykrywania, Chat, Work, dostępności i katalogów i chroni sekrety administratora przed własnymi celami.
Zapisane poświadczenia są związane ze źródłem, hashem, kontraktem, endpointami, selektorami i trasą. Zmiana unieważnia je do ponownego zapisu. Stare poświadczenie bez powiązania jest akceptowane wyłącznie na dokładnej wbudowanej trasie i wiązane przy pierwszym użyciu.
Dostawcy zgodni z OpenAI
Plugin może zdefiniować pełny URL, klucz środowiskowy, zachowanie chatu, embeddingi, wykrywanie i mapę fallback. Bez wykrywania używana jest mapa. Geïmporteerde JSON configureert bestaande OpenAI Chat Completions, OpenAI Responses, Anthropic Messages of Gemini-protocollen. Inny protokół wymaga adaptera backendu.
Obrazy OpenAI
Ingebouwd endpoint https://api.openai.com/v1/images/generations; obecny model gpt-image-2. gpt-image-1.5, gpt-image-1, gpt-image-1-mini pozostają dla zgodności.
Używa tego samego efektywnego klucza OpenAI co Chat. Oddzielny image_endpoint zapobiega wysyłaniu obrazów do własnego Chat. Pusty dziedziczy.
Wybór zawiera dostawcę. Przy równym ID trafia tylko do wybranego. Base64 jest zapisywane w galerii. Bezpośrednie żądania wymagają pluginId i model; n jest liczbą całkowitą JSON 1–10, a nie ciągiem ani ułamkiem.
Chat Completions i Responses
chat_completions lub responses w Ustawienia → Pluginy.
Kolejność:
- Pełny
endpoint. base_url+api_path.- Legacy
endpoint.
Wartość równa manifestowi jest domyślna, nie override. Domyślna ścieżka /chat/completions of /responses. base_url jest rootem jak https://api.example.com/v1; api_path is relatief. Znany suffix określa api_mode.
{
"endpoint": "https://api.example.com/v1/chat/completions",
"api_mode": "responses",
"base_url": "https://api.example.com/v1",
"api_path": "/responses"
}
Responses używa input, max_output_tokens, spłaszczone funkcje, store: false en versleutelde reasoning. Wyjście jest normalizowane. Replay tylko dla pełnej uporządkowanej tablicy maks. 64 Items/90 KB, exact en niet veld-afgekapt. Unieke IDs/typen en geldige structuren vóór tools. Zbyt duży Chat używa widocznej historii; surowy function-call jest usuwany. Work zpod exact replay jest odrzucany przed efektem.
SQLite Chat szyfruje stan dostawcy; Work przechowuje ukryty kontekst. Hashscope wiąże dostawcę, model, modus, endpoint en credentialfingerprint. Zmiana/rotacja powoduje fallback. Work sprawdza przed każdą rundą.
Toolstate musi też mieścić się w pełnym 100 KB-wrapper passen. Przerwany batch odtwarza brakujące wyniki z exacte call ID en outcome-unknown-waarschuwing. Niepełne Responses nie jest sukcesem; incomplete_details.reason blijft.
Wykrywanie wyprowadza /models: https://api.example.com/v1/responses → https://api.example.com/v1/models. Inaczej używa model_map. Wyniki są per użytkownik. Uruchamia się po aktywacji, odświeżeniu, zmianie klucza lub trasy i resecie; zapis ustawień generowania nie wywołuje sieci.
Automatycznie, gdy katalogu brak lub jest starszy niż PLUGIN_MODEL_DISCOVERY_TTL_MS, z backoffem i terminem. Końcowy URL jest sprawdzany przed poświadczeniem i Authorization. Bez przekierowań. Konfiguruj bezpośrednio endpointy Chat, Work, modeli, obrazów, embeddingów, transkrypcji, mowy, klonowania, audio i wideo.
HTTP nie szyfruje kluczy/promptów/wyników. Używaj tylko zaufanej sieci. Żądania wychodzą z backendu; in container http://ai-gateway:8080/v1, en localhost is container. Brak nieuwierzytelnionego trybu single-user.
Endpointy możliwości
Override Chat jest izolowany. Plugins mogą image_endpoint, embedding_endpoint, stt_endpoint, tts_endpoint, config.endpoint_variable en config.voice_clone_endpoint_variable bieden. Pusty używa manifestu; algemeen endpoint nigdy nie zastępuje możliwości.
GitHub Models dziedziczy models.github.ai/inference/chat/completions; Hugging Face używa hf-inference/models/{model}.
Override endpointu
endpoint jest pełny, zoals https://provider.example/v1/chat/completions, nie tylko https://provider.example. api_url jest aliasem legacy; endpoint wygrywa. Tylko absolutne HTTP(S), bez przekierowań. W kontenerze użyj nazwy usługi of host.docker.internal.
Wykrywanie modeli
Połączenia dostawców w Ustawienia → Pluginy pokazują stan i katalog, a konfiguracja pozostaje zamknięta do wybrania Konfiguruj.
Odśwież modele wykonuje wykrywanie i przeładowuje plugin oraz Chat. Katalog jest tylko do odczytu i łączy ID użytkownika z mapami modeli; etykiety nie są kontrolą stanu.
Przy aktywacji używany jest efektywny endpoint i poświadczenie. Własna trasa wymaga klucza użytkownika; środowisko działa tylko dla zaufanej definicji. Wyprowadzenie:
- eindigt
/models: bez zmian; - bekende
/chat/completions,/completions,/responses,/embeddings,/messages:/models; - inaczej dodaj.
models_endpoint ma pierwszeństwo, stosuje tę samą politykę i nie śledzi przekierowań. Zapis lub reset endpoint, api_url, models_endpoint, base_url, api_path, api_mode czyści i odświeża katalog.
Oczekuje tablicy data. Wyniki są per użytkownik, a JSON nie jest przepisywany. Normalna porażka zachowuje poprzedni katalog; zmiana trasy najpierw go czyści i używa model_map.
Dokładny wybór dostawcy w Chat
ID nie są globalne; Ollama en plugins mogą example-model mieć. Chat zapisuje:
providerType: "ollama";providerType: "plugin"zproviderId.
Zakodowane wartości są tylko kluczem selekcji; żądanie wysyła surowe ID. Duplikaty pozostają osobno. Jawny dostawca bezpiecznie zawodzi po zniknięciu, bez wyboru imiennika.
Rekordy legacy mogą providerType/providerId puste of null mieć i pokazują "provider niet vastgelegd". Nowy wybór utrwala. Persony zachowują persona:<id> en nowe są Ollama-backed.
Ustawienia i dziedziczenie
Panele są domyślnie zamknięte. Admin zarządza definicją/trasą; inni aktywują i zapisują klucz/generowanie, bez instalacji/eksportu/usuwania/trasy.
Połączenie najpierw, sampling pod Geavanceerde parazers. Geërfd is puste veld z hint, niet opgeslagen.
Zapis wysyła tylko zmiany. Niet-gevoelig puste verwijdert override; gemaskeerd puste verandert niet. Przywróć domyślne usuwa dozwolone override. Fout houdt waarden.
Pluginy w Work
Aktywne completion/chat są używane, gdy plugin jest aktywny, model znajduje się w katalogu lub mapie, a poświadczenie jest dostępne. Typ i ID są zapisane w zadaniu i wykonaniu, więc sama nazwa nie przejmuje trasy. Work dostosowuje narzędzia OpenAI, Anthropic i Gemini; model musi obsługiwać narzędzia, bez fallbacku.
Zdalne wykonanie może wykonać wiele wywołań i wysłać prompt systemowy, rozmowę, narzędzia oraz wyniki zawierające pliki lub komendy. Oceń ceny, zasady przechowywania i treningu.
Embeddings
Libre rozpoznaje nomic-embed-text, bge, e5, gte; zpod ontdekking is nomic-embed-text lokalnym kandydatem.
Rozwój
Opisuj prawdziwe możliwości, utrzymuj małe mapy en używaj niezawodnego wykrywania.
- Definicja.
- Pola poświadczeń.
- Discovery.
- Mapowanie chat/embedding/image/TTS/STT.
- Testuj brak/błędny klucz i błąd dostawcy.