from pymilvus import MilvusClient, DataType collection_name = "nuggets_{camera}_so400m_siglip2" client = MilvusClient( uri="http://localhost:19530" ) # %% coll_count = dict() for c in sorted(client.list_collections()): print(c, client.get_load_state(c), client.get_collection_stats(c)) # %% from pymilvus import utility # %% import requests query = 'A squirrel looking at the camera' vec_form = requests.get('http://192.168.1.242:53004/encode',params={'query':query}).json()['vector'][0] # %% from datetime import datetime, timedelta max_age = 5 str_insert = '' days_step = 5 max_date = datetime.now() min_date = max_date - timedelta(days=(max_age-1)) days_step = (max_date- min_date).days day_strs = list() for x in range(days_step): day_strs.append( (min_date + timedelta(days=x)).strftime('%Y%m%d') ) str_insert = ','.join([f'"{x}"'for x in day_strs]) filter_string = 'date in [' + str_insert + ']' import numpy as np col_name = 'nuggets_railing_so400m_siglip2' vec_search = np.asarray(vec_form).astype(np.float16) results = client.search(collection_name = col_name, consistency_level="Eventually", data = [vec_search], filter=filter_string, search_params={'metric_type':'COSINE', 'params':{}}, output_fields=['filepath','frame_number'] ) # %% for c in client.list_collections(): # ff = client.describe_collection(collection_name = c) print(c) # %% col_target = 'nuggets_leopards1_so400m_siglip2' import time # %% print(client.get_collection_stats(c)) # %% # %% st = time.time() results = client.search(collection_name = col_target,data =[np.random.rand(1152).astype(np.float16)], limit = 100) print(len(results[0]), time.time() - st)