Integrate Claude AI into the notification system for intelligent
conversational interactions and AI-powered captions.
New modules:
- ai/service.py: Claude API client with conversation history,
caption generation, and album activity summarization
- ai/telegram_webhook.py: Telegram webhook handler for incoming
bot messages, routes to AI service for responses
Features:
- Conversational bot: users chat with the bot about albums
- AI captions: intelligent notification messages based on album
context (people, locations, dates) - enabled per target via
"ai_captions" config flag
- Album summaries: "what's new?" triggers AI-generated overview
- /start command with welcome message
- Webhook register/unregister endpoints
Architecture:
- Per-chat conversation history (in-memory, capped at 20 messages)
- Graceful degradation: AI features completely disabled without
IMMICH_WATCHER_ANTHROPIC_API_KEY env var (zero impact)
- AI caption failure falls back to Jinja2 template rendering
- Health endpoint reports ai_enabled status
Config: IMMICH_WATCHER_ANTHROPIC_API_KEY, IMMICH_WATCHER_AI_MODEL,
IMMICH_WATCHER_AI_MAX_TOKENS
Server now has 45 API routes (was 42 after Phase 5).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>