LINE BotにChatGPT会話履歴を追加!レシピBot進化の全記録

LINE BotとChatGPTを組み合わせたレシピアシスタント「オール」のアイキャッチ画像。ゴールデンレトリバーのイラストとタイトル文字が含まれる。 AIツール実践
レシピ提案Bot「オール」がChatGPTと連携して登場!画像は記事のアイキャッチです。

🐾 会話力アップ!レシピBot「オール」の最終進化レポート

この記事では、ChatGPTとLINE Botを組み合わせた「レシピ提案アシスタントBot」の最終ステップをレポートします。今回は“自然な会話”ができるよう、履歴管理やコードの分割整理を行い、Botの完成度をぐっと高めました。

そのため、ユーザーとのやりとりがよりスムーズになり、使っていて楽しいBotに進化しています。

この方法を使えば、毎回ゼロからの返答ではなく、少しずつ文脈を理解した応答ができるBotを作れます。


今回のアップグレード内容は?

前回までに、食材に応じたレシピを返してくれるLINE Botを完成させました。しかし、

  • 「何ができる?」に対して汎用的すぎる返答
  • 毎回「初対面」のような返答

など、どこかぎこちない印象が残っていました。

そこで今回は、この課題を解消すべく、会話の“文脈”をBotが覚えていけるよう履歴管理を導入しました。さらに、キャラの一貫性や遊び心も取り入れ、やり取りが楽しくなるよう工夫しました。

つまり、会話を重ねるごとにBotが少しずつ進化する構成にしたのです。

LINE 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:犬語語尾処理関数

さらに、コードが見やすくなったことでトラブル対応もしやすくなっています。

LINE Botのコード構成を示すGitHubリポジトリの画面キャプチャ
Bot構成ファイルをGitHubで整理し、メンテナンス性を高めた例

実際の変更ステップ

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が自発的に“ペットフード”を含めた買い物リストを返答。キャラ性が見えるやりとりに進化!

このように、まだ会話の継続性には多少の不自然さが残っているものの、構成や設計次第ではさらに自然で幅広い応答が可能になると期待できそうです。


応用アイデアと次のステップ

この仕組みができたことで、今後の展開がよりスムーズに行えるようになります。さらに、以下のような応用が見込めます。

  • ユーザーとの連続対話をベースに、献立の提案履歴を保存
  • 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ともに無料プランあり

コメント

タイトルとURLをコピーしました