😎

ChatGPTログから自動で記事を生成する仕組みを作った話(FlaskでWeb化も対応)

に公開

はじめに

ChatGPTと技術的なやり取りをしていると、「あとで見返したい」と思う会話がけっこうあります。
でも実際にまとめ直すとなると、毎回コピペして整形して、見出しつけて、タグつけて……めんどくさい。やらなくなる。

そんな背景から、ChatGPTの会話ログを元に、自動で要約&記事生成→投稿までできる仕組みを作りました。

どうせやるならWebUI化して、どこからでも触れるようにしておこう。そんなノリでFlaskまで導入しています。


やりたかったこと

  • ChatGPTログから新規の会話だけを抽出
  • 要約してMarkdown形式に整形
  • タグもつけてくれる
  • できればWordPressとNotionに投稿したい
  • ついでにFlaskでブラウザから操作できたら嬉しい

システム構成の流れ

  1. ChatGPTの会話ログ(ZIP)を週1でエクスポート(手動)
  2. 前回との差分を抽出(Pythonスクリプト)
  3. 差分だけをChatGPT APIで要約&タグ生成
  4. Markdown形式でブログ記事を自動生成
  5. Notion / WordPressにAPI経由で自動投稿
  6. FlaskでWebUI化して、操作を可視化&簡略化

差分抽出について

ChatGPTのログは conversations.json という巨大なJSONとして出力されます。
Before(前回)と After(今回)を用意し、前回に含まれていない新規会話だけを抽出する仕組みにしました。

差分は単なるテキスト比較ではなく、会話単位での差分です。これが意外と大事。


要約とタグ生成

抽出された会話はそのままだと長くて雑多なので、以下のように整形します:

  • ChatGPT APIを使って要約(必要に応じて複数に分割)
  • Markdown形式で本文に変換
  • このときカテゴリやタグも自動生成

ちなみに、APIコストを抑えるために、差分からコードや定型出力をフィルタリングしています。これで数十円単位に収まります。


投稿処理(Notion / WordPress)

生成された記事はそのままNotionとWordPressに投稿できます。

  • Notionは知見整理用
  • WordPressは発信用

両方にまとめて出しておけば後からの使いまわしもしやすいです。


WebUI(Flask)について

ローカルCLIで動かすのが面倒になってきたので、FlaskでWebUIを作りました
Flask UI画面
できること:

  • ZIPのアップロード(Before / After)
  • 差分抽出ボタン → テキスト確認&編集
  • 要約生成ボタン → プレビュー確認
  • Notion / WordPressへ投稿 → 実行

ブラウザから全部操作できるので、普段使いにも耐えます。


実運用してみて

  • ChatGPT API:約9000文字の要約で7〜10円程度
  • 月あたり300円くらいのコスト感
  • $10/月の制限をつけておけば暴走も防げる

ストック型の発信をするには、十分に「元が取れる」仕組みだと感じています。


今後やりたいこと

  • 投稿履歴の一覧表示(Flask + SQLite)
  • 差分の並び替え・フィルタ・粒度の調整UI

おわりに

「ChatGPTとのやり取りがそのまま記事になる」

この仕組みを作ってから、アウトプットのハードルが大きく下がりました。
日々の開発の中で、“勝手に知見がストックされていく”感覚があります。

個人開発をしていて、「あとでまとめたいけど手が回らない」という人には、ぜひ一部でも参考になればと思います。


関連リンク


Discussion