booth-pic-api / backend /scripts /debug_search_logic.py
github-actions
Deploy to HF (clean history with LFS)
a06f06c
import asyncio
import io
import torch
from PIL import Image
from transformers import CLIPProcessor, CLIPModel
from qdrant_client import QdrantClient, models
# Mock the setup
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Device: {device}")
try:
print("Loading model...")
model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32").to(device)
processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32")
qdrant = QdrantClient(":memory:")
print("Model loaded.")
# Create dummy image
img = Image.new('RGB', (100, 100), color = 'red')
# Run logic from search_standalone.py
print("Processing image...")
inputs = processor(images=img, return_tensors="pt").to(device)
with torch.no_grad():
features = model.get_image_features(**inputs)
print(f"Features type: {type(features)}")
# Test normalization
features = features / features.norm(p=2, dim=-1, keepdim=True)
vector = features.cpu().numpy()[0].tolist()
print(f"Vector length: {len(vector)}")
# Test Qdrant search
print("Searching Qdrant...")
results = qdrant.search(
collection_name="booth_items",
query_vector=vector,
limit=10
)
print("Search complete (empty result expected).")
except Exception as e:
import traceback
traceback.print_exc()