Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -54,11 +54,12 @@ def render_score_card(total, raw):
|
|
| 54 |
parts.append(raw.strip())
|
| 55 |
return "\n".join(parts)
|
| 56 |
|
| 57 |
-
# === 呼叫
|
| 58 |
-
def
|
| 59 |
if not api_key:
|
| 60 |
-
return "【設定錯誤】找不到 OPENAI_API_KEY,請在
|
| 61 |
-
|
|
|
|
| 62 |
評分規準:
|
| 63 |
• 優異(A):90-100分
|
| 64 |
o 評語: 內容精確、邏輯嚴謹,能對病程變化做出全面且深入的分析。能將各項資訊融會貫通,並在鑑別診斷中展現清晰的臨床思維。
|
|
@@ -109,7 +110,6 @@ ________________________________________
|
|
| 109 |
• 良好(B): 能夠提及已採取的處置,但未能完整解釋其目的或背後的治療邏輯。
|
| 110 |
• 尚可(C): 僅能提及部分處置,且資訊不夠精確。
|
| 111 |
• 需加強(F): 提供的處置資訊有誤,或與病情不符,或完全無法回答此問題
|
| 112 |
-
|
| 113 |
全人照護是以個臨床工作場域的跨領域教學(InterprofessionalEducatio,IPE)為基礎,並利用跨領域團隊照護(Interprofessional Practice,IPP)的
|
| 114 |
實際運作方式,透過各職類團隊的相互合作,讓學員把知識、技能、態度(KAS)運用在病人身、心、靈、社會(四面向)照護,更以病人本身的全人照護為出發點,
|
| 115 |
擴展至全團隊共同提供全程、全家、全社區的五全照護。
|
|
@@ -128,37 +128,20 @@ ________________________________________
|
|
| 128 |
4. 總結性評論
|
| 129 |
5. 簡要全人照護面向評估與分數(5-五全: 全人、全家、全程、全隊、全社區 / 4-四面向: 生、心、靈、社會 /3-三要素: 知識、態度、技能 (KAS))
|
| 130 |
學生主要用什麼語言回答你就用什麼語言給分打回饋。
|
| 131 |
-
|
| 132 |
學生的一分鐘總結如下:
|
| 133 |
{summary}
|
| 134 |
學生主要用什麼語言回答你就用什麼語言給分打回饋。
|
| 135 |
"""
|
| 136 |
-
|
|
|
|
| 137 |
model=MODEL_NAME,
|
| 138 |
input=prompt,
|
| 139 |
)
|
| 140 |
|
| 141 |
-
user_message = f"""學生的一分鐘總結如下:
|
| 142 |
-
{summary}
|
| 143 |
-
請依照上述臨床教師的角色進行評分。學生主要用什麼語言回答你就用什麼語言給分打回饋。"""
|
| 144 |
-
|
| 145 |
try:
|
| 146 |
-
|
| 147 |
-
model=MODEL_NAME,
|
| 148 |
-
messages=[
|
| 149 |
-
{"role": "system", "content": system_prompt},
|
| 150 |
-
{"role": "user", "content": user_message}
|
| 151 |
-
],
|
| 152 |
-
temperature=0.7, # 保持適當的創造力與評分靈活性
|
| 153 |
-
store=True
|
| 154 |
-
)
|
| 155 |
-
return response.choices[0].message.content
|
| 156 |
-
|
| 157 |
except Exception as e:
|
| 158 |
-
|
| 159 |
-
if "model" in error_msg:
|
| 160 |
-
return f"【模型錯誤】無法使用 {MODEL_NAME},請檢查權限或改用 gpt-4o-mini。\n詳細錯誤: {error_msg}"
|
| 161 |
-
return f"【OpenAI API 錯誤】{error_msg}"
|
| 162 |
|
| 163 |
# === 紀錄到 Google Sheet ===
|
| 164 |
def log_to_sheet(level, name, p1, p2, p3, p4, p5, p6, p7, raw, total):
|
|
|
|
| 54 |
parts.append(raw.strip())
|
| 55 |
return "\n".join(parts)
|
| 56 |
|
| 57 |
+
# === 呼叫 API ===
|
| 58 |
+
def call_model(summary: str) -> str:
|
| 59 |
if not api_key:
|
| 60 |
+
return "【設定錯誤】找不到 OPENAI_API_KEY,請在 Hugging Face Space Secrets 設定。"
|
| 61 |
+
|
| 62 |
+
prompt = f"""你是臨床教師,學生主要用什麼語言回答你就用什麼語言給分打回饋。根據以下七大題項和等第制,請對實習醫學生的一分鐘總結進行評分與評論。學生主要用什麼語言回答你就用什麼語言給分打回饋。
|
| 63 |
評分規準:
|
| 64 |
• 優異(A):90-100分
|
| 65 |
o 評語: 內容精確、邏輯嚴謹,能對病程變化做出全面且深入的分析。能將各項資訊融會貫通,並在鑑別診斷中展現清晰的臨床思維。
|
|
|
|
| 110 |
• 良好(B): 能夠提及已採取的處置,但未能完整解釋其目的或背後的治療邏輯。
|
| 111 |
• 尚可(C): 僅能提及部分處置,且資訊不夠精確。
|
| 112 |
• 需加強(F): 提供的處置資訊有誤,或與病情不符,或完全無法回答此問題
|
|
|
|
| 113 |
全人照護是以個臨床工作場域的跨領域教學(InterprofessionalEducatio,IPE)為基礎,並利用跨領域團隊照護(Interprofessional Practice,IPP)的
|
| 114 |
實際運作方式,透過各職類團隊的相互合作,讓學員把知識、技能、態度(KAS)運用在病人身、心、靈、社會(四面向)照護,更以病人本身的全人照護為出發點,
|
| 115 |
擴展至全團隊共同提供全程、全家、全社區的五全照護。
|
|
|
|
| 128 |
4. 總結性評論
|
| 129 |
5. 簡要全人照護面向評估與分數(5-五全: 全人、全家、全程、全隊、全社區 / 4-四面向: 生、心、靈、社會 /3-三要素: 知識、態度、技能 (KAS))
|
| 130 |
學生主要用什麼語言回答你就用什麼語言給分打回饋。
|
|
|
|
| 131 |
學生的一分鐘總結如下:
|
| 132 |
{summary}
|
| 133 |
學生主要用什麼語言回答你就用什麼語言給分打回饋。
|
| 134 |
"""
|
| 135 |
+
|
| 136 |
+
response = client.responses.create(
|
| 137 |
model=MODEL_NAME,
|
| 138 |
input=prompt,
|
| 139 |
)
|
| 140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 141 |
try:
|
| 142 |
+
return response.output[0].content[0].text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 143 |
except Exception as e:
|
| 144 |
+
return f"【解析回應失敗】{e}|原始:{str(response)[:300]}"
|
|
|
|
|
|
|
|
|
|
| 145 |
|
| 146 |
# === 紀錄到 Google Sheet ===
|
| 147 |
def log_to_sheet(level, name, p1, p2, p3, p4, p5, p6, p7, raw, total):
|