from qdrant_client import QdrantClient from core.clients import get_qdrant from core.config import QDRANT_COLLECTION from qdrant_client.http.models import PointStruct client = get_qdrant() collection_name = QDRANT_COLLECTION # 2. Recreate with named vectors from qdrant_client.http.models import VectorParams, Distance, VectorParamsDiff from qdrant_client.models import CreateAliasOperation, CreateAlias, DeleteAliasOperation #new_collection_name = f"{collection_name}_v2" #client.create_collection( # collection_name=new_collection_name, # vectors_config={ # "clip_text_embedding": VectorParams(size=512, distance=Distance.COSINE), # "clip_image_embedding": VectorParams(size=512, distance=Distance.COSINE), # "dinov2_embedding": VectorParams(size=1024, distance=Distance.COSINE) # } #) # Step 1: Create a temporary alias for the old collection client.update_collection_aliases( change_aliases_operations=[ CreateAliasOperation( create_alias=CreateAlias( collection_name="object_collection", alias_name="object_collection_v1" ) ) ] ) print("āœ“ Created temporary alias: 'object_collection_v1' points to old collection") # Step 2: Delete the old collection (now accessible via object_collection_old) client.delete_collection("object_collection") print("āœ“ Deleted old collection (still accessible as 'object_collection_v1')") # Step 3: Create the main alias pointing to your new collection client.update_collection_aliases( change_aliases_operations=[ CreateAliasOperation( create_alias=CreateAlias( collection_name="object_collection_v2", alias_name="object_collection" ) ) ] ) print("āœ“ Created main alias: 'object_collection' now points to 'object_collection_v2'") # Step 4: Clean up - delete the temporary alias (optional) #client.update_collection_aliases( # change_aliases_operations=[ # DeleteAliasOperation( # delete_alias="object_collection_old" # ) # ] #) #print("āœ“ Cleaned up temporary alias") print("\nšŸŽ‰ Swap complete! 'object_collection' now uses your new collection with DINOv2 support")