今回は、PythonでLINEのチャットボットを作り、ChatGPT APIと連携してLINEから直接AIと会話できる仕組みを構築します。
このLINE Botを使えば、日常の相談役・業務補助・メモ代わりのAIとして活用可能。
スマホからすぐにChatGPTに話しかけられるのは、かなり便利です。
必要な準備
- LINE DevelopersでMessaging APIチャネルを作成
- Webhook用のFlaskアプリ(ローカル or Cloud上に配置)
- 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ファイルを自動で整形・要約する実践的な内容です。
コメント