ai-library-obsidian은(는) 무엇을 하나요?
AI 라이브러리: AI와 Obsidian을 활용한 개인 지식 베이스. Python 백엔드 + Agent Skills + MCP. FastAPI + SQLite FTS5 + LanceDB 하이브리드 검색, ModelScope 무료 모델.
개요
이 프로젝트는 Obsidian 노트를 AI 기반으로 검색하고 관리할 수 있는 개인 지식 베이스 시스템입니다. FastAPI로 구축된 백엔드는 SQLite FTS5와 LanceDB를 결합한 하이브리드 검색을 제공하며, ModelScope의 무료 AI 모델을 활용합니다.
주요 기능
- 하이브리드 검색: SQLite FTS5 전문 검색과 LanceDB 벡터 검색을 결합하여 정확하고 관련성 높은 결과 제공
- AI 통합: ModelScope 무료 모델을 사용한 지식 질의 및 요약
- Obsidian 연동: Obsidian 볼트 내 마크다운 노트 색인 및 검색
- Agent Skills: 다양한 AI 에이전트(Claude Code, Cursor, Codex 등)와 호환
- MCP 지원: Model Context Protocol을 통한 표준화된 컨텍스트 전달
설치 방법
# 저장소 클론
git clone https://github.com/z2839181153/ai-library-obsidian.git
cd ai-library-obsidian
# 의존성 설치
pip install -r requirements.txt
# 데이터베이스 초기화
python init_db.py
환경 설정
.env 파일을 생성하고 다음 변수를 설정합니다:
MODELSCOPE_API_KEY=your_api_key_here
OBSIDIAN_VAULT_PATH=/path/to/your/vault
DATABASE_URL=sqlite:///data/library.db
사용 방법
서버 시작
uvicorn main:app --reload
API 엔드포인트
| 엔드포인트 | 메서드 | 설명 |
|---|---|---|
/search | GET | 키워드 및 의미 기반 검색 |
/query | POST | AI 질의 및 요약 |
/index | POST | Obsidian 볼트 노트 색인 |
예시
import requests
# 검색 요청
response = requests.get("http://localhost:8000/search", params={"q": "Python 비동기 프로그래밍"})
print(response.json())
아키텍처
┌─────────────────────────────────────────┐
│ AI 에이전트 │
│ (Claude Code, Cursor, Codex 등) │
└────────────────┬────────────────────────┘
│ MCP / Agent Skills
┌────────────────▼────────────────────────┐
│ FastAPI 백엔드 │
└──────┬─────────────────────┬───────────┘
│ │
┌──────▼──────┐ ┌────────▼────────┐
│ SQLite FTS5 │ │ LanceDB │
│ (전문 검색) │ │ (벡터 검색) │
└─────────────┘ └─────────────────┘
│ │
└──────────┬──────────┘
│
┌─────────▼─────────┐
│ Obsidian 볼트 │
│ (마크다운 노트) │
└───────────────────┘
라이선스
MIT License