Smart Connections는 Obsidian에서 노트 간의 관계를 시각화하고, LLM(대규모 언어 모델)을 활용해 노트 내용을 더 깊이 탐색할 수 있게 돕는 플러그인입니다. 유사도를 기반으로 노트를 정렬하거나, 대화형 인터페이스를 통해 데이터를 직관적으로 검색하고 활용할 수 있는 기능을 제공합니다.
이번 글에서는 Smart Connections 플러그인을 사용하며 겪었던 문제점과 해결 시도 과정을 공유하려고 합니다.
Smart Connections 플러그인 설치 및 설정
Obsidian에서 LLM을 활용하기 위해 Smart Connections 플러그인을 설치했습니다. 설치 후 기본 설정에서 BGE-micro라는 임베딩 모델이 사용됩니다. 설치 후 노트 기반 임베딩 생성을 시작하며 BGE-micro 외 다른 임베딩 모델도 선택 가능합니다. 저는 나중에 legacy transformer (v2)를 해제하고 v3로 변경했습니다.
설치 후엔 Smart Connections 탭에서 비슷한 주제를 가진 노트들을 유사도 순으로 확인할 수 있습니다. Smart Chat Conversation View에서는 챗봇 형태로 정보를 검색할 수도 있습니다. 모든 채팅 내용은 smart-chats 폴더에 자동으로 저장됩니다.
모델 설정과 질문 테스트
이제 모델 설정 방법을 알아보겠습니다. 저는 OpenRouter를 이용했습니다. 먼저 설정에서 Model Platform을 OpenRouter로 선택하고, OpenRouter에서 생성한 API Key를 입력합니다. OpenRouter에서 제공하는 무료 모델 중에서는 Liquid: LFM 40B MoE (free)를 선택했습니다.
하지만 실행 시 "An error occurred. See console logs for details." 오류가 발생하였습니다. 콘솔 로그를 확인해보았는데(Mac에서는 cmd + option + i, Windows에서는 ctrl + shift + i),
summary note
와 같은 간단한 질문에도 명확한 에러 메시지를 확인할 수 없었습니다.그래서 llama-3.1-405b-instruct:free 모델로 변경해보았습니다. 이 경우 답변은 생성되었으나, 노트 내용에 접근할 수 없다는 메시지가 표시되었습니다.
summary of [[Obsidian에 LLM적용하기]]
와 같은 질문에도 콘텐츠 접근 불가 메시지만 받았습니다. /journal/
폴더 관련 질문에는 템플릿 기반의 답변이 나왔지만, 2023년 주별 요약이나 날짜별 키워드 등 구체적인 내용은 확인할 수 없었습니다. 이쯤 되니, 노트 수가 적어서 그런가 싶어 더 많은 노트가 있는 2022년에 대해 테스트를 진행해보았습니다. 2022년의 키워드에 대해서는? 키워드별로 노트를 분류해줘 그리고 각 노트의 요약도. 한글로. 하나의 노트에 여러 주제로 글을 쓴 경우도 있으니까 노트당 요약을 개조식으로 작성해줘.
먼저, 2022년 노트 요약을 개조식으로 요청했으나, 답변의 정확도가 매우 낮았습니다. 개별 노트에 대한 답변은 비교적 정확했으나, '개조식'이나 '한글로'와 같은 형식 요청은 반영되지 않았습니다. 레퍼런스 정보도 부정확하거나 확인이 불가능한 경우가 많았습니다.
다른 모델 사용 결과
몇 가지 다른 모델로도 테스트를 진행해보았습니다.
openrouter는 동시 사용에 제한이 있지만, mistral, llama 등의 무료 모델은 적용이 용이했습니다. Google Gemini(gemini1.5 flash)의 경우 다소 긴 답변이었으나 만족스러운 결과를 얻을 수 있었습니다. 반면 cohere command-R은 undefined만 출력되는 문제가 있었습니다.
또한, 임베딩 모델을 text-embeding-large로 변경했을 때 전반적인 성능이 향상되었습니다.
추가 플러그인
함께 사용할 수 있는 플러그인으로는 smart connect와 Smart-Connections-Visualizer가 있습니다. 현재는 실험적인 버전이어서 테스트를 진행하지 않았으나 이러한 플러그인들은 궁극적으로 클라우드 저장 없이 오프라인 환경에서 LLM을 활용하는 것을 목표로 하는 것으로 보입니다.
결론
지금까지 옵시디언에서 Smart Connections 플러그인과 OpenRouter를 활용하는 방법에 대해 알아보았습니다. 현재는 성능과 안정성 측면에서 개선이 필요하지만, 로컬 환경에서 LLM을 활용할 수 있는 가능성을 확인할 수 있었습니다. 앞으로 LLM 기술이 발전하고 플러그인이 업데이트되면서 Obsidian에서 더욱 효과적인 LLM 활용이 가능해질 것으로 기대됩니다.