File size: 917 Bytes
61bc9be
 
 
bce21ce
 
 
61bc9be
 
 
 
bce21ce
 
 
 
 
61bc9be
 
bce21ce
61bc9be
 
 
 
bce21ce
61bc9be
bce21ce
61bc9be
 
d871817
61bc9be
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import gradio as gr
from transformers import AutoImageProcessor, AutoModel
import torch
from PIL import Image
import base64
import io

processor = AutoImageProcessor.from_pretrained("facebook/dinov2-base")
model = AutoModel.from_pretrained("facebook/dinov2-base")

def get_embedding(base64_str):
    header, encoded = base64_str.split(",", 1)
    image_data = base64.b64decode(encoded)
    image = Image.open(io.BytesIO(image_data)).convert("RGB")

    inputs = processor(images=image, return_tensors="pt")
    with torch.no_grad():
        embeddings = model(**inputs).last_hidden_state[:, 0]
    return embeddings.squeeze().tolist()

iface = gr.Interface(
    fn=get_embedding,
    inputs="text",  # ahora recibimos un string base64
    outputs="json",
    description="Microservicio para extraer embeddings desde base64."
)

iface.queue()  # 👈 Esta línea activa el sistema de event_id y polling
iface.launch()