AccessoryIQ-V2 / scripts /build_index.py
Manisankarrr's picture
project completed
ac7a11a
Raw
History Blame Contribute Delete
1.63 kB
import argparse
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from dotenv import load_dotenv
load_dotenv()
from retrieval.ingest import (
ingest_all_dataset_files,
clear_and_rebuild_index,
ingest_folder
)
from retrieval.faiss_store import index_size
def main():
parser = argparse.ArgumentParser(description="Build AccessoryIQ FAISS index")
parser.add_argument("--rebuild", action="store_true",
help="Clear existing index and rebuild from scratch")
parser.add_argument("--folder", type=str, default=None,
help="Ingest only a specific subfolder")
parser.add_argument("--sample", action="store_true",
help="Also ingest sample data from ingest.py")
args = parser.parse_args()
print("\n" + "─"*50)
print(" AccessoryIQ v2 β€” Index Builder")
print("─"*50)
print(f" Current index size: {index_size()} vectors")
print("─"*50 + "\n")
if args.rebuild:
clear_and_rebuild_index()
elif args.folder:
path = f"data/manuals/{args.folder}"
if not os.path.exists(path):
print(f"[ERROR] Folder not found: {path}")
sys.exit(1)
ingest_folder(path)
else:
if args.sample:
from retrieval.ingest import ingest_sample_data
ingest_sample_data()
ingest_all_dataset_files()
final_size = index_size()
print(f"\n{'─'*50}")
print(f" βœ“ Index build complete: {final_size} vectors")
print(f"─"*50 + "\n")
if __name__ == "__main__":
main()