Eklentiler
Libre WebUI, yerel Ollama yanında dış sağlayıcı ve model yeteneklerini eklentilerle bağlar.
Eklenti Türleri
| Tür | Amaç |
|---|---|
| Chat/tamamlama | Sağlayıcı metin ve sohbet modelleri |
| Gömmeler | Belge araması ve bellek |
| Görüntü üretimi | Görüntü modelleri ve ComfyUI |
| Metinden konuşmaya | Ses sentezi |
| Konuşmadan metne | Yazıya dökme |
| Ses üretimi | Ses sağlayıcıları |
| Video üretimi | Eşzamansız video sağlayıcıları |
Eklentiler statik model haritası ve destekleniyorsa API’den canlı keşif sunabilir.
Yerleşik Sağlayıcı Aileleri
OpenAI ve uyumlular, Anthropic, Google Gemini, Groq, Moonshot AI Kimi Code, Mistral, OpenRouter, Hugging Face, GitHub Models, Apple Silicon için MLX LM, ComfyUI ve ElevenLabs bulunur. Kataloglar sık değişir; keşif destekleniyorsa arayüz canlı gerçeğin kaynağıdır.
Sahiplik ve Yetkilendirme
Tanımlar örnek genelinde ortaktır. Her /api/plugins rotası kimlik doğrulama ister; tanım yükleme, kurma, güncelleme ve silme yalnız yöneticidir. Etkinleştirme kullanıcı başınadır, SQLite’da saklanır ve başkasını etkilemez.
Yükseltmede eski .status.json listesi yalnız Libre’nin derlenmiş güven çapalarıyla tam eşleşen tanımlar için mevcut hesaplara bir kez kopyalanır. Eski özel veya shadow tanımlar karantinada ve kapalı kalır; yeni hesaplarda etkin eklenti yoktur.
Yerleşik tanım yalnız normalleştirilmiş içeriği derlenmiş hash ile eşleşirse güvenilir. Yazılabilir tanımlar SQLite’da kaynak yolu ve tam hash ile onaylanır. Yönetici kurma/güncelleme/yeniden içe aktarma onay yazar; doğrudan dosya değişikliği geçersiz kılar. Değişiklik tüm hesap etkinliklerini temizler ve kullanıcıların tekrar etkinleştirmesini ister. Eski özel tanım yeniden içe aktarılmadan katalog, keşif, kimlik bilgisi veya yetenek çalıştıramaz.
Yalnız yöneticiler şu bağlantı değişkenlerini saklar:
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. config.endpoint_variable, config.models_endpoint_variable, config.voice_clone_endpoint_variable de adından bağımsız bağlantı yönlendirmesidir.
Normal kullanıcı sıcaklık ve akış gibi üretim ayarlarını saklayabilir. Yönetici olmayanın eski yönlendirme satırı yok sayılır, yapılandırılmış değer olarak dönmez ve tam sıfırlamada silinir; sonraki rol yükseltmesi gizli rotayı canlandırmaz.
Kimlik Bilgileri
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=...
Paylaşılan dağıtımda kullanıcı anahtarları faturalandırmayı ve sınırları ayırır; ortam anahtarları tek kullanıcı, demo veya yönetilen dağıtım içindir.
Ortam anahtarı yalnız gölgelenmemiş yerleşik tanımın yönlendirme ve kimlik doğrulamasında yedektir. İçe aktarılan, yerleşik ID’yi gölgeleyen yazılabilir tanım veya yönetici geçersiz kılması aynı hesabın kaydettiği anahtarı ister. Libre kök ucu, auth alanlarını, yetenek uçlarını/seçicilerini ve bilinen yönlendirme varsayılanlarını karşılaştırır. Derlenmiş manifest hash’i yetkilidir; değiştirilmiş paket manifesti kendine güven oluşturamaz.
Kural keşif, Chat, Work, kullanılabilirlik ve yetenek kataloglarında geçerlidir; özel ucun işletmeci sırrını almasını engeller.
Kullanıcı anahtarı etkin tanım kaynağına, tam hash’e, auth sözleşmesine, yetenek uçlarına ve yönlendirme değerlerine bağlanır. Değişiklikten sonra yeni hedef incelenip yeniden kaydedilmelidir. Bağsız eski anahtar yalnız tam yerleşik rotada ilk başarıda bağlanır.
OpenAI Uyumlu Sağlayıcılar
Eklenti tam API URL’si, ortam anahtarı, chat davranışı, gömme, model keşfi ve model_map yedeği tanımlayabilir. JSON yalnız destekli OpenAI Chat Completions, OpenAI Responses, Anthropic Messages veya Gemini biçimini konuşan sağlayıcıyı yapılandırır; başka istek/akış/araç/yanıt biçimi backend bağdaştırıcısı ister.
OpenAI Görüntü Üretimi
Yerleşik uç https://api.openai.com/v1/images/generations, güncel model gpt-image-2; eski gpt-image-1.5, gpt-image-1, gpt-image-1-mini uyumluluk için kalır.
Görüntü Chat ile aynı kullanıcı anahtarını veya güvenilir ortam yedeğini kullanır. Ayrı image_endpoint, özel Chat ucuna görüntü gitmesini engeller; boş alan yerleşik ucu kullanır.
Seçim sağlayıcıya bağlıdır. Aynı ID yalnız panelde seçilene gider. GPT Image base64 sonucu uygulama görüntüsüne çevrilip kullanıcının galerisine kaydolur. Rota auth ve hem pluginId hem model ister. n, 1–10 JSON tam sayısı olabilir; dize veya kesir reddedilir.
Chat Completions ve Responses API modları
Eklentiler chat_completions veya responses kullanabilir; seçim Ayarlar → Eklentiler içindedir.
- Tam
endpointgeçersiz kılması. base_urlve isteğe bağlıapi_path.- Eski
endpoint.
Manifestle tam eşleşen endpoint varsayılan sayılır, böylece eski kayıt yükseltmeden sonra yeni Base URL’yi gölgelemez. Gerçek özel tam uç önceliklidir.
Varsayılan yollar /chat/completions ve /responses. base_url https://api.example.com/v1 gibi kök, api_path göreli işlemdir. Tam uç tüm yolu içerir. Bilinen /chat/completions, /completions, /responses sonekleri semantiği belirler; özel yollar api_mode değerini korur.
{
"endpoint": "https://api.example.com/v1/chat/completions",
"api_mode": "responses",
"base_url": "https://api.example.com/v1",
"api_path": "/responses"
}
Responses; input, max_output_tokens, düzleştirilmiş function tools, store: false ve durumsuz sürdürme için şifreli akıl yürütme kullanır. Çıktı Libre olaylarına normalleştirilir. Tekrar durumu yalnız sıralı output Item dizisi en çok 64 Items ve 90 KB ise saklanır; Items kesilmez. Benzersiz dolu ID/tür ve mesaj, reasoning, function-call yapıları yan etkiden önce doğrulanır. Büyük Chat durumu görünür geçmişe döner; Chat sonuçları olmadan ham function-call Items’ı atar. Kesin sınırlı durumu olmayan araçlı Work yan etkiden önce reddedilir.
SQLite sağlayıcı durumunu mesajla şifreler; Work araç durumunu mesaj API’sinin döndürmediği gizli bağlam satırlarında tutar. Hash kapsamı sağlayıcı, model, Responses modu, son uç ve kimlik bilgisi parmak izine bağlar. Değişiklikte normalleştirilmiş geçmişe dönülür; etkin Work her turdan önce rota ve anahtarı doğrular.
Araç durumu tekrar sınırına ve 100 KB meta sarmalına sığmalıdır. Kesilen Work paketinde eksik sonuç tam call ID ve sonuç-bilinmiyor uyarısıyla geri konur; sağlayıcı olası yan etkiyi körlemesine tekrarlamak yerine alanı inceler. Eksik Responses başarılı sayılmaz; incomplete_details.reason saklanıp gösterilir.
Keşif işlem yolundan /models türetir; ör. https://api.example.com/v1/responses → https://api.example.com/v1/models. Uyumlu liste yoksa model_map. Sonuç kullanıcı başına, manifestte değil. Etkinleştirme, yenileme, API anahtarı, bağlantı değişikliği ve sıfırlama keşfi çalıştırır; ilgisiz üretim ayarı çalıştırmaz.
Katalog yoksa veya PLUGIN_MODEL_DISCOVERY_TTL_MS yaşını aşmışsa otomatik keşif yapılır. Geri çekilme başarısız sağlayıcıyı sürekli sorgulamaz, süre sınırı yavaşı bekletmez. Son URL anahtar okunmadan doğrulanır; keşif ve yetenek istekleri HTTP yönlendirmelerini izlemez. Chat, Work, model listesi, görüntü, embedding, STT, TTS, klonlama, ses ve video uçlarını doğrudan ayarlayın.
HTTP/HTTPS kabul edilir. HTTP anahtarları, istemleri ve içeriği şifresiz yollar; yalnız güvenilir kendi ağ geçidinde kullanın. İstek backend’den çıkar; kapsayıcı dağıtımlarında http://ai-gateway:8080/v1 gibi hizmet URL’si kullanılır, localhost ise Libre kapsayıcısıdır. Kimliği doğrulanmamış tek kullanıcı modu yoktur.
Yeteneğe özgü uçlar
Chat geçersiz kılması görüntü, embedding, STT, TTS, ses ve videodan ayrıdır. Eklenti image_endpoint, embedding_endpoint, stt_endpoint, tts_endpoint veya config.endpoint_variable ile adlandırılan başka değişken sunabilir. Klonlama config.voice_clone_endpoint_variable kullanabilir. Boş alan manifest yetenek ucunu kullanır; genel Chat endpoint geçersiz kılma değildir.
GitHub Models boşsa models.github.ai/inference/chat/completions kullanır. Hugging Face embedding, görüntü ve TTS için Chat ucu yerine hf-inference/models/{model} rotalarını kullanır.
Uç Geçersiz Kılmaları
endpoint işlem yolunu içeren tam URL’dir: https://provider.example/v1/chat/completions, yalnız https://provider.example değil. Eski JSON api_url diyebilir; dolu endpoint önceliklidir.
Mutlak HTTP/HTTPS kabul edilir, diğerleri reddedilir. HTTP yalnız güvenilir kendi ağ geçitleri içindir. Boş değer manifesti kullanır; açık güvensiz değer varsayılana dönmeden reddedilir. Yönlendirmeler izlenmez. İstek backend’den çıkar; kapsayıcıda localhost kapsayıcıdır, hizmet adı veya destekleniyorsa host.docker.internal kullanın.
Model Keşfi
Ayarlar → Eklentiler içinde Sağlayıcı bağlantıları vardır. Sağlayıcıyı seçip etkinlik ve katalogu görün; Yapılandır seçilene kadar bağlantı ve gelişmiş denetimler kapalıdır.
Modelleri yenile seçili sağlayıcıyı keşfeder ve eklenti/Chat listesini yeniler. Katalog salt okunurdur; kullanıcı ID’leri ve yetenek model haritalarından gelir, etiketler sağlık kontrolü değildir. Yedek ID’leri JSON model_map içine ekleyin.
Etkinleştirme kullanıcının etkin ucu ve anahtarıyla keşif dener. Yönetici özel rotası aynı hesabın anahtarını ister; ortam yalnız güvenilir manifest rotasında yedektir. URL:
/modelsile bitiyorsa aynen;/chat/completions,/completions,/responses,/embeddings,/messages→/models;- aksi halde
/modelseklenir.
Özel tam models_endpoint türetmeden önce gelir ve yönlendirme izlemez. endpoint, api_url, models_endpoint, base_url, api_path, api_mode kaydetme/sıfırlama katalogu temizleyip yeniler.
Özel rota anahtar seçilmeden doğrulanır; sunucu ortam anahtarına dönmez. OpenAI uyumlu data dizisi beklenir. Başarılı sonuç kullanıcı başına saklanır ve ortak JSON’u değiştirmez. Normal etkinleştirme keşif yoksa eski sonucu tutar; bağlantı değişikliği önce temizler ve başarısızsa model_map kullanır.
Chat’te Kesin Sağlayıcı Seçimi
Model ID’leri benzersiz değildir. example-model Ollama ve eklentilerde olabilir. Chat ham ID ile şunları saklar:
providerType: "ollama"yerel/yapılandırılmış Ollama;providerType: "plugin"veproviderIdkesin eklenti.
URL kodlu nitelikli değerler yalnız seçici anahtarıdır; sağlayıcı ham ID alır. Kopyalar ayrı kalır, sohbet açılınca kesin seçim döner.
Kesin kimlik güvenli kapanır. Eklenti devre dışı, silinmiş veya modeli sunmuyorsa seçim kullanılamaz görünür ve aynı adlı diğerine geçmez. Yeniden etkinleştirin ya da açıkça seçin.
Eski kayıtlarda providerType ve providerId boş veya null olabilir; özgün sağlayıcı güvenilir bulunamayacağından ad tabanlı eski yönlendirmeyi korur ve “sağlayıcı kaydedilmedi” gösterir. Yeni seçim kesin sağlayıcıyı kaydeder. Persona seçimleri persona:<id> kimliğini korur ve Ollama destekli kaydolur.
Sağlayıcı Ayarları ve Kalıtım
Ayarlar → Eklentiler → Yapılandır. Paneller varsayılan kapalıdır. Yönetici ortak tanım ve bağlantı rotasını yönetir. Diğer kullanıcı etkinleştirir, kendi anahtarını ve üretim denetimini kaydeder fakat yükleme, kurma, dışa aktarma, silme veya rota görmez.
Yönetici bağlantı geçersiz kılmaları önce, örnekleme Gelişmiş parametreler altında kapalıdır. Kalıtılan değer boş alan ve sağlayıcı ipucuyla görünür; panel açıldı diye manifest varsayılanı hesaba kopyalanmaz.
Kaydetme yalnız bu oturumda değişen alanları yollar. Hassas olmayan boş değer geçersiz kılmayı kaldırır; maskeli hassas boş alan değişmez. Varsayılanlara sıfırla hesabın yönetebildiği tüm geçersiz kılmaları siler. Hata olursa kaydedilmemiş değer görünür kalır.
Work İçindeki Eklentiler
Work, Ollama yanında etkin completion ve chat kullanır. Kabul için:
- eklenti etkin;
- model kullanıcı keşfinde veya model haritasında; ve
- yönetici kimlik bilgisi mevcut.
Tür ve ID görev/çalıştırmada saklanır; yönlendirme yalnız ada dayanmaz. Aynı adlı eklenti var olan görevi değiştirmez.
Araç çağrıları OpenAI uyumlu, Anthropic ve Gemini biçimlerine uyarlanır. Model araçları desteklemelidir; reddetme veya uyumsuz yanıt başka sağlayıcıya dönmeden başarısız olur.
Uzak Work birden çok istek yapabilir; sağlayıcı sistem istemini, konuşmayı, araçları ve dosya/katalog/komut çıktısı içerebilen sonuçları alır. Libre kullanıcı başına kapatılabilir açıklama gösterir; sağlayıcı fiyat, saklama ve eğitim kurallarını yine inceleyin.
Gömmeler
Gömme eklentileri belge ayarlarında görünür. Libre nomic-embed-text, bge, e5, gte gibi Ollama adlarını da algılar. Hiçbiri yoksa yerel aday nomic-embed-text olur.
Eklenti Geliştirme Notları
Tanım yeteneği dürüstçe açıklamalı, olmayan özelliği iddia etmemelidir. Model haritalarını küçük yedek tutun, hızlı güvenilir liste API’sinde keşfi tercih edin.
- Tanım ekleyin.
- Anahtar veya kullanıcı alanlarını belirleyin.
- Model listesi varsa keşif uygulayın.
- Chat, embedding, görüntü, TTS veya STT eşlemesi ekleyin.
- Eksik/yanlış anahtar ve sağlayıcı hatalarını test edin.