このガイドでは、Oracle のベータ版 Python サンプルに沿って、アプリケーション管理型のプロビジョニングを使用します。Agents API セッションと OCI サンドボックスの両方をアプリケーションから作成・削除します。
OpenAI Cookbook のアプリケーション管理型のサンプルを参照してください。
プロビジョニングのモードと接続時の動作については、サンドボックスのライフサイクルを参照してください。
OCI GenAI サンドボックスはベータ版です。利用するには、Oracle のアカウント担当者に連絡し、ご利用のアカウントでのアクセスを申請してください。
事前準備
サンドボックスを有効にした Generative AI プロジェクトを作成します。プロジェクトが属するコンパートメント内でプロジェクトとサンドボックスを管理できるように、使用する OCI アイデンティティに権限を付与します。以下の IAM ポリシーのプレースホルダーを実際の値に置き換えてください。
allow group <group-name> to manage generative-ai-sandbox in compartment <compartment-name>
allow group <group-name> to manage generative-ai-project in compartment <compartment-name>
Node.js と npm を含むサンドボックスランタイムを使用してください。Oracle のサンプルではデフォルトで python-3.11 を指定しています。このランタイムに npm が含まれていない場合は、互換性のあるカスタムランタイムを選択してください。
プロジェクトで外向きの通信を制限している場合は、Codex のインストールに必要な registry.npmjs.org への HTTPS 接続に加え、api.openai.com への HTTPS 接続と codex-cloud-environments.chatgpt.com へのセキュアな WebSocket 接続を許可してください。詳しくは、エグゼキューターのネットワークアクセスを参照してください。
1. OCI CLI とベータ版 SDK のインストール
仮想環境を作成し、OCI CLI をインストールします。
uv venv --python 3.14
source .venv/bin/activate
uv pip install --upgrade oci-cli
次に、利用開始時に Oracle から提供されたベータ版 Python SDK をインストールします。
uv pip install "/path/to/oci-<beta-version>-py3-none-any.whl"
ベータ版 SDK は CLI のインストール後にインストールしてください。その後で oci-cli をインストールまたはアップグレードすると、ベータ版 SDK が PyPI の oci パッケージに置き換わることがあります。その場合は、ベータ版の wheel を再インストールしてください。ベータ版 SDK には oci.generative_ai_sandbox が含まれている必要があります。
2. OCI 環境の設定
アカウントで有効になっているリージョンで、セキュリティトークンを使用するプロファイルを認証します。
oci session authenticate --profile-name Sandbox --region us-chicago-1
プロジェクトの OCID と OpenAI の認証情報を環境変数に設定します。これらの値はコミットしないでください。
export OCI_SANDBOX_PROJECT_ID="ocid1.generativeaiproject..."
export OPENAI_API_KEY="..."
export OPENAI_EXECUTOR_API_KEY="..."
アプリケーションからのリクエストには OPENAI_API_KEY を使用します。OPENAI_EXECUTOR_API_KEY には環境キーを設定し、そのキーだけを CODEX_API_KEY としてサンドボックスに渡してください。
Oracle のサンプルは Sandbox プロファイルを読み込み、リージョンに us-chicago-1 を使用します。デフォルト値を上書きするには、次の環境変数を設定します。
export OCI_SANDBOX_PROFILE="my-profile"
export OCI_SANDBOX_REGION="us-chicago-1"
このサンプルでは、必要に応じて次の項目も設定できます。
| 設定項目 | デフォルト値 |
|---|---|
OCI_SANDBOX_ENDPOINT |
https://inference.generativeai.<region>.oci.oraclecloud.com |
OCI_SANDBOX_RUNTIME |
python-3.11 |
OCI_SANDBOX_SHAPE |
SMALL |
OCI_SANDBOX_EXPIRATION |
PT30M(30 分) |
独自のアプリケーションを設定する場合は、プロファイルのセキュリティトークンと秘密鍵を oci.auth.signers.SecurityTokenSigner に渡します。GenerativeAiSandboxClient を oci.generative_ai_sandbox からインポートし、選択したリージョンとエンドポイントを指定してサンドボックスクライアントを作成します。
3. アプリケーション管理型セッションの実行
Agents API へのリクエストとエグゼキューターの起動コマンドについては、セルフホスト環境の接続ガイドを参照してください。Oracle のサンプルと同じ手順で進めます。
- 作業ディレクトリに
/workspaceを指定して、セルフホスト型の Agents API セッションを作成します。セッション ID と環境 ID を保存します。 - OCI GenAI サンドボックスを作成し、状態が
RUNNINGになるまで待ちます。 - サンドボックスに Codex をインストールし、
/workspace/brief.txtを書き込みます。 - セッションの環境 ID と環境キーを使って
codex exec-serverを起動します。 - セッションのイベントストリームを開き、
brief.txtをもとに移行計画を作成するようエージェントに指示を送ります。処理が完了したら、生成された/workspace/plan.mdを読み取ります。 - OCI サンドボックスを停止して削除し、続いて Agents API セッションを削除します。一方のクリーンアップに失敗しても、もう一方のクリーンアップを必ず試みてください。
やり取りを続ける場合は、両方のリソースを稼働させたままにしてください。ファイルはサンドボックスを削除する前に取得してください。プレビューリリースではサンドボックス API の名称が変わることがあるため、ベータ版 SDK は Oracle が指定したバージョンを使用してください。
参考資料
- OCI Generative AI のドキュメントを参照してください。
- OCI Python SDK のドキュメントを参照してください。
- OCI TypeScript SDK のドキュメントを参照してください。
- OCI CLI の認証を参照してください。