AIニュース自動配信の失敗から得た改善戦略|くやしさを次に生かす道筋
AIニュース自動配信で起きた「英語ニュース多発」「テーマズレ」「フォーマット崩れ」という失敗を振り返り、プロンプト設計・RSS設定・体裁統制の改善戦略を提示します。
こんにちは、SHOです。
今回は知る人ぞ知る僕の密かなチャレンジ、AIニュース配信自動化について反省と改善を考えようと思いました。
僕の今回の失敗経験がいつかみんなの参考になるかもしれないので、よかったら読んでみてください。
人は失敗から学ぶのです。
英語ニュース多発の原因と対策
まず今回配信したニュースはこれ。
自動化で抽出したニュース記事のまんま配信しています。いままで3回配信して僕が気になったのは、以下の3つ。
英語のニュースが多い
AIに関係ないニュースが混在しているテーマがある(技術・研究)
自分で整えないとダメな箇所がもう一個あった
自動化って保守メンテナンスをなるべくしないような設計が大事だと思うから少しこだわっていきたいと思います。
1. 英語のニュースが多い
これは僕がRSSのURLの言語設定を忘れているからですごめんなさい。
ソースとしているRSSはほとんどGoogle ニュースの検索なんですが、そのままURLを指定していたようで、変更する必要があります。
解決策
例えば、キーワード「生成AI」で日本語ニュースを取りたい場合、
🙅ダメな例(現在):
https://news.google.com/rss/search?q=生成AI
🙆♂️いい例(これから):
https://news.google.com/rss/search?q=生成AI&hl=ja&gl=JP&ceid=JP:jaつまり、正しい日本語固定の書き方は、Google ニュース RSS では以下の 3 つのパラメータを付けるのが鉄則です(”&”で繋げてね)
hl=ja … UI言語(日本語)
gl=JP … 国(Japan)
ceid=JP:ja … エディション(日本語・日本)
こうすると次回はなおっているはずです。
※僕のmemo:HTTP Requestノードを挟んでヘッダーで言語指定(う~ん…)
2. AIテーマ外ニュース混入の仕組みと改善策
これは僕のフィルタリングの甘さと、RSSの指定が良くなかったです。技術・研究テーマがあまりにも専門的すぎてて、AIの分野とは別の分野の研究まで拾ってきています。
加えて、AIに情報を渡すときに、こんな指示をしています。
# 選定ルール
1. 7本厳守(副業3、本稿の各カテゴリ1)。不足時は最も関連の高い記事で補完しつつ合計7本に調整。空見出しは作らない。
2. 重複/類似は統合。
3. 要約は1–2文(90–180字)、事実のみ。必ず要約を生成する。
4. URLは要約テキストの次の行に1行空けて生URL1行。
5. 入力のJSONや解説は出力しない。特にこの部分。
1. 7本厳守(副業3、本稿の各カテゴリ1)。不足時は最も関連の高い記事で補完しつつ合計7本に調整。空見出しは作らない。
一見、このプロンプトに違和感は無いのですが、AIの負荷をなるべく下げてAPIのコストを下げるために、すべてのニュース記事を投げているわけではなく、フィルタリングして20記事程度をAIに渡すようにしています。
もっというと、ニュース記事のタイトルと本文の数十文字だけ渡しています。
こういった工夫で1回のニュース配信を作るごとに100円もかからないんです。
つまり何が言いたいかというと、そんな限られた情報しかない中で、僕が指定したカテゴリーに一番合致した情報(今回でいえば「技術・研究」)を指示しているから、AIは無理やりにでも選んでしまいます。(それに技術・研究ってそもそもニュース記事自体が少ないし。)
解決策
ニュースソースの変更とCODEのノードでのフィルタリングの見直し。
※僕のmemo:これは簡単にできる。おちついて。
3. 体裁・フォーマットのズレが露呈した理由
このニュース配信の自動化を始めたとき、「Markdown形式がGoogle Docksでいい感じになってくれたらなー。」とか知った風な口きいてましたごめんなさい。
それ以外にもありました。体裁です。
いまは、見やすく
■AI Logo Designers - Trend Hunter
ざっくりいうと:
トレンドハンターがAIロゴデザインツールの動向を解説。AIによるロゴ作成の現状と可能性を探る記事です。
URL: AI Logo Designers : Golo
となっていますが、手直しする前はこんな感じで改行が無く出力されています。
(略)
ざっくりいうと:トレンドハンターがAIロゴデザインツールの動向を解説。AIによるロゴ作成の現状と可能性を探る記事です。
(略)
はい。めちゃくちゃどうでもいいのですが、AIに体裁を整えさせるためにプロンプトを調整しました。
解決策
調整前:
以下のフォーマットに必ず従ってください。
出力フォーマット例:
## {ニュースタイトル}
ざっくりいうと:
{要約テキスト}
{URL}
調整後:
以下のフォーマットに必ず従ってください。
特に「ざっくりいうと:」のあとには必ず改行を入れ、次の行に要約文を書いてください。
{ニュースタイトル}, {要約テキスト}, {URL} は置換されます。
出力フォーマット例:
```
## {ニュースタイトル}
ざっくりいうと:
{要約テキスト}
{URL}
```はい。これだけです。たったこれだけの記述で出力結果が変わります。
見つけにくいので説明します。種明かしはコードフェンスで囲んで、指示を追加したって事ですね。
「コードフェンス」っていうのは、Markdown という書き方で文章を囲って整形表示させる仕組みの一つで、バッククォート(`)を3つ連続で書いて、囲むだけです。
```
ここにテキストを書くと、
改行やスペース がそのまま残ります。
```こんな些細な事ですが、AIがフォーマットを守ってくれないという割とよくあるケースだと思ったので、反省と共にみんなに共有です。きっと仕事でもつかえると思います。
まとめ
今回の僕の経験がみんなの役に立つと嬉しいです。役に立っても立たなくても、もしいいなと思ったらスキしてくれると嬉しいです。
n8nを使って、いつかTRPGのPV動画を自動で作れる仕組みを完成させたいって思ってます。いまはRunway(←動画つくるやつ)で遊んでます。これもTRPGを作るための必要な遊びです。楽しいです。
そうこうしているうちにAIだけで完結出来るのでは…
がんばります。
※ニュースはまとめてこちらにしまってあります。安定して動いてます。
※ニュースの配信をやろうと思ったきっかけです。
※後日、自動で動画を作ることに成功しました。
