그럼 가입 없이 바로 실행 가능한 Vector DB 예제를 만들어 드리겠습니다.
- FAISS (로컬 Vector DB, 가입 불필요)
- Hugging Face 무료 Embedding 모델 (
sentence-transformers)
즉, API 키도 필요 없고, 사이트 가입도 필요 없습니다.
pip install faiss-cpu sentence-transformers
from sentence_transformers import SentenceTransformer
import faiss
import numpy as np
# 1. 무료 Embedding 모델 로드
model = SentenceTransformer('all-MiniLM-L6-v2') # 384차원, 빠르고 가벼움
# 2. 데이터 준비
texts = [
"안녕하세요, 저는 AI를 좋아합니다.",
"벡터 데이터베이스는 유사도 검색에 유용합니다.",
"오늘 날씨가 참 좋네요.",
"FAISS는 로컬에서 빠르게 동작합니다."
]
# 3. 텍스트를 벡터로 변환
embeddings = model.encode(texts)
embeddings = np.array(embeddings, dtype='float32')
# 4. FAISS 인덱스 생성
dimension = embeddings.shape[1] # 384
index = faiss.IndexFlatL2(dimension) # L2 거리 기반 검색
index.add(embeddings) # 데이터 추가
# 5. 검색 쿼리
query = "벡터 DB는 무엇인가요?"
query_vector = model.encode([query])
query_vector = np.array(query_vector, dtype='float32')
# 6. 검색 실행
k = 2 # 상위 2개 결과
distances, indices = index.search(query_vector, k)
# 7. 결과 출력
print("검색 쿼리:", query)
for i, idx in enumerate(indices[0]):
print(f"결과 {i+1}: {texts[idx]} (거리: {distances[0][i]:.4f})")
검색 쿼리: 벡터 DB는 무엇인가요?
결과 1: 벡터 데이터베이스는 유사도 검색에 유용합니다. (거리: 0.1234)
결과 2: FAISS는 로컬에서 빠르게 동작합니다. (거리: 0.4567)
가입 불필요: API 키 없이 바로 실행
무료: 오픈소스 라이브러리와 무료 모델 사용
빠름: 로컬에서 즉시 검색 가능
한국어 지원: all-MiniLM-L6-v2 모델은 한국어도 어느 정도 지원
로컬 메모리 용량에 따라 저장 가능한 데이터 크기 제한
대규모 데이터(수백만 건) 처리 시 속도 저하 가능
Hugging Face 모델은 처음 실행 시 인터넷에서 다운로드 (1회만)
Python 3.13 호환성 문제
transformers 라이브러리가 아직 Python 3.13에서 완벽히 테스트되지 않았을 수 있음
특히 Path 순회하면서 import 구조를 만드는 부분에서 오래 걸리는 경우가 있음
패키지 설치 문제
sentence_transformers와 transformers 버전 불일치
오래된 버전이거나, 최신 버전이 Python 3.13에서 최적화 안 됨
환경 문제
Windows에서 파일 시스템 접근 속도가 느려서 import 구조 생성이 오래 걸림
가상환경 없이 전역 Python에 설치해서 충돌 가능성 있음
# 새 가상환경 생성
python -m venv .venv
# 활성화
.venv\Scripts\activate
# 필요한 패키지 설치
pip install --upgrade pip
pip install sentence-transformers faiss-cpu
→ 가상환경에서 실행하면 다른 패키지와 충돌을 줄일 수 있습니다.
현재 Python 3.13은 아직 많은 AI 라이브러리에서 공식 지원이 불완전합니다.
Python 3.10~3.11로 내려가면 대부분 문제 없이 동작합니다.
예:
# 예: pyenv 또는 직접 설치
pyenv install 3.10.13
pyenv local 3.10.13
Windows라면 Python 공식 사이트에서 3.10 설치 후
가상환경에서 실행하세요.
pip install "transformers==4.35.2" "sentence-transformers==2.2.2"
→ 안정적으로 동작하는 버전 조합입니다.
- AI 관련 라이브러리는 최신 Python 버전보다 안정 버전(3.10~3.11)에서 테스트하는 게 안전합니다.
- 가상환경을 쓰면 프로젝트별로 패키지 버전 관리가 쉬워집니다.
faiss는 Windows에서 설치 시faiss-cpu버전을 쓰는 게 호환성이 좋습니다.
💡 제안
지금 바로 해결하려면
1) Python 3.10로 새 가상환경 만들고
2) sentence-transformers와 faiss-cpu를 설치한 뒤
3) 방금 작성한 main() 구조 코드로 실행해보시면 됩니다.