blip / src /pinecone_store.py
amezi's picture
minor bux fixed
87f3303
raw
history blame
1.1 kB
import pinecone
import os
from dotenv import load_dotenv
load_dotenv()
class PineconeStore:
def __init__(self):
api_key = os.getenv("PINECONE_API_KEY")
environment = os.getenv("PINECONE_ENV")
pinecone.init(api_key=api_key, environment=environment)
self.index_name = "soccer-highlights"
if self.index_name not in pinecone.list_indexes():
pinecone.create_index(
name=self.index_name,
dimension=1024, # Ensure this matches your embedding model's output dimension
metric="cosine" # Choose the appropriate metric (e.g., cosine, euclidean)
)
self.index = pinecone.Index(self.index_name)
def upsert(self, id, vector, metadata):
self.index.upsert([(id, vector.tolist(), metadata)])
def query(self, vector, filter_key, top_k):
return [
m["metadata"] for m in self.index.query(
vector.tolist(),
top_k=top_k,
include_metadata=True
)["matches"] if filter_key in m["id"]
]