Support Qdrant collection API variants

This commit is contained in:
george
2026-06-05 23:51:16 +01:00
parent 866e09057a
commit 67d5d6d16a
+21 -10
View File
@@ -64,6 +64,25 @@ def get_embedding_size() -> int:
return 384 return 384
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)
try:
client.create_collection(
collection_name=collection_name,
vectors_config=vector_params,
wait=True,
)
except TypeError as exc:
if "vectors_config" not in str(exc):
raise
client.create_collection(
collection_name=collection_name,
vectors=vector_params,
wait=True,
)
async def ensure_collection(vector_size: Optional[int] = None) -> Dict[str, Any]: async def ensure_collection(vector_size: Optional[int] = None) -> Dict[str, Any]:
""" """
Ensure the Qdrant collection exists with proper schema. Ensure the Qdrant collection exists with proper schema.
@@ -91,11 +110,7 @@ async def ensure_collection(vector_size: Optional[int] = None) -> Dict[str, Any]
if not collection_exists: if not collection_exists:
# Create new collection # Create new collection
client.create_collection( create_collection(client, _collection_name, size, distance)
collection_name=_collection_name,
vectors=VectorParams(size=size, distance=distance),
wait=True
)
return { return {
"success": True, "success": True,
@@ -112,11 +127,7 @@ async def ensure_collection(vector_size: Optional[int] = None) -> Dict[str, Any]
if current_size != size: if current_size != size:
# Collection exists with wrong size - delete and recreate # Collection exists with wrong size - delete and recreate
client.delete_collection(_collection_name) client.delete_collection(_collection_name)
client.create_collection( create_collection(client, _collection_name, size, distance)
collection_name=_collection_name,
vectors=VectorParams(size=size, distance=distance),
wait=True
)
return { return {
"success": True, "success": True,