はじめに
新しいAI技術を活用したシステムを、AI支援で構築したい、ということはしばしばあると思います。このページは、その際に役立つtips(こつ)を書きます。具体例としては、Gemini APIライブラリをとりあげて説明しますが、私の経験では、mediapipeを使う際にも、同様の問題がありました。
新しいAI技術を活用したシステムを、AI支援で構築したい、ということはしばしばあると思います。このページは、その際に役立つtips(こつ)を書きます。具体例としては、Gemini APIライブラリをとりあげて説明しますが、私の経験では、mediapipeを使う際にも、同様の問題がありました。
生成AIは、過去のある時点 t までの情報で事前学習して、文章やコードを生成します(より詳しく書くと、確率が高い次のトークンを生成することを繰り返します)。したがって、その時点 t 以降のことは知らないので、新しいものごとに関する文章やコードを正しく生成することはできません(トレーニングデータのカットオフと言います)。その後の情報を参照するためには、検索拡張生成(RAG)などの技術を別途使う必要があります。
このため、使いたいAI技術が時点 t 以降に(新規公開や、ライブラリの更新などの方法で)公開されたものである場合、その生成AIは、その新技術についての情報を持たないため、それを使うコードを正しく生成することはできません。「それについては知りません」などと言ってくれるといいのですが(それを可能にする技術の開発も進んでいますが)、2025年10月時点では、何か適当に知ったかぶりで、もっともらしく見えるコードを生成してしまいます。旧仕様のライブラリが時点 t 以前に存在した場合は、その影響を大きく受け、古いライブラリ用のコード(または、それが混ざったコード)を生成してしまい、実行時エラーを引き起こす原因にしばしばなります。
具体例として、Gemini APIを使う際は、2024年11月時点では、google-generativeaiパッケージに含まれるSDKを使用していましたが、2025年5月時点では、新ライブラリgoogle-genaiへの移行が推奨されています。推奨というのは、古いライブラリでは最新機能にアクセスできないことや、古いライブラリのサポート終了が2025年11月末に予定されていてサポート外になるとバグが修正されなくなり危険になるからです。
この移行解説ページでも、下記の通り、この問題が意識されており、対策が記されています。
生成モデル(例: Gemini、Claude)や AI を活用した IDE(Cursor)は、トレーニング データのカットオフにより、古いライブラリや非推奨のライブラリを使用して Gemini API のコードを生成する可能性があります。生成されたコードで最新の推奨ライブラリを使用するには、プロンプトでバージョンと使用方法のガイダンスを直接指定します。以下のテンプレートを使用して、必要なコンテキストを提供できます。