Basshole commited on
Commit
aed4040
·
verified ·
1 Parent(s): b11c3b0

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -3
app.py CHANGED
@@ -114,6 +114,41 @@ def generate_prompt(achievement: str, emotion: str, information: str,
114
  ############################################
115
  # 呼叫模型 API (OpenAI / Claude)
116
  ############################################
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  def call_openai_api(prompt: str, model_name: str) -> str:
118
  """參考新版 usage: from openai import OpenAI -> client.chat.completions.create()"""
119
  if not client.api_key:
@@ -170,7 +205,6 @@ def call_claude_api(prompt: str) -> str:
170
  except Exception as e:
171
  return f"[Claude API 呼叫失敗]: {str(e)}"
172
 
173
-
174
  def get_model_answer(model_choice: str, final_prompt: str, question: str) -> str:
175
  """
176
  根據 model_choice 呼叫對應的 API。
@@ -179,9 +213,9 @@ def get_model_answer(model_choice: str, final_prompt: str, question: str) -> str
179
  content_to_send = final_prompt + "\n\n" + question
180
 
181
  if model_choice == "ChatGPT 4o":
182
- return call_openai_api(content_to_send, model_name="gpt-4o")
183
  elif model_choice == "ChatGPT o1":
184
- return call_openai_api(content_to_send, model_name="o1")
185
  elif model_choice == "Claude 3.5 Sonnet":
186
  return call_claude_api(content_to_send)
187
  else:
 
114
  ############################################
115
  # 呼叫模型 API (OpenAI / Claude)
116
  ############################################
117
+ def call_openai_api_4o(prompt: str) -> str:
118
+ """專門呼叫 ChatGPT 4o 模型"""
119
+ if not client.api_key:
120
+ return "[OpenAI API Key 未設定,無法呼叫 API]"
121
+
122
+ try:
123
+ # 以 ChatCompletion 方式呼叫
124
+ chat_completion = client.chat.completions.create(
125
+ messages=[{"role": "user", "content": prompt}],
126
+ model="gpt-4o",
127
+ temperature=0.7,
128
+ max_completion_tokens=2048,
129
+ )
130
+ return chat_completion.choices[0].message.content
131
+ except Exception as e:
132
+ return f"[OpenAI API 呼叫失敗]: {str(e)}"
133
+
134
+
135
+ def call_openai_api_o1(prompt: str) -> str:
136
+ """專門呼叫 ChatGPT o1 模型"""
137
+ if not client.api_key:
138
+ return "[OpenAI API Key 未設定,無法呼叫 API]"
139
+
140
+ try:
141
+ # 以 ChatCompletion 方式呼叫
142
+ chat_completion = client.chat.completions.create(
143
+ messages=[{"role": "user", "content": prompt}],
144
+ model="o1",
145
+ max_completion_tokens=2048,
146
+ )
147
+ return chat_completion.choices[0].message.content
148
+ except Exception as e:
149
+ return f"[OpenAI API 呼叫失敗]: {str(e)}"
150
+
151
+
152
  def call_openai_api(prompt: str, model_name: str) -> str:
153
  """參考新版 usage: from openai import OpenAI -> client.chat.completions.create()"""
154
  if not client.api_key:
 
205
  except Exception as e:
206
  return f"[Claude API 呼叫失敗]: {str(e)}"
207
 
 
208
  def get_model_answer(model_choice: str, final_prompt: str, question: str) -> str:
209
  """
210
  根據 model_choice 呼叫對應的 API。
 
213
  content_to_send = final_prompt + "\n\n" + question
214
 
215
  if model_choice == "ChatGPT 4o":
216
+ return call_openai_api_4o(content_to_send)
217
  elif model_choice == "ChatGPT o1":
218
+ return call_openai_api_o1(content_to_send)
219
  elif model_choice == "Claude 3.5 Sonnet":
220
  return call_claude_api(content_to_send)
221
  else: