test_app_1 / create_fallback_index.py
areen09's picture
Upload 11 files
bd3e88f verified
Raw History Blame Contribute Delete
1.69 kB
import os
from langchain_community.document_loaders import DirectoryLoader
from langchain_community.vectorstores import FAISS
from langchain_huggingface import HuggingFaceEmbeddings
from rag_pipeline import process_single_file # Re-use our processing logic
from config import settings
def main():
print("Starting creation of the fallback FAISS index...")
# This assumes your general documents are in a folder named 'fallback_documents'
# You can change this path as needed.
source_directory = "fallback_documents"
all_docs = []
for filename in os.listdir(source_directory):
file_path = os.path.join(source_directory, filename)
if os.path.isfile(file_path):
with open(file_path, "rb") as f:
content = f.read()
docs = process_single_file(content, filename)
all_docs.extend(docs)
if not all_docs:
print("No documents found to index. Exiting.")
return
print(f"Generating embeddings for {len(all_docs)} chunks in the fallback documents...")
embeddings = HuggingFaceEmbeddings(model_name=settings.EMBEDDING_MODEL_NAME)
# Create the FAISS index from the documents
vector_store = FAISS.from_documents(all_docs, embeddings)
# Save the index to the path specified in your config
# Ensure this path is inside your persistent storage volume (e.g., /data)
fallback_path = settings.FALLBACK_INDEX_PATH
os.makedirs(fallback_path, exist_ok=True)
vector_store.save_local(fallback_path)
print(f"Fallback index created and saved successfully at: {fallback_path}")
if __name__ == "__main__":
main()