자체 호스팅 검색 플랫폼 Omni, Postgres로 구축!

by DD
3개월 전
조회수 30

Omni는 Google Drive, Slack, Confluence 등과 연동되는 자체 호스팅 검색 및 챗 플랫폼

Postgres(ParadeDB, pgvector)를 사용하여 BM25 및 HNSW 기반의 하이브리드 검색을 지원함

데이터 격리 아키텍처(Data Isolation Architecture)를 통해 사용자별 접근 권한을 관리하며, 자체 LLM 사용을 지원함

Postgres 단독 사용의 확장성 및 성능에 대한 커뮤니티의 질문이 이어짐

Postgres 단독 아키텍처의 장단점

Omni는 Postgres(ParadeDB, pgvector)를 사용하여 검색 및 챗 기능을 구현하며, Elasticsearch나 별도의 벡터 데이터베이스(Vector Database)를 사용하지 않는다. 이는 단일 데이터베이스 관리(Single Database Management)의 단순성을 제공하지만, 대규모 데이터 환경에서 성능 병목(Performance Bottleneck)을 야기할 수 있다는 우려가 제기된다. 특히, BM25 및 벡터 검색을 동시에 처리해야 하는 경우, Postgres의 자원 사용률이 높아질 수 있다.

데이터 격리 아키텍처(Data Isolation Architecture) 구현

Omni는 데이터 격리 아키텍처(Data Isolation Architecture)를 통해 각 사용자가 접근 가능한 데이터 범위를 제한한다. 이는 Slack 채널, Jira 티켓 등 권한 기반의 데이터 접근 제어(Access Control)를 가능하게 하며, 사용자별 데이터 접근 권한을 정확하게 관리한다. AWS Q for Business와 같은 유사 솔루션에서 사용자 매핑(User Mapping)이 복잡하다는 점을 고려할 때, Omni의 접근 방식은 주목할 만하다.

하이브리드 검색(Hybrid Search) 기술

Omni는 BM25 기반의 Full-text 검색pgvector 기반의 Semantic 검색을 결합한 하이브리드 검색을 제공한다. BM25는 키워드 기반 검색에 강점을 가지며, pgvector는 의미 기반 검색을 통해 사용자의 의도를 파악하는 데 도움을 준다. 이러한 하이브리드 방식은 검색 정확도를 높이는 데 기여하지만, 두 검색 엔진의 결과 통합(Result Integration) 과정에서 성능 저하가 발생할 수 있다.

LLM 통합 및 자체 호스팅 환경

Omni는 OpenAI, Anthropic, Gemini 등 다양한 LLM 제공업체를 지원하며, 사용자가 직접 LLM을 선택하여 사용할 수 있도록 한다. 또한, 자체 호스팅(Self-hosted) 환경을 제공하여 데이터 유출에 대한 우려를 줄이고, GDPR 규제 준수(GDPR Compliance)를 용이하게 한다. 하지만, 자체 호스팅 환경 구축 및 유지보수에는 추가적인 인프라 관리 비용이 발생할 수 있다.

Show HN: Omni – Open-source workplace search and chat, built on Postgres