先週 generative-ai-js の v0.24.0 がリリースされた。変更点は4つだけで、パッと見は地味なリリースだ。でも「自分のプロジェクトに影響あるか?」という視点で読むと、見え方が変わってくる。
今回いちばん実務に刺さるのが、ファイルマネージャーにバッファを直接渡せるようになった件だ。これまで File Manager API にファイルをアップロードするとき、一度ディスクに書き出してからパスを渡すか、ストリームをうまく扱う必要があった。自分もローカルの画像を Gemini に食わせるコードを書いたとき、一時ファイルを作る処理がどうにも気持ち悪かった。それが Buffer を直接渡せるようになったので、Node.js の処理フローがかなりすっきりする。S3 から取得したデータをそのまま渡す、みたいなユースケースが普通に書けるようになる。
もう一個が、String Schema まわりに型が追加されたこと。Gemini の Function Calling や Structured Output を使うとき、スキーマの format フィールドに好き勝手な文字列を書けてしまっていた。TypeScript を使っていても、誤ったフォーマット指定をランタイムまで気づかないことがあった。今回の変更で、許可された値以外を渡すとコンパイルエラーになる。地味だけど、チームで使ってるコードベースだと特に助かる変化だ。レビューで「ここの format って何が入るの?」ってなることも減るはず。
整理すると今回の変更点はこんな感じだ。
バッファ対応と型チェックが主な実用上の変化で、残り2つはライブラリの管理まわりの変更だ。
このリリース、自分が既存コードをどう触るかというと、まずファイルアップロード周りを見直すつもりだ。今のコードが一時ファイルを経由しているなら、バッファ渡しに切り替える価値は十分ある。テストも書きやすくなるので、副次効果も大きい。
String Schema の型追加については、アップデートしたあと型エラーが出ないかを一度確認してほしい。もし既存コードで不正な文字列を format に渡していたなら、今回のアップデートで初めてコンパイルエラーが出る可能性がある。ただ、これは「バグが顕在化した」というより「今まで黙って受け入れていた不正な値が表に出た」という理解が正しい。修正すべきコードが見つかるという意味で、むしろ歓迎できる変化だと思う。
v0.23.0 から v0.24.0 への変更量は少ない。でもこういう小粒なリリースに含まれる型まわりの変更は、チームのコードの品質に静かに効いてくる。まず手元の型エラーチェックから試してみてほしい。
バッファ渡しで画像アップロードが楽になった
今回いちばん実務に刺さるのが、ファイルマネージャーにバッファを直接渡せるようになった件だ。これまで File Manager API にファイルをアップロードするとき、一度ディスクに書き出してからパスを渡すか、ストリームをうまく扱う必要があった。自分もローカルの画像を Gemini に食わせるコードを書いたとき、一時ファイルを作る処理がどうにも気持ち悪かった。それが Buffer を直接渡せるようになったので、Node.js の処理フローがかなりすっきりする。S3 から取得したデータをそのまま渡す、みたいなユースケースが普通に書けるようになる。
String Schema に型チェックが入った
もう一個が、String Schema まわりに型が追加されたこと。Gemini の Function Calling や Structured Output を使うとき、スキーマの format フィールドに好き勝手な文字列を書けてしまっていた。TypeScript を使っていても、誤ったフォーマット指定をランタイムまで気づかないことがあった。今回の変更で、許可された値以外を渡すとコンパイルエラーになる。地味だけど、チームで使ってるコードベースだと特に助かる変化だ。レビューで「ここの format って何が入るの?」ってなることも減るはず。
整理すると今回の変更点はこんな感じだ。
- File Manager API でバッファ直接アップロードに対応
- String Schema の format フィールドに型を追加(不正な値がコンパイルエラーになる)
- パッケージバージョンの更新
- パブリッシュの手動ワークフローを追加
バッファ対応と型チェックが主な実用上の変化で、残り2つはライブラリの管理まわりの変更だ。
このリリース、自分が既存コードをどう触るかというと、まずファイルアップロード周りを見直すつもりだ。今のコードが一時ファイルを経由しているなら、バッファ渡しに切り替える価値は十分ある。テストも書きやすくなるので、副次効果も大きい。
String Schema の型追加については、アップデートしたあと型エラーが出ないかを一度確認してほしい。もし既存コードで不正な文字列を format に渡していたなら、今回のアップデートで初めてコンパイルエラーが出る可能性がある。ただ、これは「バグが顕在化した」というより「今まで黙って受け入れていた不正な値が表に出た」という理解が正しい。修正すべきコードが見つかるという意味で、むしろ歓迎できる変化だと思う。
v0.23.0 から v0.24.0 への変更量は少ない。でもこういう小粒なリリースに含まれる型まわりの変更は、チームのコードの品質に静かに効いてくる。まず手元の型エラーチェックから試してみてほしい。