在宅介護をする家族向けの介護記録 LINE Bot。
日々の体調・服薬・食事などをLINEで手軽に記録でき、AIが期間別のサマリーを返します。
| レイヤー | 技術 |
|---|---|
| フロントエンド | LINE Bot(Messaging API v3) |
| バックエンド | Python 3.12 / AWS Lambda |
| エンドポイント | Lambda 関数URL |
| データベース | Amazon DynamoDB(東京リージョン) |
| AI | Claude Haiku 4.5(Anthropic) |
LINE_CHANNEL_SECRET=...
LINE_CHANNEL_ACCESS_TOKEN=...
ANTHROPIC_API_KEY=...
S3_BUCKET_NAME=... # CSVエクスポート用S3バケット名
MAINTENANCE_MODE=false # trueにするとメンテナンスメッセージを返す
cd kaigo-bot
pip install -r requirements.txt flask python-dotenv
python app.py # ポート3000で起動
cd kaigo-bot
rm -rf package && mkdir package
pip install \
--platform manylinux2014_x86_64 \
--target=./package \
--implementation cp \
--python-version 3.12 \
--only-binary=:all: \
--upgrade \
-r requirements.txt
cp lambda_function.py config.py package/
cp -r handlers services package/
cd package && zip -r ../lambda_deploy.zip .
AWSコンソールから lambda_deploy.zip をアップロード。
kaigo-bot/
├── lambda_function.py # Lambda エントリーポイント
├── app.py # ローカル開発用 Flask サーバー
├── config.py # 定数・プロンプト・環境変数
├── setup_richmenu.py # リッチメニュー登録スクリプト(一度だけ実行)
├── handlers/
│ ├── router.py # メッセージ振り分け(4フェーズ)
│ ├── menu.py # トップメニュー(記録/まとめ/使い方/相談文/エクスポート/記録を検索)
│ ├── postback.py # DatetimePicker postbackイベント処理
│ ├── record.py # 記録処理
│ ├── summary.py # 期間別サマリー
│ ├── consult.py # 医師への相談文生成
│ ├── export.py # CSVエクスポート
│ └── search.py # 特定日の記録検索
└── services/
├── ai_client.py # Claude API ラッパー
├── record_store.py # DynamoDB CRUD・ステート管理
└── s3_store.py # S3アップロード・署名付きURL生成