Spaces:
Build error
Build error
File size: 3,171 Bytes
9f1a6f8 cf354bd 9f1a6f8 |
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
from gradio import (
update,
Blocks,
Row,
Examples,
Group,
Markdown,
Textbox,
Button,
Tabs,
TabItem,
DataFrame as GRDataFrame,
)
from ambiguous_search_backends import AmbiguousSearchBackend
from classic_search_backends import ClassicSearchBackend
def launch_frontend(
ambiguous_search_backend: AmbiguousSearchBackend,
classic_search_backend: ClassicSearchBackend,
):
def on_ambiguous_search_click(query: str):
result = ambiguous_search_backend.submit(query)
return GRDataFrame.update(value=result, visible=True)
def on_ambiguous_search_query_clear_click():
return Textbox.update(value="")
def on_classic_search_click(query: str):
result = classic_search_backend.submit(query)
return GRDataFrame.update(value=result, visible=True)
with Blocks() as frontend:
Markdown("## Himitsudogu Search")
with Tabs():
with TabItem("あいまい検索"):
Markdown(
"""
自然言語処理モデル"Sentence BERT"を使って、ドラえもんのひみつ道具をあいまい検索。
"""
)
query_textbox = Textbox(
label="自分の言葉でひみつ道具を説明してください", max_lines=1
)
with Row():
submit_button = Button("検索", variant="primary")
clear_button = Button("クリア")
result_table = GRDataFrame(visible=False)
Examples(
examples=[
"ふりかけると水を色々な性質にできる",
"小さいカメラが飛ぶ",
"壁を通り抜けられるようにする輪",
"地図をいじって実際の町の建物などの位置を変える",
"歌声を綺麗にする",
],
inputs=query_textbox,
)
submit_button.click(
on_ambiguous_search_click,
inputs=query_textbox,
outputs=result_table,
)
clear_button.click(
on_ambiguous_search_query_clear_click,
inputs=None,
outputs=query_textbox,
)
with TabItem("古典検索"):
Markdown(
f"""
キーワードから検索。
検索可能なひみつ道具は全{classic_search_backend.get_num_items()}種類。
"""
)
query_textbox = Textbox(label="キーワード", max_lines=1)
with Row():
submit_button = Button("検索", variant="primary")
result_table = GRDataFrame(visible=False)
submit_button.click(
on_classic_search_click,
inputs=query_textbox,
outputs=result_table,
)
frontend.launch()
|