본문으로 건너뛰기
LVIS AI

Plugin · Local Indexer

Local Indexer — kiwipiepy + pymupdf4llm + FTS5 + LanceDB

지정한 폴더의 문서를 청크/임베딩하여 채팅 RAG 컨텍스트로 가져옵니다. v0.4.11. 한국어는 kiwi 형태소 → unicode61 토크나이저 결합 (LVIS Phase 1 Pattern B), 검색은 BM25 + tree + vector + cloud 의 RRF (RRF_K=60) 결합.

v0.4.11
id: local-indexer
kiwipiepy
pymupdf4llm
chokidar
Local Indexer 기본 화면 — 인덱싱 폴더 / 통계
폴더 추가 다이얼로그 — include/exclude 패턴
인덱싱 진행 중 — 청크/임베딩 progress

폴더 감시 — chokidar

src/folderIndexer.ts:8 가 chokidar로 add/change/unlink 이벤트 watch. polling default off (:133).

청킹 — Pattern B + 토큰 윈도우

한국어 형태소 = kiwipiepy → unicode61 FTS5. 일반: target=256, overlap=32 tokens (worker/pageindex_indexer.py:58-59).

검색 — RRF 결합

worker/pageindex_search.py:35 RRF_K = 60. 기본 weights bm25=1.5, tree=1.0, vector=1.0, cloud=1.0.

제공 도구 18개

index_scan · index_scan_cancel · index_scan_status · index_documents
index_folders · index_folders_purge_orphans · index_refresh_folder
index_add_folder · index_add_folders · index_remove_folder
index_pick_folder · index_preview_folder · chat_preview
index_search · index_get_document · document_index_scan
index_get_settings · index_set_image_embedding

Skill 키워드

plugin.json:416-453 에 9개 등록 — 문서, 인덱스, 검색, 문서검색,PDF, 파일검색, 문서찾기, 인덱싱, 파일인덱스chat_preview 또는 index_scan 로 매핑.

폴더 추가 흐름

  1. 01

    폴더 picker

    UI에서 index_pick_folder → OS 다이얼로그 → 경로 반환.

  2. 02

    Preview

    index_preview_folder 가 파일 수 / 추정 청크 수 / 대상 확장자 미리보기.

  3. 03

    Add

    index_add_folder 호출 → folderIndexer.ts 가 chokidar watch 시작 + initial scan 큐잉.

  4. 04

    Scan + index

    pymupdf4llm

    index_scan → worker가 파일 파싱 (md/pdf/docx). PDF는 pymupdf4llm.to_markdown(path, page_chunks=True) (worker/pageindex_indexer.py:690). PyPDF2 사용 안 함.

  5. 05

    Chunk + embed + FTS5 + Lance

    kiwi sentence splitter → token-window buffer → unicode61 FTS5 + LanceDB vectors. 저장: <pluginDataDir>/index/{workspace, fts5.sqlite, vectors.lance}.

  6. 06

    Watch — incremental

    이벤트 기반

    이후 파일 add/change/unlink 발생 시 chokidar 이벤트 → incremental re-index.

인덱스 저장 위치 — sandboxed
모든 인덱스는 ~/.lvis/plugins/local-indexer/index/ 아래 (workspace/, fts5.sqlite, vectors.lance). 다른 플러그인 / 호스트 영역 직접 접근 불가 — hostApi.storage.* sandbox FS 강제.