|
import gradio as gr |
|
import json |
|
import random |
|
import math |
|
import requests |
|
css = """ |
|
#small span{ |
|
font-size: 3.0em; |
|
} |
|
""" |
|
def loadpic(): |
|
global c1, e1, e2, e3, e4 |
|
|
|
res = json.loads(requests.get("https://api.thecatapi.com/v1/images/search?has_breeds=1").text) |
|
cheetahs = res |
|
c1 = [res[0]['url']] |
|
|
|
|
|
|
|
|
|
|
|
res= requests.get("https://random.imagecdn.app/v1/image?width=300&height=300&category=buildings&format=json").text |
|
e1 = [(json.loads(res))['url']] |
|
|
|
e2 = [(json.loads(res))['url']] |
|
|
|
e3 = [(json.loads(res))['url']] |
|
|
|
e4 = [(json.loads(res))['url']] |
|
return None |
|
with gr.Blocks(css=css) as demo: |
|
infile = 'test.json' |
|
with open(infile, 'r',encoding='utf-8') as f: |
|
json_data = json.load(f,strict=False) |
|
l = len(json_data) |
|
r = math.floor(random.random()*l) |
|
qa = json_data[r] |
|
q = qa['question'] |
|
d3 = qa['distractor3'] |
|
d2 = qa['distractor2'] |
|
d1 = qa['distractor1'] |
|
a = qa['correct_answer'] |
|
s = qa['support'] |
|
ds = [] |
|
ds.append(d3); ds.append(d2); ds.append(d1); ds.append(a) |
|
|
|
global c1, e1, e2, e3, e4 |
|
|
|
res = json.loads(requests.get("https://api.thecatapi.com/v1/images/search?has_breeds=1").text) |
|
cheetahs = res |
|
c1 = [res[0]['url']] |
|
''' |
|
cheetahs = [ |
|
"https://api.thecatapi.com/v1/images/search", |
|
"https://gradio-builds.s3.amazonaws.com/assets/lite-logo.png", |
|
"https://gradio-builds.s3.amazonaws.com/assets/TheCheethcat.jpg", |
|
] |
|
''' |
|
''' |
|
def update_examples(): |
|
global q, d3, d2, d1, a, s, json_data |
|
global qa, ds |
|
#samples = get_new_examples() |
|
r = math.floor(random.random()*l) |
|
qa = json_data[r] |
|
q = qa['question'] |
|
d3 = qa['distractor3'] |
|
d2 = qa['distractor2'] |
|
d1 = qa['distractor1'] |
|
a = qa['correct_answer'] |
|
ds = [] |
|
ds.append(d3); ds.append(d2); ds.append(d1); ds.append(a) |
|
random.shuffle(ds) |
|
#btn1.value = q |
|
return None |
|
#return gr.Button.update(value=q) |
|
''' |
|
def update_q(): |
|
global q, d3, d2, d1, a, s, json_data |
|
global qa, ds |
|
|
|
r = math.floor(random.random()*l) |
|
qa = json_data[r] |
|
q = qa['question'] |
|
d3 = qa['distractor3'] |
|
d2 = qa['distractor2'] |
|
d1 = qa['distractor1'] |
|
a = qa['correct_answer'] |
|
ds = [] |
|
ds.append(d3); ds.append(d2); ds.append(d1); ds.append(a) |
|
|
|
loadpic() |
|
return q |
|
with gr.Row(): |
|
with gr.Column(): |
|
t = gr.Textbox(value=q, label = 'league of animal', show_label=True) |
|
|
|
btn1 = gr.Button(value=ds[0], elem_id="small") |
|
btn2 = gr.Button(value=ds[1], elem_id="small") |
|
btn3 = gr.Button(value=ds[2], elem_id="small") |
|
btn = gr.Button(value=ds[3], elem_id="small") |
|
btn_refresh = gr.Button(value="Next") |
|
|
|
|
|
|
|
btn_refresh.click(update_q, None, [t]) |
|
btn_refresh.click(lambda: ds[0], None, [btn]) |
|
btn_refresh.click(lambda: ds[1], None, [btn1]) |
|
btn_refresh.click(lambda: ds[2], None, [btn2]) |
|
btn_refresh.click(lambda: ds[3], None, [btn3]) |
|
|
|
|
|
print(str(ds)) |
|
|
|
|
|
|
|
|
|
with gr.Column(): |
|
gallery = gr.Gallery(label='', show_download_button=True) |
|
gr.Audio(visible=False) |
|
|
|
|
|
''' |
|
def select(select_data: gr.SelectData): |
|
#return select_data.value['image']['url'] |
|
return s |
|
gallery.select(select, None, select_output) |
|
''' |
|
|
|
|
|
|
|
|
|
|
|
if(btn.value==a): |
|
btn.click(lambda: c1, None, [gallery]) |
|
else: |
|
btn.click(lambda: e1, None, [gallery]) |
|
|
|
if(btn1.value==a): |
|
btn1.click(lambda: c1, None, [gallery]) |
|
else: |
|
btn1.click(lambda: e2, None, [gallery]) |
|
if(btn2.value==a): |
|
btn2.click(lambda: c1, None, [gallery]) |
|
else: |
|
btn2.click(lambda: e3, None, [gallery]) |
|
if(btn3.value==a): |
|
btn3.click(lambda: c1, None, [gallery]) |
|
else: |
|
btn3.click(lambda: e4, None, [gallery]) |
|
|
|
if __name__ == "__main__": |
|
demo.launch(share=True, debug=True) |
|
|
|
demo.launch(share=True, debug=True) |