Spaces:
Sleeping
Sleeping
import gradio as gr | |
import pyjosa | |
from pyjosa.josa import Josa | |
import random | |
import json | |
with open('pokemon.json', 'r') as f: | |
pokemons = json.load(f) | |
QUESTION_TEMPLATE = {"question": "λ€μ ν¬μΌλͺ¬μ μ΄λ¦μ λκΉμ?![]({img_url})", "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(value="ν΄μ¦ μμ") | |
clear = gr.ClearButton([msg, chatbot]) | |
def respond(message, chat_history): | |
if "ν΄μ¦ μμ" == message: | |
bot_message = "ν΄μ¦λ₯Ό μμν©λλ€.\n" + QUESTION_TEMPLATE["question"].format(img_url=img_url) | |
quiz_start.value = True | |
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: | |
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: | |
try: | |
trial = Josa.get_full_string(message, "λ") | |
except pyjosa.exceptions.NotHangleException: | |
trial = f"{message}!?" | |
bot_message = f"***{trial}*** μ λ΅μΌκΉμ? π§ λ€μ νλ² μκ°ν΄λ³΄μΈμ." | |
chat_history.append((message, bot_message)) | |
return "", chat_history | |
msg.submit(respond, [msg, chatbot], [msg, chatbot]) | |
demo.queue(concurrency_count=3) | |
demo.launch() |