Update main.py
Browse files
main.py
CHANGED
|
@@ -13,7 +13,7 @@ import PIL.Image
|
|
| 13 |
|
| 14 |
from imgurpython import ImgurClient
|
| 15 |
from Image_text_generation import Image_text_Generator
|
| 16 |
-
from
|
| 17 |
|
| 18 |
#==========================
|
| 19 |
# API 金鑰
|
|
@@ -129,6 +129,47 @@ def handle_image_message(event):
|
|
| 129 |
TextSendMessage(text="⚠️ 圖片生成失敗,請稍後再試~")
|
| 130 |
)
|
| 131 |
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 132 |
|
| 133 |
|
| 134 |
# ========
|
|
|
|
| 13 |
|
| 14 |
from imgurpython import ImgurClient
|
| 15 |
from Image_text_generation import Image_text_Generator
|
| 16 |
+
from Uploading_images_file import get_image_url,get_file_url, store_user_message, analyze_with_gemini, get_previous_message
|
| 17 |
|
| 18 |
#==========================
|
| 19 |
# API 金鑰
|
|
|
|
| 129 |
TextSendMessage(text="⚠️ 圖片生成失敗,請稍後再試~")
|
| 130 |
)
|
| 131 |
return
|
| 132 |
+
|
| 133 |
+
# ========
|
| 134 |
+
# 傳文件
|
| 135 |
+
# ========
|
| 136 |
+
if event.message.type == "file":
|
| 137 |
+
file_name = event.message.file_name
|
| 138 |
+
file_path = get_file_url(event.message.id, file_name, file_type="pdf")
|
| 139 |
+
|
| 140 |
+
if file_path:
|
| 141 |
+
file_generator = Image_text_Generator() # 確保這個類別已正確初始化
|
| 142 |
+
store_user_message(user_id, "file", file_path)
|
| 143 |
+
line_bot_api.reply_message(
|
| 144 |
+
event.reply_token,
|
| 145 |
+
TextSendMessage(text="📄 文件已接收成功囉,幫我輸入你想詢問的問題喔~")
|
| 146 |
+
)
|
| 147 |
+
else:
|
| 148 |
+
line_bot_api.reply_message(
|
| 149 |
+
event.reply_token,
|
| 150 |
+
TextSendMessage(text="❌ 沒有成功接收到文件,請再試一次。")
|
| 151 |
+
)
|
| 152 |
+
return
|
| 153 |
+
|
| 154 |
+
# 使用者在傳完文件後輸入問題
|
| 155 |
+
previous_message = get_previous_message(user_id)
|
| 156 |
+
if previous_message and previous_message["type"] == "file" and event.message.type == "text":
|
| 157 |
+
file_path = previous_message["content"]
|
| 158 |
+
user_text = event.message.text
|
| 159 |
+
store_user_message(user_id, "text", user_text)
|
| 160 |
+
|
| 161 |
+
try:
|
| 162 |
+
if not os.path.exists(file_path):
|
| 163 |
+
raise FileNotFoundError(f"📂 檔案路徑無效:{file_path}")
|
| 164 |
+
|
| 165 |
+
file_generator = Image_text_Generator(imgur)
|
| 166 |
+
completion = file_generator.generate_txt_with_gemini([user_text, file_path])
|
| 167 |
+
|
| 168 |
+
# 若是 Gemini 回傳的內容需取 text
|
| 169 |
+
out = completion.text if hasattr(completion, "text") else str(completion)
|
| 170 |
+
|
| 171 |
+
except Exception as e:
|
| 172 |
+
out = f"⚠️ 發生錯誤:{e}"
|
| 173 |
|
| 174 |
|
| 175 |
# ========
|