gaeunseo commited on
Commit
36dbbcc
ยท
verified ยท
1 Parent(s): f043a64

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -18
app.py CHANGED
@@ -1,5 +1,5 @@
1
- import gradio as gr
2
  import time
 
3
 
4
  # ๋ฉ”์‹œ์ง€ ๋‚ด์šฉ ์„ค์ •
5
  human_message = "Hello. I'd like to find a round trip commercial airline flight from San Francisco to Denver."
@@ -7,14 +7,13 @@ ai_message = "Hello, how can I help you?"
7
 
8
  def stream_human_message():
9
  """
10
- Human์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฌธ์ž ๋‹จ์œ„๋กœ ํƒ€์ดํ•‘ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ŠคํŠธ๋ฆฌ๋ฐํ•ฉ๋‹ˆ๋‹ค.
11
- ๊ฐ ๋ฌธ์ž๋Š” <span> ํƒœ๊ทธ๋กœ ๊ฐ์‹ธ์„œ onclick ์ด๋ฒคํŠธ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆญํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
12
- ํด๋ฆญ ์‹œ JavaScript ํ•จ์ˆ˜ handleClick()๊ฐ€ ํ˜ธ์ถœ๋˜์–ด,
13
- ํ•ด๋‹น ๋ฌธ์ž์˜ ๋ฐ”๋กœ ๋’ค์— โœ‚๏ธ ์ด๋ชจํ‹ฐ์ฝ˜์„ ์‚ฝ์ž…ํ•˜๊ณ  ๊ทธ ๋’ค์˜ ๋ฌธ์ž๋“ค์€ ํšŒ์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
14
  """
15
- # ํด๋ฆญ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ JavaScript ์ฝ”๋“œ.
16
- # (ํŽ˜์ด์ง€์— ๋‹จ ํ•œ ๋ฒˆ๋งŒ ๋กœ๋“œ๋˜๋„๋ก window.cutDone ํ”Œ๋ž˜๊ทธ๋กœ ์ค‘๋ณต ์‹คํ–‰์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.)
17
- script = """
18
  <script>
19
  if (window.cutDone === undefined) { window.cutDone = false; }
20
  function handleClick(span) {
@@ -36,15 +35,14 @@ def stream_human_message():
36
  }
37
  </script>
38
  """
39
- # human ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ์‹ธ๋Š” HTML ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ (์˜ค๋ฅธ์ชฝ ์ •๋ ฌ, ๋ฐฐ๊ฒฝ ๋ฐ ํ…Œ๋‘๋ฆฌ ์Šคํƒ€์ผ)
40
- html = script + (
41
- "<div id='human_message' "
42
- "style='text-align: right; background-color: #d0f0d0; padding: 10px; "
43
- "border-radius: 10px; display: inline-block;'>"
44
  )
45
- # ์ดˆ๊ธฐ ์ƒํƒœ: ์•„์ง ๋‚ด์šฉ์ด ์—†์„ ๋•Œ
46
  yield html
47
- # ๋ฌธ์ž ํ•˜๋‚˜์”ฉ <span> ํƒœ๊ทธ๋กœ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ์ŠคํŠธ๋ฆฌ๋ฐ ํšจ๊ณผ๋ฅผ ์ค๋‹ˆ๋‹ค.
48
  for i, ch in enumerate(human_message):
49
  html += f"<span data-index='{i}' onclick='handleClick(this)'>{ch}</span>"
50
  yield html
@@ -68,9 +66,10 @@ with gr.Blocks() as demo:
68
  # ์˜ค๋ฅธ์ชฝ: Human ๋งํ’์„  (์ŠคํŠธ๋ฆฌ๋ฐ ํ…์ŠคํŠธ)
69
  with gr.Column():
70
  human_bubble = gr.HTML("")
71
- # ์ŠคํŠธ๋ฆฌ๋ฐ(ํƒ€์ดํ•‘ ํšจ๊ณผ)๋ฅผ ์‹œ์ž‘ํ•  ๋ฒ„ํŠผ
 
