想定外を防ぐAI機能の実装
AIはアプリの実用性を大きく高めてくれます。最初に実装する機能を小さく絞り、失敗時の対応をあらかじめ計画しておくことで、その真価を発揮します。
言語モデルや画像認識モデルによって、以前は多くのチームにとって手が届かなかった機能が実用的になりました。要約、よりスマートな検索、下書き作成、分類、写真からのテキスト読み取りなどです。一方で、これらのモデルは通常のコードとは異なる動作をします。同じ入力でも異なる出力が返ることがあり、自信ありげな回答が間違っていることもあります。あらかじめ仕組みを整えておくことで、開発チームもユーザーもこうした特性に戸惑わずに済みます。
役割を小さく絞る
「AIを追加する」は機能ではありません。「新しい経費ごとにカテゴリーを提案する」が機能です。役割を小さく絞ることで、開発やテスト、説明がしやすくなります。適切な回答が出ればユーザーの時間を確実に節約でき、間違った回答が出てもすぐに気づいて修正できるものを選びましょう。
実際の入力例でテストする
インターフェースを作る前に、実際の入力と期待する回答のセットを集めます。それをモデルに渡し、結果を評価します。このテストセットを保管しておき、プロンプト、モデル、あるいはプロバイダーを変更するたびに再実行します。これがないと、どんな変更も当てずっぽうになってしまいます。
誤った回答を前提に設計する
どんなモデルも間違えることがあります。それを前提に設計しましょう。回答は編集可能な提案として提示し、可能であればその根拠を表示し、事前の確認なしに取り消せない操作をモデルに実行させてはいけません。不適切な結果をユーザーが簡単に報告できるようにし、届いた報告には必ず目を通しましょう。
1回ごとのコストを把握する
ほとんどのAIサービスは、処理したテキストや画像の量に応じた従量課金制です。一般的なリクエスト1回あたりのコストを算出し、機能の想定利用回数を掛け合わせます。プロバイダー側で利用限度額を設定し、変化しない結果はキャッシュし、十分な精度が出るなら小さめのモデルを活用しましょう。
データの送信先を明確にする
各リクエストでどのプロバイダーに何を送信し、プロバイダーがそれをどう扱うかを正確に把握します。データが保存されるか、保存期間はどれくらいか、モデルの学習に使われるかどうかを確認しましょう。機能に必要なデータだけを送信するようにします。その上で、プライバシーポリシーやApp Store、Google Playのプライバシー開示情報に反映し、AIサービスとの個人データ共有に関するアプリストアの最新ルールも確認してください。
フォールバックを用意する
AIサービスにも、他のサービスと同様に停止や応答が遅い日があります。リクエストが失敗したり時間がかかりすぎたりした場合の挙動を決めておきましょう。機能を非表示にする、シンプルな代替手段に切り替える、あるいはAIなしでそのまま操作を続けられるようにします。アプリの他の部分がモデルの応答待ちで止まってしまうことは避けるべきです。
まとめ
役割を1つに絞り、実データによるテストセットを用意し、確認・修正できる回答を返し、1回ごとのコストを把握し、プライバシー開示を誠実に行い、フォールバックを備える。これらが揃えば、AI機能はごく普通の機能として定着します。それこそが目指すべき姿です。