生成AIのAPI選び|4つの運用条件

目次
社内向けの生成AI機能を試作すると、最初は驚くほど順調に動く。数件の文書を要約し、問い合わせにも自然に答える。ところが本番を想定した途端、別の問題が顔を出す。
「入力したデータはどこに残るのか」
「月末にリクエストが集中しても動くのか」
「新モデルへ切り替えたら、回答品質は変わらないか」
これはモデルの賢さだけでは解けない。生成AIのAPIを業務システムへ組み込むなら、選定基準をモデル名から運用条件へ移す必要がある。
判断軸は4つだ。
- データ保持と処理場所
- 可用性と割当上限
- 応答速度と総費用
- モデル更新と切替可能性
APIの比較表を開く前に、この4条件を自社の要求へ変換する。そうすると、必要以上に高価な構成も、安いが本番で止まる構成も避けやすくなる。
生成AIのAPIはモデル性能だけで選ばない
生成AIのAPIを探すと、精度、コンテキスト長、入出力単価の比較が目に入る。もちろん、どれも大切だ。ただし、公開ベンチマークで上位のモデルが、そのまま自社業務の最適解になるとは限らない。
たとえば、契約書の確認支援と社内FAQでは失敗の重さが違う。前者は条項の見落としを防ぐ確認工程が必要だ。後者は回答不能時に担当窓口へ渡せれば、完全自動化しなくても価値を出せる。
比較すべきなのは「どのモデルが一番賢いか」ではない。
自社の代表ケースを、決めた時間、費用、安全条件で処理できるかを比べる。
そのた めには、同じ入力、期待する出力、禁止事項、合格条件を候補ごとに変えずに試す。AI要件定義を受け入れ条件から逆算する方法で扱ったように、合格条件を先に固定すると、モデルの印象ではなく業務適合で評価できる。APIだけでなく実行基盤も比べる場合は、AIエージェントの比較で見る6つの条件も使える。
条件1:データ保持と処理場所を確認する
「APIに送ったデータは学習に使われない」と「データが保存されない」は別の条件だ。
OpenAIのデータ管理の説明では、APIデータの学習利用、監視ログ、機能ごとのアプリケーション状態が分けて整理されている。保持期間やZero Data Retentionの対象可否は、使うエンドポイントや機能によって異なる。
Google CloudのGemini Enterprise Agent Platformにおけるデータ保持条件では、監視ログ、グラウンディ ング、リクエスト・レスポンスログなどを機能単位で説明している。Azureでも、データの処理・保存条件はデプロイ方式によって変わる。
つまり、サービス名だけを見て「安全」と判断してはいけない。少なくとも次を要求表へ書く。
- 入力、出力、添付ファイル、ログの保存期間
- 学習利用の有無と、設定・契約上の条件
- 保存場所と推論処理場所
- 社内ログへ残してよい項目と伏せる項目
- 削除方法と、削除完了を確認する手段
- 外部検索や外部ツール利用時の送信先
ここで厄介なのが、便利な機能を追加すると保持条件も変わり得る点だ。会話履歴、ファイル検索、キャッシュ、外部ツールは、それぞれ別のデータ経路を持つ。基本APIの説明だけで済ませず、実際に使う機能の組み合わせで確認する。
入力データの分類も必要になる。「社外秘」という一語では粗すぎる。個人情報、顧客資料、公開情報、社内規程などに分け、どの区分をどのAPI構成へ送れるかを決める。AIが読める仕様書の作り方と同じく、曖昧な方針をデータ項目と処理条件へ落とすのが先だ。
条件2:可用性と割当上限を業務量で見る
開発環境で10回成功しても、月末に1万件を処理できるとは限らない。生成AI APIには、リクエスト数、トークン量、同時実行数、モデルやリージョンごとの割当上限がある。
Google CloudのGemini Enterprise Agent Platformにおけるスループットの説明では、従量課金型に加え、一定量の処理能力を固定料金で確保するProvisioned Throughputが示されている。予測可能な処理量が必要なら、従量課金だけでなく容量確保の方式も比較対象になる。
ここから分かるのは、可用性を「APIが動くか」の一問で確認してはいけないということだ。業務側の時間軸へ翻訳する。
| 業務条件 | API要件へ変換する例 |
|---|---|
| 営業時間内の対話 | 95パーセンタイルの応答時間、タイムアウト、再試行上限 |
| 月末の一括処理 | 最大件数、同時実行、完了期限、途中再開 |
| 顧客向け機能 | 障害時の代替表示、有人窓口、復旧目標 |
| 社内補助機能 | 翌営業日までの再処理、手作業への切替 |
SLAも対象範囲まで読む。Google CloudのVertex AI SLAでは、一般提供前の機能、システム上の割当上限によるエラー、該当資料で推奨される利用期間を過ぎたモデルなどが対象外条件に含まれる。契約上の稼働率だけでなく、自分たちが使うモデル、機能、リージョン、購入方式が対象かを確認したい。
設計では、429、タイムアウト、空回答、形式不正を別の失敗として扱う。再試行すればよい失敗と、人へ渡すべき失敗を混ぜない。停止条件と引き継ぎ先まで書いて初めて、可用性の要件になる。
条件3:応答速度と総費用を同じケースで測る
生成AI APIの料金は、単価表だけでは決まらない。
入力トークン、出力トークン、キャッシュ、検索、ファイル処理、再試行、監視、 評価環境まで足したものが総費用になる。安いモデルでも回答が長く、やり直しが多ければ逆転する。高性能モデルを全処理に使う必要もない。
そこで、代表ケースを3種類ほど用意する。
- 通常ケース:最も多い入力と期待出力
- 重いケース:長文、複数ファイル、複雑な判断
- 例外ケース:情報不足、矛盾、禁止対象を含む入力
各ケースで、入力・出力トークン、応答時間、成功率、再試行回数、人の修正時間を記録する。費用は「1回いくら」ではなく、「合格する成果物1件を得るまでいくら」で見る。
モデルを分ける方法もある。分類や抽出は軽量モデル、最終判断を支援する文案は高性能モデル、といった使い分けだ。ただし、振り分け条件が曖昧だと品質事故を増やす。どの条件で上位モデルへ渡すか、業務ルールとして明文化する。
また、平均応答時間だけでは対話機能の体感を捉えにくい。混雑時を含む95パーセンタイル、最初の応答が返るまでの時間、全処理の完了時間を分けて測る。バッチ処理なら速さより、締切までに完了し、途中から再開できることの方が重要な場合もある。
条件4:モデル更新と切替可能性を設計する
生成AI APIは、選んだら5年間固定して使う部品ではない。新モデルの追加、 旧モデルの終了、料金改定、出力傾向の変化が起こる。
この前提を無視すると、更新時に全機能を目視確認することになる。逆に、切替可能性を優先しすぎて全APIの差を隠す巨大な共通層を作ると、各サービスの利点を使えなくなる。
実装成果物として残したい備えは次の4つだ。
- アプリケーションからモデルIDとプロンプト版を分離する
- 構造化出力を自社の業務スキーマで検証する
- 代表ケースと合格条件を回帰テストとして保存する
- 切替時に比較する品質、速度、費用の基準値を残す
特に大切なのは、出力形式と業務上の意味を分けることだ。JSONとして正しくても、金額の意味や承認状態が誤っていれば使えない。AIエージェントの評価設計で扱う評価観点のように、形式、内容、安全性、運用を別々に確認する。
モデルの更新は、精度向上だけを期待して進めない。以前は回答不能として人へ渡していた入力を、新モデルが自信ありげに誤回答する可能性もある。禁止条件、情報不足時の停止、根拠提示を回帰テストへ含める。
API固有の違いを比較表にする
4条件を決めたら、各API の機能差を同じ質問で確認する。ここを「対応あり・なし」だけで埋めると危ない。契約、リージョン、モデル、プレビューか一般提供かによって答えが変わるためだ。
| 比較項目 | 確認する内容 | 試験・証跡 |
|---|---|---|
| レート制限 | リクエスト、トークン、同時実行のどの単位で制限されるか | 制限値、429時の待機時間、再試行結果 |
| バッチ処理 | 対応モデル、処理期限、保存条件、キャンセル方法 | 最大想定件数の完了時間と途中失敗時の再開 |
| 構造化出力 | JSON Schema等の制約範囲と非対応型 | 正常・欠損・矛盾入力での形式合格率 |
| 状態保持 |
