3v324v23 commited on
Commit
c216fa2
·
1 Parent(s): 3797e4d

使用google gemi來解釋圖片

Browse files
Files changed (1) hide show
  1. test.py +44 -1
test.py CHANGED
@@ -160,6 +160,48 @@ def handle_text_message(event):
160
 
161
  # === 處理圖片訊息 ===
162
  @handler.add(MessageEvent, message=ImageMessageContent)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
163
  def handle_image_message(event):
164
 
165
  # === 以下是處理圖片回傳部分 === #
@@ -222,4 +264,5 @@ def handle_image_message(event):
222
  TextMessage(text=response.output_text),
223
  ],
224
  )
225
- )
 
 
160
 
161
  # === 處理圖片訊息 ===
162
  @handler.add(MessageEvent, message=ImageMessageContent)
163
+ def handle_image_message(event):
164
+ # === 以下是處理圖片回傳部分 === #
165
+ with ApiClient(configuration) as api_client:
166
+ blob_api = MessagingApiBlob(api_client)
167
+ content = blob_api.get_message_content(message_id=event.message.id)
168
+
169
+ # Step 4:將圖片存到本地端
170
+ with tempfile.NamedTemporaryFile(
171
+ dir=static_tmp_path, suffix=".jpg", delete=False
172
+ ) as tf:
173
+ tf.write(content)
174
+ filename = os.path.basename(tf.name)
175
+
176
+ image_url = f"https://{base_url}/images/{filename}"
177
+
178
+ app.logger.info(f"Image URL: {image_url}")
179
+
180
+ # === 以下是解釋圖片 === #
181
+ image = Image.open(tf.name)
182
+ response = google_client.models.generate_content(
183
+ model="gemini-2.0-flash",
184
+ contents=[image, "用繁體中文描述這張圖片"],
185
+ )
186
+ app.logger.info(response.output_text)
187
+
188
+ # === 以下是回傳圖片部分 === #
189
+
190
+ with ApiClient(configuration) as api_client:
191
+ line_bot_api = MessagingApi(api_client)
192
+ line_bot_api.reply_message(
193
+ ReplyMessageRequest(
194
+ reply_token=event.reply_token,
195
+ messages=[
196
+ ImageMessage(
197
+ original_content_url=image_url, preview_image_url=image_url
198
+ ),
199
+ TextMessage(text=response.text),
200
+ ],
201
+ )
202
+ )
203
+ '''
204
+ @handler.add(MessageEvent, message=ImageMessageContent)
205
  def handle_image_message(event):
206
 
207
  # === 以下是處理圖片回傳部分 === #
 
264
  TextMessage(text=response.output_text),
265
  ],
266
  )
267
+ )
268
+ '''