AIを読む人から使う人へ:中学生にも分かるAIニュース自動収集・要約パイプラインを作る #1
◉ AI×ビジネス活用 / 2026年07月

AIを読む人から使う人へ:中学生にも分かるAIニュース自動収集・要約パイプラインを作る #1

2026年07月14日 読了目安:約20分 著者:AIFRONTNEWS編集部 セキュリティ / プロンプト設計 / ワークフロー

毎朝のAIニュース、勝手に集めて短く要約できたら便利ですよね?

この記事では、RSSからAIニュースを集め、同じ話題を重ねて読まないよう重複を避けつつ、OpenAI APIで短く要約し、Markdownメモに整える最小のパイプラインを作ります。

準備からツールの入れ方、Codexへの依頼文、動作確認、直し方までを一つずつ確認します。

この回のゴール

  • できること:RSSからAIニュースを自動取得→重複除外→要約→Markdown保存までを1回で回す。
  • 用意するもの:PC、VS Code、OpenAIアカウント、Python 3.10+、インターネット回線。
  • 大切な約束:APIキーは環境変数で安全に管理し、要約は人が最後に目で確認してから使う。
最初に知っておきたい用語
  • RSS:Webサイトの新着情報を決まった形で配る仕組み。新聞の見出しが一列に並ぶイメージ。
  • パイプライン:作業を順番に自動で流す仕組み。ベルトコンベアのように次々処理する。
  • 環境変数:アプリが参照する外部設定の引き出し。秘密の鍵をコード外に隠せる。
  • 要約:長い文章の大事な点だけを短くまとめること。連絡ノートの要点だけ書く感覚。
  • 重複除外:同じニュースを二度カウントしない工夫。既に読んだものに印を付けるイメージ。
  • フィード:RSSの配信データ本体。複数の見出しやリンクが入った箱。
  • レート制限:短時間に大量のリクエストを送らないための制限。順番待ちの整理券のようなもの。
  • タイムアウト:返事が来なければ待つのをやめる時間の上限。置き去り防止のための約束。

1. この記事でできること

VS CodeでOpenAI Codexと一緒に、RSSからAIニュースを自動収集し、同じ話題を避けながら要約してMarkdownに保存する最小の仕組みを作ります。
たとえるなら、朝の支度の間に「新聞の切り抜き係」が見出しを集め、「要点メモ係」が短くまとめて、ノートに貼っておいてくれる感じです。

2. 完成イメージ

完成後は、朝食のトーストが焼ける間に「今日の見出しノート」ができあがるイメージです。

3. 最初に知っておきたいこと

料金・仕様は変わることがあります。OpenAI APIの料金や制限は公式のOpenAI API Quickstartで最新を確認してください。

4. 対象読者

情報収集を自動化したい読者像を表すシーン。ビジネスパーソンがパソコンで作業。
Photo by Vitaly Gariev on Unsplash

学校の係活動のように「役割を分担」して動かすと覚えやすいです。取得係、整形係、要約係、保存係がいると考えましょう。

5. 必要なものと入れ方

ここで言う「入れ方」は、画面でどこを押すかまで示します。途中で分からなくなったら、この章に戻って確認してください。

VS Code(エディタ)

  1. これは何?:文章を書くノートの高機能版。ファイルを整理しながら作業できます。
  2. 用意するもの:インターネット接続、PCの管理者権限、Webブラウザ。
  3. 入れ方・開き方:公式サイトを開き、Windows/macOS/Linuxに合ったインストーラをダウンロードし、案内に沿ってインストール後、アプリを起動します。
  4. 最初の設定:日本語表示にしたい場合は拡張機能で「Japanese Language Pack」を追加します。
  5. できたか確認:「Welcome」画面と左側のアイコン(エクスプローラーなど)が表示されていればOKです。

Python(実行環境)

  1. これは何?:指示を書いたレシピ(スクリプト)を実際に動かすための台所。
  2. 用意するもの:インターネット接続、PC。
  3. 入れ方・開き方:公式のPythonをインストールします。Windowsではインストーラで「Add Python to PATH」にチェック、macOSでは.pkgを開いて案内に従います。
  4. 最初の設定:VS Codeを開き、左下のPythonバージョン表示をクリックしてPython 3.10以上のインタプリタを選びます。
  5. できたか確認:VS Codeのステータスバーに選択したPythonバージョンが表示されればOKです。

