Rene0119 commited on
Commit
beadfd3
·
verified ·
1 Parent(s): 0bc5aa3

add system prompt

Browse files
Files changed (1) hide show
  1. app.py +7 -6
app.py CHANGED
@@ -112,6 +112,7 @@ parser = WebhookParser(LINE_CHANNEL_SECRET)
112
  handler = WebhookHandler(LINE_CHANNEL_SECRET)
113
 
114
  genai.configure(api_key=GOOGLE_API_KEY)
 
115
  chat = genai.GenerativeModel(model_name="gemini-1.5-flash")
116
 
117
  logging.basicConfig(level=logging.INFO)
@@ -157,7 +158,7 @@ def callback():
157
 
158
  # AI 問答
159
  if user_input.startswith("AI "):
160
- prompt = "你是一個中文的AI助手,請用繁體中文回答。\n" + user_input[3:].strip()
161
  try:
162
  response = chat.generate_content(prompt)
163
  reply_text = response.text
@@ -210,7 +211,7 @@ def callback():
210
  if rows:
211
  zh_name, en_name, indication = rows[0]
212
  # 副作用由 AI 產生
213
- prompt = (
214
  f"請用簡短條列式,僅列出副作用,針對藥品「{zh_name}」(英文名:{en_name}),"
215
  "請用繁體中文回答,若無法判斷請推測。"
216
  )
@@ -218,7 +219,7 @@ def callback():
218
  ai_resp = chat.generate_content(prompt)
219
  side_effects = ai_resp.text.strip()
220
  except Exception as e:
221
- side_effects = f"AI 回答失敗:{e}"
222
  reply_text = (
223
  f"🔹 中文品名:{zh_name}\n"
224
  f"📌 英文品名:{en_name}\n"
@@ -227,7 +228,7 @@ def callback():
227
  )
228
  else:
229
  # 全部請AI生成
230
- prompt = (
231
  f"請用以下格式,幫我介紹藥品「{medicine_name}」,若無法查到請盡量推測:\n"
232
  "🔹 中文品名:\n"
233
  "📌 英文品名:\n"
@@ -238,7 +239,7 @@ def callback():
238
  ai_resp = chat.generate_content(prompt)
239
  reply_text = ai_resp.text
240
  except Exception as e:
241
- reply_text = f"AI 回答失敗:{e}"
242
 
243
  except Exception as e:
244
  reply_text = f"⚠️ 查詢資料時發生錯誤:{str(e)}"
@@ -333,7 +334,7 @@ def callback():
333
  image = Image.open(tf.name)
334
 
335
  # Gemini 圖片說明(指定格式,四欄都AI產生)
336
- prompt = (
337
  "請根據這張圖片判斷藥品資訊,並用以下格式回答,若無法判斷請盡量推測:\n"
338
  "🔹 中文品名:\n"
339
  "📌 英文品名:\n"
 
112
  handler = WebhookHandler(LINE_CHANNEL_SECRET)
113
 
114
  genai.configure(api_key=GOOGLE_API_KEY)
115
+ text_system_prompt = "你是一個專業的中文藥物安全衛教AI,運行於Linebot平台,負責為台灣用戶提供用藥查詢、衛教提醒、藥品辨識與互動諮詢。所有回應必須以繁體中文呈現,語氣需保持專業、中立、清晰,嚴禁使用非正式語彙或網路用語。你的回答僅限於台灣現行合法藥品、常見用藥安全及一般衛教知識,絕不涉及診斷、處方或違法用途。遇重要藥品資訊或警語時,務必標示資料來源(如衛福部、健保署或官方藥物資料庫);無法查證時,需說明資訊有限並提醒用戶諮詢藥師。遇到模糊、非藥物相關、或疑似緊急情境(如中毒、嚴重過敏),請直接回覆:「請儘速就醫或聯絡藥師,Linebot無法提供緊急醫療協助。」回答時,優先給出簡明結論,再補充必要說明,遇複雜內容可分點陳述,藥品名稱、注意事項及用法用量需明顯標註。若用戶詢問非本功能範圍問題,請回覆:「本Linebot僅提供藥物安全與衛生教育資訊。」並簡要列舉可查詢主題(如用藥禁忌、藥物交互作用、藥品保存方式等)。所有資訊僅反映截至2025年6月之官方資料,若遇新藥、召回或重大警訊,應提醒用戶查閱衛福部或官方藥事機構。"
116
  chat = genai.GenerativeModel(model_name="gemini-1.5-flash")
117
 
118
  logging.basicConfig(level=logging.INFO)
 
158
 
159
  # AI 問答
160
  if user_input.startswith("AI "):
161
+ prompt = text_system_prompt + "\n" + user_input[3:].strip()
162
  try:
163
  response = chat.generate_content(prompt)
164
  reply_text = response.text
 
211
  if rows:
212
  zh_name, en_name, indication = rows[0]
213
  # 副作用由 AI 產生
214
+ prompt = text_system_prompt + "\n" + (
215
  f"請用簡短條列式,僅列出副作用,針對藥品「{zh_name}」(英文名:{en_name}),"
216
  "請用繁體中文回答,若無法判斷請推測。"
217
  )
 
219
  ai_resp = chat.generate_content(prompt)
220
  side_effects = ai_resp.text.strip()
221
  except Exception as e:
222
+ side_effects = f"系統繁忙,請稍後再試:{e}"
223
  reply_text = (
224
  f"🔹 中文品名:{zh_name}\n"
225
  f"📌 英文品名:{en_name}\n"
 
228
  )
229
  else:
230
  # 全部請AI生成
231
+ prompt = text_system_prompt + "\n" + (
232
  f"請用以下格式,幫我介紹藥品「{medicine_name}」,若無法查到請盡量推測:\n"
233
  "🔹 中文品名:\n"
234
  "📌 英文品名:\n"
 
239
  ai_resp = chat.generate_content(prompt)
240
  reply_text = ai_resp.text
241
  except Exception as e:
242
+ reply_text = f"系統繁忙,請稍後再試:{e}"
243
 
244
  except Exception as e:
245
  reply_text = f"⚠️ 查詢資料時發生錯誤:{str(e)}"
 
334
  image = Image.open(tf.name)
335
 
336
  # Gemini 圖片說明(指定格式,四欄都AI產生)
337
+ prompt = text_system_prompt + "\n" + (
338
  "請根據這張圖片判斷藥品資訊,並用以下格式回答,若無法判斷請盡量推測:\n"
339
  "🔹 中文品名:\n"
340
  "📌 英文品名:\n"