会話ログを残さない設計とコスト最適化

プライバシーを守りながら運用する。LLMを呼ばない工夫とAPI費用の抑え方

プライバシーコスト最適化レート制限運用設計ログ方針
読了時間: 8分

はじめに

AIアシスタントを導入するとき、多くの人が「会話ログを分析して改善しよう」と考えます。実際それは有効な手段です。ただ今回は、あえて会話を一切保存しないという選択をしました。

この記事では、その判断の理由と引き換えに失ったもの、そして費用を抑えるために行った工夫を紹介します。

会話を保存しないという判断

宿泊者の質問には私的な内容が混じる

宿泊中のお客様がAIに尋ねる内容は、家電の使い方だけとは限りません。体調のこと、同行者との事情、個人的な相談が混じる可能性があります。

これらが運営者から読める状態にあるのは、宿泊体験として望ましくないと考えました。そこで質問文も回答文も、要約すら、データベースにもファイルにもログにも一切書かないと決めました。

エラーが起きたときも、記録するのはエラーの種類だけです。質問の内容は残しません。

引き換えに失ったもの

この判断には、はっきりした代償があります。

これらは運用改善に有効な情報です。それでも保存しない選択をしたのは、宿泊者のプライバシーを優先したからです。改善は、お客様からの直接のフィードバックや、運営者自身が試すことで進めています。

判断が正しいかどうかはケースバイケースですが、大事なのはトレードオフを理解した上で選ぶことだと思います。

唯一残す情報

例外的に、ブラウザ側に「何回質問したか」という数字だけを保存しています。用途は、周辺のお店を提案するときに毎回同じ店ばかり出ないようにするためです。

質問の内容ではなく回数だけ。しかもサーバーには送りません。これくらいなら許容範囲だと判断しました。

AIを呼ばずに答える

費用の大半は「呼ばない」ことで消える

AIのAPIは、呼び出すたびに費用が発生します。逆に言えば、呼ばずに済ませられれば費用はかかりません。

AIを呼ばない4つの経路
選択肢による絞り込み

話題・家電・よくある項目の3段階は、すべてデータベースから即答

お断り・緊急対応

範囲外の質問や緊急時は、用意した固定文を返して終了

検索でヒットしなかった場合

根拠になる資料が見つからなければ、AIを呼ばず「分かりません」と返す

上記に該当しない質問のみ

ここで初めてAIを呼び出す

実際の利用では、多くの質問が3番目までで解決します。AIが動くのは、想定外の質問だけです。

使わない情報を取りに行かない

周辺のお店を検索する機能では、写真の情報も一緒に取得できます。しかしAIの回答に写真は使いません。

にもかかわらず、当初は写真の取得を止めていなかったため、月に2,000回以上の無駄な呼び出しが発生していました。金額にすると月1,000円強。小さな額ですが、気づかないまま続けば無視できません。

呼び出し側で「写真は不要」と指定できるようにして解決しました。使わない情報は取りに行かない、という基本を守るだけです。

渡す文章量に上限を設ける

AIへ渡す資料の量は、費用に直結します。そこで文字数の上限を設け、それを超える分は切り捨てます。

ここで工夫したのは、切り捨てる順番です。自社の資料を先に、外部から取得した情報を後に並べることで、上限を超えたときに削られるのは外部情報からになります。大事な情報が先に消えない順序にしておくわけです。

当初は「かたまりの個数」で制限していましたが、1つあたりの文字数がばらつくため、周辺情報が毎回削られてしまう不具合が起きました。文字数での制限に変えて解決しています。

知識の作成は一度きり

資料を検索できる形に変換する処理は、取り込み時に一度だけ行います。質問のたびに実行するわけではありません。

実際にかかった費用は、100ページ以上の資料を取り込んで数百円程度でした。一度払えば、あとは検索するだけです。

悪用と暴走を防ぐ

回数制限は「予約単位」で

短時間に大量の質問が送られてくると、費用が跳ね上がります。そこで1分あたり12回までという制限を設けました。

工夫したのは、制限をアクセス元ごとではなく宿泊者ごとにかけた点です。同じ宿に泊まっているご家族は同じWi-Fiを使うため、アクセス元で数えると、1人が使いすぎたせいで全員が使えなくなってしまいます。

入力の長さも制限する

質問文は300文字までに制限しています。長文を貼り付けられると、それだけAPIの費用が増えるためです。宿の設備に関する質問なら、300文字あれば十分です。

すべての失敗は同じ見た目にする

無効なURLでアクセスされたとき、利用期間外だったとき、存在しない家電を指定されたとき — これらの失敗は、すべて同じ「見つかりません」という応答を返します。

エラーの種類を細かく伝えると、「このURLは存在するが期限切れらしい」といった情報が推測できてしまいます。失敗はすべて同じ顔にしておくのが安全です。

まとめ

AIアシスタントの運用設計で押さえたのは、次の3点です。

  1. 保存しないと決めたら徹底する — 診断情報すら返さず、記録される可能性を構造的に断つ
  2. 費用は「呼ばない」ことで抑える — 選択肢での絞り込みと、使わない情報を取りに行かない徹底
  3. 制限の単位を間違えない — 回数制限は同行者を巻き込まないよう、宿泊者単位でかける