Twitter APIを用いた自動投稿システムの改良報告
概要
現在、ニュースAPIから取得した情報をOpenAI APIに送信し、生成されたラップ調のテキストをTwitter APIを通じて自動投稿するモジュールをAWS Lambda関数で実装しています。以前はテキストのみの投稿でしたが、現在は生成された画像も一緒に投稿するように改良しています。
現在の問題点
昨日の夜に実装した結果、実験で確認したところ、期待していた10件の投稿のうち、実際には1件しか投稿されませんでした。この問題の主な原因として考えられるのは、以下の点です。
-
URLの重複管理:
- 現在、同じ投稿を避けるために、使用したURLをDynamoDBに保存し、1週間ごとにクリアする実装を行っています。この管理方法は、毎回DynamoDBからURLリストを取得し、ローカルで比較するため、効率が悪いと感じています。
-
DynamoDBの履歴管理:
- 1週間ごとに全てのURLをクリアする方法では、クリアした翌日に前日と同じURLが投稿される可能性があります。このため、URLごとに保持する期間を設ける必要があります。
改善策
今日中に以下の改善を行う予定です。
-
DynamoDBの履歴管理の修正:
- URLごとに保持する期間を設定し、1週間ごとではなく、各URLが保持される時間を指定します。
-
効率的なURLの取得:
- DynamoDBからのURLリストを一括取得し、ローカルで比較するように修正します。これにより、処理の効率を向上させることができます。
-
Lambda関数の軽量化:
- Lambda関数自体が重いため、処理を軽量化し、毎回10件の投稿が確実に行われるように改良します。
次のステップ
- DynamoDBの履歴管理を改善し、URLごとの保持期間を設ける。
- Lambda関数の処理を軽量化し、効率を向上させる。
- 改良後に、再度テストを行い、期待通りの投稿数を達成できるか確認します。
この改善策が成功すれば、よりスムーズに自動投稿を行えるシステムが構築できると考えています。同じ課題に直面している方々の参考になれば幸いです。今後の進捗についても随時報告していきます。