Enzo886 commited on
Commit
ba3feb7
·
verified ·
1 Parent(s): 2517da3

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +12 -46
main.py CHANGED
@@ -13,12 +13,10 @@ from linebot.models import (
13
  AudioMessage,
14
  TemplateSendMessage,
15
  ButtonsTemplate,
16
- MessageTemplateAction,
17
- URIAction
18
  )
19
  from dotenv import load_dotenv
20
  import asyncio
21
- import requests
22
 
23
  # 從 .env 檔案載入環境變數
24
  load_dotenv()
@@ -170,53 +168,20 @@ def handle_text_message(event):
170
  try:
171
  prompt = event.message.text
172
  logging.info(f"收到使用者 {user_id} 的訊息: {prompt}")
173
- # call Bio-Medical-Llama-3-8B API
174
- response_text = call_llama_api(prompt)
175
- if response_text:
176
- out = response_text
177
- logging.info(f"Bio-Medical-Llama-3-8B 回覆使用者 {user_id}: {out}")
178
  else:
179
- out = "Bio-Medical-Llama-3-8B 沒有回覆!請換個說法!"
180
- logging.warning(f"Bio-Medical-Llama-3-8B 沒有回覆文字內容給使用者 {user_id}")
181
  except Exception as e:
182
- out = "Bio-Medical-Llama-3-8B 執行出錯!請換個說法!"
183
- logging.error(f"Bio-Medical-Llama-3-8B 發生錯誤 (使用者: {user_id}): {e}")
184
 
185
  line_bot_api.reply_message(event.reply_token, TextSendMessage(text=out))
186
 
187
- # --- 5. 呼叫 Hugging Face API ---
188
- def call_llama_api(prompt: str):
189
- """
190
- 呼叫 Hugging Face API,取得 Bio-Medical-Llama-3-8B 的回覆
191
- """
192
- api_url = "https://api-inference.huggingface.co/models/ContactDoctor/Bio-Medical-Llama-3-8B"
193
- headers = {"Authorization": f"Bearer {os.getenv('HUGGINGFACE_API_KEY')}"} # 請在.env新增HUGGINGFACE_API_KEY
194
- payload = {
195
- "inputs": prompt,
196
- "parameters": {
197
- "max_length": 512, # 調整輸出長度
198
- "temperature": 0.7,
199
- "top_p": 0.9,
200
- "top_k": 50
201
- }
202
- }
203
-
204
- try:
205
- response = requests.post(api_url, headers=headers, json=payload)
206
- response.raise_for_status() # 如果發生錯誤就拋出 exception
207
- response_json = response.json()
208
- if isinstance(response_json, list) and response_json:
209
- return response_json[0].get("generated_text") # 返回模型產生的文字
210
- else:
211
- return None # 如果返回格式錯誤,則返回 None
212
- except requests.exceptions.RequestException as e:
213
- logging.error(f"呼叫 Hugging Face API 發生錯誤:{e}")
214
- return None
215
- except Exception as e:
216
- logging.error(f"處理 Hugging Face API 回應時發生錯誤:{e}")
217
- return None
218
-
219
-
220
  @line_handler.add(MessageEvent, message=TextMessage)
221
  def handle_message(event):
222
  """
@@ -246,9 +211,10 @@ def handle_message(event):
246
  line_bot_api.reply_message(event.reply_token, buttons_template_message)
247
  return
248
 
 
249
  handle_text_message(event)
250
 
251
- # --- 6. 啟動應用程式 ---
252
  if __name__ == "__main__":
253
  import uvicorn
254
 
 
13
  AudioMessage,
14
  TemplateSendMessage,
15
  ButtonsTemplate,
16
+ MessageTemplateAction
 
17
  )
18
  from dotenv import load_dotenv
19
  import asyncio
 
20
 
21
  # 從 .env 檔案載入環境變數
22
  load_dotenv()
 
168
  try:
169
  prompt = event.message.text
170
  logging.info(f"收到使用者 {user_id} 的訊息: {prompt}")
171
+ chat_session = get_or_create_chat_session(user_id)
172
+ response = chat_session.send_message(prompt)
173
+ if response.text:
174
+ out = response.text
175
+ logging.info(f"Gemini 回覆使用者 {user_id}: {out}")
176
  else:
177
+ out = "Gemini 沒答案!請換個說法!"
178
+ logging.warning(f"Gemini 沒有回覆文字內容給使用者 {user_id}")
179
  except Exception as e:
180
+ out = "Gemini 執行出錯!請換個說法!"
181
+ logging.error(f"Gemini 發生錯誤 (使用者: {user_id}): {e}")
182
 
183
  line_bot_api.reply_message(event.reply_token, TextSendMessage(text=out))
184
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
185
  @line_handler.add(MessageEvent, message=TextMessage)
186
  def handle_message(event):
187
  """
 
211
  line_bot_api.reply_message(event.reply_token, buttons_template_message)
212
  return
213
 
214
+
215
  handle_text_message(event)
216
 
217
+ # --- 5. 啟動應用程式 ---
218
  if __name__ == "__main__":
219
  import uvicorn
220