प्लगइन
Libre WebUI स्थानीय Ollama के साथ बाहरी प्रदाता और मॉडल क्षमताएँ प्लगइन से जोड़ता है।
प्लगइन प्रकार
| प्रकार | उद्देश्य |
|---|---|
| Chat/completion | प्रदाता पाठ/chat मॉडल |
| Embeddings | दस्तावेज़ खोज और memory |
| इमेज जनरेशन | इमेज मॉडल और ComfyUI |
| पाठ-to-speech | आवाज़ synthesis |
| Speech-to-पाठ | Transcription |
| ऑडियो जनरेशन | Sound प्रदाता |
| वीडियो जनरेशन | Async वीडियो प्रदाता |
प्लगइन static मॉडल maps और supported होने पर प्रदाता API से live खोज दे सकते हैं।
Built-In प्रदाता Families
OpenAI/compatible APIs, Anthropic, Google Gemini, Groq, Moonshot AI Kimi Code, Mistral, DeepSeek, Amazon Bedrock, OpenRouter, Hugging Face, GitHub मॉडल, Apple Silicon MLX LM, ComfyUI, ElevenLabs। Catalogs अक्सर बदलते; खोज हो तो UI सत्य का स्रोत।
Ownership और Authorization
प्लगइन definitions instance-साझा हैं। हर /api/plugins रूट auth चाहता; अपलोड/स्थापित/अपडेट/हटाएँ व्यवस्थापक-केवल। Activation प्रति उपयोगकर्ता, SQLite में स्थायी।
Upgrade पर पुराना .status.json केवल सटीक compiled trust anchors से match definitions के लिए मौजूदा accounts में once copy। पुराना कस्टम/shadow quarantined और inactive; बाद के accounts नहीं सक्रिय प्लगइन।
Bundled परिभाषा तभी विश्वसनीय जब normalized सामग्री compiled हैश से match। Writable definitions स्रोत पथ/पूर्ण हैश से SQLite approved। व्यवस्थापक स्थापित/अपडेट/re-import अनुमोदन लिखता; सीधा फ़ाइल edit invalidates। अनुमोदन/अपडेट सभी खाता activations साफ़ करता, उपयोगकर्ता reviewed परिभाषा reactivate। Pre-upgrade कस्टम re-import से पहले catalogs/खोज/क्रेडेंशियल/execution में नहीं।
केवल admins कनेक्शन-रूटिंग variables बचाते:
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 भी रूटिंग।
Others temperature/streaming save कर सकते। Non-व्यवस्थापक पुराना रूटिंग ignored/not returned और पूर्ण रीसेट में हटाया; बाद में भूमिका promotion revive नहीं।
क्रेडेंशियल
क्रेडेंशियल उपलब्धता जाँच वर्तमान उपयोगकर्ता की कुंजी lookup की प्रतीक्षा करती है। यह कुंजी लौटाए बिना बताती है कि प्रभावी कुंजी है या नहीं; lookup विफल होने पर उपलब्ध बताने के बजाय त्रुटि लौटती है।
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=...
साझा deployments में उपयोगकर्ता-level क्रेडेंशियल बेहतर; पर्यावरण एकल-उपयोगकर्ता/demo/managed।
पर्यावरण कुंजी केवल unshadowed bundled रूटिंग/auth पर वैकल्पिक। Imported, writable shadow ID या व्यवस्थापक संग्रहीत कस्टम रूट उसी खाते का क्रेडेंशियल चाहता। Libre root एंडपॉइंट, auth फ़ील्ड, capability endpoints/selectors और recognized रूटिंग defaults compare करता। Compiled मैनिफ़ेस्ट हैश authoritative; overwritten मैनिफ़ेस्ट trust नहीं बना सकता।
यह खोज, Chat, Work, availability और catalogs पर लागू; कस्टम एंडपॉइंट operator रहस्य नहीं पाता।
उपयोगकर्ता द्वारा सहेजे गए क्रेडेंशियल सहेजते समय प्रभावी परिभाषा स्रोत, परिभाषा हैश, प्रमाणीकरण अनुबंध, क्षमता endpoints और selectors, तथा प्रभावी रूटिंग मानों से बंध जाते हैं। परिभाषा हैश मॉडल कैटलॉग (model_map, model_context और model_reasoning, शीर्ष स्तर पर और प्रति क्षमता) को शामिल नहीं करता, इसलिए मॉडल जोड़ने पर सहेजी गई कुंजियाँ बनी रहती हैं। जब कोई {model} प्लेसहोल्डर गंतव्य होस्ट चुन सकता है, तब कैटलॉग बंधा रहता है। रूट या परिभाषा का कोई अन्य परिवर्तन पुराने क्रेडेंशियल को तब तक अनुपलब्ध कर देता है जब तक उपयोगकर्ता नए गंतव्य की समीक्षा करके उसे फिर से नहीं सहेजता। पहले की पूरी-परिभाषा बाइंडिंग के तहत सहेजी गई कुंजियाँ उसी परिभाषा के लिए मान्य रहती हैं और पहले उपयोग पर फिर से बंध जाती हैं। बिना बाइंडिंग वाले पुराने क्रेडेंशियल केवल सटीक anchored bundled रूट पर स्वीकार होते हैं; उनका पहला सफल उपयोग डिक्रिप्ट की गई कुंजी लौटाने से पहले बाइंडिंग लिखता है।
OpenAI-Compatible प्रदाता
प्लगइन पूर्ण API URL, API कुंजी env, chat behavior, embedding, मॉडल खोज, वैकल्पिक model_map define करता। JSON केवल OpenAI Chat Completions, OpenAI उत्तर, Anthropic संदेश या Gemini wire formats; arbitrary proprietary protocol बैकएंड adapter चाहता।
OpenAI इमेज जनरेशन
Bundled एंडपॉइंट https://api.openai.com/v1/images/generations, वर्तमान gpt-image-2; deprecated gpt-image-1.5, gpt-image-1, gpt-image-1-mini compatibility।
इमेज समान उपयोगकर्ता क्रेडेंशियल या विश्वसनीय env वैकल्पिक। अलग image_endpoint कस्टम Chat एंडपॉइंट को इमेज अनुरोध से बचाता; blank bundled इमेज API।
Selection प्रदाता-qualified। समान ID केवल panel-चयनित प्रदाता। GPT इमेज base64 को Libre app इमेज बनाकर उपयोगकर्ता gallery में save। Routes auth, pluginId और model चाहते। n JSON integer 1–10; strings/fractions reject।
Chat Completions और उत्तर API modes
प्लगइन chat_completions या responses; bundled OpenAI सेटिंग → प्लगइन में choice।
- पूर्ण
endpointoverride। base_url+ वैकल्पिकapi_path।- पुराना
endpoint।
मैनिफ़ेस्ट-equal एंडपॉइंट डिफ़ॉल्ट माना जाता, पुराना संग्रहीत defaults नया मूल URL को shadow नहीं। Genuine कस्टम पूर्ण एंडपॉइंट highest।
डिफ़ॉल्ट /chat/completions और /responses। base_url API root https://api.example.com/v1; api_path सापेक्ष ऑपरेशन। पूर्ण एंडपॉइंट पूर्ण पथ। Known suffix semantics authoritative; कस्टम paths चयनित api_mode।
{
"endpoint": "https://api.example.com/v1/chat/completions",
"api_mode": "responses",
"base_url": "https://api.example.com/v1",
"api_path": "/responses"
}
उत्तर input, max_output_tokens, flattened फ़ंक्शन टूल, store: false, एन्क्रिप्टेड reasoning continuation। आउटपुट Libre घटनाएँ में normalized। Replay केवल पूर्ण ordered आउटपुट Item array ≤64 Items/90 KB; Items सटीक। Unique IDs/प्रकार और संदेश/reasoning/फ़ंक्शन कॉल validate पहले side effects। Oversized Chat दृश्य इतिहास वैकल्पिक, कच्चा फ़ंक्शन कॉल Items discard; Work सटीक bounded replay बिना reject।
SQLite प्रदाता स्थिति संदेश के साथ encrypt; Work hidden context rows। Hashed दायरा समान प्रदाता/मॉडल/मोड/अंतिम एंडपॉइंट/क्रेडेंशियल fingerprint। बदलाव पर normalized इतिहास वैकल्पिक; सक्रिय Work हर round रूटिंग/क्रेडेंशियल revalidate।
Tool स्थिति replay सीमा और पूर्ण 100 KB metadata wrapper में fit पहले पार्श्व प्रभाव। Interrupted batch अनुपस्थित परिणाम सटीक call ID और outcome-unknown warning से restore ताकि workspace inspect, effect repeat नहीं। अपूर्ण उत्तर सफलता नहीं; incomplete_details.reason retained।
खोज ऑपरेशन पथ से /models; https://api.example.com/v1/responses → https://api.example.com/v1/models। Compatible सूची न हो तो model_map। प्रति-उपयोगकर्ता variables/क्रेडेंशियल, प्रति-उपयोगकर्ता storage। Activation, रीफ़्रेश, कुंजी/कनेक्शन बदलाव/रीसेट trigger; unrelated जनरेशन नहीं।
अनुपस्थित/stale (> PLUGIN_MODEL_DISCOVERY_TTL_MS) पर auto खोज, backoff/deadline। अंतिम URL क्रेडेंशियल से पहले validated, redirects नहीं। Chat, Work, मॉडल-सूची, इमेज, embedding, transcription, speech, आवाज़ clone, ऑडियो, वीडियो अंतिम endpoints directly configure।
HTTP/HTTPS accepted। HTTP क्रेडेंशियल/prompts/परिणाम/सामग्री खुला पाठ, केवल विश्वसनीय self-hosted gateway; prefer TLS। अनुरोध बैकएंड से; container में http://ai-gateway:8080/v1, localhost Libre container। Unauthenticated एकल-उपयोगकर्ता मोड नहीं।
Capability-विशिष्ट Endpoints
Chat override इमेज/embedding/STT/TTS/ऑडियो/वीडियो से isolated। प्लगइन image_endpoint, embedding_endpoint, stt_endpoint, tts_endpoint या config.endpoint_variable; cloning config.voice_clone_endpoint_variable। Blank प्लगइन capability एंडपॉइंट; generic Chat endpoint override नहीं।
GitHub मॉडल blank पर models.github.ai/inference/chat/completions; Hugging Face embedding/इमेज/TTS में Chat एंडपॉइंट नहीं, hf-inference/models/{model}।
एंडपॉइंट Overrides
endpoint पूरा ऑपरेशन URL, जैसे https://provider.example/v1/chat/completions, केवल https://provider.example नहीं। पुराना api_url alias; non-खाली endpoint wins।
पूर्ण HTTP/HTTPS accepted, others reject। HTTP विश्वसनीय केवल। Blank परिभाषा एंडपॉइंट, malformed स्पष्ट reject। Redirects नहीं। अनुरोध बैकएंड से; container localhost self, सेवा name या supported host.docker.internal।
मॉडल खोज
सेटिंग → प्लगइन में प्रदाता connections workspace। प्रदाता select, सक्रिय स्थिति/कैटलॉग; Configure तक configuration collapsed।
रीफ़्रेश मॉडल खोज और प्लगइन/Chat lists reload। कैटलॉग केवल-पढ़ने; वर्तमान उपयोगकर्ता discovered IDs + capability maps, लेबल स्वास्थ्य जाँच नहीं। वैकल्पिक IDs JSON model_map।
Activation effective एंडपॉइंट/क्रेडेंशियल से खोज। व्यवस्थापक कस्टम रूट उसी खाते का क्रेडेंशियल; पर्यावरण केवल विश्वसनीय मैनिफ़ेस्ट। URL:
/modelsending as-is;/chat/completions,/completions,/responses,/embeddings,/messages→/models;- अन्य में append
/models।
पूर्ण models_endpoint derivation से पहले, समान URL नीति, नहीं redirects। Save/रीसेट endpoint, api_url, models_endpoint, base_url, api_path, api_mode clears/refreshes उपयोगकर्ता कैटलॉग।
कस्टम routes क्रेडेंशियल selection से पहले validate; नहीं env वैकल्पिक। OpenAI-compatible data array expected। Activation waits; सफलता प्रति उपयोगकर्ता, साझा JSON unchanged। सामान्य activation अनुपलब्ध पर previous परिणाम; intentional कनेक्शन बदलाव stale साफ़ और विफलता पर model_map।
Chat में सटीक प्रदाता Selection
मॉडल IDs globally unique नहीं; Ollama और प्लगइन example-model दे सकते। Chat कच्चा ID + identity:
providerType: "ollama"स्थानीय/कॉन्फ़िगर किया Ollama;providerType: "plugin"+providerIdसटीक प्लगइन।
URL-encoded qualified मान केवल selector keys; प्रदाता कच्चा ID। Duplicates अलग, reopen सटीक सहेजा choice।
स्पष्ट identity fail closed। प्लगइन inactive/हटाया/मॉडल अनुपस्थित हो तो अनुपलब्ध दृश्य, समान-name switch नहीं। Reactivate या choose।
पुराना records में providerType/providerId unset/null; name-केवल रूटिंग compatibility और “प्रदाता not recorded”। Reselect सटीक। Persona persona:<id>, नया selections Ollama-backed।
प्रदाता सेटिंग और विरासत
सेटिंग → प्लगइन → Configure। Panels डिफ़ॉल्ट closed। व्यवस्थापक साझा definitions/रूटिंग; उपयोगकर्ता activate, own API keys, जनरेशन controls; अपलोड/स्थापित/export/हटाएँ/रूटिंग नहीं।
कनेक्शन overrides पहला, sampling उन्नत पैरामीटर में closed। Inherited मान blank फ़ील्ड + डिफ़ॉल्ट hint; panel opening defaults save नहीं करता।
Save केवल वर्तमान editor बदलाव। Clearing non-sensitive removes override; blank masked sensitive unchanged। रीसेट to Defaults अनुमत overrides हटाता। विफलता पर unsaved मान दृश्य। कस्टम एंडपॉइंट blank = bundled, पूर्ण URL = override।
प्लगइन in Work
Work Ollama/Ollama Cloud के साथ सक्रिय completion, chat उपयोग करता जब:
- प्लगइन सक्रिय;
- मॉडल discovered कैटलॉग या मॉडल मानचित्र में; और
- वर्तमान व्यवस्थापक क्रेडेंशियल उपलब्ध।
प्रदाता प्रकार/ID task/run में, सटीक रूटिंग। समान-name प्लगइन मौजूदा task redirect नहीं। OpenAI-compatible, Anthropic, Gemini tool formats। मॉडल टूल कॉल समर्थन; reject/incompatible पर नहीं वैकल्पिक।
दूरस्थ Work several अनुरोध; प्रदाता system prompt, context, tool definitions/परिणाम (स्रोत फ़ाइलें, lists, कमांड आउटपुट) लेता। Libre dismissible disclosure दिखाता; pricing/retention/training समीक्षा।
Embeddings
Embedding प्लगइन दस्तावेज़ सेटिंग में। Libre nomic-embed-text, bge, e5, gte जैसे Ollama names detect। कोई नहीं पर nomic-embed-text स्थानीय candidate।
प्लगइन Development Notes
परिभाषा capability साफ़ बताए, unsupported सुविधा pretend नहीं। मॉडल maps small वैकल्पिक, reliable मॉडल-सूची API पर खोज।
- परिभाषा जोड़ें।
- क्रेडेंशियल कुंजी/उपयोगकर्ता फ़ील्ड।
- मॉडल-सूची हो तो खोज।
- Chat, embeddings, इमेज, TTS, STT अनुरोध mapping।
- अनुपस्थित/bad कुंजी और प्रदाता errors test।