72
  start_button = gr.Button("Start Typing")
73
- start_button.click(fn=stream_human_message, outputs=human_bubble, stream=True)
 
74
 
75
  demo.launch()
76
-
 
 
1
  import time
2
+ import gradio as gr
3
 
4
  # ๋ฉ”์‹œ์ง€ ๋‚ด์šฉ ์„ค์ •
5
  human_message = "Hello. I'd like to find a round trip commercial airline flight from San Francisco to Denver."
 
7
 
8
  def stream_human_message():
9
  """
10
+ Human ๋ฉ”์‹œ์ง€๋ฅผ ๋ฌธ์ž ๋‹จ์œ„๋กœ ํƒ€์ดํ•‘ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋ฉด์„œ,
11
+ ๊ฐ ๋ฌธ์ž์— ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ, ํด๋ฆญ ์‹œ ํ•ด๋‹น ๋ฌธ์ž ์ดํ›„์— โœ‚๏ธ ์ด๋ชจํ‹ฐ์ฝ˜ ์‚ฝ์ž… ๋ฐ ์ž”์—ฌ ๋ฌธ์ž ํšŒ์ƒ‰ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
12
+
13
+ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•˜์—ฌ, ๋งค๋ฒˆ yield๋กœ HTML์„ ๋ฐ˜ํ™˜ํ•จ์œผ๋กœ์จ ์ŠคํŠธ๋ฆฌ๋ฐ ํšจ๊ณผ๋ฅผ ๋ƒ…๋‹ˆ๋‹ค.
14
  """
15
+ # ํŽ˜์ด์ง€์— ์‚ฝ์ž…ํ•  JavaScript ์ฝ”๋“œ (ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋˜๋„๋ก ์ „์—ญ ํ”Œ๋ž˜๊ทธ ์‚ฌ์šฉ)
16
+ js_script = """
 
17
  <script>
18
  if (window.cutDone === undefined) { window.cutDone = false; }
19
  function handleClick(span) {
 
35
  }
36
  </script>
37
  """
38
+ # Human ๋งํ’์„ ์˜ HTML ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ (์˜ค๋ฅธ์ชฝ ์ •๋ ฌ, ๋ฐฐ๊ฒฝ์ƒ‰ ๋“ฑ ์Šคํƒ€์ผ ์ง€์ •)
39
+ html = js_script + (
40
+ "<div id='human_message' style='text-align: right; background-color: #d0f0d0; "
41
+ "padding: 10px; border-radius: 10px; display: inline-block;'>"
 
42
  )
43
+ # ์ดˆ๊ธฐ ์ƒํƒœ: ์•„์ง ๋‚ด์šฉ์ด ์—†์„ ๋•Œ yield
44
  yield html
45
+ # ๋ฉ”์‹œ์ง€๋ฅผ ํ•œ ๊ธ€์ž์”ฉ ์ถ”๊ฐ€ํ•˜๋ฉฐ yield (ํƒ€์ดํ•‘ ํšจ๊ณผ)
46
  for i, ch in enumerate(human_message):
47
  html += f"<span data-index='{i}' onclick='handleClick(this)'>{ch}</span>"
48
  yield html
 
66
  # ์˜ค๋ฅธ์ชฝ: Human ๋งํ’์„  (์ŠคํŠธ๋ฆฌ๋ฐ ํ…์ŠคํŠธ)
67
  with gr.Column():
68
  human_bubble = gr.HTML("")
69
+
70
+ # ํƒ€์ดํ•‘ ํšจ๊ณผ๋ฅผ ์‹œ์ž‘ํ•  ๋ฒ„ํŠผ
71
  start_button = gr.Button("Start Typing")
72
+ # ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜๋ฅผ click ์ด๋ฒคํŠธ์— ๋“ฑ๋ก (stream ์ธ์ž ์—†์ด๋„ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜์˜ yield๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค)
73
+ start_button.click(fn=stream_human_message, outputs=human_bubble)
74
 
75
  demo.launch()