Spaces:
Runtime error
Runtime error
add system prompt
Browse files
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 = "
|
| 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"
|
| 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"
|
| 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"
|