프로젝트 소개

Oneiron은 벡터, 텍스트, 그래프 데이터베이스를 위한 별도의 서비스가 필요한 기존 스택과 달리, 단일 프로세스 내에서 실행되는 Rust 라이브러리입니다. 이 아키텍처는 네트워크 지연과 일관성 문제를 제거하여 모바일 장치(iOS, Android), 데스크톱, Node.js, 또는 `oneiron-server`를 통한 독립 실행형 데몬에 적합합니다. 엔진은 ACID 트랜잭션이 있는 단일 LMDB 환경을 활용하여 원자적 다중 데이터베이스 쓰기를 제공합니다. 다음과 같은 다섯 가지 검색 신호를 지원합니다: - **벡터**: SIMD 가속을 사용한 HNSW(평면 NSW)로 의미적 유사성을 찾습니다. - **텍스트**: BM25 역색인으로 정확한 키워드 일치를 수행합니다. - **그래프**: 유형이 지정된 에지에서 개인화된 PageRank를 사용하여 관계형 엔티티를 발견합니다. - **시간**: 이중 시간 범위 인덱스로 이벤트 기반 쿼리를 처리합니다. - **음성**: 코드 기반 게시 목록으로 음성/ASR 입력에서 퍼지 일치를 수행합니다. 이러한 신호는 신호별 부스트를 사용한 상호 순위 융합을 통해 결합할 수 있습니다. 시스템은 MessagePack 형식으로 엔티티 블롭을 저장하고, LLM 준비 구조에 컨텍스트를 패킹합니다. Oneiron은 Apache 2.0 라이선스 하에 배포되며, Rust 라이브러리 인터페이스와 서버 측 배포를 위한 로컬 데몬을 제공합니다.