import requests
from qdrant_client import QdrantClient, models
EMBEDDING_DIMENSIONALITY = 512
collection_name = "hw3"
qd_client = QdrantClient("http://localhost:6333")
qd_client.delete_collection(collection_name=collection_name)
qd_client.create_collection(
collection_name=collection_name,
vectors_config=models.VectorParams(
size=EMBEDDING_DIMENSIONALITY,
distance=models.Distance.COSINE
)
)
qd_client.create_payload_index(
collection_name=collection_name,
field_name="course",
field_schema="keyword"
)
points = []
for i, doc in enumerate(documents):
text = doc['question'] + ' ' + doc['text']
vector = models.Document(text=text, model="jinaai/jina-embeddings-v2-small-en")
point = models.PointStruct(
id=i,
vector=vector,
payload=doc
)
points.append(point)
qd_client.upsert(
collection_name=collection_name,
points=points
)
def qdsearch(q):
results = qd_client.query_points(
collection_name=collection_name,
query=models.Document(
text=q['question'],
model="jinaai/jina-embeddings-v2-small-en"
),
limit=5, # top closest matches
with_payload=True #to get metadata in the results
)
return [p.payload for p in results.points if p.payload and 'id' in p.payload]
results = evaluate(ground_truth, search_function=qdsearch)
print(f"The MRR is: {results['mrr']}")