immunobiotech commited on
Commit
b446c4a
Β·
verified Β·
1 Parent(s): ca92beb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -136
app.py CHANGED
@@ -343,141 +343,5 @@ with gr.Blocks(
343
 
344
  # Launch the interface
345
  if __name__ == "__main__":
346
- with gr.Blocks() as demo:
347
- demo.load(lambda: None, _js="""
348
- () => {
349
- const style = document.createElement('style');
350
- style.textContent = `
351
- .chatbot-wrapper .message {
352
- white-space: pre-wrap;
353
- word-wrap: break-word;
354
- }
355
- `;
356
- document.head.appendChild(style);
357
- }
358
- """)
359
-
360
- gr.Markdown("# πŸ’­ PharmAI: μΆ”λ‘  기반 약리학 μ „λ¬Έ AI μ„œλΉ„μŠ€ πŸ’­")
361
 
362
- gr.HTML("""<a href="https://visitorbadge.io/status?path=https%3A%2F%2Faiqcamp-Gemini2-Flash-Thinking.hf.space">
363
- <img src="https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Faiqcamp-Gemini2-Flash-Thinking.hf.space&countColor=%23263759" />
364
- </a>""")
365
-
366
- with gr.Tabs() as tabs:
367
- with gr.TabItem("λŒ€ν™”", id="chat_tab"):
368
- chatbot = gr.Chatbot(
369
- type="messages",
370
- label="PharmAI 챗봇 (슀트리밍 좜λ ₯)", # μŠ€νŠΈλ¦¬λ°μž„μ„ λ‚˜νƒ€λ‚΄λŠ” λ ˆμ΄λΈ”
371
- render_markdown=True,
372
- scale=1,
373
- avatar_images=(None,"https://lh3.googleusercontent.com/oxz0sUBF0iYoN4VvhqWTmux-cxfD1rxuYkuFEfm1SFaseXEsjjE4Je_C_V3UQPuJ87sImQK3HfQ3RXiaRnQetjaZbjJJUkiPL5jFJ1WRl5FKJZYibUA=w214-h214-n-nu"),
374
- elem_classes="chatbot-wrapper" # μ‚¬μš©μž μ •μ˜ μŠ€νƒ€μΌμš© 클래슀 μΆ”κ°€
375
- )
376
-
377
- with gr.Row(equal_height=True):
378
- input_box = gr.Textbox(
379
- lines=1,
380
- label="λŒ€ν™” λ©”μ‹œμ§€",
381
- placeholder="여기에 λ©”μ‹œμ§€λ₯Ό μž…λ ₯ν•˜μ„Έμš”...",
382
- scale=4
383
- )
384
-
385
- clear_button = gr.Button("λŒ€ν™” μ΄ˆκΈ°ν™”", scale=1)
386
-
387
- # 예제 ν”„λ‘¬ν”„νŠΈ μΆ”κ°€ - 파일 μ—…λ‘œλ“œ 예제 제거. ν…μŠ€νŠΈ 쀑심 예제 μœ μ§€.
388
- example_prompts = [
389
- ["CYP450 νš¨μ†Œμ™€ μ•½λ¬Ό λŒ€μ‚¬ κ°„μ˜ μƒν˜Έ μž‘μš©μ„ μ„€λͺ…ν•˜κ³ , 특히 νš¨μ†Œ μœ λ„ λ˜λŠ” μ–΅μ œκ°€ μ™€νŒŒλ¦°κ³Ό 같은 μ•½λ¬Όμ˜ 치료 효λŠ₯에 μ–΄λ–»κ²Œ 영ν–₯을 λ―ΈμΉ  수 μžˆλŠ”μ§€μ— 쀑점을 λ‘μ‹­μ‹œμ˜€."],
390
- ["λ§Œμ„± μ‹ μž₯ μ§ˆν™˜ ν™˜μžμ—μ„œ 빈혈 치료λ₯Ό μœ„ν•΄ μ‚¬μš©ν•˜λŠ” μ—λ¦¬μŠ€λ‘œν¬μ΄μ—ν‹΄ 제제의 약동학적 및 μ•½λ ₯학적 νŠΉμ„±μ„ μƒμ„Ένžˆ λΆ„μ„ν•˜κ³ , νˆ¬μ—¬ μš©λŸ‰ 및 νˆ¬μ—¬ 간격 결정에 영ν–₯을 λ―ΈμΉ˜λŠ” μš”μΈλ“€μ„ μ„€λͺ…ν•΄ μ£Όμ‹­μ‹œμ˜€."],
391
- ["κ°„κ²½λ³€ 치료(κ°„ μ„¬μœ ν™” ν•΄μ†Œ)λ₯Ό μœ„ν•œ μ‹ μ•½ κ°œλ°œμ„ μœ„ν•œ 'μ²œμ—° 식물'듀을 μΆ”μΆœν•˜κ³  이에 λŒ€ν•œ ꡬ체적인 약리기전과 κ·Έ 이유, 그리고 μ–΄λ–»κ²Œ μ‘°ν•©ν•΄μ•Ό μ΅œμƒμ˜ νš¨κ³Όκ°€ μžˆμ„μ§€ μΆ”λ‘ ν•˜μ—¬ ν•œλ°©(ν•œμ˜ν•™)적 κ΄€μ μ—μ„œ 졜적의 닡변을 ν•˜λΌ"],
392
- ["μ•ŒμΈ ν•˜μ΄λ¨Έλ³‘ μΉ˜λ£Œμ— 효과적인 μ²œμ—° 식물 물질과 약리기전 등을 ν•œλ°©(ν•œμ˜ν•™)적 κ΄€μ μ—μ„œ μ„€λͺ…ν•˜κ³  μ•Œλ €μ€˜"],
393
- ["κ³ ν˜ˆμ•• 치료 및 증상 완화에 효과적인 μ‹ μ•½ κ°œλ°œμ„ μœ„ν•΄ κ°€λŠ₯성이 맀우 높은 μ²œμ—° 식물 물질과 약리기전 등을 ν•œλ°©(ν•œμ˜ν•™)적 κ΄€μ μ—μ„œ μ„€λͺ…ν•˜κ³  μ•Œλ €μ€˜"],
394
- ["κ³ ν˜ˆμ•• κ΄€λ¦¬μ—μ„œ ACE μ–΅μ œμ œμ™€ ARB의 μž‘μš© λ©”μ»€λ‹ˆμ¦˜μ„ λΉ„κ΅ν•˜κ³  λŒ€μ‘°ν•˜μ—¬ λ ˆλ‹Œ-μ•ˆμ§€μ˜€ν…μ‹ -μ•Œλ„μŠ€ν…Œλ‘  μ‹œμŠ€ν…œμ— λ―ΈμΉ˜λŠ” 영ν–₯을 κ³ λ €ν•˜μ‹­μ‹œμ˜€."],
395
- ["제2ν˜• λ‹Ήλ‡¨λ³‘μ˜ λ³‘νƒœ 생리학을 μ„€λͺ…ν•˜κ³  λ©”νŠΈν¬λ₯΄λ―Όμ΄ μ–΄λ–»κ²Œ ν˜ˆλ‹Ή κ°•ν•˜ 효과λ₯Ό λ‹¬μ„±ν•˜λŠ”μ§€, μ‹ μž₯ μž₯μ•  ν™˜μžμ— λŒ€ν•œ μ£Όμš” κ³ λ € 사항을 ν¬ν•¨ν•˜μ—¬ μ„€λͺ…ν•˜μ‹­μ‹œμ˜€."],
396
- ["심뢀전 μΉ˜λ£Œμ—μ„œ 베타 μ°¨λ‹¨μ œμ˜ μž‘μš© λ©”μ»€λ‹ˆμ¦˜κ³Ό μž„μƒμ  μ€‘μš”μ„±μ— λŒ€ν•΄ λ…Όμ˜ν•˜κ³ , νŠΉμ • 베타 수용체 μ•„ν˜•κ³Ό μ‹¬ν˜ˆκ΄€κ³„μ— λ―ΈμΉ˜λŠ” 영ν–₯에 λŒ€ν•΄ μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€."],
397
- ["μ•ŒμΈ ν•˜μ΄λ¨Έλ³‘μ˜ λ³‘νƒœμƒλ¦¬ν•™μ  기전을 μ„€λͺ…ν•˜κ³ , ν˜„μž¬ μ‚¬μš©λ˜λŠ” 약물듀이 μž‘μš©ν•˜λŠ” μ£Όμš” νƒ€κ²Ÿμ„ μƒμ„Ένžˆ κΈ°μˆ ν•˜μ‹­μ‹œμ˜€. 특히, μ•„μ„Έν‹Έμ½œλ¦°μ—μŠ€ν…ŒλΌμ œ μ–΅μ œμ œμ™€ NMDA 수용체 κΈΈν•­μ œμ˜ μž‘μš© 방식과 μž„μƒμ  의의λ₯Ό 비ꡐ 뢄석해 μ£Όμ‹­μ‹œμ˜€."],
398
- ["FDAμ—μ„œ μŠΉμΈν•œ κ°„κ²½λ³€ μΉ˜λ£Œμ œμ™€ κ·Έ μž‘μš© 기전을 μ„€λͺ…ν•΄μ£Όμ„Έμš”.", "FDAμ—μ„œ μŠΉμΈν•œ κ³ ν˜ˆμ•• μΉ˜λ£Œμ œμ— λŒ€ν•΄ μ•Œλ €μ£Όμ„Έμš”."]
399
-
400
-
401
- ]
402
-
403
- gr.Examples(
404
- examples=example_prompts,
405
- inputs=input_box,
406
- label="예제: Gemini의 생각을 보렀면 λ‹€μŒ ν”„λ‘¬ν”„νŠΈλ₯Ό μ‚¬μš©ν•΄ λ³΄μ„Έμš”!",
407
- examples_per_page=3 # ν•„μš”μ— 따라 μ‘°μ •
408
- )
409
-
410
-
411
- # 이벀트 ν•Έλ“€λŸ¬ μ„€μ •
412
- msg_store = gr.State("") # μ‚¬μš©μž λ©”μ‹œμ§€λ₯Ό λ³΄μ‘΄ν•˜κΈ° μœ„ν•œ μ €μž₯μ†Œ
413
-
414
- input_box.submit(
415
- lambda msg: (msg, msg, ""), # λ©”μ‹œμ§€λ₯Ό μ €μž₯ν•˜κ³  μž…λ ₯을 μ§€μ›λ‹ˆλ‹€.
416
- inputs=[input_box],
417
- outputs=[msg_store, input_box, input_box],
418
- queue=False
419
- ).then(
420
- user_message, # μ‚¬μš©μž λ©”μ‹œμ§€λ₯Ό λŒ€ν™”μ— μΆ”κ°€ν•©λ‹ˆλ‹€.
421
- inputs=[msg_store, chatbot],
422
- outputs=[input_box, chatbot],
423
- queue=False
424
- ).then(
425
- stream_gemini_response, # 응닡을 μƒμ„±ν•˜κ³  μŠ€νŠΈλ¦¬λ°ν•©λ‹ˆλ‹€.
426
- inputs=[msg_store, chatbot],
427
- outputs=chatbot
428
- )
429
-
430
- clear_button.click(
431
- lambda: ([], "", ""),
432
- outputs=[chatbot, input_box, msg_store],
433
- queue=False
434
- )
435
-
436
- with gr.TabItem("μ‚¬μš© 방법", id="instructions_tab"):
437
- gr.Markdown(
438
- """
439
- ## PharmAI: λ‹Ήμ‹ μ˜ μ „λ¬Έ 약리학 μ–΄μ‹œμŠ€ν„΄νŠΈ
440
-
441
- PharmAI에 μ˜€μ‹  것을 ν™˜μ˜ν•©λ‹ˆλ‹€. PharmAIλŠ” Google의 Gemini 2.0 Flash λͺ¨λΈλ‘œ κ΅¬λ™λ˜λŠ” μ „λ¬Έ μ±—λ΄‡μž…λ‹ˆλ‹€. PharmAIλŠ” κ΄‘λ²”μœ„ν•œ μ•½ν•™ 지식 데이터 μ„ΈνŠΈ("PharmKG")λ₯Ό ν™œμš©ν•˜μ—¬ 약리학 μ£Όμ œμ— λŒ€ν•œ μ „λ¬Έκ°€ μˆ˜μ€€μ˜ 정보λ₯Ό μ œκ³΅ν•˜λ„λ‘ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
442
-
443
- **μ£Όμš” κΈ°λŠ₯:**
444
-
445
- * **κ³ κΈ‰ 약리학 톡찰λ ₯**: PharmAIλŠ” κ΄‘λ²”μœ„ν•œ 약리학 지식 κ·Έλž˜ν”„λ₯Ό 기반으둜 κ΅¬μ‘°ν™”λ˜κ³  μƒμ„Έν•œ 닡변을 μ œκ³΅ν•©λ‹ˆλ‹€.
446
- * **μΆ”λ‘  및 μΆ”λ‘ **: 챗봇은 λ³΅μž‘ν•˜κ³  닀면적인 μ§ˆλ¬Έμ„ μ²˜λ¦¬ν•˜μ—¬ μ‚¬μš© κ°€λŠ₯ν•œ μ •λ³΄λ‘œλΆ€ν„° μΆ”λ‘ ν•˜κ³  μΆ”λ‘ ν•˜λŠ” λŠ₯λ ₯을 λ³΄μ—¬μ€λ‹ˆλ‹€.
447
- * **κ΅¬μ‘°ν™”λœ 응닡**: 응닡은 μ •μ˜, μž‘μš© λ©”μ»€λ‹ˆμ¦˜, 적응증, νˆ¬μ—¬λŸ‰, λΆ€μž‘μš©, μ•½λ¬Ό μƒν˜Έ μž‘μš©, 약동학 및 ν•΄λ‹Ήλ˜λŠ” 경우 μ°Έμ‘° λ¬Έν—Œμ„ ν¬ν•¨ν•˜λ„λ‘ λ…Όλ¦¬μ μœΌλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.
448
- * **사고 κ³Όμ • ν‘œμ‹œ**: λͺ¨λΈμ΄ 응닡을 생성할 λ•Œ λͺ¨λΈμ˜ 사고 과정을 κ΄€μ°°ν•  수 μžˆμŠ΅λ‹ˆλ‹€(μ‹€ν—˜μ  κΈ°λŠ₯).
449
- * **λŒ€ν™” 기둝**: PharmAIλŠ” 이전 λŒ€ν™” 뢀뢄을 κΈ°μ–΅ν•˜μ—¬ μ—¬λŸ¬ λ²ˆμ— 걸쳐 더 μ •ν™•ν•˜κ³  κ΄€λ ¨μ„± μžˆλŠ” 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
450
- * **슀트리밍 좜λ ₯**: 챗봇은 λŒ€ν™”ν˜• κ²½ν—˜μ„ μœ„ν•΄ 응닡을 μŠ€νŠΈλ¦¬λ°ν•©λ‹ˆλ‹€.
451
-
452
- **PharmAI μ‚¬μš© 방법:**
453
-
454
- 1. **λŒ€ν™” μ‹œμž‘**: "λŒ€ν™”" νƒ­ μ•„λž˜μ˜ μž…λ ₯ μƒμžμ— 약리학 μ§ˆλ¬Έμ„ μž…λ ₯ν•©λ‹ˆλ‹€. 챗봇은 특히 λ³΅μž‘ν•œ 약리학 μ§ˆλ¬Έμ„ μ²˜λ¦¬ν•˜λ„λ‘ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
455
-
456
- 2. **예제 ν”„λ‘¬ν”„νŠΈ μ‚¬μš©**: 제곡된 예제 μ§ˆλ¬Έμ„ μ‚¬μš©ν•˜μ—¬ λͺ¨λΈ μž‘λ™ 방식을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ˜ˆμ œλŠ” 챗봇이 μ „λ¬Έ 지식을 보여주도둝 ν•˜κΈ° μœ„ν•΄ κ³ μ•ˆλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
457
-
458
- 3. **예제 ν”„λ‘¬ν”„νŠΈ 지침**:
459
- * **μž‘μš© λ©”μ»€λ‹ˆμ¦˜**: νŠΉμ • 약물이 λΆ„μž μˆ˜μ€€μ—μ„œ μ–΄λ–»κ²Œ μž‘μš©ν•˜λŠ”μ§€ λ¬Όμ–΄λ³΄μ„Έμš”. 예: "λ©”νŠΈν¬λ₯΄λ―Όμ˜ μž‘μš© λ©”μ»€λ‹ˆμ¦˜μ„ μ„€λͺ…ν•˜μ‹­μ‹œμ˜€."
460
- * **μ•½λ¬Ό λŒ€μ‚¬**: 신체가 약물을 μ–΄λ–»κ²Œ μ²˜λ¦¬ν•˜λŠ”μ§€ λ¬Έμ˜ν•˜μ‹­μ‹œμ˜€. 예: "CYP450 νš¨μ†Œμ™€ μ•½λ¬Ό λŒ€μ‚¬ κ°„μ˜ μƒν˜Έ μž‘μš©μ„ μ„€λͺ…ν•˜μ‹­μ‹œμ˜€..."
461
- * **μž„μƒμ  의미**: νŠΉμ • μ§ˆλ³‘μ„ μΉ˜λ£Œν•˜λŠ” 데 μžˆμ–΄ μ•½λ¬Όμ˜ μž„μƒμ  μ‚¬μš©μ— λŒ€ν•œ μ§ˆλ¬Έμ„ μ œκΈ°ν•˜μ‹­μ‹œμ˜€. 예: "심뢀전 μΉ˜λ£Œμ—μ„œ 베타 μ°¨λ‹¨μ œμ˜ μž‘μš© λ©”μ»€λ‹ˆμ¦˜κ³Ό μž„μƒμ  μ€‘μš”μ„±μ— λŒ€ν•΄ λ…Όμ˜ν•˜μ‹­μ‹œμ˜€..."
462
- * **λ³‘νƒœμƒλ¦¬ν•™ 및 μ•½λ¬Ό ν‘œμ **: μ§ˆλ³‘, 원인 및 약물이 μ§ˆλ³‘μ„ μΉ˜λ£Œν•  수 μžˆλŠ” 방법에 λŒ€ν•΄ λ¬Έμ˜ν•˜μ‹­μ‹œμ˜€. 예: "제2ν˜• λ‹Ήλ‡¨λ³‘μ˜ λ³‘νƒœ 생리학을 μ„€λͺ…ν•˜κ³  λ©”νŠΈν¬λ₯΄λ―Όμ΄ μ–΄λ–»κ²Œ μž‘μš©ν•˜λŠ”μ§€ μ„€λͺ…ν•˜μ‹­μ‹œμ˜€..."
463
- * **볡합 닀쀑 μ•½λ¬Ό μƒν˜Έ μž‘μš©**: μ‹ μ²΄μ—μ„œ ν•˜λ‚˜μ˜ 약물이 λ‹€λ₯Έ 약물에 μ–΄λ–»κ²Œ 영ν–₯을 λ―ΈμΉ  수 μžˆλŠ”μ§€μ— λŒ€ν•œ μ§ˆλ¬Έμ„ μ œκΈ°ν•˜μ‹­μ‹œμ˜€.
464
- * **전톡 μ˜ν•™ 관점**: μ§ˆλ³‘ 및 μΉ˜λ£Œμ— λŒ€ν•œ 전톡 μ˜ν•™(ν•œλ°©κ³Ό 같은) μ ‘κ·Ό 방식에 λŒ€ν•΄ λ¬Έμ˜ν•˜μ‹­μ‹œμ˜€. 예: "ν•œλ°©μ  κ΄€μ μ—μ„œ μ•ŒμΈ ν•˜μ΄λ¨Έλ³‘ μΉ˜λ£Œμ— 효과적인 μ²œμ—° 식물 물질과 κ·Έ λ©”μ»€λ‹ˆμ¦˜μ„ μ„€λͺ…ν•˜μ‹­μ‹œμ˜€."
465
-
466
-
467
- 4. **응닡 κ²€ν† **: 챗봇은 λ‚΄λΆ€ 처리 과정을 λ³΄μ—¬μ£ΌλŠ” "생각 쀑" μ„Ήμ…˜κ³Ό ν•¨κ»˜ 응닡을 μ œμ‹œν•©λ‹ˆλ‹€. 그런 λ‹€μŒ μ •μ˜, μž‘μš© λ©”μ»€λ‹ˆμ¦˜, 적응증 등을 ν¬ν•¨ν•œ μ„Ήμ…˜κ³Ό ν•¨κ»˜ 보닀 κ΅¬μ‘°ν™”λœ 응닡을 μ œκ³΅ν•©λ‹ˆλ‹€.
468
-
469
- 5. **λŒ€ν™” μ΄ˆκΈ°ν™”**: "λŒ€ν™” μ΄ˆκΈ°ν™”" λ²„νŠΌμ„ μ‚¬μš©ν•˜μ—¬ μƒˆ μ„Έμ…˜μ„ μ‹œμž‘ν•©λ‹ˆλ‹€.
470
-
471
- **μ£ΌοΏ½οΏ½ 사항:**
472
-
473
- * '생각 쀑' κΈ°λŠ₯은 μ‹€ν—˜μ μ΄μ§€λ§Œ 응닡을 생성할 λ•Œ λͺ¨λΈμ΄ μˆ˜ν–‰ν•œ 단계λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.
474
- * μ‘λ‹΅μ˜ ν’ˆμ§ˆμ€ μ‚¬μš©μž ν”„λ‘¬ν”„νŠΈμ— 따라 크게 λ‹¬λΌμ§‘λ‹ˆλ‹€. μ΅œμƒμ˜ κ²°κ³Όλ₯Ό μ–»μœΌλ €λ©΄ μ§ˆλ¬Έν•  λ•Œ κ°€λŠ₯ν•œ ν•œ μžμ„Έν•˜κ²Œ μ„€λͺ…ν•˜μ‹­μ‹œμ˜€.
475
- * 이 λͺ¨λΈμ€ 특히 약리학 정보에 μ΄ˆμ μ„ λ§žμΆ”κ³  μžˆμœΌλ―€λ‘œ 이 λ²”μœ„λ₯Ό λ²—μ–΄λ‚œ μ§ˆλ¬Έμ—λŠ” κ΄€λ ¨μ„± μžˆλŠ” 닡변을 얻지 λͺ»ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
476
- * 이 챗봇은 정보 제곡용 λ¦¬μ†ŒμŠ€λ‘œ 제곡되며 의료 진단 λ˜λŠ” 치료 ꢌμž₯ 사항에 μ‚¬μš©ν•΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. 의료 상담이 ν•„μš”ν•œ 경우 항상 의료 전문가와 μƒλ‹΄ν•˜μ‹­μ‹œμ˜€.
477
-
478
- """
479
- )
480
-
481
- # Launch the interface
482
- if __name__ == "__main__":
483
  demo.launch(debug=True)
 
343
 
344
  # Launch the interface
345
  if __name__ == "__main__":
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
347
  demo.launch(debug=True)