Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from dataclasses import dataclass | |
| from pathlib import Path | |
| from ..ingest.index import load_faiss | |
| from ..ingest.models import Chunk | |
| from ..ingest.store import read_chunks, read_json | |
| class RetrievalIndex: | |
| chunks: list[Chunk] | |
| faiss_index: object | |
| concept_index: dict[str, list[str]] | |
| by_id: dict[str, Chunk] | |
| row_by_id: dict[str, int] | |
| def load_index(index_dir) -> RetrievalIndex: | |
| index_dir = Path(index_dir) | |
| chunks = read_chunks(index_dir / "chunks.jsonl") | |
| faiss_index = load_faiss(index_dir / "embeddings.faiss") | |
| concept_index = read_json(index_dir / "concept_index.json") | |
| by_id = {c.id: c for c in chunks} | |
| row_by_id = {c.id: i for i, c in enumerate(chunks)} | |
| return RetrievalIndex(chunks, faiss_index, concept_index, by_id, row_by_id) | |