Support modern Qdrant search API

This commit is contained in:
george
2026-06-06 13:01:52 +01:00
parent 30fe050182
commit 9999572595
3 changed files with 68 additions and 13 deletions
+2 -7
View File
@@ -3,7 +3,7 @@ from typing import List, Dict, Any, Optional
from pathlib import Path
from .config import settings
from .vector_store import get_client, _collection_name as VECTOR_COLLECTION
from .vector_store import get_client, query_points
from .embeddings import embed_text, get_embedding_size
from .db import get_chunks_for_library, list_libraries
@@ -55,12 +55,7 @@ def search_docs(
search_filter = None
# Perform vector search
results = client.search(
collection_name=VECTOR_COLLECTION,
query_vector=query_embedding,
limit=limit,
search_filter=search_filter
)
results = query_points(client, query_embedding, limit, search_filter)
# Format and return results
formatted_results = []
+32 -6
View File
@@ -64,6 +64,37 @@ def get_embedding_size() -> int:
return 384
def query_points(
client: Any,
query_vector: List[float],
limit: int,
search_filter: Optional[Any] = None,
) -> List[Any]:
"""Run a vector query across old and new qdrant-client APIs."""
legacy_search = getattr(client, "search", None)
if callable(legacy_search):
return legacy_search(
collection_name=_collection_name,
query_vector=query_vector,
limit=limit,
search_filter=search_filter,
)
modern_query = getattr(client, "query_points", None)
if not callable(modern_query):
raise RuntimeError(
"Installed qdrant-client supports neither search() nor query_points()"
)
response = modern_query(
collection_name=_collection_name,
query=query_vector,
limit=limit,
query_filter=search_filter,
)
return list(response.points)
def create_collection(client: Any, collection_name: str, size: int, distance: Any) -> None:
"""Create a Qdrant collection across qdrant-client keyword changes."""
vector_params = VectorParams(size=size, distance=distance)
@@ -255,12 +286,7 @@ async def search_vectors(
)
# Perform vector search
results = client.search(
collection_name=_collection_name,
query_vector=query_vector,
limit=limit,
search_filter=search_filter
)
results = query_points(client, query_vector, limit, search_filter)
# Format results
formatted_results = []