|
import gradio |
|
from towhee.types.image_utils import from_pil |
|
import towhee |
|
import pandas as pd |
|
from pymilvus import connections |
|
import os |
|
|
|
connections.connect( |
|
alias="default", |
|
host=os.getenv("milvus.host"), |
|
port=os.getenv("milvus.port"), |
|
user=os.getenv("milvus.user"), |
|
password=os.getenv("milvus.password") |
|
) |
|
|
|
|
|
with towhee.api() as api: |
|
image_search_function = ( |
|
api.runas_op(func=lambda img: from_pil(img)) |
|
.image_embedding.timm(model_name='resnet50') |
|
.tensor_normalize() |
|
.milvus_search(collection='reverse_image_search', limit=3) |
|
.runas_op(func=lambda res: [x.id for x in res]) |
|
.as_function() |
|
) |
|
|
|
interface = gradio.Interface(image_search_function, |
|
gradio.inputs.Image(type="pil", source='upload'), |
|
[gradio.outputs.Image(type="filepath", label=None) for _ in range(3)] |
|
) |
|
interface.launch(inline=True) |