過去問アプリにはGemini APIを使ってAIの解説をつけています。
しかし、AIは的はずれな回答を返すことがあり、それを防ぐコードやプロンプト、検出方法を考えていました。
その作業を進めながら、ずっと気になっていた問題とAI解説の紐付け方法も一緒に直すことにしました
問題とAI解説は、「何番目の問題には何番目の解説」という順番だけで対応づけて作っていました。
注意して順番を揃えていましたが、このままでは何かの拍子に順番がずれる恐れがあります。
問題文とAIの解説には同じデータIDを振っていたので、それを使えば確実に紐付けることができます。
「何番目か」ではなく「同じIDかどうか」で結びつける方式に変更しました。
一番気を使ったのは既存ユーザーへの影響です。
- IDで紐付けできる場合は新方式
- まだIDがない古いデータは今までと同じ動作にフォールバック
何も操作してもらわなくても今まで通り使えて、データが更新されるタイミングで自然に安全な方式へ移っていく形にしました。
特に慎重にやったのは、ユーザー自身が外部で調べて保存したAI回答の扱いです。
ここも同じ順番依存だったので、表示側だけ直すと「保存した場所」と「探す場所」がズレて、せっかく保存してもらった回答が見えなくなる恐れがありました。
保存と表示、両方を同じ基準で揃えて初めて安全になります。
的はずれな回答を防ぐ仕組みを考える作業の中で、合わせてこの部分も修正しました。