← Projects

Mirocell

vault 노트를 RAG로 연결하는 개인 지식 Agent 시스템

2026.04 ~ Python · FastAPI · ChromaDB · Ollama · sentence-transformers
GitHub ↗

기술 스택

분류 기술
Language Python 3.13
Framework FastAPI, Pydantic
임베딩 sentence-transformers (multilingual-e5-small, 로컬)
벡터 DB ChromaDB (로컬)
LLM Ollama (gemma4:e4b, 로컬)

핵심 기능

Ingest — 노트 벡터화

vault의 마크다운 노트를 읽어서 frontmatter 파싱 → 섹션별 청킹 → 로컬 임베딩 모델로 벡터 변환 → ChromaDB에 저장하는 파이프라인.

Agent — 새 노트 분석

새 노트를 넣으면 기존 벡터DB에서 유사 노트를 검색하고, LLM이 태그 추천 / 요약 생성 / 관련 노트 연결을 제안한다.

Q&A — 질문-답변

자연어 질문을 임베딩해서 벡터 유사도로 관련 청크를 검색하고, 검색된 내용을 컨텍스트로 LLM에 전달해 답변을 생성한다.

구조

mirocell/
├── main.py          ← CLI 진입점
├── ingest/          ← 문서 로드, 청킹, 임베딩
│   ├── loader.py
│   ├── chunker.py
│   └── embedder.py
├── agent/           ← 태깅, 요약, 관련 노트 연결
│   ├── connector.py
│   └── analyzer.py
├── search/          ← 벡터 검색, Q&A
│   └── query.py
└── chroma_data/     ← 벡터 DB (로컬 저장)

사용

python main.py ingest              # vault 노트 전체 벡터화
python main.py agent new_note.md   # 새 노트 태그/요약/관련노트 추천
python main.py ask "RBAC가 뭐야?"   # 노트 기반 질문-답변

설계 포인트

  • 임베딩과 LLM 모두 로컬 실행. 외부 API 의존 없이 오프라인 동작
  • vault 노트의 ## 헤딩 구조를 활용한 의미 단위 청킹
  • 기존 태그 목록을 LLM에 함께 전달해서 태깅 일관성 유지
sunshinemoon · 2026