de-dsi / app.py
mg98's picture
pip dependencies
674c62e verified
raw
history blame
1.74 kB
import gradio as gr
from transformers import pipeline
model_pipeline = pipeline("text2text-generation", model="tribler/dsi-search-on-toy-dataset")
def process_query(query):
results = model_pipeline(query, max_length=60)
result_text = results[0]['generated_text'].strip()
if result_text.startswith("http"):
youtube_id = result_text.split('watch?v=')[-1]
iframe = f'<iframe width="560" height="315" src="https://www.youtube.com/embed/{youtube_id}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'
return gr.HTML(iframe)
elif result_text.startswith("magnet"):
return gr.HTML(f'<a href="{result_text}" target="_blank">{result_text}</a>')
else:
bitcoin_logo_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Bitcoin.svg/800px-Bitcoin.svg.png"
return gr.Textbox(f'<div style="display:flex;align-items:center;"><img src="{bitcoin_logo_url}" alt="Bitcoin Logo" style="width:20px;height:20px;margin-right:5px;"><span>{result_text}</span></div>')
interface = gr.Interface(fn=process_query,
inputs=gr.Textbox(label="Query"),
outputs="html",
title="Search Interface",
description="Search for movie trailers, music torrents, and bitcoin wallet addresses.",
article="This interface searches a toy dataset and returns a YouTube URL, magnet link, or Bitcoin wallet address.",
examples=[["spider man"], ["oceans 13"], ["sister starlight"], ["bitcoin address of xileno"]])
if __name__ == "__main__":
interface.launch()