🐾 会話力アップ!レシピBot「オール」の最終進化レポート
この記事では、ChatGPTとLINE Botを組み合わせた「レシピ提案アシスタントBot」の最終ステップをレポートします。今回は“自然な会話”ができるよう、履歴管理やコードの分割整理を行い、Botの完成度をぐっと高めました。
そのため、ユーザーとのやりとりがよりスムーズになり、使っていて楽しいBotに進化しています。
この方法を使えば、毎回ゼロからの返答ではなく、少しずつ文脈を理解した応答ができるBotを作れます。
今回のアップグレード内容は?
前回までに、食材に応じたレシピを返してくれるLINE Botを完成させました。しかし、
- 「何ができる?」に対して汎用的すぎる返答
- 毎回「初対面」のような返答
など、どこかぎこちない印象が残っていました。
そこで今回は、この課題を解消すべく、会話の“文脈”をBotが覚えていけるよう履歴管理を導入しました。さらに、キャラの一貫性や遊び心も取り入れ、やり取りが楽しくなるよう工夫しました。
つまり、会話を重ねるごとにBotが少しずつ進化する構成にしたのです。

使用ツールと準備環境
今回のアップグレードでも、前回同様に以下のツールとサービスを使用しました。
- GitHub:コード管理
- Railway:クラウドデプロイ(環境変数・公開URL)
- OpenAI:GPT-3.5 API
- LINE Developers:Bot作成&Webhook設定
加えて、今回は以下のようにファイル分割して保守性も向上させました。
main.py
:Flask+LINE Botエントリーポイントgpt.py
:GPTへのリクエスト処理messages.py
:あいさつ・買い物リスト返答などutils.py
:犬語語尾処理関数
さらに、コードが見やすくなったことでトラブル対応もしやすくなっています。

実際の変更ステップ
STEP1:ユーザーごとの履歴を保持
user_sessions = {}
# 会話履歴を格納
if user_id not in user_sessions:
user_sessions[user_id] = []
user_sessions[user_id].append({"role": "user", "content": user_text})
これにより、最大6件まで履歴を保持し、直近の流れをGPTに渡すことで会話を継続できるようになりました。
STEP2:”リセット”機能の実装
if "リセット" in user_text:
user_sessions[user_id] = []
つまり、履歴が変に影響したときのために、ユーザー側で「会話をリセット」できるようにしました。
STEP3:コード整理で保守性アップ
gpt.py
にプロンプト生成&API呼び出しを移動messages.py
に曜日挨拶・ヘルプ返答などを集約utils.py
に語尾調整処理を関数化
その結果、main.pyがすっきりし、必要な処理をすぐに見つけられるようになりました。
加えて、分担管理しやすくなることで、複数人開発にも対応しやすくなっています。
実験の結果と学び
実際に運用してみると、次のような成果が得られました。
- 会話が少しずつ文脈を持ち、Botらしさが減少!
- 「買い物リスト」に“ペットフード”を自発的に含めるなど、キャラ性も出てきた
ただし、まだGPTの応答が暴走することもあるため、プロンプト調整は引き続き必要です。
その結果、Botの精度よりも「楽しさ」が重視される場面では十分実用的だと感じました。

このように、まだ会話の継続性には多少の不自然さが残っているものの、構成や設計次第ではさらに自然で幅広い応答が可能になると期待できそうです。
応用アイデアと次のステップ
この仕組みができたことで、今後の展開がよりスムーズに行えるようになります。さらに、以下のような応用が見込めます。
- ユーザーとの連続対話をベースに、献立の提案履歴を保存
- LINEのプロフィールや名前を反映し、よりパーソナルな対応へ
- 複数人利用にも耐えられる構成にしてグループ対応Botへ
また、日常会話や学習補助などにも応用可能なため、汎用的なBotの土台としても活用できます。
おさらい&まとめ
今回のアップグレードを振り返ると、次のような成果が得られました。
- GPTとLINE Botの連携に加え、履歴保持で会話が自然に!
- コード分割で可読性・再利用性も大幅アップ!
- 最後はGitHub+Railwayで無料デプロイしてLINEに接続
③LINE BotにChatGPT連携!レシピ提案Botを30分でデプロイ – AIでなんでも実験所
②LINE Botを無料で公開!GitHub×Railway構築術 – AIでなんでも実験所
①冷蔵庫レシピアシスタントを10分で作成!ChatGPT×Python活用術 – AIでなんでも実験所
📝 お役立ち情報まとめ
- 使用ツール:GitHub、Railway、LINE Developers、OpenAI
- 難易度:★★★☆☆(中級者向け)
- 所要時間:60分(初回)〜10分(以後)
- 向いている人:AIを活用したい人、会話Botに挑戦したい人
- 無料枠:OpenAI・Railwayともに無料プランあり
コメント