Particles and Waves

本業中でも進む副業開発:AI × 自動化で「放置アセット生成」を仕組み化した話

副業の最大の敵は時間不足ではなく素材不足だった。Python + AI APIで放置可能なアセット生成パイプラインを組み、3万語規模を24時間稼働で量産している。

副業開発で詰まる場所は、コードを書く時間ではない。コンテンツを作る時間だ。

英語学習アプリを例に取る。コア機能(単語の自動表示、発音再生)は数日で実装できる。本当に時間がかかるのは、表示する単語リスト、例文、難易度分類、ふりがな、関連語の整備だ。3万語規模になると、人間が一つずつ作っていては間に合わない。

しかも本業を持っていると、こちらに割ける時間は1日2時間あれば多い方だ。コア機能の開発ができても、コンテンツの整備で詰まり、結果としてプロダクトが完成しないまま塩漬けになる。これが副業開発の最大の敗因だった。

「自分が稼働していない時間」を働かせる

本業中の8時間、睡眠中の7時間。合計15時間は、自分は副業に手を出せない。だがクラウド上のスクリプトは動かせる。この時間を使って、アセット生成を自動で回す。

これが「放置アセット生成」という仕組みになった。

パイプラインの全体像

[単語リスト] → [例文生成] → [難易度分類] → [ふりがな付与] → [品質チェック] → [Discord通知]

各段階をPythonスクリプトに分割し、GitHub Actionsで定期実行する。出力は次の段階の入力になる。途中で人間の判断が必要な箇所はゼロ。

段階入力処理出力
例文生成単語リストOpenAI API単語ごとに例文3つ
難易度分類例文OpenAI APIA1〜C2のCEFRレベル
ふりがな付与例文(日本語訳含む)形態素解析 + AIルビ付きJSON
品質チェック全成果物OpenAI API合格/不合格のラベル
通知結果サマリDiscord Webhookスマホに通知

各スクリプトは独立しており、失敗したステップだけリトライできる構造にしている。

AIで生成して、AIで弾く

大量生成すると、品質のムラは避けられない。例文の自然さ、難易度判定の妥当性、訳文の精度。人間がレビューするには量が多すぎる。

ここで効くのが「AI自身による品質チェック」だ。生成段階で使ったモデルとは別のプロンプトで、生成物を評価させる。

評価軸は3つに絞っている。

  • 意味的整合性 — 単語と例文の意味がずれていないか
  • 難易度の妥当性 — 例文の語彙レベルが、想定難易度と一致しているか
  • 自然さ — 日本語訳がぎこちなくないか

3つすべて合格したものだけを採用する。不合格分は再生成キューに戻す。これだけでアセットの平均品質が大きく上がった。

進捗をDiscordに飛ばす

副業の停滞感は「自分が動いていないと進まない」という感覚から来る。だが実際には、自分が寝ている間にスクリプトが3,000語処理している。これが見えないと、進んでいるのに進んでいない錯覚に陥る。

そこで各バッチの完了時にDiscord Webhookで通知を飛ばすようにした。「2時間で例文生成1,200件、品質チェック合格率87%」のような短いメッセージがスマホに届く。

これが意外なほど効く。寝る前にPushしておくと、朝起きたときに「進捗がある状態」で1日が始まる。本業中の昼休みにも進捗通知が来る。副業に対する手応えが、稼働時間ゼロでも維持される。

副業を「停滞させない仕組み」として捉える

副業開発が続かない理由を「時間がない」と説明する人は多い。だが本質は時間の問題ではなく、可処分時間ゼロの15時間に何が動いているかの問題だ。

人間が動かない時間に、AIと自動化が動く構造を作る。これだけで副業は停滞しなくなる。本業を辞めずに、個人開発のスループットを上げる。これが「放置アセット生成」の本当の価値だった。