【18日目】PythonとLINEでPDF要約Botを作ろう!

PythonとLINEでPDF要約Botを作ろう 未分類

今回は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()

📌 処理の流れ

  1. LINEでBotに「要約:」とメッセージ送信
  2. BotがPDFを受け取り内容を抽出(本番ではファイル処理が必要)
  3. ChatGPTに投げて要約を生成
  4. LINEに自動返信

⚠️ 注意点

  • LINEにPDF送信→保存→読み取りの処理が必要
  • Webhookが正しく動作するようにサーバー環境を整える必要あり
  • セキュリティ管理のため、ログとファイルは一時保存で管理

💡 応用アイデア

  • 画像付きのPDFにOCRをかけてテキスト化+要約
  • LINEグループBotにしてチーム資料共有に活用
  • Slack・Teamsとの連携バージョンに展開

✅ まとめ

  • スマホでPDFを送るだけで要点把握が可能に
  • PythonとLINEでAIの自動要約Botを構築できる
  • 業務効率化や資料共有の時間短縮に大きく貢献!

▶️ 次回予告

Day19では、「GoogleスプレッドシートとAIを連携して表データの分析・レポートを自動生成」する方法をご紹介します!

コメント

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