32 lines
872 B
Python
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')
|