OpenAI Codex(コーディングエージェント)

  1. これは何?:説明文からコードを書いてくれる頼れる相棒。家で宿題を手伝う家庭教師のような存在です。
  2. 用意するもの:OpenAIのアカウント、インターネット接続。
  3. 入れ方・開き方:VS Code左側の四角いアイコン(拡張機能)を押し、検索ボックスに「Codex」と入力。OpenAIが提供するCodex拡張を選び、「インストール」をクリック。完了後、サイドバーにCodexのアイコンが現れます。
  4. 最初の設定:拡張を開き、「サインイン」をクリックし、指示に従ってOpenAIアカウントまたはAPIキーで認証します。完了後、「新しいチャット」を押してチャット欄を開きます。
  5. できたか確認:VS Code内にCodexのチャット欄が開き、メッセージを入力できればOKです。

feedparser(RSS解析ライブラリ)

  1. これは何?:RSSの箱から中身(見出しやリンク)を取り出す道具。缶切りのような役割です。
  2. 用意するもの:Pythonが使える状態。
  3. 入れ方・開き方:このライブラリの導入や設定は、後の手順でCodexに任せます。人が直接コマンドを打つ必要はありません。
  4. 最初の設定:特別な事前設定は不要です。必要になったときにCodexがセットアップします。
  5. できたか確認:後の「動かして確認する」で、実際にRSSを読めれば成功です。

6. エージェントと作るものの全体像

フォルダ構成と処理フローを示すシンプルなアーキテクチャ図。
Photo by Kelly Sikkema on Unsplash

作るものは、小さなフォルダ構成のアプリです。
たとえば、学校の係分担表のように、役割を分けて考えます。

自転車の補助輪のように、最初は最小の機能で転ばないことを大事にします。

7. 手順1: ツールを準備する

目的と全体像

ここでは、VS Code、Python、Codexを使える状態にし、Codexのチャットが開けるかを確認します。準備は机を片付けるのと同じ。道具が揃えば、作業が進みます。

画面での操作

成功の見分け方

困ったら

拡張が見つからないときは、インターネット接続とVS Codeのバージョンを確認。Pythonが選べないときは、OSにPythonが入っているかを確認してください。

8. 手順2: APIキーを安全に用意する

環境変数でOpenAI APIキーを安全に管理するイメージ図。
Photo by Zulfugar Karimov on Unsplash

目的

APIキーは秘密の鍵です。コードや共有フォルダに書かないことが大切です。ここでは環境変数で設定します。

考え方

設定手順(概要)

具体的な設定画面の操作は、使っているOSの環境設定メニューに従ってください。設定後、VS Codeを再起動して反映させます。値はこの記事に書かないでください。

確認

後の手順でCodexに「環境変数からキーを読むコード」を作ってもらい、実際にAPI呼び出しが通るかで確認します。キーは常に自分の管理画面で有効期限や使用量を見てください(料金・仕様は変動します。最新はOpenAI API Quickstartを参照)。

9. 手順3: エージェントにアプリを作ってもらう

目的

人は要件を言葉で伝え、Codexが設計と実装を行います。キッチンで「メニューを説明→料理人が作る」に近い流れです。

このボックスをコピーして、VS Code内のCodexチャットに送ります

Codexに送るプロンプト

あなたはVS Code上で動くOpenAI Codexです。以下の要件で最小のニュース要約パイプラインをプロジェクトとして作成し、動作確認まで案内してください。人がコードを打たずに済むよう、必要な操作やコマンドはすべて手順として提示し、ファイルはあなたが生成してください。

[目的]
- RSSからAI関連ニュースを取得し、重複を避けて要約し、Markdownで出力する最小構成を作る。

[前提]
- フォルダ構成は root配下に src/ と data/ を作成。設定は環境変数を使い、.envは使わない。
- Python 3.10+ を想定。

[機能要件]
1) フィード取得
- urllib.request でHTTP取得(適切なUser-Agent、タイムアウト、リトライ実装)。
- feedparser でRSS/Atomを解析し、entriesの title, link, published/updated, summary を取り出す。
- ETag/Last-Modified対応は今回は任意。まずは確実な取得を優先。

