alanchen1115 commited on
Commit
e4477cb
·
verified ·
1 Parent(s): 754b9f8

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +38 -38
main.py CHANGED
@@ -84,13 +84,40 @@ def handle_image_message(event):
84
  user_id = event.source.user_id
85
  chat = chat_sessions.get(user_id) or model.start_chat(history=[])
86
  chat_sessions[user_id] = chat
 
87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  # ========
89
  # 生成圖片
90
  # ========
91
- user_text = event.message.text if event.message.type == "text" else None
92
- image_url = None
93
- if user_text and user_text.startswith("生成圖片"):
94
  prompt = user_text.replace("生成圖片", "").strip()
95
 
96
  # 先立即回覆避免token過期
@@ -122,49 +149,22 @@ def handle_image_message(event):
122
  TextSendMessage(text="⚠️ 圖片生成失敗,請稍後再試~")
123
  )
124
  return
125
-
126
- # ========
127
- # 上傳圖片
128
- # ========
129
- if event.message.type == "image":
130
- image_path = get_image_url(event.message.id)
131
- if image_path:
132
- store_user_message(user_id, "image", image_path)
133
- line_bot_api.reply_message(event.reply_token, TextSendMessage(text="圖片已接收成功囉,幫我輸入你想詢問的問題喔~"))
134
- else:
135
- line_bot_api.reply_message(event.reply_token, TextSendMessage(text="沒有接收到圖片~"))
136
- return
137
-
138
- previous_message = get_previous_message(user_id)
139
- if previous_message and previous_message["type"] == "image" and event.message.type == "text":
140
- image_path = previous_message["content"]
141
- user_text = event.message.text
142
- store_user_message(user_id, "text", user_text)
143
- try:
144
- if not os.path.exists(image_path):
145
- raise FileNotFoundError(f"圖片路徑無效:{image_path}")
146
- organ = PIL.Image.open(image_path)
147
- completion = chat.send_message([user_text, organ])
148
- out = completion.text
149
- except Exception as e:
150
- out = f"發生錯誤: {e}"
151
 
152
  # ========
153
  # 純文字
154
  # ========
155
- else:
156
- if event.message.type != "text":
157
  line_bot_api.reply_message(event.reply_token, TextSendMessage(text="請輸入文字或圖片~"))
158
  return
159
- if event.message.text == "再見":
160
  line_bot_api.reply_message(event.reply_token, TextSendMessage(text="Bye!"))
161
  return
162
- if working_status:
163
- try:
164
- prompt = event.message.text
165
- store_user_message(user_id, "text", prompt)
166
- completion = chat.send_message(prompt)
167
- out = completion.text if completion.text else "我不太懂什麼意思也~"
168
  except:
169
  out = "執行出錯!請換個說法!"
170
 
 
84
  user_id = event.source.user_id
85
  chat = chat_sessions.get(user_id) or model.start_chat(history=[])
86
  chat_sessions[user_id] = chat
87
+ previous_message = get_previous_message(user_id)
88
 
89
+ user_text = event.message.text if event.message.type == "text" else None
90
+ image_url = None
91
+
92
+ if previous_message and previous_message["type"] == "image" and event.message.type == "text":
93
+ image_path = previous_message["content"]
94
+ user_text = event.message.text
95
+ store_user_message(user_id, "text", user_text)
96
+ try:
97
+ if not os.path.exists(image_path):
98
+ raise FileNotFoundError(f"圖片路徑無效:{image_path}")
99
+ previous_img = PIL.Image.open(image_path)
100
+ completion = chat.send_message([user_text, previous_img])
101
+ out = completion.text
102
+ except Exception as e:
103
+ out = f"發生錯誤: {e}"
104
+
105
+ # ========
106
+ # 上傳圖片
107
+ # ========
108
+ elif event.message.type == "image":
109
+ image_path = get_image_url(event.message.id)
110
+ if image_path:
111
+ store_user_message(user_id, "image", image_path)
112
+ line_bot_api.reply_message(event.reply_token, TextSendMessage(text="圖片已接收成功囉,幫我輸入你想詢問的問題喔~"))
113
+ else:
114
+ line_bot_api.reply_message(event.reply_token, TextSendMessage(text="沒有接收到圖片~"))
115
+ return
116
+
117
  # ========
118
  # 生成圖片
119
  # ========
120
+ elif user_text and user_text.startswith("生成圖片"):
 
 
121
  prompt = user_text.replace("生成圖片", "").strip()
122
 
123
  # 先立即回覆避免token過期
 
149
  TextSendMessage(text="⚠️ 圖片生成失敗,請稍後再試~")
150
  )
151
  return
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
 
153
  # ========
154
  # 純文字
155
  # ========
156
+ elif event.message.type != "text" or event.message.type != "image":
 
157
  line_bot_api.reply_message(event.reply_token, TextSendMessage(text="請輸入文字或圖片~"))
158
  return
159
+ elif event.message.text == "再見":
160
  line_bot_api.reply_message(event.reply_token, TextSendMessage(text="Bye!"))
161
  return
162
+ elif working_status:
163
+ try:
164
+ prompt = event.message.text
165
+ store_user_message(user_id, "text", prompt)
166
+ completion = chat.send_message(prompt)
167
+ out = completion.text if completion.text else "我不太懂什麼意思也~"
168
  except:
169
  out = "執行出錯!請換個說法!"
170