huchiahsi commited on
Commit
79507aa
·
verified ·
1 Parent(s): e4c9f86

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +35 -27
main.py CHANGED
@@ -42,6 +42,8 @@ GOOGLE_API_KEY = os.environ.get('GOOGLE_API_KEY')
42
  genai.configure(api_key=GOOGLE_API_KEY)
43
  model = genai.GenerativeModel('gemini-2.0-flash')
44
 
 
 
45
  # API_URL = "https://api-inference.huggingface.co/models/mistralai/Mixtral-8x7B-Instruct-v0.1"
46
  def query(payload):
47
  # response = requests.post(API_URL, headers=headers, json=payload)
@@ -95,36 +97,42 @@ def handle_message(event):
95
  )
96
  )
97
 
98
- @handler.add(MessageEvent, message=ImageMessageContent)
99
- def handle_image_message(event):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  with ApiClient(configuration) as api_client:
101
  line_bot_api = MessagingApi(api_client)
102
- # 取得圖片內容
103
- message_content = line_bot_api.get_message_content(event.message.id)
104
- # 儲存圖片至暫存檔案
105
- with tempfile.NamedTemporaryFile(delete=False, suffix=".jpg") as tf:
106
- for chunk in message_content.iter_content():
107
- tf.write(chunk)
108
- temp_file_path = tf.name
109
- try:
110
- # 上傳圖片至 Imgur
111
- uploaded_image = imgur_client.upload_image(temp_file_path, title="Uploaded via LINE Bot")
112
- image_url = uploaded_image.link
113
- # 回傳圖片給使用者
114
- line_bot_api.reply_message(
115
- ReplyMessageRequest(
116
- reply_token=event.reply_token,
117
- messages=[
118
- ImageMessage(
119
- original_content_url=image_url,
120
- preview_image_url=image_url
121
- )
122
- ]
123
- )
124
  )
125
- finally:
126
- # 刪除暫存檔案
127
- os.remove(temp_file_path)
128
 
129
  @app.route('/static/<path:path>')
130
  def send_static_content(path):
 
42
  genai.configure(api_key=GOOGLE_API_KEY)
43
  model = genai.GenerativeModel('gemini-2.0-flash')
44
 
45
+ static_tmp_path = os.path.join(os.path.dirname("."), 'static', 'tmp')
46
+
47
  # API_URL = "https://api-inference.huggingface.co/models/mistralai/Mixtral-8x7B-Instruct-v0.1"
48
  def query(payload):
49
  # response = requests.post(API_URL, headers=headers, json=payload)
 
97
  )
98
  )
99
 
100
+ @handler.add(MessageEvent, message=(ImageMessageContent,
101
+ VideoMessageContent,
102
+ AudioMessageContent))
103
+ def handle_content_message(event):
104
+ if isinstance(event.message, ImageMessageContent):
105
+ ext = 'jpg'
106
+ elif isinstance(event.message, VideoMessageContent):
107
+ ext = 'mp4'
108
+ elif isinstance(event.message, AudioMessageContent):
109
+ ext = 'm4a'
110
+ else:
111
+ return
112
+
113
+ with ApiClient(configuration) as api_client:
114
+ line_bot_blob_api = MessagingApiBlob(api_client)
115
+ message_content = line_bot_blob_api.get_message_content(message_id=event.message.id)
116
+ with tempfile.NamedTemporaryFile(dir=static_tmp_path, prefix=ext + '-', delete=False) as tf:
117
+ tf.write(message_content)
118
+ tempfile_path = tf.name
119
+
120
+ dist_path = tempfile_path + '.' + ext
121
+ dist_name = os.path.basename(dist_path)
122
+ os.rename(tempfile_path, dist_path)
123
+
124
  with ApiClient(configuration) as api_client:
125
  line_bot_api = MessagingApi(api_client)
126
+ line_bot_api.reply_message(
127
+ ReplyMessageRequest(
128
+ reply_token=event.reply_token,
129
+ messages=[
130
+ TextMessage(text='Save content.'),
131
+ TextMessage(text=request.host_url + os.path.join('static', 'tmp', dist_name))
132
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  )
134
+ )
135
+
 
136
 
137
  @app.route('/static/<path:path>')
138
  def send_static_content(path):