Support Qdrant collection API variants
This commit is contained in:
+21
-10
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user