File size: 2,256 Bytes
e444e3b 039d478 e444e3b 039d478 e444e3b 039d478 e444e3b 039d478 e444e3b 039d478 e444e3b 039d478 e444e3b 039d478 e444e3b 039d478 4cf05df |
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 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 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(auth=("woojoo", "woojoo!")) |