Files
vector_search/clip_endpoint.py
2025-04-17 15:55:54 -04:00

32 lines
872 B
Python

import open_clip
import torch
do_load = True
if do_load:
#model_name = 'hf-hub:timm/ViT-L-16-SigLIP2-512'
# model, preprocess = open_clip.create_model_from_pretrained('hf-hub:timm/ViT-L-16-SigLIP2-512')
model_name = 'ViT-SO400M-14-SigLIP-384'
pretrained_name = 'webli'
model, _, preprocess = open_clip.create_model_and_transforms(model_name, pretrained=pretrained_name)
device = 'cpu'
model.eval()
tokenizer = open_clip.get_tokenizer(model_name)
from bottle import route, run, template, request, debug
@route('/encode')
def get_matches():
query = request.query.get('query','A large bird eating corn')
with torch.no_grad():
text_tokenized = tokenizer(query)
vec = model.encode_text(text_tokenized).detach().cpu().tolist()
return {'vector':vec}
debug(True)
run(host='0.0.0.0', port=53004, server='bjoern')