feat: extends brute force triplet search for weaviate db
This commit is contained in:
parent
4c9d816f87
commit
98a517dd9f
1 changed files with 30 additions and 0 deletions
|
|
@ -153,6 +153,36 @@ class WeaviateAdapter(VectorDBInterface):
|
||||||
|
|
||||||
return await future
|
return await future
|
||||||
|
|
||||||
|
async def get_distances_of_collection(
|
||||||
|
self,
|
||||||
|
collection_name: str,
|
||||||
|
query_text: str = None,
|
||||||
|
query_vector: List[float] = None,
|
||||||
|
with_vector: bool = False
|
||||||
|
) -> List[ScoredResult]:
|
||||||
|
import weaviate.classes as wvc
|
||||||
|
|
||||||
|
if query_text is None and query_vector is None:
|
||||||
|
raise ValueError("One of query_text or query_vector must be provided!")
|
||||||
|
|
||||||
|
if query_vector is None:
|
||||||
|
query_vector = (await self.embed_data([query_text]))[0]
|
||||||
|
|
||||||
|
search_result = self.get_collection(collection_name).query.hybrid(
|
||||||
|
query=None,
|
||||||
|
vector=query_vector,
|
||||||
|
include_vector=with_vector,
|
||||||
|
return_metadata=wvc.query.MetadataQuery(score=True),
|
||||||
|
)
|
||||||
|
|
||||||
|
return [
|
||||||
|
ScoredResult(
|
||||||
|
id=UUID(str(result.uuid)),
|
||||||
|
payload=result.properties,
|
||||||
|
score=1 - float(result.metadata.score)
|
||||||
|
) for result in search_result.objects
|
||||||
|
]
|
||||||
|
|
||||||
async def search(
|
async def search(
|
||||||
self,
|
self,
|
||||||
collection_name: str,
|
collection_name: str,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue