옵시디언 노트 시맨틱 검색 플러그인: 1차 개발 완료

반응형

현재 옵시디언 노트를 위한 시맨틱 검색 플러그인을 개발하고 있습니다.

 

제가 검색에서 가장 중요하게 고려한 부분은 벡터DB와 임베딩 모델의 선택이었습니다.
최종적으로 파인콘DB와 OpenAI의 text-embedding-3-small 모델을 채택했습니다.

 

파인콘DB를 선택한 이유는 무료 플랜 때문입니다. 최대 2GB 스토리지와 5개의 인덱스, 인덱스당 100개의 네임스페이스를 무료로 제공하기 때문에 개인 용도로 사용하기에는 충분하다고 생각됩니다.
그리고 OpenAI 모델은 다국어 임베딩 성능과 가성비 측면에서 최적의 선택이었습니다.

 

프레임워크 선택

UI의 복잡도가 점점 증가함에 따라 옵시디언에 제공하는 기본 메서드인 createEl() 로는 UI 개발에 한계가 있었습니다.

 

그래서 이번에 UI 프레임워크 후보로 Svelte, Preact, React 도입을 검토했습니다.
경량 프레임워크인 Svelte와 Preact를 우선 고려했지만, 결국 내가 가장 익숙한 React를 선택했습니다.
React 도입 후에는 UI 개발 속도가 크게 개선되었고, 계획했던 기능들을 모두 구현할 수 있었습니다.

 

이제는 실제 사용을 통해 버그를 수정하고 기능을 개선해 나갈 단계입니다.

 

Smart Seeker 기능 소개

노트 시맨틱 검색 기능

사용자의 검색 문장과 가장 유사한 노트 블럭을 의미론적 알고리즘을 통해 찾아 제공합니다.

 

파인콘 DB의 내적 유사성(dot product similarity) 알고리즘을 기반으로 시맨틱 검색을 구현했습니다.
파인콘DB는 the dotproduct metric을 통해 sparse vectors 쿼리를 지원합니다.

유사한 문서 검색 기능

Smart Connections의 Smart View와 유사한 기능으로, 현재 열람 중인 노트와 가장 높은 유사도를 가진 노트 블럭을 찾아 표시합니다. 오른쪽의 소수점는 유사도 점수를 나타냅니다.

마치며

이 플러그인 개발 과정은 단순한 기술적 챌린지를 넘어, 제 개인 지식 관리 방식을 혁신할 수 있는 흥미로운 여정이었습니다. 시맨틱 검색의 잠재력을 옵시디언 환경에서 구현하면서, 지식 탐색의 새로운 가능성을 발견했습니다.

 

앞으로는 지속적인 개선을 통해 더욱 정교하고 유용한 검색 경험을 만들고자 합니다.
이 플러그인이 옵시디언 사용자들에게 영감과 생산성 향상의 도구가 되길 기대하고 있습니다.

 


 

 

파인콘(Pinecone) 벡터 DB의 무료 플랜 알아보기

옵시디언 RAG 플러그인 분석을 통해 검색 관련 지식 쌓기옵시디언에 작성한 노트와 스크랩한 글들이 쌓이다 보니, 필요한 정보를 찾는 것이 점점 힘들어지고 있습니다. 이러한 문제를 해결하기

anpigon.tistory.com

 

반응형