chadpanda/PEPE-Semantics
1
1import gradio as gr2import requests3 4SERVERLESS_URL = "https://pepe-semantics-vdn32ryg7q-uc.a.run.app/predict"5 6gTop = []7linkTop = []8 9 10def predict(text):11 global gTop12 global linkTop13 14 r = requests.post(SERVERLESS_URL, json={"text": text})15 dic = r.json()16 links = eval(dic["result"])17 gTop = links[:5]18 19 linkTop = []20 for link in gTop:21 path = ""22 linkTop.append(path)23 24 return linkTop25 26 27callback = gr.CSVLogger()28 29css_bg_img = ".gradio-container {background-image: url('file=https://i.kym-cdn.com/photos/images/original/001/440/489/55b.png'); background-position: center;}"30 31 32with gr.Blocks(css=css_bg_img) as demo:33 gr.Markdown(34 """<h1 style='text-align: center;'><span style="background-color:white;">PEPE-Sematics</span></h1>"""35 )36 gr.Markdown(37 """38 <p style="text-align:center;background-color: #FFFFFF" ><b>The world of GIFs needs saviour. While it has initially thrived on the legacy39 of a few GIFs, the Gifverse is becoming chaotic and it is becoming very difficult to find good Gifs. 40 Swoops in PEPE-Sematic to help those in need.<b></p>41 42 <center>43 <iframe src="https://giphy.com/embed/rBSB0tULImCv9DJi1P" width="480" height="361" frameBorder="0" class="giphy-embed" allowFullScreen></iframe></p>44 </center>45 <p style="text-align:center;background-color: #FFFFFF"> PEPE-Sematics adopts from the <a href="https://github.com/xingyaoww/gif-reply" style='color:blue'>PEPE model</a>46 and uses MLOps to bring it to your browser. PEPE-Sematics present to you multiple recommendations to choose from.47 As fellow Giffer's we know it is never enough unless you spam your bae or friend or an annoying colleague, thus multiple 48 recommedations is the only way to go about it. To ease your confusion we also provide a top recommendation based on our 49 algorithm.</p>50 """51 )52 53 gr.Markdown(54 """<center><h2><span style="background-color:white;">Test it out</span></h2><center>"""55 )56 57 text_input = gr.Textbox(58 label="Input", placeholder="Type something to get cool gifs \N{smile}"59 )60 with gr.Row():61 submit_button = gr.Button("Submit")62 63 with gr.Row():64 gr.Markdown(65 """<center><h2><span style="background-color:white;">Top Recommedation</span></h2><center>"""66 )67 with gr.Row():68 image0 = gr.Markdown(69 "<iframe src='https://giphy.com/embed/1YeNJK6FptDdq1q59K' width='480' height='280' frameBorder='0' class='giphy-embed' allowFullScreen></iframe>"70 )71 with gr.Row():72 image0_up = gr.Button("\N{thumbs up sign}")73 image0_down = gr.Button("\N{thumbs down sign}")74 image0_flag = gr.Button("Flag")75 gr.Markdown(76 """<center><h2><span style="background-color:white;">Recommended GIFs</span></h2><center>"""77 )78 with gr.Row():79 with gr.Column(scale=1, min_width=300):80 image1 = gr.Markdown(81 "<iframe src='https://giphy.com/embed/enCWEo0vG25Ow' width='300' height='280' frameBorder='0' class='giphy-embed' allowFullScreen></iframe>"82 )83 with gr.Row():84 image1_up = gr.Button("\N{thumbs up sign}")85 image1_down = gr.Button("\N{thumbs down sign}")86 image1_flag = gr.Button("Flag")87 with gr.Column(scale=1, min_width=300):88 image2 = gr.Markdown(89 "<iframe src='https://giphy.com/embed/l41YouCUUcreUabHW' width='300' height='280' frameBorder='0' class='giphy-embed' allowFullScreen></iframe>"90 )91 with gr.Row():92 image2_up = gr.Button("\N{thumbs up sign}")93 image2_down = gr.Button("\N{thumbs down sign}")94 image2_flag = gr.Button("Flag")95 with gr.Column(scale=1, min_width=300):96 image3 = gr.Markdown(97 "<iframe src='https://giphy.com/embed/SJWZDnQfQe46YAvIxj' width='300' height='280' frameBorder='0' class='giphy-embed' allowFullScreen></iframe>"98 )99 with gr.Row():100 image3_up = gr.Button("\N{thumbs up sign}")101 image3_down = gr.Button("\N{thumbs down sign}")102 image3_flag = gr.Button("Flag")103 with gr.Column(scale=1, min_width=300):104 image4 = gr.Markdown(105 "<iframe src='https://giphy.com/embed/g7GKcSzwQfugw' width='300' height='280' frameBorder='0' class='giphy-embed' allowFullScreen></iframe>"106 )107 with gr.Row():108 image4_up = gr.Button("\N{thumbs up sign}")109 image4_down = gr.Button("\N{thumbs down sign}")110 image4_flag = gr.Button("Flag")111 112 outputs = submit_button.click(113 predict,114 inputs=text_input,115 outputs=[image0, image1, image2, image3, image4],116 scroll_to_output=True,117 )118 119 print(outputs)120 121 callback.setup([text_input], "flagged_data")122 123 image1_up.click(124 lambda *args: callback.flag(args, flag_option="Up", username=gTop[1]),125 [text_input],126 None,127 )128 image2_up.click(129 lambda *args: callback.flag(args, flag_option="Up", username=gTop[2]),130 [text_input],131 None,132 )133 image3_up.click(134 lambda *args: callback.flag(args, flag_option="Up", username=gTop[3]),135 [text_input],136 None,137 )138 image4_up.click(139 lambda *args: callback.flag(args, flag_option="Up", username=gTop[4]),140 [text_input],141 None,142 )143 image0_up.click(144 lambda *args: callback.flag(args, flag_option="Up", username=gTop[0]),145 [text_input],146 None,147 )148 image1_down.click(149 lambda *args: callback.flag(args, flag_option="Down", username=gTop[1]),150 [text_input],151 None,152 )153 image2_down.click(154 lambda *args: callback.flag(args, flag_option="Down", username=gTop[2]),155 [text_input],156 None,157 )158 image3_down.click(159 lambda *args: callback.flag(args, flag_option="Down", username=gTop[3]),160 [text_input],161 None,162 )163 image4_down.click(164 lambda *args: callback.flag(args, flag_option="Down", username=gTop[4]),165 [text_input],166 None,167 )168 image0_down.click(169 lambda *args: callback.flag(args, flag_option="Down", username=gTop[0]),170 [text_input],171 None,172 )173 image1_flag.click(174 lambda *args: callback.flag(args, flag_option="Flag", username=gTop[1]),175 [text_input],176 None,177 )178 image2_flag.click(179 lambda *args: callback.flag(args, flag_option="Flag", username=gTop[2]),180 [text_input],181 None,182 )183 image3_flag.click(184 lambda *args: callback.flag(args, flag_option="Flag", username=gTop[3]),185 [text_input],186 None,187 )188 image4_flag.click(189 lambda *args: callback.flag(args, flag_option="Flag", username=gTop[4]),190 [text_input],191 None,192 )193 image0_flag.click(194 lambda *args: callback.flag(args, flag_option="Flag", username=gTop[0]),195 [text_input],196 None,197 )198 199demo.launch(debug=False)200 