【14日目】PythonでLINE BotにChatGPTを組み込んでAIと会話しよう

PythonでLINE BotとChatGPTを連携する方法 未分類

今回は、PythonでLINEのチャットボットを作り、ChatGPT APIと連携してLINEから直接AIと会話できる仕組みを構築します。

このLINE Botを使えば、日常の相談役・業務補助・メモ代わりのAIとして活用可能。
スマホからすぐにChatGPTに話しかけられるのは、かなり便利です。

必要な準備

  1. LINE DevelopersでMessaging APIチャネルを作成
  2. Webhook用のFlaskアプリ(ローカル or Cloud上に配置)
  3. OpenAI APIキー(取得済みでOK)

ライブラリのインストール


pip install flask line-bot-sdk openai

Pythonコード|LINE Bot × ChatGPT API


from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.models import MessageEvent, TextMessage, TextSendMessage
import openai
import os

app = Flask(__name__)

# 各種キー(セキュアに環境変数で管理推奨)
LINE_CHANNEL_ACCESS_TOKEN = \"あなたのLINEチャネルアクセストークン\"
LINE_CHANNEL_SECRET = \"あなたのチャネルシークレット\"
OPENAI_API_KEY = \"sk-xxxxxxxxxxxxxxxxxxxxx\"

line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(LINE_CHANNEL_SECRET)
openai.api_key = OPENAI_API_KEY

@app.route(\"/callback\", methods=['POST'])
def callback():
    signature = request.headers['X-Line-Signature']
    body = request.get_data(as_text=True)

    try:
        handler.handle(body, signature)
    except:
        abort(400)
    return 'OK'

@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
    user_msg = event.message.text

    response = openai.ChatCompletion.create(
        model=\"gpt-3.5-turbo\",
        messages=[
            {\"role\": \"system\", \"content\": \"あなたは親切なアシスタントです。\"},
            {\"role\": \"user\", \"content\": user_msg}
        ]
    )

    reply_text = response.choices[0].message['content']
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text=reply_text)
    )

if __name__ == \"__main__\":
    app.run(port=5000)

構成のポイント

  • LINE DevelopersでWebhook URLを設定
  • FlaskでLINEからのメッセージを受け取り、ChatGPT APIに中継
  • line-bot-sdkで返信処理を管理

これで、LINEでBotに話しかけるとChatGPTが返答してくれる仕組みが完成します。

デプロイについて

Flaskアプリを外部から呼び出せるようにする必要があります:

  • ローカルで試すなら:ngrokでトンネリング
  • 本番運用するなら:Render・Railway・Heroku・VPSなどを使って公開

注意点

  • 無料プランではLINE Botの月間メッセージ数に上限あり(約1,000件)
  • APIキーは絶対に公開しない(GitHubなどに含めないこと)
  • セキュリティやログ管理を考慮するなら別途設定が必要

応用例

  • 特定のキーワードで返答を変える(予約・在庫チェックなど)
  • 音声対応や画像応答の追加(マルチモーダル対応)
  • チャット履歴をDBに保存して後から分析

まとめ

  • LINE BotにChatGPTを組み込むことで、日常的にAIを使えるようになる
  • PythonとFlaskで、比較的簡単に構築可能
  • 実用性・応用性が高く、副業・業務効率化にも有効

次回予告

次回(Day 15)は、AIと連携したデータ整理ツールをPythonで作ります。
スプレッドシートやCSVファイルを自動で整形・要約する実践的な内容です。

コメント

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