openfree commited on
Commit
c692788
·
verified ·
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
  # 파일 업로드 처리