|
from pinecone import Pinecone
|
|
from sentence_transformers import SentenceTransformer
|
|
import uuid
|
|
|
|
|
|
model = SentenceTransformer("sentence-transformers/all-roberta-large-v1")
|
|
|
|
|
|
pc = Pinecone(api_key="pcsk_5CWCFt_9nPiRVa65nG4rs6ZC2cqnEthBSvcEhuQa53TK7FN6rwYZW1qQpacqoAvGUjNCFU")
|
|
index = pc.Index("aped-4627-b74a")
|
|
|
|
|
|
texts = [
|
|
("This is a drama example", "drama"),
|
|
("A high-action thriller scene", "action"),
|
|
("Romantic movie with emotional plot", "drama"),
|
|
("Explosions and car chases", "action")
|
|
]
|
|
|
|
|
|
vectors = []
|
|
for i, (text, genre) in enumerate(texts):
|
|
embedding = model.encode(text).tolist()
|
|
vectors.append({
|
|
"id": f"vec_{i}_{uuid.uuid4().hex[:8]}",
|
|
"values": embedding,
|
|
"metadata": {"genre": genre}
|
|
})
|
|
|
|
|
|
index.upsert(
|
|
vectors=vectors,
|
|
namespace="ns1"
|
|
)
|
|
|
|
|
|
query_vector = model.encode("Intense action movie").tolist()
|
|
|
|
response = index.query(
|
|
namespace="ns1",
|
|
vector=query_vector,
|
|
top_k=2,
|
|
include_values=True,
|
|
include_metadata=True,
|
|
filter={"genre": {"$eq": "action"}}
|
|
)
|
|
|
|
print(response)
|
|
|