open-webui

AI Chat UIsDevOpsPython

★ 151,790주당 +742조회 4

무엇인가

Open WebUI는 브라우저에서 LLM과 대화하는 인터페이스를 직접 호스팅하는 소프트웨어다. 채팅 UI를 중심으로 문서 검색, 이미지 생성·편집, 음성·영상 통화, 일정 관리, 자동화를 한 인스턴스에 담는다. 서버가 사용자와 모델 제공자 사이에 놓여 요청을 중계하는 구조다.

어떻게 동작하나

백엔드는 Python으로 작성되며 Ollama API와 OpenAI 호환 엔드포인트로 요청을 보낸다. 대화·사용자·설정은 SQLite(선택적 암호화) 또는 PostgreSQL에 저장하고, 첨부 파일은 로컬 디스크나 S3, Google Cloud Storage, Azure Blob Storage에 둔다. RAG는 ChromaDB, PGVector, Qdrant, Milvus, Elasticsearch, OpenSearch, Pinecone, S3Vector, Oracle 23ai 중 하나를 벡터 저장소로 골라 BM25와 벡터를 섞은 하이브리드 검색에 리랭킹을 얹는다. 세션은 Redis로 공유하고 WebSocket으로 다중 인스턴스를 연결한다.

무엇과 다른가

제공자 콘솔에서는 모델과 대화 이력이 각 서비스에 묶인다. Open WebUI는 API URL 단위로 모델을 등록해 LMStudio, GroqCloud, Mistral, OpenRouter, vLLM을 한 목록에 섞는다. 확장 지점도 다르다. Filters, Actions, Pipes, Tools, Skills 다섯 종류의 플러그인과 MCP, MCPO, OpenAPI 도구 서버를 붙여 동작을 바꾸고, 관리자가 역할·그룹 단위로 권한을 지정한다.

어떻게 쓰나

설치는 pip, uv, Docker, Kubernetes(kubectl, kustomize, helm) 중 하나로 한다. 컨테이너 이미지는 :ollama와 :cuda 태그를 제공한다. 실행 후 관리자 설정에서 모델 API URL과 키를 등록하면 모델이 목록에 나타난다. 대화 입력창에서 # 뒤에 문서나 URL을 붙여 컨텍스트로 주입하고, 달력·자동화·채널은 같은 인스턴스 안에서 관리한다.

전제와 한계

동작하려면 Ollama 인스턴스나 OpenAI 호환 API 엔드포인트가 최소 하나 필요하다. 완전 오프라인 실행은 로컬 모델을 돌릴 하드웨어가 전제다. RAG를 쓰려면 벡터 DB를 별도로 정해야 하고, 수평 확장에는 Redis 기반 세션 관리가 필요하다. PWA 오프라인 접근은 localhost로 제한된다.

관련 논문 5

유사 도구