File size: 575 Bytes
d4852d9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import itertools
import os
import numpy as np
import faiss
from app.database import ItemDatabase
class RecommenderSystem:
def __init__(self, faiss_index_path, db_path):
self._index = faiss.read_index(faiss_index_path)
self._db = ItemDatabase(db_path)
def recommend_items(self, query, n_items=10):
query_embedding = self._db.get_item(query)["embedding"]
_, results = self._index.search(query_embedding, k=n_items+1)
results = filter(lambda item: item != query, results[0])
return itertools.islice(results, n_items)
|