ChatGPTログから自動で記事を生成する仕組みを作った話(FlaskでWeb化も対応)
はじめに
ChatGPTと技術的なやり取りをしていると、「あとで見返したい」と思う会話がけっこうあります。
でも実際にまとめ直すとなると、毎回コピペして整形して、見出しつけて、タグつけて……めんどくさい。やらなくなる。
そんな背景から、ChatGPTの会話ログを元に、自動で要約&記事生成→投稿までできる仕組みを作りました。
どうせやるならWebUI化して、どこからでも触れるようにしておこう。そんなノリでFlaskまで導入しています。
やりたかったこと
- ChatGPTログから新規の会話だけを抽出
- 要約してMarkdown形式に整形
- タグもつけてくれる
- できればWordPressとNotionに投稿したい
- ついでにFlaskでブラウザから操作できたら嬉しい
システム構成の流れ
- ChatGPTの会話ログ(ZIP)を週1でエクスポート(手動)
- 前回との差分を抽出(Pythonスクリプト)
- 差分だけをChatGPT APIで要約&タグ生成
- Markdown形式でブログ記事を自動生成
- Notion / WordPressにAPI経由で自動投稿
- FlaskでWebUI化して、操作を可視化&簡略化
差分抽出について
ChatGPTのログは conversations.json
という巨大なJSONとして出力されます。
Before
(前回)と After
(今回)を用意し、前回に含まれていない新規会話だけを抽出する仕組みにしました。
差分は単なるテキスト比較ではなく、会話単位での差分です。これが意外と大事。
要約とタグ生成
抽出された会話はそのままだと長くて雑多なので、以下のように整形します:
- ChatGPT APIを使って要約(必要に応じて複数に分割)
- Markdown形式で本文に変換
- このときカテゴリやタグも自動生成
ちなみに、APIコストを抑えるために、差分からコードや定型出力をフィルタリングしています。これで数十円単位に収まります。
投稿処理(Notion / WordPress)
生成された記事はそのままNotionとWordPressに投稿できます。
- Notionは知見整理用
- WordPressは発信用
両方にまとめて出しておけば後からの使いまわしもしやすいです。
WebUI(Flask)について
ローカルCLIで動かすのが面倒になってきたので、FlaskでWebUIを作りました。
できること:
- ZIPのアップロード(Before / After)
- 差分抽出ボタン → テキスト確認&編集
- 要約生成ボタン → プレビュー確認
- Notion / WordPressへ投稿 → 実行
ブラウザから全部操作できるので、普段使いにも耐えます。
実運用してみて
- ChatGPT API:約9000文字の要約で7〜10円程度
- 月あたり300円くらいのコスト感
- $10/月の制限をつけておけば暴走も防げる
ストック型の発信をするには、十分に「元が取れる」仕組みだと感じています。
今後やりたいこと
- 投稿履歴の一覧表示(Flask + SQLite)
- 差分の並び替え・フィルタ・粒度の調整UI
おわりに
「ChatGPTとのやり取りがそのまま記事になる」
この仕組みを作ってから、アウトプットのハードルが大きく下がりました。
日々の開発の中で、“勝手に知見がストックされていく”感覚があります。
個人開発をしていて、「あとでまとめたいけど手が回らない」という人には、ぜひ一部でも参考になればと思います。
関連リンク
- ブログ:https://syunpp.com
- 公開中のアプリ:https://syunpp.com/公開中のアプリ一覧/
- YouTube(開発ショート):https://www.youtube.com/@syunpp_8413/shorts
Discussion