플러그인
Libre WebUI는 로컬 Ollama와 함께 외부 AI 제공자 및 모델 기능을 연결하는 데 플러그인을 사용합니다.
플러그인 유형
| 유형 | 용도 |
|---|---|
| 채팅/완성 | 제공자 API의 텍스트 및 채팅 모델 |
| 임베딩 | 문서 검색 및 메모리용 벡터 임베딩 |
| 이미지 생성 | 이미지 모델 및 ComfyUI 형식 백엔드 |
| 음성 합성 | 음성 생성 제공자 |
| 음성 인식 | 전사 제공자 |
| 오디오 생성 | 사운드 및 오디오 생성 제공자 |
| 동영상 생성 | 비동기 동영상 생성 제공자 |
플러그인은 정적 모델 맵을 공개할 수 있고, 지원되는 경우 제공자 API에서 사용 가능한 모델을 새로 고칠 수 있습니다.
내장 제공자 계열
Libre WebUI에는 일반 서비스용 제공자 정의가 포함됩니다.
- OpenAI 및 OpenAI 호환 API
- Anthropic
- Google Gemini
- Groq
- Moonshot AI의 Kimi Code
- Mistral
- OpenRouter
- Hugging Face
- GitHub Models
- 로컬 Apple Silicon 추론용 MLX LM
- ComfyUI
- ElevenLabs
제공자 카탈로그는 자주 바뀝니다. 플러그인이 지원하면 UI의 실시간 모델 검색을 최신 정보의 기준으로 사용하세요.
소유권 및 권한
플러그인 정의는 공유 인스턴스 설정입니다. 모든 /api/plugins 경로에는 인증이 필요하며 관리자만 정의를 업로드, 설치, 업데이트, 삭제할 수 있습니다. 활성화는 다릅니다. 각 인증 사용자는 공유 플러그인을 자신의 계정에서만 활성화하거나 비활성화할 수 있습니다. 상태는 SQLite에 저장되어 백엔드 재시작 후에도 유지되고 다른 사용자의 활성 제공자에 영향을 주지 않습니다.
업그레이드 중 기존 전역 .status.json 활성화 목록은 이미 존재하는 계정으로 한 번 복사되지만, Libre WebUI의 컴파일된 신뢰 앵커와 정확히 일치하는 정의만 대상입니다. 기존 사용자 지정 또는 shadow 정의는 격리되어 비활성 상태로 남습니다. 마이그레이션 이후 만든 계정은 활성 플러그인이 없는 상태로 시작합니다.
번들 정의는 정규화한 내용이 백엔드에 컴파일된 해시와 일치할 때만 신뢰합니다. 쓰기 가능한 정의는 정규화된 소스 경로와 전체 정의 해시로 SQLite에서 승인됩니다. 관리자가 설치, 업데이트 또는 다시 가져오면 승인이 기록되고 파일을 직접 바꾸면 무효화됩니다. 승인 및 업데이트는 파일을 교체하기 전에 모든 계정의 활성화를 지우므로 각 사용자는 검토된 정의를 다시 활성화해야 합니다. 업그레이드 전 사용자 지정 정의는 카탈로그 표시, 모델 검색, 자격 증명 수락, 기능 실행 전에 관리자가 다시 가져와야 합니다.
플러그인 변수는 목적에 따라 나뉩니다. 관리자만 인식된 연결 라우팅 변수를 저장할 수 있습니다.
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도 이름이 다르더라도 연결 라우팅입니다.
관리자가 아닌 사용자도 Temperature 및 스트리밍 환경 설정 같은 생성 제어를 저장할 수 있습니다. 관리자가 아닌 사용자 소유의 이전 라우팅 행은 무시되고 설정 값으로 반환되지 않으며, 해당 계정이 모든 플러그인 변수를 초기화하면 제거됩니다. 이후 역할 승격으로 잠든 경로가 조용히 되살아나는 것을 막습니다.
자격 증명
자격 증명은 환경 변수 또는 사용자 설정에서 가져올 수 있습니다.
환경 예:
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=...
공유 배포에서는 각 사용자가 자신의 제공자 청구와 제한을 제어할 수 있으므로 사용자 수준 자격 증명이 보통 더 낫습니다. 환경 키는 단일 사용자 설치, 데모 또는 관리형 배포에 유용합니다.
환경 키는 요청이 shadow되지 않은 번들 플러그인 정의의 라우팅 및 인증 투영을 사용할 때만 대체값입니다. 가져온 정의, 번들 ID를 shadow하는 쓰기 가능 정의 또는 관리자가 저장한 연결 라우팅 재정의에는 같은 계정이 저장한 자격 증명이 필요합니다. Libre WebUI는 환경 대체를 허용하기 전에 루트 엔드포인트, 인증 필드, 기능 엔드포인트와 엔드포인트 변수 선택기, 인식된 라우팅 변수 정의 및 기본값을 비교합니다. 표준 컨테이너 배치처럼 기존 및 번들 플러그인 디렉터리가 같은 경로를 공유해도 컴파일된 매니페스트 해시가 기준입니다. 덮어쓴 패키지 매니페스트는 자체 신뢰를 만들 수 없습니다.
이 규칙은 검색, Chat, Work, 가용성 검사, 기능 카탈로그에 적용되어 사용자 지정 엔드포인트 또는 업그레이드 전 사용자 지정 매니페스트가 운영자 관리 시크릿을 받지 못하게 합니다.
사용자 저장 자격 증명은 저장 시점의 유효한 정의 소스, 전체 정의 해시, 인증 계약, 기능 엔드포인트와 선택기, 유효 라우팅 값에 묶입니다. 경로나 정의가 바뀌면 사용자가 새 목적지를 검토하고 다시 저장할 때까지 이전 자격 증명을 사용할 수 없습니다. 바인딩이 없는 기존 자격 증명은 정확한 앵커 번들 경로에서만 허용되며, 처음 성공적으로 사용하면 복호화된 키를 반환하기 전에 바인딩을 기록합니다.
OpenAI 호환 제공자
많은 제공자가 OpenAI 호환 API를 제공합니다. 플러그인은 다음을 정의할 수 있습니다.
- 전체 API 엔드포인트 URL
- API 키 환경 변수
- 채팅 엔드포인트 동작
- 임베딩 지원
- 모델 검색 동작
- 선택적 모델 맵 대체값
실시간 모델 검색을 지원하지 않으면 Libre WebUI는 설정된 모델 맵을 사용합니다. 가져온 플러그인 JSON은 Libre WebUI가 지원하는 통신 형식(OpenAI Chat Completions, OpenAI Responses, Anthropic Messages, Gemini)을 이미 사용하는 제공자를 설정합니다. JSON만으로 임의의 독점 프로토콜을 변환하지 않습니다. 요청, 스트리밍, 도구 호출 또는 응답 형식이 다르면 작은 백엔드 어댑터가 필요합니다.
OpenAI 이미지 생성
번들 OpenAI 제공자는 https://api.openai.com/v1/images/generations에서 Image API를 제공합니다. 현재 모델은 gpt-image-2입니다. 기존 호환 배포를 위해 더 이상 권장하지 않는 gpt-image-1.5, gpt-image-1, gpt-image-1-mini ID도 카탈로그에 유지하지만 새 설정은 gpt-image-2를 선택해야 합니다.
이미지 생성은 Chat과 동일한 유효 OpenAI 자격 증명, 즉 현재 사용자가 저장한 키 또는 신뢰된 번들 제공자의 환경 대체값을 사용합니다. 별도의 선택적 image_endpoint 재정의가 있어 사용자 지정 Chat 엔드포인트가 실수로 이미지 요청을 받지 않습니다. 번들 Image API 엔드포인트를 상속하려면 image_endpoint를 비워 둡니다.
이미지 선택에는 제공자 정보가 포함됩니다. 두 이미지 플러그인이 같은 모델 ID를 공개해도 Libre WebUI는 이미지 패널에서 선택한 제공자에게만 요청을 보냅니다. GPT Image 응답은 base64 이미지 데이터를 사용합니다. Libre WebUI는 이를 앱 내 이미지로 변환해 현재 사용자 갤러리에 저장합니다. Image API 경로에는 인증이 필요하며 직접 생성 요청에는 pluginId와 model이 모두 있어야 합니다. n은 1~10의 JSON 정수로 설정할 수 있으며 숫자 문자열과 소수는 제공자에 도달하기 전에 거부됩니다.
Chat Completions 및 Responses API 모드
OpenAI 호환 완성 플러그인은 chat_completions 또는 responses 요청 의미 체계를 사용할 수 있습니다. 번들 OpenAI 플러그인은 설정 → 플러그인에서 이를 선택할 수 있습니다.
연결 설정은 다음 순서로 해석됩니다.
- 설정된 전체
endpoint재정의. base_url과 선택적api_path.- 플러그인의 기존
endpoint.
플러그인 매니페스트 엔드포인트와 정확히 같은 값은 재정의가 아니라 매니페스트 기본값으로 처리됩니다. 업그레이드 후 기존 저장 기본값이 새 Base URL을 가리지 않습니다. 실제 사용자 지정 전체 엔드포인트는 계속 최우선입니다.
기본 경로는 Chat Completions 모드의 /chat/completions, Responses 모드의 /responses입니다. base_url은 https://api.example.com/v1 같은 API 루트여야 합니다. 호환 제공자가 다른 상대 경로에 작업을 공개하면 api_path를 사용합니다. 전체 엔드포인트에는 완전한 작업 경로가 있어야 하며 두 필드보다 우선합니다. 알려진 /chat/completions, /completions, /responses 접미사가 요청 의미 체계를 결정하며 사용자 지정 경로는 선택한 api_mode를 유지합니다.
가져온 플러그인 JSON도 같은 기본값을 제공할 수 있습니다.
{
"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, 평탄화한 함수 도구, store: false를 사용하고 상태 없는 연속성을 위해 암호화된 추론 내용을 요청합니다. 완료 및 스트리밍 Responses 출력은 Libre WebUI의 Chat 및 Work 이벤트 형식으로 정규화됩니다. 재생 상태는 완전하고 순서가 지정된 출력 Item 배열이 최대 64 Items, 90 KB일 때만 유지됩니다. Item은 그대로 유지되며 필드를 자르지 않습니다. 재생 가능한 Item에는 고유하고 비어 있지 않은 ID와 유형이 필요하고, 도구 호출 전에 메시지·추론·함수 호출 구조를 검증합니다. 너무 큰 Chat 상태는 정규화된 표시 기록으로 대체됩니다. Chat은 해당 도구 출력을 저장하지 않으므로 원시 함수 호출 Item도 버립니다. 제한된 정확한 재생 상태가 없는 도구 포함 Work 응답은 도구 부작용 전에 거부됩니다.
SQLite 기반 Chat 스토리지는 메시지와 함께 유지된 제공자 상태를 암호화합니다. Work는 도구 전용 상태를 메시지 API에서 반환하지 않는 숨겨진 문맥 행에 저장합니다. 해시 범위가 같은 제공자, 모델, Responses 모드, 최종 설정 엔드포인트, 선택 자격 증명의 불투명 단방향 지문에 재생을 묶습니다. API 키 교체를 포함해 범위가 바뀌면 제공자별 Item을 인증 경계 너머로 보내지 않고 정규화된 메시지 기록으로 대체합니다. 활성 Work 실행도 라우팅과 자격 증명의 지문을 만들고 매 제공자 라운드 직전에 다시 검증합니다. 모드, 엔드포인트 또는 API 키를 바꾸면 이전 도구 상태가 다음 요청에 전달되기 전에 실행이 중지됩니다.
도구 포함 상태는 Work가 부작용을 수행하기 전에 재생 제한과 완전한 100 KB 영구 메타데이터 래퍼 모두에 들어야 합니다. 영구 Work 배치가 중단되면 누락된 각 도구 결과를 정확한 호출 ID와 결과 불명 경고로 복원하므로 제공자가 가능한 부작용을 맹목적으로 반복하지 않고 워크스페이스를 검사할 수 있습니다. 불완전한 Responses 결과는 성공한 Chat 또는 Work 턴으로 처리되지 않으며 incomplete_details.reason을 유지해 호출자에게 표시합니다.
모델 검색은 작업 경로에서 /models를 파생합니다. 예를 들어 https://api.example.com/v1/responses는 https://api.example.com/v1/models에서 검색합니다. 호환 모델 목록 엔드포인트가 없는 제공자는 수동 model_map을 사용할 수 있습니다. 검색은 현재 사용자의 변수와 자격 증명 범위로 제한되고 결과는 공유 플러그인 매니페스트가 아니라 사용자별로 저장됩니다. 활성화, 명시적 새로 고침, API 키 변경, 연결 변수 변경, 변수 초기화 후 검색을 실행합니다. 무관한 생성 변수 저장은 네트워크 요청을 유발하지 않습니다.
검색은 자동으로도 실행됩니다. 플러그인 목록을 읽으면 카탈로그가 없거나 PLUGIN_MODEL_DISCOVERY_TTL_MS보다 오래된 활성 완성 제공자를 다시 검색합니다. 애플리케이션을 다시 불러오면 활성화 시점의 카탈로그가 아닌 현재 제공자 모델을 반영합니다. 제공자별 backoff가 도달 불가능한 제공자를 매 요청마다 검사하지 않게 하고, 기한이 느린 제공자의 응답 지연을 막습니다. 이를 넘긴 새로 고침은 다음 요청에서 제공됩니다.
사용자 자격 증명을 읽거나 Authorization 헤더를 만들기 전에 최종 파생 검색 URL을 확인합니다. URL이 가져온 플러그인 매니페스트에서 온 경우도 같습니다. 검색 및 제공자 기능 요청은 HTTP 리디렉션을 따르지 않습니다. 최종 Chat, Work, 모델 목록, 이미지, 임베딩, 전사, 음성, 음성 복제, 오디오, 동영상 엔드포인트를 직접 설정하세요. 검증된 URL에서 검증되지 않은 리디렉션 목적지로 자격 증명이 전달되지 않습니다.
제공자 엔드포인트는 HTTP 또는 HTTPS를 사용할 수 있습니다. HTTP는 API 키, 프롬프트, 도구 결과, 생성 콘텐츠를 전송 중 암호화하지 않으므로 신뢰하는 네트워크의 셀프 호스팅 게이트웨이에만 사용하세요. TLS를 지원하면 HTTPS를 우선합니다. 요청은 백엔드에서 시작합니다. 컨테이너 배포에서는 http://ai-gateway:8080/v1 같은 서비스 URL을 사용하며 localhost는 Libre WebUI 컨테이너 자체입니다. 이미지 생성을 포함한 플러그인 기능 경로는 요청하는 인증 사용자의 엔드포인트 변수와 자격 증명을 해석합니다. Libre WebUI에는 인증 없는 단일 사용자 모드가 없습니다.
기능별 엔드포인트
Chat 엔드포인트 재정의는 이미지, 임베딩, 전사, 음성 합성, 오디오, 동영상 기능과 분리됩니다. 다중 기능 플러그인은 image_endpoint, embedding_endpoint, stt_endpoint, tts_endpoint 또는 config.endpoint_variable이 명명한 다른 변수를 공개할 수 있습니다. 음성 복제 경로도 config.voice_clone_endpoint_variable을 지정할 수 있습니다. 비워 두면 플러그인이 선언한 기능 엔드포인트를 사용하며 일반 Chat endpoint는 기능 재정의로 사용되지 않습니다.
번들 GitHub Models 플러그인의 선택적 재정의가 비어 있으면 현재 models.github.ai/inference/chat/completions 엔드포인트를 상속합니다. Hugging Face 플러그인은 임베딩, 이미지, 음성 합성 요청을 Chat 엔드포인트로 보내지 않고 작업별 hf-inference/models/{model} 경로와 페이로드를 사용합니다.
엔드포인트 재정의
endpoint 변수는 작업 경로를 포함한 완전한 요청 URL입니다. 예를 들어 OpenAI 호환 채팅 플러그인은 보통 https://provider.example/v1/chat/completions를 사용하며 https://provider.example만 사용하지 않습니다. 가져온 기존 플러그인 설정은 이 변수를 api_url이라고 부를 수 있습니다. Libre WebUI는 별칭을 허용하지만 둘 다 있을 때 비어 있지 않은 endpoint가 항상 우선합니다.
절대 HTTP 및 HTTPS URL만 허용되며 다른 프로토콜은 거부됩니다. HTTP는 전송 중 자격 증명과 요청 내용을 암호화하지 않으므로 신뢰된 네트워크의 셀프 호스팅 게이트웨이용입니다. 비공개 배포 경계를 벗어나는 경로에는 HTTPS를 사용하세요. 재정의를 비워 두면 플러그인 정의의 전체 엔드포인트를 사용하고, 명시적으로 잘못된 재정의는 기본값으로 조용히 보내지 않고 거부합니다.
제공자 요청은 리디렉션을 따르지 않습니다. 최종 검증 작업 URL을 직접 설정하세요. 리디렉션 응답은 자격 증명 또는 요청 내용을 다음 홉으로 전달하지 않고 제공자 오류로 보고됩니다.
요청은 Libre WebUI 백엔드에서 시작합니다. 컨테이너에서 localhost는 호스트나 다른 서비스를 자동으로 가리키지 않고 컨테이너 자체를 가리킵니다. 게이트웨이의 컨테이너 서비스 이름 또는 런타임이 제공하는 경우 host.docker.internal 같은 호스트 도달 가능 이름을 사용하세요.
모델 검색
설정 → 플러그인에는 이 흐름을 위한 제공자 연결 워크스페이스가 있습니다. 왼쪽에서 제공자를 검색하고 선택한 뒤 오른쪽에서 활성 상태와 유효 모델 카탈로그를 검토합니다. 설정을 선택하기 전에는 제공자 설정이 접힌 상태이므로 기본 화면에서 엔드포인트, 자격 증명, 고급 생성 제어가 보이지 않습니다.
채팅 및 완성 제공자의 모델 새로 고침은 선택한 제공자를 검색한 뒤 플러그인 카탈로그와 Chat 모델 목록을 다시 불러옵니다. 카탈로그는 읽기 전용입니다. 현재 사용자의 검색 ID와 플러그인 정의의 기능 모델 맵에서 행을 가져옵니다. 기능 라벨은 어떤 플러그인 경로가 모델을 나열하는지 설명할 뿐 상태 확인이 아닙니다. 대체 또는 수동 모델 ID는 검색 행 편집이 아니라 플러그인 JSON model_map에 추가합니다.
플러그인을 활성화하면 Libre WebUI가 해당 계정의 유효 엔드포인트와 자격 증명으로 모델 검색을 시도합니다. 관리자 사용자 지정 경로에는 같은 계정이 저장한 자격 증명이 필요하며 환경 대체는 신뢰된 매니페스트 경로에서만 사용됩니다. 호환 API의 모델 목록 URL은 전체 엔드포인트에서 다음처럼 파생합니다.
/models로 끝나는 URL은 그대로 사용합니다./chat/completions,/completions,/responses,/embeddings,/messages같은 알려진 작업 접미사를/models로 바꿉니다.- 그 외에는 경로에
/models를 추가합니다.
파생 URL을 쓸 수 없는 플러그인은 models_endpoint를 명시적 전체 모델 목록 URL로 공개할 수 있습니다. 파생보다 우선하고 같은 외부 URL 정책을 적용하며 리디렉션을 따르지 않습니다. endpoint, api_url, models_endpoint, base_url, api_path, api_mode를 저장하거나 초기화하면 UI를 다시 불러오기 전에 현재 사용자의 검색 카탈로그를 지우고 새로 고칩니다.
모든 사용자 지정 경로는 자격 증명을 선택하기 전에 해석 및 검증합니다. 저장된 사용자 지정 경로에서는 서버 환경 키로 대체하지 않으며 사용자별 키를 설정해야 합니다. 환경 대체는 신뢰된 플러그인 정의가 제공한 엔드포인트에만 사용됩니다.
검색은 data 배열에 모델 ID가 있는 OpenAI 호환 응답을 기대합니다. 활성화는 첫 플러그인 목록 새로 고침에 검색 카탈로그가 포함될 수 있도록 시도가 끝날 때까지 기다립니다. 성공한 결과는 사용자별로 저장해 해당 사용자의 플러그인 보기에 덧씌웁니다. 공유 플러그인 JSON을 다시 쓰거나 한 사용자의 검색 모델 ID를 다른 계정에 노출하지 않습니다. 호환 모델 목록 엔드포인트가 없거나 도달할 수 없거나 응답 형식이 다르면 일반 활성화는 사용자의 이전 검색 결과를 유지합니다. 의도적인 연결 필드 변경은 먼저 오래된 카탈로그를 지우므로 새 경로를 검색할 수 없을 때 플러그인의 model_map 대체값을 사용합니다.
연결 라우팅을 저장하거나 초기화하면 다음 검색 전에 해당 계정의 이전 카탈로그를 지워 한 목적지에서 배운 모델이 경로 변경 후 선택 가능한 상태로 남지 않습니다.
플러그인 상태, Work 가용성, 모델 카탈로그, 기능 경로는 같은 사용자 문맥과 자격 증명 경계를 사용합니다. 예를 들어 이미지 모델 가용성, 엔드포인트 변수, 자격 증명은 요청한 사용자에 대해 해석됩니다.
Chat에서 정확한 제공자 선택
모델 ID는 전역적으로 고유하지 않습니다. Ollama 모델과 여러 활성 플러그인이 모두 example-model이라는 모델을 공개할 수 있습니다. 따라서 Chat은 원시 모델 ID와 선택적 제공자 ID를 함께 저장합니다.
providerType: "ollama"는 로컬 또는 설정된 Ollama 경로를 식별합니다.providerType: "plugin"과providerId는 정확한 플러그인 하나를 식별합니다.
제공자 정보가 포함된 URL 인코딩 값은 모델 선택기의 충돌 방지 키로만 사용합니다. 요청은 계속 제공자의 원시 모델 ID를 보냅니다. 이름이 중복되는 Ollama/플러그인 및 플러그인/플러그인 모델은 별도 선택으로 남고 채팅을 다시 열면 저장한 정확한 선택을 복원합니다.
명시적 제공자 ID는 안전하게 실패합니다. 선택한 플러그인이 비활성화, 제거되거나 모델을 더 이상 공개하지 않으면 Libre WebUI는 저장된 선택을 사용 불가로 표시하고 같은 모델 이름의 다른 제공자로 조용히 바꾸지 않습니다. 다시 생성하려면 제공자를 활성화하거나 다른 모델을 명시적으로 선택하세요.
제공자 ID를 저장하기 전에 만든 세션 및 환경 설정은 providerType과 providerId가 설정되지 않았거나 null일 수 있습니다. 원래 제공자를 신뢰성 있게 복구할 수 없으므로 호환성을 위해 기존 이름 전용 라우팅을 유지합니다. 선택기는 Ollama 또는 플러그인 라벨을 추측하지 않고 "제공자 기록 없음"으로 표시합니다. 구체적인 제공자 항목을 선택하면 이후 요청에 정확한 제공자를 기록합니다. 새 페르소나 선택은 persona:<id> UI ID를 유지하고 Ollama 기반으로 기록됩니다.
제공자 설정 및 상속
설정 → 플러그인에서 제공자를 선택하고 설정을 엽니다. 제공자 패널은 기본적으로 닫혀 있습니다. 관리자는 공유 정의와 연결 라우팅 값을 관리할 수 있습니다. 다른 인증 사용자는 제공자 활성화, 자신의 API 키 저장, 자신의 생성 제어 변경은 할 수 있지만 UI에 플러그인 업로드, 설치, 내보내기, 삭제, 라우팅 제어가 표시되지 않습니다.
관리자에게는 연결 재정의가 먼저 표시됩니다. 샘플링과 기타 전문 제어는 기본으로 닫힌 고급 매개변수 아래에 있습니다. 상속된 연결 및 생성 값은 제공자 기본값 힌트와 빈 입력란으로 표시됩니다. 패널을 열었다는 이유만으로 매니페스트 기본값을 계정의 저장 설정에 복사하지 않습니다.
저장할 때 현재 편집 세션에서 바뀐 필드만 보냅니다. 저장된 비민감 값을 지우면 계정 재정의를 제거하고 제공자 기본값을 복원합니다. 마스킹된 민감 필드를 비워 두면 변경하지 않습니다. 기본값으로 초기화는 계정에서 관리할 수 있는 모든 변수 재정의를 제거합니다. 저장 또는 초기화에 실패하면 재시도할 수 있도록 저장되지 않은 값이 편집기에 남습니다.
사용자 지정 엔드포인트에서 이 차이가 중요합니다. 관리자는 플러그인 번들 URL을 상속하려면 엔드포인트를 비우고, 재정의하려면 완전한 호환 URL을 입력합니다.
Work의 플러그인
Work는 Ollama 및 Ollama Cloud 외에도 활성 completion, chat 플러그인을 사용할 수 있습니다. 플러그인 기반 Work 실행은 다음 조건에서만 허용됩니다.
- 플러그인이 활성 상태.
- 모델이 현재 사용자의 검색 카탈로그 또는 플러그인의 설정 모델 맵에 존재.
- 현재 관리자용 자격 증명을 사용 가능.
Work는 선택된 제공자 유형과 플러그인 ID를 작업과 각 실행 모두에 보관합니다. 따라서 모델 이름만이 아니라 정확히 저장된 제공자로 라우팅합니다. Ollama 모델과 이름이 같은 플러그인을 활성화해도 기존 작업을 조용히 다른 곳으로 보낼 수 없습니다.
Work는 네이티브 OpenAI 호환, Anthropic, Gemini 요청/응답 형식으로 도구 호출을 변환합니다. 제공자가 일반 채팅 완성을 제공해도 선택 모델이 도구 호출을 지원해야 합니다. 제공자가 도구를 거부하거나 호환되지 않는 응답을 반환하면 다른 제공자로 대체하지 않고 실행이 실패합니다.
원격 Work 실행은 제공자를 여러 번 호출할 수 있습니다. 제공자는 Work 시스템 프롬프트, 대화 문맥, 도구 정의, 요청된 도구 결과를 받습니다. 도구 결과에는 소스 파일, 디렉터리 목록, 명령 출력이 포함될 수 있습니다. Libre WebUI는 Work에 사용자별로 닫을 수 있는 원격 제공자 안내를 표시합니다. 민감한 프로젝트에서 서비스를 활성화하기 전에 운영자가 제공자 가격, 보존, 학습 정책도 검토해야 합니다.
임베딩
임베딩 기능 플러그인은 문서 임베딩 설정에 나타날 수 있습니다. Libre WebUI는 nomic-embed-text, bge, e5, gte 등 이름으로 Ollama 임베딩 모델도 감지합니다.
임베딩 모델을 찾지 못하면 UI는 로컬 기본 후보로 nomic-embed-text를 사용합니다.
플러그인 개발 참고 사항
플러그인 정의는 기능을 명확히 설명하고 제공자가 공개하지 않는 기능을 지원하는 것처럼 표현하지 않아야 합니다. 모델 맵은 유용한 대체값이 될 정도로 작게 유지하고, 빠르고 신뢰할 수 있는 모델 목록 API가 있으면 검색을 우선하세요.
제공자 추가 절차:
- 플러그인 정의를 추가합니다.
- 자격 증명 키 또는 사용자 자격 증명 필드를 정의합니다.
- 제공자가 모델 목록 엔드포인트를 제공하면 모델 검색을 구현합니다.
- 채팅, 임베딩, 이미지, TTS 또는 STT 요청 매핑을 추가합니다.
- 키 없음, 잘못된 키, 제공자 오류 상태를 테스트합니다.