70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
|
|
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)
|