AI愛子設計ログ10 愛子の処理速度改善

続きです。全てのシリーズはこちら
※本記事は「技術解説編」です。先に公開したユーモア中心の「おちゃらけ版」とは若干時系列が異なるため、シリーズでお読みいただくと理解が深まるかと思います。

■キャッシュでAI応答高速化へ

ソフトウェアの世界では、システムが成長するにつれて分岐が増え、処理が遅くなるのは宿命とも言えます。
開発中のLINE愛子Botも、機能の追加・分岐処理の増加に伴って、徐々に処理速度の低下という課題に直面してしまいました。

■シンプルな構造の限界

最初期(とは言ってもわずか1週間前)の構成は非常にシンプルでした:

・ユーザーの発言を受信
→その都度Google Sheetsを検索
→OpenAIで応答を生成
→LINEで返信

一見して自然な流れですが、これには致命的な弱点があります。

「毎回スプレッドシートを読み込みに行く」
「AIに渡す文脈を都度構築する」
「条件分岐の数が多いため、処理時間が長い」

この構成では、Botのレスポンスがこの読みに行く処理だけで5〜10秒余計にかかります。
人間が相手なら許せるでしょうが、AIでこの遅延はユーザーからブチ切られる境目です。

■キャッシュという武器

そこで処理速度改善のために導入したのが「キャッシュ」です。
つまり「探す準備をしておく構成」です。
効果は大きく、以下のような実績が得られました:

・80%以上の短縮
・APIリクエスト数の削減による安定化
・即時応答となり、「反応が早!」という体感向上

■技術的な工夫:TTL

TTL(有効期限)付きのキャッシュ制御
 → Google SheetsのA1セルに「更新時刻」を記録し、一定時間内は再取得しない構成にする。
これは、キャッシュの中身を逐次更新ではなく、まず起動時に一括ロードし、必要に応じて部分更新していくスタイル
 → これにより起動直後の読み込みコストを最小限に抑えながら整合性も維持

■OpenAIと開発フローの革新

Pythonの文法を知らなくても、アイデアだけかけば生成AIがコードにしてくれる。
そして人間側でレビューして動作確認(デバッグ)

従来のように、仕様書 → 設計 → 実装 → テスト → 修正… という「ウォーターフォール的な負担」は必要なくなりつつあります。

これがプログラムを知らない素人でもそれなりのものができてしまう。
まさに革命です。

正直、以前なら「こんな処理は一から設計して…」と身構えていた内容も、生成AIによって一変しました。

・試し書きが速い
・コードが自動修正され即返ってくる
・バグ検証のサポートも即時対応

そしてなによりも、開発者が本当に向き合うべき「設計」「判断」に集中できます。

■結論

複雑な条件分岐はキャッシュと即時応答分岐で切り分ける
遅くなりそうな処理は事前にキャッシュしておく構造で包む

ちょっとしたアイデアのつもりでしたが、わずか数時間で期待通りの速度を手に入れました。

この後、少しだけキャッシュでは悩まされることになるのですが、次回報告します。


コメント

コメントを残す