Weaviate Retriever¶
Use WeaviateRetriever to evaluate objects in Weaviate collections.
Install¶
pip install "evret[weaviate]"
Basic Usage¶
from evret.retrievers import WeaviateRetriever
def encode_query(query: str) -> list[float]:
return embedding_model.embed_query(query)
retriever = WeaviateRetriever(
collection_name="Docs",
query_encoder=encode_query,
url="http://localhost:8080",
id_field="doc_id",
return_properties=["doc_id", "text", "source"],
)
results = retriever.retrieve("how to tune ndcg", k=5)
for item in results:
print(item.doc_id, item.score, item.metadata)
With an Existing Weaviate Client¶
import weaviate
client = weaviate.connect_to_local()
retriever = WeaviateRetriever(
collection_name="Docs",
query_encoder=encode_query,
client=client,
query_filter=my_filter,
)
Notes¶
query_encodermust return a non-empty vector- Scores are derived from metadata (
certainty,distance, orscore) - Works with clients that expose
collections.use/get