|
|
|
|
|
|
|
|
|
|
|
from langchain_community.vectorstores import FAISS
|
|
|
from langchain_community.embeddings import HuggingFaceEmbeddings
|
|
|
import config
|
|
|
|
|
|
def get_embeddings_model(model_name=config.EMBEDDING_MODEL_NAME):
|
|
|
"""Loads and returns the embedding model."""
|
|
|
print(f"Loading embedding model: {model_name}...")
|
|
|
return HuggingFaceEmbeddings(model_name=model_name)
|
|
|
|
|
|
def create_and_save_store(documents, embeddings, save_path=config.VECTOR_STORE_PATH):
|
|
|
"""
|
|
|
Creates a FAISS vector database from the given documents and saves it to disk.
|
|
|
"""
|
|
|
print("Creating and saving the FAISS vector store...")
|
|
|
vector_store = FAISS.from_documents(documents, embeddings)
|
|
|
vector_store.save_local(save_path)
|
|
|
print(f"✅ Vector store successfully saved to '{save_path}'.")
|
|
|
|
|
|
def load_store(embeddings, load_path=config.VECTOR_STORE_PATH):
|
|
|
"""
|
|
|
Loads the FAISS vector database from a local path.
|
|
|
"""
|
|
|
print(f"Loading vector store from: {load_path}...")
|
|
|
|
|
|
return FAISS.load_local(load_path, embeddings, allow_dangerous_deserialization=True)
|
|
|
|
|
|
|