File size: 2,046 Bytes
e444e3b |
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import os
os.system("pip install gradio --upgrade")
import gradio as gr
from pyjosa.josa import Josa
import random
import json
with open('pokemon.json', 'r') as f:
pokemons = json.load(f)
QUESTION_TEMPLATE = {"question": "๋ค์ ํฌ์ผ๋ชฌ์ ์ด๋ฆ์ ๋ญ๊น์?", "answer": "{name}"}
with gr.Blocks() as demo:
quiz_start = gr.State(value=False)
answer = gr.State(value="")
chatbot = gr.Chatbot(bubble_full_width=False)
msg = gr.Textbox()
clear = gr.ClearButton([msg, chatbot])
def respond(message, chat_history):
if not quiz_start.value:
chosen = random.choice(pokemons)
name = chosen['name']
image_path = chosen['image_path']
answer.value = QUESTION_TEMPLATE['answer'].format(name=name)
img_url = f"https://huggingface.co/spaces/yoon-gu/pokemon/resolve/main/{image_path}"
if "ํด์ฆ ์์" == message:
bot_message = "ํด์ฆ๋ฅผ ์์ํฉ๋๋ค.\n" + QUESTION_TEMPLATE["question"].format(img_url=img_url)
quiz_start.value = True
else:
bot_message = "ํด์ฆ๋ฅผ ์์ํ๊ณ ์ถ์ผ์๋ฉด, **ํด์ฆ ์์**์ด๋ผ๊ณ ๋ง์ํด์ฃผ์ธ์."
else:
trial = Josa.get_full_string(message, "๋")
if answer.value == message:
chosen = random.choice(pokemons)
name = chosen['name']
image_path = chosen['image_path']
answer.value = QUESTION_TEMPLATE['answer'].format(name=name)
img_url = f"https://huggingface.co/spaces/yoon-gu/pokemon/resolve/main/{image_path}"
bot_message = "์ ๋ต์
๋๋ค! ๋ค์ ๋ฌธ์ ์
๋๋ค." + QUESTION_TEMPLATE["question"].format(img_url=img_url)
else:
bot_message = f"{trial} ์ ๋ต์ผ๊น์? ๋ค์ ํ๋ฒ ์๊ฐํด๋ณด์ธ์."
chat_history.append((message, bot_message))
return "", chat_history
msg.submit(respond, [msg, chatbot], [msg, chatbot])
demo.launch()
|