今回はLINEとPythonを連携させて、「PDFファイルをLINEで送るとAIが自動で要約して返信してくれる」Botを構築します!
スマホだけでPDFの要点を確認できる、実用的なツールです。
📦 準備するもの
- LINE Developers アカウント
- LINE Messaging API設定済みのBot
- Python(Flask, openai, line-bot-sdkなど)
- PDF要約に使用するOpenAI APIキー
- Webhookを動作させる環境(Heroku、Render、ngrokなど)
🔧 使用ライブラリ
pip install flask line-bot-sdk openai PyPDF2
🧠 Pythonコード(簡易版)
from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.models import MessageEvent, TextMessage, TextSendMessage
import openai, PyPDF2
app = Flask(__name__)
line_bot_api = LineBotApi('あなたのチャネルアクセストークン')
handler = WebhookHandler('あなたのチャネルシークレット')
openai.api_key = "sk-あなたのAPIキー"
# PDF要約関数(ファイル保存処理は省略)
def summarize_pdf_text(pdf_text):
prompt = f"{pdf_text[:3000]}\n\n上記を分かりやすく要約してください。"
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role":"user", "content": prompt}]
)
return response.choices[0].message["content"]
@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):
text = event.message.text
if text.lower().startswith("要約:"):
dummy_pdf_text = "これはPDFの中身のダミーテキストです。"
summary = summarize_pdf_text(dummy_pdf_text)
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=summary)
)
if __name__ == "__main__":
app.run()
📌 処理の流れ
- LINEでBotに「要約:」とメッセージ送信
- BotがPDFを受け取り内容を抽出(本番ではファイル処理が必要)
- ChatGPTに投げて要約を生成
- LINEに自動返信
⚠️ 注意点
- LINEにPDF送信→保存→読み取りの処理が必要
- Webhookが正しく動作するようにサーバー環境を整える必要あり
- セキュリティ管理のため、ログとファイルは一時保存で管理
💡 応用アイデア
- 画像付きのPDFにOCRをかけてテキスト化+要約
- LINEグループBotにしてチーム資料共有に活用
- Slack・Teamsとの連携バージョンに展開
✅ まとめ
- スマホでPDFを送るだけで要点把握が可能に
- PythonとLINEでAIの自動要約Botを構築できる
- 業務効率化や資料共有の時間短縮に大きく貢献!
▶️ 次回予告
Day19では、「GoogleスプレッドシートとAIを連携して表データの分析・レポートを自動生成」する方法をご紹介します!
コメント