Closed kawafuchieirin closed 3 weeks ago
Claude finished @kawafuchieirin's task —— View job • claude/issue-8-20250622_062830
• Create PR ➔
I've successfully refactored the LINE-only bot into a multi-channel architecture that supports both LINE and Slack. Here's what was accomplished:
core/
, handlers/
, and utils/
directories for better organizationapp/core/claude_client.py
- Channel-agnostic Claude 3.5 Sonnet clientapp/core/recipe_service.py
- Common recipe generation service with mood/ingredient detectionapp/handlers/line_handler.py
- LINE-specific webhook and message handlingapp/handlers/slack_handler.py
- Slack slash commands and event handlingapp/utils/config.py
- Centralized configuration managementapp/utils/logger.py
- Structured logging across channels/dinner
slash command with Block Kit formattingThe codebase is now ready for multi-channel operation! 🚀
Co-authored-by: kawafuchieirin kawafuchieirin@users.noreply.github.com •
@claude 📌 概要 現在はLINE BOTのみ対応しているが、同じ「晩御飯提案BOT」をSlackからも使えるようにする。 LINEとSlackで共通のレシピ生成処理(Claude 3.5 Sonnet)を再利用できるようにし、チャネルごとの受信・返信部分のみ切り替えられる構成にする。
🎯 目的 LINEだけでなく、Slack上のスラッシュコマンドやメンションでもBOTが利用できるようにする
複数のフロントチャネルに対して、共通の「メニュー提案AI」を活用
✅ タスクリスト 🧱 共通構成へのリファクタリング core/claude_client.py:Claude 3.5へのリクエスト処理(LINE/Slackで共通化)
core/recipe_service.py:気分・材料からレシピ提案を生成するロジックの共通化
handlers/line_handler.py:LINE用のWebhookイベント受信と応答処理
handlers/slack_handler.py:Slackのイベント(スラッシュコマンド、メンション)を処理
🟢 Slack BOT の設定・実装 Slack App を作成(https://api.slack.com/apps)
スラッシュコマンド /dinner を作成し、LambdaなどのURLをWebhook登録
Slackのイベント(command or event)を受け取り、共通処理に渡す
応答フォーマットをSlack向けに整形して返す(Block Kit or Text)
🧪 テスト例(Slack) text コピーする 編集する /dinner キャベツと卵があるんだけど何がいい?
👉 鶏むね肉とキャベツの味噌炒め 👉 卵とキャベツの中華スープ 🧠 拡張性のある構成案 bash コピーする 編集する app/ ├── core/ │ ├── claude_client.py # Claude 3.5共通呼び出し │ ├── recipe_service.py # 食材・気分→メニュー生成 ├── handlers/ │ ├── line_handler.py # LINE Webhook用 │ └── slack_handler.py # Slack Command/Event用 ├── utils/ │ ├── config.py │ └── logger.py 🔄 関連Issue
3 Claudeによるレシピ生成処理
6 気分ベースの提案モード追加
8 Claude 3.5 Sonnetへの対応
✨ 期待される効果 Slackでも /dinner やメンションで簡単にメニューを聞ける
LINEを使っていないチーム・企業でも活用可能
将来的にはTelegram / Discordへの展開も容易
毎回CLAUDE.mdも更新してください