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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -16
app.py CHANGED
@@ -55,13 +55,10 @@ def render_score_card(total, raw):
55
  return "\n".join(parts)
56
 
57
  # === 呼叫 Gemini API ===
58
- def call_gemini(summary):
59
- if not GEMINI_API_KEY:
60
- return "【設定錯誤】找不到 GEMINI_API_KEY"
61
-
62
- headers = {"Content-Type": "application/json"}
63
- # ⚠️ 保留你的完整 prompt,不修改
64
- prompt = f"""你是臨床教師,學生主要用什麼語言回答你就用什麼語言給分打回饋。根據以下七大題項和等第制,請對實習醫學生的一分鐘總結進行評分與評論。學生主要用什麼語言回答你就用什麼語言給分打回饋。
65
  評分規準:
66
  • 優異(A):90-100分
67
  o 評語: 內容精確、邏輯嚴謹,能對病程變化做出全面且深入的分析。能將各項資訊融會貫通,並在鑑別診斷中展現清晰的臨床思維。
@@ -136,16 +133,33 @@ ________________________________________
136
  {summary}
137
  學生主要用什麼語言回答你就用什麼語言給分打回饋。
138
  """
139
- data = {"contents": [{"parts": [{"text": prompt}]}]}
140
- resp = requests.post(API_URL, headers=headers, data=json.dumps(data), timeout=30)
141
- if resp.status_code == 200:
142
- try:
143
- return resp.json()["candidates"][0]["content"]["parts"][0]["text"]
144
- except Exception as e:
145
- return f"【解析回應失敗】{e}|原始:{resp.text[:300]}"
146
- else:
147
- return f"【API 錯誤 {resp.status_code}】{resp.text[:300]}"
148
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  # === 紀錄到 Google Sheet ===
150
  def log_to_sheet(level, name, p1, p2, p3, p4, p5, p6, p7, raw, total):
151
  now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
 
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 評語: 內容精確、邏輯嚴謹,能對病程變化做出全面且深入的分析。能將各項資訊融會貫通,並在鑑別診斷中展現清晰的臨床思維。
 
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):
165
  now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")