openfree commited on
Commit
c692788
β€’
1 Parent(s): feafc1a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -7
app.py CHANGED
@@ -6,6 +6,14 @@ import pandas as pd
6
  from typing import List, Tuple
7
  import json
8
  from datetime import datetime
 
 
 
 
 
 
 
 
9
 
10
  # ν™˜κ²½ λ³€μˆ˜ μ„€μ •
11
  HF_TOKEN = os.getenv("HF_TOKEN")
@@ -154,19 +162,58 @@ def read_uploaded_file(file):
154
  except Exception as e:
155
  return f"❌ 파일 읽기 였λ₯˜: {str(e)}", "error"
156
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  def chat(message, history, uploaded_file, system_message="", max_tokens=4000, temperature=0.7, top_p=0.9):
158
  if not message:
159
  return "", history
160
 
161
- system_prefix = """μ €λŠ” μ—¬λŸ¬λΆ„μ˜ μΉœκ·Όν•˜κ³  지적인 AI μ–΄μ‹œμŠ€ν„΄νŠΈ 'GiniGEN Pharm'μž…λ‹ˆλ‹€.. λ‹€μŒκ³Ό 같은 μ›μΉ™μœΌλ‘œ μ†Œν†΅ν•˜κ² μŠ΅λ‹ˆλ‹€:
162
- 1. 🀝 μΉœκ·Όν•˜κ³  곡감적인 νƒœλ„λ‘œ λŒ€ν™”
163
- 2. πŸ’‘ λͺ…ν™•ν•˜κ³  μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ μ„€λͺ… 제곡
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  3. 🎯 질문의 μ˜λ„λ₯Ό μ •ν™•νžˆ νŒŒμ•…ν•˜μ—¬ λ§žμΆ€ν˜• λ‹΅λ³€
165
- 4. πŸ“š ν•„μš”ν•œ 경우 μ—…λ‘œλ“œλœ 파일 λ‚΄μš©μ„ μ°Έκ³ ν•˜μ—¬ ꡬ체적인 도움 제곡
166
- 5. ✨ 좔가적인 톡찰과 μ œμ•ˆμ„ ν†΅ν•œ κ°€μΉ˜ μžˆλŠ” λŒ€ν™”
 
 
167
 
168
- 항상 예의 λ°”λ₯΄κ³  μΉœμ ˆν•˜κ²Œ μ‘λ‹΅ν•˜λ©°, ν•„μš”ν•œ 경우 ꡬ체적인 μ˜ˆμ‹œλ‚˜ μ„€λͺ…을 μΆ”κ°€ν•˜μ—¬
169
- 이해λ₯Ό λ•κ² μŠ΅λ‹ˆλ‹€."""
170
 
171
  try:
172
  # 파일 μ—…λ‘œλ“œ 처리
 
6
  from typing import List, Tuple
7
  import json
8
  from datetime import datetime
9
+ from datasets import load_dataset
10
+
11
+ try:
12
+ pharmkg_dataset = load_dataset("vinven7/PharmKG")
13
+ print("PharmKG 데이터셋 λ‘œλ“œ μ™„λ£Œ")
14
+ except Exception as e:
15
+ print(f"PharmKG 데이터셋 λ‘œλ“œ μ‹€νŒ¨: {e}")
16
+ pharmkg_dataset = None
17
 
18
  # ν™˜κ²½ λ³€μˆ˜ μ„€μ •
19
  HF_TOKEN = os.getenv("HF_TOKEN")
 
162
  except Exception as e:
163
  return f"❌ 파일 읽기 였λ₯˜: {str(e)}", "error"
164
 
165
+
166
+
167
+ def get_pharmkg_context(query):
168
+ """PharmKG λ°μ΄ν„°μ…‹μ—μ„œ κ΄€λ ¨ 정보 검색"""
169
+ if pharmkg_dataset is None:
170
+ return ""
171
+
172
+ try:
173
+ # λ°μ΄ν„°μ…‹μ—μ„œ κ΄€λ ¨ 정보 검색 둜직 κ΅¬ν˜„
174
+ relevant_info = []
175
+
176
+ # μ•½λ¬Ό 정보 검색
177
+ for item in pharmkg_dataset['train']:
178
+ if query.lower() in str(item).lower():
179
+ relevant_info.append(str(item))
180
+
181
+ if relevant_info:
182
+ return "\n\nPharmKG μ°Έκ³  정보:\n" + "\n".join(relevant_info[:3])
183
+ return ""
184
+ except Exception as e:
185
+ print(f"PharmKG 검색 였λ₯˜: {e}")
186
+ return ""
187
+
188
+
189
  def chat(message, history, uploaded_file, system_message="", max_tokens=4000, temperature=0.7, top_p=0.9):
190
  if not message:
191
  return "", history
192
 
193
+ try:
194
+ # PharmKG μ»¨ν…μŠ€νŠΈ μΆ”κ°€
195
+ pharmkg_context = get_pharmkg_context(message)
196
+ system_message = SYSTEM_PREFIX + system_message + pharmkg_context
197
+
198
+
199
+ SYSTEM_PREFIX = """μ €λŠ” 약리학 μ „λ¬Έ AI μ–΄μ‹œμŠ€ν„΄νŠΈ 'GiniGEN Pharm'μž…λ‹ˆλ‹€. PharmKG λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 기반으둜
200
+ λ‹€μŒκ³Ό 같은 전문성을 가지고 μ†Œν†΅ν•˜κ² μŠ΅λ‹ˆλ‹€:
201
+
202
+ 1. πŸ’Š μ•½λ¬Ό κ΄€λ ¨ μ „λ¬Έ 지식 제곡
203
+ 2. πŸ”¬ μ•½λ¬Ό μƒν˜Έμž‘μš© 및 λΆ€μž‘μš© 정보
204
+ 3. 🧬 μ§ˆλ³‘-μ•½λ¬Ό 관계 μ„€λͺ…
205
+ 4. πŸ“Š μž„μƒ 데이터 기반 뢄석
206
+ 5. βš•οΈ μ˜μ•½ν’ˆ μ•ˆμ „μ„± 정보
207
+
208
+ λ‹€μŒ μ›μΉ™μœΌλ‘œ μ†Œν†΅ν•˜κ² μŠ΅λ‹ˆλ‹€:
209
+ 1. 🀝 전문적이고 μ‹ λ’°ν•  수 μžˆλŠ” 정보 제곡
210
+ 2. πŸ’‘ μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ μ„€λͺ…κ³Ό ν•¨κ»˜ 과학적 κ·Όκ±° μ œμ‹œ
211
  3. 🎯 질문의 μ˜λ„λ₯Ό μ •ν™•νžˆ νŒŒμ•…ν•˜μ—¬ λ§žμΆ€ν˜• λ‹΅λ³€
212
+ 4. ⚠️ 의료적 쑰언이 μ•„λ‹Œ 정보 제곡 λͺ©μ μž„을 λͺ…μ‹œ
213
+ 5. ✨ μΆ”κ°€ 참고자료 및 연ꡬ 데이터 μ œμ•ˆ
214
+
215
+ μ˜ν•™μ  결정은 λ°˜λ“œμ‹œ μ „λ¬Έ μ˜λ£Œμ§„κ³Ό μƒλ‹΄ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€."""
216
 
 
 
217
 
218
  try:
219
  # 파일 μ—…λ‘œλ“œ 처리