feat: Initial v0.9 release with API Key authentication
## v0.9.20260325_144654 ### Features - API Key Authentication System - Job Worker System - V2 Backup Versioning ### Bug Fixes - get_processor_results_by_job column mapping Co-authored-by: OpenCode
This commit is contained in:
84
scripts/test_object_search.py
Normal file
84
scripts/test_object_search.py
Normal file
@@ -0,0 +1,84 @@
|
||||
#!/opt/homebrew/bin/python3.11
|
||||
"""
|
||||
Object search test using PostgreSQL JSON queries
|
||||
"""
|
||||
|
||||
import time
|
||||
import psycopg2
|
||||
|
||||
|
||||
VIDEO_UUID = "39567a0eb16f39fd"
|
||||
|
||||
POSTGRES_CONFIG = {
|
||||
"host": "localhost",
|
||||
"port": 5432,
|
||||
"user": "accusys",
|
||||
"password": "Test3200",
|
||||
"database": "momentry",
|
||||
}
|
||||
|
||||
|
||||
def test_object_search():
|
||||
"""Test object search using PostgreSQL JSON queries"""
|
||||
results = {}
|
||||
test_objects = ["person", "car", "clock", "tie", "chair", "bottle", "cup", "book"]
|
||||
|
||||
conn = psycopg2.connect(**POSTGRES_CONFIG)
|
||||
cur = conn.cursor()
|
||||
|
||||
for obj in test_objects:
|
||||
start = time.time()
|
||||
|
||||
# Query chunks that have this object in YOLO metadata
|
||||
query = """
|
||||
SELECT chunk_id, start_time, end_time
|
||||
FROM chunks
|
||||
WHERE uuid = %s
|
||||
AND chunk_type = 'sentence'
|
||||
AND metadata IS NOT NULL
|
||||
AND metadata->'yolo'->'objects' ? %s
|
||||
ORDER BY chunk_index
|
||||
LIMIT 10
|
||||
"""
|
||||
cur.execute(query, (VIDEO_UUID, obj))
|
||||
rows = cur.fetchall()
|
||||
|
||||
elapsed = (time.time() - start) * 1000
|
||||
results[obj] = {
|
||||
"ms": round(elapsed, 2),
|
||||
"chunks": len(rows),
|
||||
"sample": [
|
||||
{"id": r[0], "time": f"{r[1]:.1f}-{r[2]:.1f}"} for r in rows[:3]
|
||||
],
|
||||
}
|
||||
print(f"Object '{obj}': {elapsed:.2f}ms, {len(rows)} chunks")
|
||||
|
||||
cur.close()
|
||||
conn.close()
|
||||
|
||||
return results
|
||||
|
||||
|
||||
def main():
|
||||
print("=" * 60)
|
||||
print("Object Search Test (Priority c)")
|
||||
print("=" * 60)
|
||||
|
||||
results = test_object_search()
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("Summary")
|
||||
print("=" * 60)
|
||||
print(f"\n{'Object':<20} | {'Time (ms)':<12} | {'Chunks'}")
|
||||
print("-" * 50)
|
||||
for obj, data in results.items():
|
||||
print(f"{obj:<20} | {data['ms']:<12.1f} | {data['chunks']}")
|
||||
|
||||
print("\nSample results:")
|
||||
for obj, data in results.items():
|
||||
if data["sample"]:
|
||||
print(f" {obj}: {data['sample']}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user