このページでは、OpenAI SDK 用に設計されたコードを Google Gen AI SDK に移行して、Vertex AI で Gemini モデルを利用する方法について説明します。
移行の概要
次のノートブックは、openai ライブラリから google-genai ライブラリへの実際的な移行を示しています。
API と構文のマッピング
次の表は、OpenAI SDK と Gen AI SDK のコア コンポーネント、メソッド、パラメータを比較したものです。
| 機能 | OpenAI SDK(openai) |
Gen AI SDK(google-genai) |
|---|---|---|
| クライアントの初期化 | client = OpenAI(api_key=...) |
client = genai.Client(vertexai=True, ...) |
| 生成方法 | client.chat.completions.create |
client.models.generate_content |
| ストリーミング方法 | stream=True(パラメータ) |
client.models.generate_content_stream(メソッド) |
| ユーザー入力 | messages=[{"role": "user", "content": "..."}] |
contents="..."(str)または contents=[...](list) |
| システム指示 | messages=[{"role": "system", "content": "..."}] |
config=types.GenerateContentConfig(system_instruction=...) |
| 回答へのアクセス | response.choices[0].message.content |
response.text |
| チャットの履歴 | 手動リスト管理(messages.append) |
client.chats.create()(ステートフル オブジェクト) |
| 最大トークン数 | max_tokens |
max_output_tokens(config 内) |
| Temperature(温度) | temperature |
temperature(config 内) |
| JSON モード | response_format={"type": "json_object"} |
response_mime_type="application/json"(config 内) |
インストールとセットアップ
OpenAI ライブラリをアンインストールして、Gen AI SDK をインストールします。
pip install google-genai
2. 認証と初期化
OpenAI は API キーを使用しますが、Vertex AI は Identity and Access Management(IAM)認証情報(アプリケーションのデフォルト認証情報)を使用します。プロジェクト ID とロケーションを明示的に定義する必要があります。
| OpenAI SDK | Google Gen AI SDK |
|---|---|
|
|
次のように GOOGLE_GENAI_USE_VERTEXAI、GOOGLE_CLOUD_PROJECT、GOOGLE_CLOUD_LOCATION を設定します。
export GOOGLE_GENAI_USE_VERTEXAI=true
export GOOGLE_CLOUD_PROJECT='your-project-id'
export GOOGLE_CLOUD_LOCATION='global'
構成が完了したら、パラメータを渡さずにクライアントを初期化できます。
from google import genai
client = genai.Client()
サンプルコード
次のコードサンプルは、一般的なタスクにおける OpenAI SDK と Google Gen AI SDK の違いを示しています。
シングルターンのテキスト生成
次のコードサンプルは、テキストを生成する方法を示しています。Google Gen AI SDK では、システム指示は入力リストのメッセージ ロールではなく、構成パラメータとして処理されます。
| OpenAI SDK | Google Gen AI SDK |
|---|---|
|
|
パラメータを使用したテキスト生成
次のコードサンプルは、構成パラメータの定義の違いを示しています。Google Gen AI SDK では、temperature、max_output_tokens(以前は max_tokens)、JSON 形式などのパラメータは GenerateContentConfig オブジェクトにグループ化されます。
| OpenAI SDK | Google Gen AI SDK |
|---|---|
|
|
チャット(マルチターン)
次のコードサンプルは、チャット履歴の管理の違いを示しています。Google Gen AI SDK は、ステートフルな chat オブジェクトを提供することで、この処理を簡素化します。一方、OpenAI では、メッセージを手動でリストに追加する必要があります。
| OpenAI SDK | Google Gen AI SDK |
|---|---|
|
|
ストリーミング
次のコードサンプルは、ストリーミング レスポンスの違いを示しています。Google Gen AI SDK では、ブール値フラグではなく特定の方法(generate_content_stream)を使用します。
| OpenAI SDK | Google Gen AI SDK |
|---|---|
|
|
次のステップ
- Vertex AI で OpenAI ライブラリを使用する方法を学習する。
- OpenAI の互換性のコード例をご覧ください。
- Google Gen AI SDK クイックスタートをご覧ください。