import pinecone import os API_KEY = os.getenv("PINECONE_API_KEY") pinecone.init(api_key=API_KEY, environment="gcp-starter") class PineconeClient: def __init__(self, index_name:str): self.index_name = index_name self.index = pinecone.Index(self.index_name) def upsert_vectors(self, vectors:list): return self.index.upsert(vectors=vectors) def query_similarity(self, query_vector:list, top_k=5, genre:list=[], filter_rating=0): response = self.index.query( top_k=top_k, include_values=False, include_metadata=True, vector=query_vector, filter={ "Generes": { "${}in".format('n' if not genre else ''): genre }, "Rating": { "$gte": filter_rating } } ) return response.to_dict()["matches"]