【要約】AIでニュースの「流れ」を可視化するサービスを個人で作った話(技術編) [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
- ・ニュースが断片化し、情報の推移が追いにくい。
- ・AI API(Claude)の利用コスト増大。
- ・SPA構成によるGooglebotのインデックス不足。
- ・DynamoDBのSK(ソートキー)に関する制約。
- ・APIのレートリミット(429エラー)への対応。
- ・古いデータの「速度あり」状態の残留。
// Approach
1.クラスタリング:
- ・Jaccard類似度とUnion-Find法を採用。
- ・5文字以上のカタカナ固有名詞を共有する場合、結合条件を緩和。
2.コスト最適化:
- ・記事数に応じ、
generate_storyを3段階で分岐。 - ・
max_tokensを200/500/900と制御。
3.SEO対策:
- ・AI分析後、Pythonで静的HTMLを生成しS3へ配置。
4.耐障害性:
- ・指数バックオフを用いたClaude APIのリトライ処理。
5.データ管理:
- ・週次のLambdaで30日超のトピックを強制アーカイブ。
// Result
- ・月額コストを$10〜15程度に抑制。
- ・RSS収集からSEO対応のHTML生成までを完全自動化。
- ・30日未更新のトピックを自動アーカイブする運用を実現。
Senior Engineer Insight
> 極めて実戦的な設計である。特に、AIのトークン消費を記事数で制御する「3段階分岐」は、コスト意識の高い優れた実装だ。また、SPAのSEO問題を静的HTML生成で解決する手法は、個人開発における賢明な判断といえる。ただし、トラフィック増大時には、Lambdaの同時実行数やDynamoDBの設計がボトルネックになる可能性がある。スケーラビリティの観点からは、クラスタリング処理の分散化が次の課題となるだろう。