Study/AI

[LangChain] 벡터스토어(VectorStore) ChromaDB, FaissDB 저장하고 불러오기

hongeeii 2025. 8. 21.
728x90
반응형

ChromaDB 저장하고 불러오기

파일로 저장하기

https://hongs-coding.tistory.com/286

전 실습에서 Chroma db를 사용할 땐 휘발성이였다. persist_directory를 파라미터로 넘겨주면 문서를 임베딩한 벡터데이터를 파일로 저장할 수 있다.

db = Chroma.from_documents(
    documents=documents, 
    embedding=hf_embeddings,
    persist_directory="./news_chroma-db"
)
 

위 코드를 실행하면 chroma db가 파일로 저장되는것을 확인할 수 있다.

  • 유사도 검색하기
result = db.similarity_search("신종 바이러스", k = 1)
result

=> [Document(id='6f385338-7511-48b2-97ab-095304347119', metadata={'source': '../docs/news.txt'}, page_content='보건 : 최근 신종 바이러스의 확산이 일부 국가에서 급격히 증가하고 있습니다. 이에 따라 각국 정부는 예방접종 캠페인과 함께 강력한 방역 조치를 시행하고 있습니다. 보건 전문가들은 지속적인 모니터링과 빠른 대응이 필요하다고 강조하고 있습니다.')]
 

파일 불러오기

Chroma 객체를 만들때 'persist_directory' 파라미터에 위에서 저장한 chroma 파일 경로를 넣고, 'embedding_function'에 임베딩 모델을 넣어주면 된다.

from langchain_chroma import Chroma
db = Chroma(persist_directory="./news_chroma-db", embedding_function=hf_embeddings)

result = db.similarity_search_with_relevance_scores("신종 바이러스")
result

 

FaissDB

FaissDB는 Meta에서 만들었으며 고성능 검색이 가능해 대규모 프로젝트에 적합하고, ChromaDB는 소규모 프로젝트에서 적합하다.

FaissDB와 ChromaDB의 사용법은 유사하다.

설치

!pip3 install faiss-cpu==1.10.0
 
from langchain.vectorstores import FAISS

db = FAISS.from_documents(
    documents=documents,
    embedding=hf_embeddings
)
 

사용법은 Chroma_db와 동일하다.

 
728x90
반응형

추천 글