Przejdź do głównej zawartości

Plugins

Libre WebUI używa pluginów do łączenia zewnętrznych dostawców i możliwości modeli z lokalną Ollama.

Typy pluginów​

TypeCel
Chat/completionTekst/chat z API dostawców
EmbeddingsWektory do dokumentów/pamięci
ObrazyModele i backendy ComfyUI
Synteza mowySynteza
TranskrypcjaTranskrypcja
AudioDźwięk
VideoAsynchroniczne 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, DeepSeek, Amazon Bedrock, 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​

Sprawdzenia dostępności poświadczeń czekają na wyszukanie poświadczeń bieżącego użytkownika. Zgłaszają, czy istnieje efektywny klucz, nie zwracając go; nieudane wyszukanie zwraca błąd zamiast informacji, że poświadczenia są dostępne.

OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GROQ_API_KEY=gsk_...
GEMINI_API_KEY=...
MISTRAL_API_KEY=...
DEEPSEEK_API_KEY=...
AWS_BEARER_TOKEN_BEDROCK=...
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.

Poświadczenia zapisane przez użytkownika są w chwili zapisu wiązane ze źródłem obowiązującej definicji, hashem definicji, kontraktem uwierzytelniania, endpointami i selektorami możliwości oraz obowiązującymi wartościami routingu. Hash definicji pomija katalog modeli (model_map, model_context i model_reasoning, na najwyższym poziomie i dla każdej możliwości), więc dodanie modelu zachowuje zapisane klucze. Katalog pozostaje powiązany, gdy symbol zastępczy {model} mógłby wybrać host docelowy. Zmiana trasy lub innej części definicji sprawia, że stare poświadczenie jest niedostępne, dopóki użytkownik nie sprawdzi nowego miejsca docelowego i nie zapisze go ponownie. Klucze zapisane przy wcześniejszym powiązaniu z całą definicją pozostają ważne dla tej samej definicji i są ponownie wiązane przy pierwszym użyciu. Starsze poświadczenia bez powiązania są akceptowane tylko na dokładnie zakotwiczonej wbudowanej trasie; ich pierwsze udane użycie zapisuje powiązanie przed zwróceniem odszyfrowanego klucza.

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ść:

  1. Pełny endpoint.
  2. base_url + api_path.
  3. 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" z providerId.

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.

  1. Definicja.
  2. Pola poświadczeń.
  3. Discovery.
  4. Mapowanie chat/embedding/image/TTS/STT.
  5. Testuj brak/błędny klucz i błąd dostawcy.

Powiązane dokumenty​