File size: 615 Bytes
cbbe164
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import os
import faiss
import pickle
from sentence_transformers import SentenceTransformer

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
VECTOR_DIR = os.path.join(BASE_DIR, "rag", "vectorstore")

index = faiss.read_index(os.path.join(VECTOR_DIR, "index.faiss"))

with open(os.path.join(VECTOR_DIR, "meta.pkl"), "rb") as f:
    documents = pickle.load(f)

model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")


def search_context(query, top_k=3):
    q_emb = model.encode([query])
    D, I = index.search(q_emb, top_k)
    return "\n".join([documents[i] for i in I[0]])