【Python×ChatGPT API】社内文書の自動要約ツールを作ってみた(コード公開)

はじめに:社内文書、読むのがツライ…?

毎日のように届く社内の議事録、報告書、仕様書。
「読むだけで時間が溶ける…」「結局要点がつかめない…」そんな悩み、ありませんか?

今回は、PythonとOpenAIのChatGPT APIを使って、
社内文書を自動で要約するツールを作ってみました。
しかも、コードは全て公開します!

このツールでできること

  • .txt.docx 形式の社内文書を読み込む
  • ChatGPT APIで要約生成
  • 出力はMarkdown形式で保存可能(社内Wiki連携もラク!)

使用技術

  • Python 3.11
  • OpenAI API(GPT-4)
  • python-docx(Wordファイルの読み込み)
  • tqdm(進捗バー)
  • dotenv(APIキー管理)

環境準備とインストール

まずは仮想環境の作成と必要ライブラリのインストールから。

python -m venv venv
source venv/bin/activate  # Windowsなら venv\Scripts\activate
pip install openai python-docx python-dotenv tqdm

.env ファイルを作って以下のように記述しておきます。

OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Pythonコード全文公開!

import os
import openai
from docx import Document
from dotenv import load_dotenv
from tqdm import tqdm

# 環境変数の読み込み
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")

# Word文書を読み込む関数
def read_docx(file_path):
    doc = Document(file_path)
    return "\n".join([para.text for para in doc.paragraphs if para.text.strip()])

# ChatGPT APIで要約を取得
def summarize_text(text):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": "あなたは優秀な文書要約アシスタントです。"},
            {"role": "user", "content": f"以下の社内文書をわかりやすく要約してください。\n\n{text}"}
        ],
        temperature=0.3
    )
    return response['choices'][0]['message']['content']

# メイン処理
def main():
    file_path = "sample.docx"  # 読み込み対象
    print("文書を読み込み中...")
    full_text = read_docx(file_path)

    print("要約中...")
    summary = summarize_text(full_text)

    output_path = "summary_output.md"
    with open(output_path, "w", encoding="utf-8") as f:
        f.write(summary)
    
    print(f"✅ 要約完了! → {output_path}")

if __name__ == "__main__":
    main()

実行結果のイメージ

読み込んだ文書(5,000字以上)

...中期経営計画の要点...
...各部署のKPI概要...
...次年度予算案の調整事項...

生成された要約

- 中期経営計画は成長戦略にシフト。新規事業を2件追加
- 営業部のKPIは前年比115%、CS向上が重点施策
- 次年度予算案は3月中旬までに確定予定。予備費が例年の1.2倍

ChatGPT APIを使う上での注意点

  • トークン制限:長文は分割して処理する工夫が必要
  • 情報漏洩リスク:社外秘文書は使わない、もしくはAzure OpenAIなどを検討
  • コスト:GPT-4は料金が高め。要約精度とコストのバランスが鍵

今後の展望

  • PDFやメール文書の対応
  • 要約結果のSlack自動通知連携
  • 社内テンプレートに応じた「定型要約」機能の追加

おわりに

文書の要約作業は、手作業だと地味に時間を食います。
今回のようにPythonとChatGPTを使えば、数行のコードで圧倒的な時短が実現できます。

もしあなたが、

  • 業務の生産性を上げたい
  • プログラムスキルで周囲と差をつけたい
    なら、ぜひこうした自動化にもチャレンジしてみてください。

関連リンク

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