2) 正規化・重複除外
- タイトルとURLを正規化(前後空白除去、小文字化、クエリやフラグメントの扱い方針をコメントで明記)。
- data/seen.json(既読リスト)を用いて、既出URL/タイトルはスキップ。ファイルは存在しなければ自動作成。
- 近いタイトルの類似度チェック(例:編集記号の差分を吸収する)を用意し、しきい値は設定値として変更可能にする。

3) 要約
- OpenAI APIを呼び出して各記事を日本語で要約(箇条書き3〜5点、出典URL明記、誇張・断定を避ける指示を含む)。
- 認証は環境変数 OPENAI_API_KEY を参照。コードに鍵の実値は絶対に書かない。
- タイムアウト、レート制限(指数バックオフ)、失敗時の再試行とログを実装。
- モデル名は設定で変更可能にして、設定値が空の場合はわかりやすいエラーメッセージを出す。

4) 出力
- data/ 配下に YYYY-MM-DD_ai_news.md を生成。
- 見出し、要約箇条書き、出典リンク、取得時刻、元タイトルを含むテンプレートで整形。
- 実行ログをコンソールと data/logs/summary_YYYYMMDD.log に出力。

[設計]
- src/config.py(設定値とデフォルト、環境変数読取)
- src/fetch.py(取得と解析、リトライ)
- src/dedupe.py(正規化と重複・類似度判定)
- src/summarize.py(OpenAI API呼び出しとバックオフ)
- src/output.py(Markdown整形と保存、ログ出力)
- src/main.py(全体の実行フロー)
- data/seen.json(既読管理)、data/logs/(ログ格納)

[安全]
- APIキーは環境変数のみから取得。Gitに鍵やトークンを含めない注意書きをREADMEに明記。
- 例示用にダミー値を出すときは <YOUR_OPENAI_API_KEY> のようにし、実値は書かない。

[テスト・確認]
- サンプルRSS(複数本)で試せる main.py の実行手順を説明。
- 初回実行で data/seen.json が作成されること、重複がスキップされること、Markdownが生成されることを確認させる。
- 想定される失敗(URLError、レート制限、トークン上限)時の挙動をログで示し、再実行方法を記載。

[不明点があれば]
- 実行前に不足情報(フィードURL、出力先フォルダなど)を質問してください。
- 途中でエラーが出たら、エラーメッセージと次の試行手順を私にわかる言葉で提示してください。

Codexが作るものと、あなたが確認する点

10. 手順4: 動かして確認する

生成されたニュース要約Markdownとログを確認する画面。
Photo by Isaac Smith on Unsplash

目的

実際にサンプルRSSで動かし、出力とログを目で確かめます。料理の味見にあたります。

操作

成功の見分け方

困ったら

要約の質が低い、または出力が空の場合、フィードURLの妥当性やAPIキー設定、レート制限の発生を確認してください。原文リンクから一次情報を必ず見て、誤要約を防ぎます。

11. 手順5: エージェントと直す

目的

使ってみて気づいた点をCodexと一緒に改善します。自転車のサドル高さを少しずつ合わせる感覚です。

改善ポイント例

Codexへの頼み方の例

Codexチャットで「タイトル類似度のしきい値を0.8→0.7に。設定から変更できるようヘルプ文も追加して」と具体的に伝えます。変更後は再実行して効果を確認しましょう。

12. よくあるエラー

APIエラーやネットワークエラーの原因と対処を示す図解。
Photo by David Pupăză on Unsplash

URLError / HTTPError

feedparserのbozoフラグ

OpenAI APIの認証/レート制限/トークン上限

文字コードや絵文字での失敗

13. 次に試すこと

次の一歩は、朝の散歩コースを整える作業に似ています。少しずつショートカットを見つけましょう。

14. まとめ

最小構成と人の確認を重視するまとめスライド。
Photo by Kelly Sikkema on Unsplash

最小構成で動かし、人が最後に確認する安全設計が鍵です。
Codexと分担すれば、「設計は人・実装はエージェント」の型を自然に身につけられます。習い事の基礎練習のように、毎朝の実行と見直しを続ければ、精度と速さは確実に上がります。

参考リンク(公式)