diff --git a/apps/api/src/services/telegram_gateway.py b/apps/api/src/services/telegram_gateway.py index 7c9ad268..1e8cc0e1 100644 --- a/apps/api/src/services/telegram_gateway.py +++ b/apps/api/src/services/telegram_gateway.py @@ -3542,6 +3542,26 @@ class TelegramGateway: message_id = message.get("message_id") username = user.get("username") or user.get("first_name") or str(user_id) + # Phase 34 (ADR-067 2026-04-10): 圖片訊息路由 + photos = message.get("photo") + if photos and user_id: + if not user.get("is_bot"): + best = max(photos, key=lambda p: p.get("file_size", 0)) + file_id = best.get("file_id", "") + caption = message.get("caption", "請用繁體中文描述這張圖片") + if file_id: + try: + from src.services.image_analysis_service import get_image_analysis_service + svc = get_image_analysis_service() + await svc.download_and_analyze( + chat_id=str(chat_id), + file_id=file_id, + question=caption, + ) + except Exception as _img_err: + logger.warning("image_analysis_polling_failed", error=str(_img_err)) + return + if not text or not user_id: return