Update main.py
Browse files
main.py
CHANGED
|
@@ -13,6 +13,9 @@ from linebot.models import MessageEvent, TextMessage, TextSendMessage, ImageSend
|
|
| 13 |
# 設定 Google AI API 金鑰
|
| 14 |
genai.configure(api_key=os.environ["GOOGLE_API_KEY"])
|
| 15 |
|
|
|
|
|
|
|
|
|
|
| 16 |
# 設定生成文字的參數
|
| 17 |
generation_config = genai.types.GenerationConfig(max_output_tokens=2048, temperature=0.2, top_p=0.5, top_k=16)
|
| 18 |
|
|
@@ -63,8 +66,6 @@ async def webhook(
|
|
| 63 |
return "ok"
|
| 64 |
|
| 65 |
|
| 66 |
-
#設定open AI API 金鑰
|
| 67 |
-
OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
|
| 68 |
|
| 69 |
# 使用字典模擬用戶訊息歷史存儲
|
| 70 |
user_message_history = defaultdict(list)
|
|
@@ -133,9 +134,9 @@ def get_previous_message(user_id):
|
|
| 133 |
|
| 134 |
@line_handler.add(MessageEvent, message=(ImageMessage,TextMessage))
|
| 135 |
def handle_image_message(event):
|
| 136 |
-
global working_status
|
| 137 |
-
# 從 LINE API 獲取圖片數據
|
| 138 |
user_id = event.source.user_id
|
|
|
|
|
|
|
| 139 |
image_path = get_image_url(event.message.id)
|
| 140 |
if image_path:
|
| 141 |
# 處理圖片或進行進一步分析
|
|
@@ -155,12 +156,14 @@ def handle_image_message(event):
|
|
| 155 |
image_path = previous_message["content"]
|
| 156 |
|
| 157 |
# 儲存當前文字訊息
|
|
|
|
| 158 |
store_user_message(user_id, "text", user_text)
|
| 159 |
|
| 160 |
# 結合圖片與文字分析
|
| 161 |
out = analyze_with_openai(image_path, user_text)
|
| 162 |
|
| 163 |
else:
|
|
|
|
| 164 |
# 檢查事件類型和訊息類型
|
| 165 |
if event.type != "message" or event.message.type != "text":
|
| 166 |
# 回覆錯誤訊息
|
|
@@ -198,14 +201,10 @@ def handle_image_message(event):
|
|
| 198 |
# 處理錯誤
|
| 199 |
out = "執行出錯!請換個說法!"
|
| 200 |
|
| 201 |
-
|
| 202 |
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
event.reply_token,
|
| 206 |
-
TextSendMessage(text=out))
|
| 207 |
|
| 208 |
-
|
| 209 |
|
| 210 |
if __name__ == "__main__":
|
| 211 |
# 啟動 FastAPI 應用程式
|
|
|
|
| 13 |
# 設定 Google AI API 金鑰
|
| 14 |
genai.configure(api_key=os.environ["GOOGLE_API_KEY"])
|
| 15 |
|
| 16 |
+
#設定open AI API 金鑰
|
| 17 |
+
OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
|
| 18 |
+
|
| 19 |
# 設定生成文字的參數
|
| 20 |
generation_config = genai.types.GenerationConfig(max_output_tokens=2048, temperature=0.2, top_p=0.5, top_k=16)
|
| 21 |
|
|
|
|
| 66 |
return "ok"
|
| 67 |
|
| 68 |
|
|
|
|
|
|
|
| 69 |
|
| 70 |
# 使用字典模擬用戶訊息歷史存儲
|
| 71 |
user_message_history = defaultdict(list)
|
|
|
|
| 134 |
|
| 135 |
@line_handler.add(MessageEvent, message=(ImageMessage,TextMessage))
|
| 136 |
def handle_image_message(event):
|
|
|
|
|
|
|
| 137 |
user_id = event.source.user_id
|
| 138 |
+
|
| 139 |
+
# 從 LINE API 獲取圖片數據
|
| 140 |
image_path = get_image_url(event.message.id)
|
| 141 |
if image_path:
|
| 142 |
# 處理圖片或進行進一步分析
|
|
|
|
| 156 |
image_path = previous_message["content"]
|
| 157 |
|
| 158 |
# 儲存當前文字訊息
|
| 159 |
+
user_text = event.message.text
|
| 160 |
store_user_message(user_id, "text", user_text)
|
| 161 |
|
| 162 |
# 結合圖片與文字分析
|
| 163 |
out = analyze_with_openai(image_path, user_text)
|
| 164 |
|
| 165 |
else:
|
| 166 |
+
global working_status
|
| 167 |
# 檢查事件類型和訊息類型
|
| 168 |
if event.type != "message" or event.message.type != "text":
|
| 169 |
# 回覆錯誤訊息
|
|
|
|
| 201 |
# 處理錯誤
|
| 202 |
out = "執行出錯!請換個說法!"
|
| 203 |
|
|
|
|
| 204 |
|
| 205 |
+
# 回覆生成結果
|
| 206 |
+
line_bot_api.reply_message(event.reply_token,TextSendMessage(text=out))
|
|
|
|
|
|
|
| 207 |
|
|
|
|
| 208 |
|
| 209 |
if __name__ == "__main__":
|
| 210 |
# 啟動 FastAPI 應用程式
|