wensjheng commited on
Commit
ab2daf0
·
verified ·
1 Parent(s): c02fe7d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -26
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
- # === 呼叫 Gemini API ===
58
- def call_openai_gpt(summary):
59
  if not api_key:
60
- return "【設定錯誤】找不到 OPENAI_API_KEY,請在環境變數中設定。"
61
- system_prompt = f"""你是臨床教師,學生主要用什麼語言回答你就用什麼語言給分打回饋。根據以下七大題項和等第制,請對實習醫學生的一分鐘總結進行評分與評論。學生主要用什麼語言回答你就用什麼語言給分打回饋。
 
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
- response = client.responses.create(
 
137
  model=MODEL_NAME,
138
  input=prompt,
139
  )
140
 
141
- user_message = f"""學生的一分鐘總結如下:
142
- {summary}
143
- 請依照上述臨床教師的角色進行評分。學生主要用什麼語言回答你就用什麼語言給分打回饋。"""
144
-
145
  try:
146
- response = client.chat.completions.create(
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
- error_msg = str(e)
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):