owndev/Open-WebUI-Functions

Open-WebUI-Functions is a collection of custom pipelines, filters, and integrations designed to enhance Open WebUI. These functions enable seamless interactions with Azure AI, N8N, Google Gemini and other AI models, providing dynamic request handling, preprocessing, and automation.

개요

Open‑WebUI‑Functions는 Open WebUI 채팅 인터페이스(오픈소스 프로젝트 open‑webui/open‑webui)에 플러그인할 수 있는 작은 Python 함수 라이브러리입니다. 이 저장소는 즉시 사용 가능한 파이프라인, 필터 및 통합 기능을 제공하여 Open WebUI를 외부 AI 서비스(Azure OpenAI, Google Gemini, Infomaniak, N8N 등)에 연결하거나, 데이터를 전처리/후처리하고, API 키와 같은 기밀 정보를 암호화하여 유지할 수 있게 합니다.

주요 기능

기능 역할 중요성
사용자 지정 파이프라인 외부 LLM 공급자 호출, RAG 검색 수행 또는 데이터 변환을 위한 Python 기반 처리 단계. 보일러플레이트 코드 작성 없이 Azure, Google Gemini, Infomaniak, N8N 등을 사용 가능.
필터 요청 전후에 실행되는 작은 후크(예: 토큰 사용량 추적, Google 검색 접지). 핵심 UI를 수정하지 않고도 관측 가능성과 추가 로직 제공.
통합 기능 Azure AI, N8N 워크플로우 자동화, Infomaniak AI 도구, Google Gemini 등을 위한 즉시 사용 가능한 함수. 타사 서비스 연결의 번거로움 감소.
스트리밍 및 비스트리밍 지원 실시간 토큰 스트림과 배치 응답을 모두 처리. 채팅 스타일의 스트리밍과 기존 요청-응답 호출 모두 지원.
안전한 기밀 처리 WEBUI_SECRET_KEY 환경 변수를 사용한 API 키 자동 암호화. Open WebUI 데이터베이스 내에서 자격 증명을 안전하게 유지.
환경 변수 구성 모든 동작(모델 목록, 타임아웃, 토큰 추적 등)을 환경 변수로 전환 가능. 동일한 함수를 다양한 배포 시나리오에서 사용 가능.

작동 방식

  1. Open WebUI(메인 채팅 UI)를 설치합니다.
  2. 관리자 → 함수 (Admin → Functions) 패널에서 **새 함수 추가 (Add New Function)**를 클릭하고 이 저장소의 Python 코드를 붙여넣습니다.
  3. 필요한 환경 변수(예: AZURE_AI_API_KEY, WEBUI_SECRET_KEY)를 설정합니다.
  4. 함수는 Open WebUI 내에서 선택 가능한 "파이프라인"이 됩니다. 사용자가 메시지를 보내면 파이프라인은 요청을 외부 공급자에게 전달하고, 구성된 필터를 적용한 뒤 답변을 반환합니다(지원되는 경우 스트리밍).
  5. Time Token Tracker와 같은 선택적 필터를 사용하면 관측 가능성을 위해 Azure Log Analytics에 사용량을 기록할 수 있습니다.

일반적인 사용 사례

사용 사례 예시 파이프라인 얻을 수 있는 것
Azure를 사용한 엔터프라이즈 LLM azure_ai_foundry.py Azure OpenAI 추론, Azure Search 기반 RAG, 인용 카드, Open WebUI에 저장되는 토큰 사용량.
N8N을 통한 자동화 n8n.py N8N Webhook으로 채팅 메시지 전송, 처리된 응답 수신, 도구 호출 요약 확인.
Google Gemini 생성 google_gemini.py Gemini 모델 액세스, 텍스트 스트리밍, 이미지 또는 비디오 생성, 토큰 추적, 선택적 Google 검색 접지.
관측 가능성 time_token_tracker.py 응답 시간과 토큰 수를 기록하고, 선택적으로 Azure Log Analytics로 푸시.

시작하기 (빠른 단계)

# 1. Open WebUI 실행 (Docker, Helm 등)
# 2. UI 열기 → 관리자 설정 → 함수
# 3. 새 함수를 추가하고 이 저장소에서 원하는 *.py 파일을 붙여넣기
# 4. 필요한 환경 변수 설정, 예:
export WEBUI_SECRET_KEY="my‑random‑secret"
export AZURE_AI_API_KEY="<key>"
# 5. 저장 – 파이프라인이 모델 선택기에 나타납니다.

문서 및 지원

  • Docs 폴더 – 각 통합에 대한 자세한 가이드(Azure 인용, N8N 사용, Google Gemini 설정 등).
  • Tests – Docker 기반 엔드투엔드 테스트가 tests/e2e/에 위치.
  • Issues & PRs – 커뮤니티의 새로운 파이프라인 또는 필터 기여 환영.
  • 라이선스 – MIT (LICENSE 참조).

Open‑WebUI‑Functions는 자체 LLM을 제공하지 않으며, 기존 Open WebUI 플랫폼을 실제 AI 워크플로우를 위한 즉시 사용 가능한 커넥터와 유틸리티로 확장할 뿐입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트