벡터 DB 깔기 전에 왜 직접 만들어
모든 vector database 가 같은 세 operation 을 화려한 API 뒤에 숨겨놨어: embed, store, nearest-neighbor query. 이 세 개를 NumPy 30줄로 짤 수 있으면 vector-DB 문서를 더 빨리 읽고, 나쁜 결과를 더 빨리 디버깅하고, default 값을 멍청하게 믿지 않아.
한 화면에 전체 루프
할 거:
- 로컬 모델로 작은 코퍼스 임베딩.
- 벡터를 NumPy 매트릭스에, 문서를 병렬 리스트에 저장.
- 쿼리 임베딩, 모든 row 와 cosine 유사도, top-k 반환.
Chroma 와 pgvector 가 내부적으로 하는 게 정확히 이거야 — 영속성, 메타데이터 필터링, 스케일을 위한 인덱스만 추가됐을 뿐. retrieval 로직은 같아.