aiqcamp commited on
Commit
a57ea9b
ยท
verified ยท
1 Parent(s): 7d4416e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +90 -77
app.py CHANGED
@@ -1121,76 +1121,77 @@ try:
1121
  except Exception as e:
1122
  print(f"Warning: Could not download checkpoint files: {str(e)}")
1123
 
 
 
1124
  with gr.Blocks(theme='ParityError/Interstellar') as demo:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1125
  with gr.Row():
1126
  with gr.Column(scale=1):
1127
  # ์ฑ—๋ด‡ ์ธํ„ฐํŽ˜์ด์Šค
1128
- gr.Markdown("# ๐Ÿค– AI ๋‹จ๋ฐฑ์งˆ ์„ค๊ณ„ ๋„์šฐ๋ฏธ")
1129
- # ์—ฌ๊ธฐ๋ฅผ ์ˆ˜์ •
 
 
 
 
 
 
 
 
 
 
 
1130
  chatbot = gr.Chatbot(
1131
  height=600,
1132
- type='messages' # ๋ฉ”์‹œ์ง€ ํ˜•์‹ ์ง€์ •
1133
  )
1134
-
1135
- # ์˜ˆ์ œ ํ”„๋กฌํ”„ํŠธ ๋“œ๋กญ๋‹ค์šด ์ถ”๊ฐ€
1136
- example_prompts = [
1137
- "์•”์„ธํฌ๋งŒ ์„ ํƒ์ ์œผ๋กœ ๊ณต๊ฒฉํ•˜๋Š” ๋ฉด์—ญ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1138
- "COVID-19 ์ŠคํŒŒ์ดํฌ ๋‹จ๋ฐฑ์งˆ์— ๊ฐ•ํ•˜๊ฒŒ ๊ฒฐํ•ฉํ•˜๋Š” ํ•ญ์ฒด ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1139
- "ํ˜ˆ๋‹น ์ˆ˜์ค€์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1140
- "์•Œ์ธ ํ•˜์ด๋จธ ๋ฒ ํƒ€ ์•„๋ฐ€๋กœ์ด๋“œ๋ฅผ ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํšจ์†Œ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1141
- "์•” ๋งˆ์ปค๋ฅผ ์ดˆ๊ณ ๊ฐ๋„๋กœ ๊ฒ€์ถœํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1142
- "ํ”Œ๋ผ์Šคํ‹ฑ์„ ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํšจ์†Œ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1143
- "์ด์‚ฐํ™”ํƒ„์†Œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํฌ์ง‘ํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1144
- "์‹ํ’ˆ์˜ ๋ณด์กด๊ธฐ๊ฐ„์„ ์—ฐ์žฅํ•˜๋Š” ํ•ญ๊ท  ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1145
- "์ˆ˜์†Œ ์ƒ์‚ฐ์„ ์ด‰์ง„ํ•˜๋Š” ํšจ์†Œ ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1146
- "ํ˜ˆ์ „์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„ํ•ดํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1147
- "์ธ์Š๋ฆฐ ์ €ํ•ญ์„ฑ์„ ๊ฐœ์„ ํ•˜๋Š” ์ƒˆ๋กœ์šด ํ˜ธ๋ฅด๋ชฌ ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1148
- "์‹๋ฌผ์˜ ๊ฐ€๋ญ„ ์ €ํ•ญ์„ฑ์„ ๋†’์ด๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1149
- "ํƒœ์–‘๊ด‘ ์—๋„ˆ์ง€๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํฌ์ง‘ํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1150
- "ํ•ด์ˆ˜์—์„œ ์ค‘๊ธˆ์†์„ ์ œ๊ฑฐํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1151
- "์งˆ์†Œ ๊ณ ์ • ํšจ์œจ์„ ๋†’์ด๋Š” ํšจ์†Œ ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1152
- "์‹ ๊ฒฝ์ „๋‹ฌ๋ฌผ์งˆ์„ ๊ฐ์ง€ํ•˜๋Š” ๋‚˜๋…ธ๋ฐ”์ด์˜ค์„ผ์„œ๋ฅผ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1153
- "ํŠน์ • ๋…์„ฑ ๋ฌผ์งˆ์„ ๊ฐ์ง€ํ•˜๋Š” ๋ฐ”์ด์˜ค์„ผ์„œ ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1154
- "๋ฐฐํ„ฐ๋ฆฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์ „๋„์„ฑ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1155
- "๊ทนํ•œ์˜ ๊ณ ์˜จ์—์„œ๋„ ์•ˆ์ •ํ•œ ์ดˆ๋‚ด์—ด์„ฑ ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1156
- "์ƒ๋ถ„ํ•ด์„ฑ ํ”Œ๋ผ์Šคํ‹ฑ ์ƒ์‚ฐ์„ ์œ„ํ•œ ์ค‘ํ•ฉํšจ์†Œ๋ฅผ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1157
- "์‹๋ฌผ์˜ ๋ณ‘ํ•ด์ถฉ ์ €ํ•ญ์„ฑ์„ ๊ฐ•ํ™”ํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1158
- "๊ณผ์ผ์˜ ์ˆ™์„ฑ์„ ์กฐ์ ˆํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1159
- "๋Œ€๊ธฐ ์˜ค์—ผ๋ฌผ์งˆ์„ ์‹ค์‹œ๊ฐ„ ๊ฐ์ง€ํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1160
- "์„์œ  ์˜ค์—ผ์„ ๋ถ„ํ•ดํ•˜๋Š” ํ•ด์–‘ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1161
- "๊ทน์ €์˜จ์—์„œ ํ™œ์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ์ €์˜จ ์ ์‘ ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1162
- "๊ณ ์•• ํ™˜๊ฒฝ์—์„œ ์•ˆ์ •ํ•œ ์‹ฌํ•ด ์ ์‘ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1163
- "๊ฐ•ํ•œ ์‚ฐ์„ฑ ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1164
- "๋‚˜๋…ธ ๊ตฌ์กฐ์ฒด๋ฅผ ์ž๊ฐ€ ์กฐ๋ฆฝํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1165
- "๋ฐฉ์‚ฌ๋Šฅ ๋ฌผ์งˆ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ถ„ํ•ดํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1166
- "๋ฐฉ์‚ฌ์„ ์— ์ €ํ•ญ์„ฑ์ด ์žˆ๋Š” ์šฐ์ฃผ ํ™˜๊ฒฝ์šฉ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”"
1167
- ]
1168
-
1169
-
1170
-
1171
- with gr.Row():
1172
- msg = gr.Textbox(
1173
- label="๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”",
1174
- placeholder="์˜ˆ: COVID-19๋ฅผ ์น˜๋ฃŒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1175
- lines=2,
1176
- scale=4
1177
- )
1178
- submit_btn = gr.Button("์ „์†ก", variant="primary", scale=1)
1179
-
1180
- clear = gr.Button("๋Œ€ํ™” ๋‚ด์šฉ ์ง€์šฐ๊ธฐ")
1181
-
1182
- # ์˜ˆ์ œ ์„ ํƒ ์‹œ ์ž…๋ ฅ์ฐฝ์— ์ž๋™ ์ž…๋ ฅ
1183
- def use_example(example):
1184
- return example
1185
-
1186
- use_example_btn.click(
1187
- fn=use_example,
1188
- inputs=[example_dropdown],
1189
- outputs=[msg]
1190
- )
1191
 
