Study/AI
[LangChain] 벡터스토어(VectorStore) ChromaDB, FaissDB 저장하고 불러오기
728x90
반응형
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는 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
반응형
'Study > AI' 카테고리의 다른 글
[LangChain] 검색기, Retriever의 search_type, search_kwargs 알아보기 (0) | 2025.08.24 |
---|---|
[LangChain] 검색기, Retriever 개념. similarity_search와 차이점 (0) | 2025.08.24 |
[LangChain] 벡터스토어(VectorStore)란, Chroma DB (1) | 2025.08.21 |
[LangChain] HuggingFaceEmbedding (6) | 2025.08.18 |
[LangChain] OpenAIEmbedding, 코사인 유사도 (0) | 2025.08.18 |
댓글