목적: 수집된 공시·뉴스 데이터를 벡터 임베딩하여 시맨틱 검색 기반 RAG(Retrieval-Augmented Generation) 구현
배경: 키워드 검색으로는 “금리 인상에 영향받는 공시”처럼 의미 기반 질의가 불가능. 벡터 검색으로 해결
전체 아키텍처
graph TB
subgraph 수집 ["수집 (n8n Watcher)"]
A["DART / EDGAR / Policy 등"]
end
subgraph 임베딩 ["임베딩 파이프라인"]
B["원문 크롤링"]
C["Token Splitter<br/>(4096 토큰)"]
D["Ollama 임베딩<br/>(BGE-M3 / nomic)"]
end
subgraph 저장 ["벡터 스토어"]
E["Qdrant"]
end
subgraph 검색 ["RAG 검색"]
F["Market Briefings<br/>AI Agent"]
G["Telegram AI<br/>Assistant"]
end
A --> B --> C --> D --> E
E --> F
E --> G
1. Qdrant 컬렉션 구성
컬렉션
Watcher
임베딩 모델
차원
언어
dart-disclosures
DART
BGE-M3
1024
한국어
real-estate-kr
Real Estate KR
BGE-M3
1024
한국어
edgar-filings
EDGAR
nomic-embed-text
768
영어
us-congress-bills
Congress
nomic-embed-text
768
영어
tech-trends
Tech Trend
nomic-embed-text
768
영어
corporate-intel
Corporate Intel
nomic-embed-text
768
영어
policy-regulation
Policy
nomic-embed-text
768
영어
real-estate-us
Real Estate US
nomic-embed-text
768
영어
2. 임베딩 모델 선택
모델별 비교
항목
nomic-embed-text
BGE-M3
차원
768
1024
언어
영어 특화
다국어 (한/영/중/일)
적용 대상
EDGAR, Congress 등 영어 데이터
DART, 한국 부동산 등 한국어 데이터
구동 환경
Ollama (셀프호스팅)
Ollama (셀프호스팅)
BGE-M3 전환 배경
DART 공시, 한국 부동산 데이터에서 nomic-embed-text 사용 시 한국어 시맨틱 검색 품질 저하
BGE-M3로 전환 후 DART/부동산 컬렉션을 1024차원으로 재생성
영어 전용 컬렉션(EDGAR, Congress 등)은 기존 nomic-embed-text 유지
3. 원문 데이터 임베딩 전략
기존 문제
AI 분석 결과(impact/score/summary)만 임베딩 → 원문(회사명, 공시 제목, URL 등)이 벡터 검색에 누락