1192
 
1193
-
1194
  with gr.Accordion("์ฑ„ํŒ… ์„ค์ •", open=False):
1195
  system_message = gr.Textbox(
1196
  value="๋‹น์‹ ์€ ๋‹จ๋ฐฑ์งˆ ์„ค๊ณ„๋ฅผ ๋„์™€์ฃผ๋Š” ์ „๋ฌธ๊ฐ€์ž…๋‹ˆ๋‹ค.",
@@ -1218,16 +1219,15 @@ use_example_btn.click(
1218
  label="Top-P"
1219
  )
1220
 
1221
-
1222
  # ํƒญ ์ธํ„ฐํŽ˜์ด์Šค
1223
  with gr.Tabs():
1224
- with gr.TabItem("๐Ÿฆธโ€โ™‚๏ธ ์ปค์Šคํ…€ ๋””์ž์ธ"):
1225
  gr.Markdown("""
1226
  ### โœจ ๋‹น์‹ ๋งŒ์˜ ํŠน๋ณ„ํ•œ ์ปค์Šคํ…€์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”!
1227
  ๊ฐ ๋Šฅ๋ ฅ์น˜๋ฅผ ์กฐ์ ˆํ•˜๋ฉด ์ปค์Šคํ…€๋œ ๋‹จ๋ฐฑ์งˆ์ด ์ž๋™์œผ๋กœ ์„ค๊ณ„๋ฉ๋‹ˆ๋‹ค.
1228
  """)
1229
 
1230
- # ํžˆ์–ด๋กœ ๊ธฐ๋ณธ ์ •๋ณด
1231
  hero_name = gr.Textbox(
1232
  label="์ปค์Šคํ…€ ์ด๋ฆ„",
1233
  placeholder="๋‹น์‹ ์˜ ์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ ์ด๋ฆ„์„ ์ง€์–ด์ฃผ์„ธ์š”!",
@@ -1264,7 +1264,7 @@ use_example_btn.click(
1264
  info="์Œ์ˆ˜: ์ˆ˜์ค‘ ํ™œ๋™์— ํŠนํ™”, ์–‘์ˆ˜: ์ง€์ƒ ํ™œ๋™์— ํŠนํ™”"
1265
  )
1266
 
1267
- # ํžˆ์–ด๋กœ ํฌ๊ธฐ ์„ค์ •
1268
  hero_size = gr.Slider(
1269
  minimum=50, maximum=200,
1270
  label="๐Ÿ“ ์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ ํฌ๊ธฐ",
@@ -1275,7 +1275,7 @@ use_example_btn.click(
1275
  # ํŠน์ˆ˜ ๋Šฅ๋ ฅ ์„ค์ •
1276
  with gr.Accordion("๐ŸŒŸ ํŠน์ˆ˜ ๋Šฅ๋ ฅ", open=False):
1277
  gr.Markdown("""
1278
- ํŠน์ˆ˜ ๋Šฅ๋ ฅ์„ ์„ ํƒํ•˜๋ฉด ์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ์งˆ์— ํŠน๋ณ„ํ•œ ๊ตฌ์กฐ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
1279
  - ์ž๊ฐ€ ํšŒ๋ณต: ๋‹จ๋ฐฑ์งˆ ๊ตฌ์กฐ ๋ณต๊ตฌ ๋Šฅ๋ ฅ ๊ฐ•ํ™”
1280
  - ์›๊ฑฐ๋ฆฌ ๊ณต๊ฒฉ: ํŠน์ˆ˜ํ•œ ๊ตฌ์กฐ์  ๋Œ์ถœ๋ถ€ ํ˜•์„ฑ
1281
  - ๋ฐฉ์–ด๋ง‰ ์ƒ์„ฑ: ์•ˆ์ •์ ์ธ ๋ณดํ˜ธ์ธต ๊ตฌ์กฐ ๏ฟฝ๏ฟฝ๏ฟฝ์„ฑ
@@ -1460,7 +1460,7 @@ use_example_btn.click(
1460
 
1461
  # ์˜ค๋ฅธ์ชฝ ์—ด: ๊ฒฐ๊ณผ ํ‘œ์‹œ
1462
  with gr.Column(scale=1):
1463
- gr.Markdown("## ๐Ÿฆธโ€โ™‚๏ธ ์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ ํ”„๋กœํ•„")
1464
  hero_stats = gr.Plot(label="๋Šฅ๋ ฅ์น˜ ๋ถ„์„")
1465
  hero_description = gr.Textbox(label="์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ ํŠน์„ฑ", lines=3)
1466
 
@@ -1474,11 +1474,26 @@ use_example_btn.click(
1474
  gr.Markdown("#### ๐Ÿ”ฌ ์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ ๊ตฌ์กฐ")
1475
  output_viewer = gr.HTML()
1476
 
1477
- # ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1478
  # ์ฑ—๋ด‡ ์ด๋ฒคํŠธ
1479
  msg.submit(process_chat, [msg, chatbot], [chatbot])
1480
  clear.click(lambda: None, None, chatbot, queue=False)
1481
 
 
1482
  seq_opt.change(
1483
  fn=toggle_seq_input,
1484
  inputs=[seq_opt],
@@ -1486,8 +1501,7 @@ use_example_btn.click(
1486
  queue=False
1487
  )
1488
 
1489
-
1490
-
1491
  sec_str_opt.change(
1492
  fn=toggle_secondary_structure,
1493
  inputs=[sec_str_opt],
@@ -1495,12 +1509,14 @@ use_example_btn.click(
1495
  queue=False
1496
  )
1497
 
 
1498
  preview_btn.click(
1499
  get_motif_preview,
1500
  inputs=[pdb_id_code, contigs],
1501
  outputs=[preview_viewer, rewrite_pdb]
1502
  )
1503
 
 
1504
  pssm_gen_btn.click(
1505
  get_pssm,
1506
  inputs=[fasta_msa, input_pssm],
@@ -1572,7 +1588,7 @@ use_example_btn.click(
1572
  ]
1573
  )
1574
 
1575
- # ์ฑ„ํŒ… ๋‚ด์šฉ ์ง€์šฐ๊ธฐ ๋ฒ„ํŠผ
1576
  clear.click(
1577
  lambda: (None, None, None, None, None, None, None),
1578
  None,
@@ -1580,7 +1596,6 @@ use_example_btn.click(
1580
  queue=False
1581
  )
1582
 
1583
-
1584
  # ์ฑ—๋ด‡ ์‘๋‹ต์— ๋”ฐ๋ฅธ ๊ฒฐ๊ณผ ์—…๋ฐ์ดํŠธ
1585
  msg.submit(
1586
  update_protein_display,
@@ -1588,7 +1603,7 @@ use_example_btn.click(
1588
  outputs=[hero_stats, hero_description, output_seq, output_pdb, output_viewer, plddt_plot]
1589
  )
1590
 
1591
-
1592
  submit_btn.click(respond,
1593
  [msg, chatbot, system_message, max_tokens, temperature, top_p],
1594
  [chatbot])
@@ -1597,8 +1612,7 @@ use_example_btn.click(
1597
  [chatbot])
1598
  clear.click(lambda: None, None, chatbot, queue=False)
1599
 
1600
-
1601
- # ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์—ฐ๊ฒฐ
1602
  msg.submit(
1603
  fn=process_chat_and_generate,
1604
  inputs=[msg, chatbot],
@@ -1629,7 +1643,6 @@ use_example_btn.click(
1629
  show_progress=True
1630
  )
1631
 
1632
-
1633
  # ์‹คํ–‰
1634
  demo.queue()
1635
- demo.launch(debug=True)
 
1121
  except Exception as e:
1122
  print(f"Warning: Could not download checkpoint files: {str(e)}")
1123
 
1124
+
1125
+
1126
  with gr.Blocks(theme='ParityError/Interstellar') as demo:
1127
+ # ์˜ˆ์ œ ํ”„๋กฌํ”„ํŠธ ๋ฆฌ์ŠคํŠธ ์ •์˜
1128
+ example_prompts = [
1129
+ "์•”์„ธํฌ๋งŒ ์„ ํƒ์ ์œผ๋กœ ๊ณต๊ฒฉํ•˜๋Š” ๋ฉด์—ญ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1130
+ "COVID-19 ์ŠคํŒŒ์ดํฌ ๋‹จ๋ฐฑ์งˆ์— ๊ฐ•ํ•˜๊ฒŒ ๊ฒฐํ•ฉํ•˜๋Š” ํ•ญ์ฒด ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1131
+ "ํ˜ˆ๋‹น ์ˆ˜์ค€์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1132
+ "์•Œ์ธ ํ•˜์ด๋จธ ๋ฒ ํƒ€ ์•„๋ฐ€๋กœ์ด๋“œ๋ฅผ ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํšจ์†Œ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1133
+ "์•” ๋งˆ์ปค๋ฅผ ์ดˆ๊ณ ๊ฐ๋„๋กœ ๊ฒ€์ถœํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1134
+ "ํ”Œ๋ผ์Šคํ‹ฑ์„ ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํšจ์†Œ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1135
+ "์ด์‚ฐํ™”ํƒ„์†Œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํฌ์ง‘ํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1136
+ "์‹ํ’ˆ์˜ ๋ณด์กด๊ธฐ๊ฐ„์„ ์—ฐ์žฅํ•˜๋Š” ํ•ญ๊ท  ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1137
+ "์ˆ˜์†Œ ์ƒ์‚ฐ์„ ์ด‰์ง„ํ•˜๋Š” ํšจ์†Œ ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1138
+ "ํ˜ˆ์ „์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„ํ•ดํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1139
+ "์ธ์Š๋ฆฐ ์ €ํ•ญ์„ฑ์„ ๊ฐœ์„ ํ•˜๋Š” ์ƒˆ๋กœ์šด ํ˜ธ๋ฅด๋ชฌ ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1140
+ "์‹๋ฌผ์˜ ๊ฐ€๋ญ„ ์ €ํ•ญ์„ฑ์„ ๋†’์ด๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1141
+ "ํƒœ์–‘๊ด‘ ์—๋„ˆ์ง€๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํฌ์ง‘ํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1142
+ "ํ•ด์ˆ˜์—์„œ ์ค‘๊ธˆ์†์„ ์ œ๊ฑฐํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1143
+ "์งˆ์†Œ ๊ณ ์ • ํšจ์œจ์„ ๋†’์ด๋Š” ํšจ์†Œ ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1144
+ "์‹ ๊ฒฝ์ „๋‹ฌ๋ฌผ์งˆ์„ ๊ฐ์ง€ํ•˜๋Š” ๋‚˜๋…ธ๋ฐ”์ด์˜ค์„ผ์„œ๋ฅผ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1145
+ "ํŠน์ • ๋…์„ฑ ๋ฌผ์งˆ์„ ๊ฐ์ง€ํ•˜๋Š” ๋ฐ”์ด์˜ค์„ผ์„œ ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1146
+ "๋ฐฐํ„ฐ๋ฆฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์ „๋„์„ฑ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1147
+ "๊ทนํ•œ์˜ ๊ณ ์˜จ์—์„œ๋„ ์•ˆ์ •ํ•œ ์ดˆ๋‚ด์—ด์„ฑ ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1148
+ "์ƒ๋ถ„ํ•ด์„ฑ ํ”Œ๋ผ์Šคํ‹ฑ ์ƒ์‚ฐ์„ ์œ„ํ•œ ์ค‘ํ•ฉํšจ์†Œ๋ฅผ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1149
+ "์‹๋ฌผ์˜ ๋ณ‘ํ•ด์ถฉ ์ €ํ•ญ์„ฑ์„ ๊ฐ•ํ™”ํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1150
+ "๊ณผ์ผ์˜ ์ˆ™์„ฑ์„ ์กฐ์ ˆํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1151
+ "๋Œ€๊ธฐ ์˜ค์—ผ๋ฌผ์งˆ์„ ์‹ค์‹œ๊ฐ„ ๊ฐ์ง€ํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1152
+ "์„์œ  ์˜ค์—ผ์„ ๋ถ„ํ•ดํ•˜๋Š” ํ•ด์–‘ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1153
+ "๊ทน์ €์˜จ์—์„œ ํ™œ์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ์ €์˜จ ์ ์‘ ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1154
+ "๊ณ ์•• ํ™˜๊ฒฝ์—์„œ ์•ˆ์ •ํ•œ ์‹ฌํ•ด ์ ์‘ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1155
+ "๊ฐ•ํ•œ ์‚ฐ์„ฑ ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
1156
+ "๋‚˜๋…ธ ๊ตฌ์กฐ์ฒด๋ฅผ ์ž๊ฐ€ ์กฐ๋ฆฝํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”",
1157
+ "๋ฐฉ์‚ฌ๋Šฅ ๋ฌผ์งˆ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ถ„ํ•ดํ•˜๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1158
+ "๋ฐฉ์‚ฌ์„ ์— ์ €ํ•ญ์„ฑ์ด ์žˆ๋Š” ์šฐ์ฃผ ํ™˜๊ฒฝ์šฉ ๋‹จ๋ฐฑ์งˆ์„ ์„ค๊ณ„ํ•ด์ฃผ์„ธ์š”"
1159
+ ]
1160
+
1161
  with gr.Row():
1162
  with gr.Column(scale=1):
1163
  # ์ฑ—๋ด‡ ์ธํ„ฐํŽ˜์ด์Šค
1164
+ gr.Markdown("# ๐Ÿค– ProteinGPT: AI ๋‹จ๋ฐฑ์งˆ ์ƒ์„ฑ๊ธฐ๊ธฐ")
1165
+
1166
+ # ์˜ˆ์ œ ํ”„๋กฌํ”„ํŠธ ๋“œ๋กญ๋‹ค์šด๊ณผ ๋ฒ„ํŠผ์„ Row๋กœ ๋ฐฐ์น˜
1167
+ with gr.Row():
1168
+ example_dropdown = gr.Dropdown(
1169
+ choices=example_prompts,
1170
+ label="์˜ˆ์ œ ํ”„๋กฌํ”„ํŠธ ์„ ํƒ",
1171
+ info="์›ํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ์„ ํƒํ•˜์„ธ์š”",
1172
+ scale=4
1173
+ )
1174
+ example_btn = gr.Button("๐Ÿ‘‰ ์˜ˆ์ œ ์‚ฌ์šฉ", scale=1)
1175
+
1176
+ # ์ฑ—๋ด‡
1177
  chatbot = gr.Chatbot(
1178
  height=600,
1179
+ type='messages'
1180
  )
1181
+
1182
+ # ๋ฉ”์‹œ์ง€ ์ž…๋ ฅ
1183
+ with gr.Row():
1184
+ msg = gr.Textbox(
1185
+ label="๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”",
1186
+ placeholder="์˜ˆ: COVID-19๋ฅผ ์น˜๋ฃŒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ๋ฐฑ์งˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”",
1187
+ lines=2,
1188
+ scale=4
1189
+ )
1190
+ submit_btn = gr.Button("์ „์†ก", variant="primary", scale=1)
1191
+
1192
+ clear = gr.Button("๋Œ€ํ™” ๋‚ด์šฉ ์ง€์šฐ๊ธฐ")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1193
 
1194
 
 
1195
  with gr.Accordion("์ฑ„ํŒ… ์„ค์ •", open=False):
1196
  system_message = gr.Textbox(
1197
  value="๋‹น์‹ ์€ ๋‹จ๋ฐฑ์งˆ ์„ค๊ณ„๋ฅผ ๋„์™€์ฃผ๋Š” ์ „๋ฌธ๊ฐ€์ž…๋‹ˆ๋‹ค.",
 
1219
  label="Top-P"
1220
  )
1221
 
 
1222
  # ํƒญ ์ธํ„ฐํŽ˜์ด์Šค
1223
  with gr.Tabs():
1224
+ with gr.TabItem("๐Ÿงฌ ์ปค์Šคํ…€ ๋””์ž์ธ"):
1225
  gr.Markdown("""
1226
  ### โœจ ๋‹น์‹ ๋งŒ์˜ ํŠน๋ณ„ํ•œ ์ปค์Šคํ…€์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”!
1227
  ๊ฐ ๋Šฅ๋ ฅ์น˜๋ฅผ ์กฐ์ ˆํ•˜๋ฉด ์ปค์Šคํ…€๋œ ๋‹จ๋ฐฑ์งˆ์ด ์ž๋™์œผ๋กœ ์„ค๊ณ„๋ฉ๋‹ˆ๋‹ค.
1228
  """)
1229
 
1230
+ # ๊ธฐ๋ณธ ์ •๋ณด
1231
  hero_name = gr.Textbox(
1232
  label="์ปค์Šคํ…€ ์ด๋ฆ„",
1233
  placeholder="๋‹น์‹ ์˜ ์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ ์ด๋ฆ„์„ ์ง€์–ด์ฃผ์„ธ์š”!",
 
1264
  info="์Œ์ˆ˜: ์ˆ˜์ค‘ ํ™œ๋™์— ํŠนํ™”, ์–‘์ˆ˜: ์ง€์ƒ ํ™œ๋™์— ํŠนํ™”"
1265
  )
1266
 
1267
+ # ํฌ๊ธฐ ์„ค์ •
1268
  hero_size = gr.Slider(
1269
  minimum=50, maximum=200,
1270
  label="๐Ÿ“ ์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ ํฌ๊ธฐ",
 
1275
  # ํŠน์ˆ˜ ๋Šฅ๋ ฅ ์„ค์ •
1276
  with gr.Accordion("๐ŸŒŸ ํŠน์ˆ˜ ๋Šฅ๋ ฅ", open=False):
1277
  gr.Markdown("""
1278
+ ํŠน์ˆ˜ ๋Šฅ๋ ฅ์„ ์„ ํƒํ•˜๋ฉด ์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ์— ํŠน๋ณ„ํ•œ ๊ตฌ์กฐ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
1279
  - ์ž๊ฐ€ ํšŒ๋ณต: ๋‹จ๋ฐฑ์งˆ ๊ตฌ์กฐ ๋ณต๊ตฌ ๋Šฅ๋ ฅ ๊ฐ•ํ™”
1280
  - ์›๊ฑฐ๋ฆฌ ๊ณต๊ฒฉ: ํŠน์ˆ˜ํ•œ ๊ตฌ์กฐ์  ๋Œ์ถœ๋ถ€ ํ˜•์„ฑ
1281
  - ๋ฐฉ์–ด๋ง‰ ์ƒ์„ฑ: ์•ˆ์ •์ ์ธ ๋ณดํ˜ธ์ธต ๊ตฌ์กฐ ๏ฟฝ๏ฟฝ๏ฟฝ์„ฑ
 
1460
 
1461
  # ์˜ค๋ฅธ์ชฝ ์—ด: ๊ฒฐ๊ณผ ํ‘œ์‹œ
1462
  with gr.Column(scale=1):
1463
+ gr.Markdown("## ๐Ÿงฌ ์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ ํ”„๋กœํ•„")
1464
  hero_stats = gr.Plot(label="๋Šฅ๋ ฅ์น˜ ๋ถ„์„")
1465
  hero_description = gr.Textbox(label="์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ ํŠน์„ฑ", lines=3)
1466
 
 
1474
  gr.Markdown("#### ๐Ÿ”ฌ ์ปค์Šคํ…€ ๋‹จ๋ฐฑ์งˆ ๊ตฌ์กฐ")
1475
  output_viewer = gr.HTML()
1476
 
1477
+ # ์˜ˆ์ œ ์„ ํƒ ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ
1478
+ def use_example(example):
1479
+ if example:
1480
+ return example
1481
+ return ""
1482
+
1483
+ example_btn.click(
1484
+ fn=use_example,
1485
+ inputs=[example_dropdown],
1486
+ outputs=[msg]
1487
+ )
1488
+
1489
+
1490
+
1491
+ # ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ
1492
  # ์ฑ—๋ด‡ ์ด๋ฒคํŠธ
1493
  msg.submit(process_chat, [msg, chatbot], [chatbot])
1494
  clear.click(lambda: None, None, chatbot, queue=False)
1495
 
1496
+ # ์ž…๋ ฅ ๋ฐฉ์‹ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ
1497
  seq_opt.change(
1498
  fn=toggle_seq_input,
1499
  inputs=[seq_opt],
 
1501
  queue=False
1502
  )
1503
 
1504
+ # ๊ตฌ์กฐ ์„ค์ • ๋ฐฉ์‹ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ
 
1505
  sec_str_opt.change(
1506
  fn=toggle_secondary_structure,
1507
  inputs=[sec_str_opt],
 
1509
  queue=False
1510
  )
1511
 
1512
+ # ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฒคํŠธ
1513
  preview_btn.click(
1514
  get_motif_preview,
1515
  inputs=[pdb_id_code, contigs],
1516
  outputs=[preview_viewer, rewrite_pdb]
1517
  )
1518
 
1519
+ # PSSM ๋ถ„์„ ์ด๋ฒคํŠธ
1520
  pssm_gen_btn.click(
1521
  get_pssm,
1522
  inputs=[fasta_msa, input_pssm],
 
1588
  ]
1589
  )
1590
 
1591
+ # ์ฑ„ํŒ… ๋‚ด์šฉ ์ง€์šฐ๊ธฐ
1592
  clear.click(
1593
  lambda: (None, None, None, None, None, None, None),
1594
  None,
 
1596
  queue=False
1597
  )
1598
 
 
1599
  # ์ฑ—๋ด‡ ์‘๋‹ต์— ๋”ฐ๋ฅธ ๊ฒฐ๊ณผ ์—…๋ฐ์ดํŠธ
1600
  msg.submit(
1601
  update_protein_display,
 
1603
  outputs=[hero_stats, hero_description, output_seq, output_pdb, output_viewer, plddt_plot]
1604
  )
1605
 
1606
+ # ๊ธฐ๋ณธ ์ฑ—๋ด‡ ์‘๋‹ต ์ฒ˜๋ฆฌ
1607
  submit_btn.click(respond,
1608
  [msg, chatbot, system_message, max_tokens, temperature, top_p],
1609
  [chatbot])
 
1612
  [chatbot])
1613
  clear.click(lambda: None, None, chatbot, queue=False)
1614
 
1615
+ # ์ง„ํ–‰ ์ƒํƒœ ํ‘œ์‹œ ์ด๋ฒคํŠธ
 
1616
  msg.submit(
1617
  fn=process_chat_and_generate,
1618
  inputs=[msg, chatbot],
 
1643
  show_progress=True
1644
  )
1645
 
 
1646
  # ์‹คํ–‰
1647
  demo.queue()
1648
+ demo.launch(debug=True)