OCIレスポンスAPI
OCI Responses APIを使用して、サポートされているモデルをコールし、モデル出力を生成し、単一のOpenAI互換のOpen Responses準拠APIを通じてツールベースまたはマルチステップのワークフローを構築します。テキストおよびイメージの入力とテキスト出力をサポートします。これを使用して、会話履歴とのステートフル相互作用を構築したり、ファイル検索やコード・インタプリタなどのサポートされているツールを追加したり、関数呼出しおよびMCP呼出しを介してモデルを外部システムに接続できます。
Responses APIがエージェント構築にどのように適合するか
レスポンスAPIを、OCI生成AIの次のエージェント構築コンポーネントとともに使用します。
| コンポーネント | 目的 |
|---|---|
| レスポンスAPI | サポートされているモデルおよびエージェント・ワークフローと対話するための主要なOpenAI互換API。 |
| エージェント・ツール | ファイル検索、コード・インタプリタ、関数コール、MCPコールなど、レスポンスAPIのツール。 |
| エージェント・メモリー | 会話APIのメモリー(長期メモリー・アクセス、短期メモリー・コンテキスト圧縮など)。 |
| 基本的なエージェントの構成要素 | リソースを直接制御するためにResponses APIで使用できる、ファイル、ベクトル・ストア、コンテナAPIなどのOpenAI互換の基礎API。 |
必要に応じて、レスポンスAPIで低レベルの基本構成要素を使用できます。
Responses APIでできること
レスポンスAPIを使用して、次のことを行います。
- サポートされるホスト・モデルおよびインポートされたモデルをコールします。
- テキストおよびイメージ入力を送信し、テキスト出力を受信します。
- テキストまたは構造化された出力を生成します。
- シングルステップ・プロンプトまたはマルチステップ・ワークフローを実行します。
- リクエストにサポートされているツールを追加します。
- クライアントへのレスポンスをストリーミングします。
- 会話APIを介してOCI管理の会話状態を使用します。
- 会話履歴または以前の出力を後のリクエストのコンテキストとして再利用します。
- 関数呼び出しとMCP呼び出しを使用して、モデルを外部システムおよびデータに接続します。
- 必要に応じて、モデル・リクエストをファイル、ベクトル・ストアまたはコンテナと組み合せます。
これにより、単純なプロンプトから開始して、別のAPIに切り替えることなく、より高度なワークフローに拡張できます。
レスポンスAPIを使用するタイミング
ほとんどの新しいアプリケーションでは、Responses APIから開始します。
次の場合に使用します。
- モデル・インタラクションおよびエージェント機能に1つのAPIを使用します。
- サポートされているツールをモデル・リクエストに追加します。
- OCI管理の会話履歴を使用します。
- 構造化出力を生成します。
- 必要に応じてファイル、ベクトル・ストアまたはコンテナを使用できるワークフローを構築します。
サポートされているAPIエンドポイント
| ベースURL | エンドポイント・パス | 認証 |
|---|---|---|
https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1 |
/responses |
APIキーまたはIAMセッション |
${region}を、us-chicago-1などのサポートされているOCIリージョンに置き換えます。
リクエスト形式はOpenAIと互換性がありますが、認証ではOCI資格証明が使用され、リクエストはOCI生成AI推論エンドポイントを介してルーティングされ、リソースと実行はOCIに残ります。
OCI Responses APIでは、OCI OpenAI互換エンドポイントを含むOpenAI Responses APIと同じ形式が使用されます。構文およびリクエストの詳細は、OpenAI Responses APIのドキュメントを参照してください。ツールを使用する場合は、OCI OpenAI互換エンドポイントによってサポートされるツール・タイプのみを使用してください。
認証
OCI OpenAI互換エンドポイントには、次の2つの方法でアクセスできます。
テストおよび早期開発にAPIキーを使用します。本番ワークロードおよびOCI管理環境には、IAMベースの認証を使用します。
始める前に
Responses APIをコールする前に:
- OCI生成AIプロジェクトを作成します。OCI OpenAI互換APIコールにはプロジェクトが必要です。
- OCI OpenAI互換のベースURLを使用してクライアントを設定します。
- 認証を設定します。
- サポートされているリージョンで、サポートされているモデルを使用します。
設定ステップは、「クイックスタート」、「認証」および「サポートされているモデルとリージョン」を参照してください。
コードからレスポンスAPIをコールするには、OpenAI SDKを使用することをお薦めします。QuickStartを参照してください。
最初の応答の作成
次の例では、OCI OpenAI互換エンドポイント、OCI Generative AI APIキーおよびプロジェクトOCIDとともにOpenAI SDKを使用します。
from openai import OpenAI
client = OpenAI(
base_url="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1",
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
project="ocid1.generativeaiproject.oc1.us-chicago-1.xxxxxxxx",
)
response = client.responses.create(
model="<supported-model-id>",
input="Write a one-sentence explanation of what a database is."
)
print(response.output_text)
この例では、以下のようになります。
base_urlは、OCI OpenAI互換エンドポイントを指します。client.responses.create(...)は、OCIレスポンスAPIをコールします。projectは、リクエストのOCI生成AIプロジェクトを識別します。
レスポンスAPIでのエージェント・メモリーの使用
OCIでマルチターンの会話履歴を管理するには、まず会話を作成します:
conversation = client.conversations.create()
次に、Responses APIリクエストに会話IDを含めます。
response = client.responses.create(
model="<supported-model-id>",
input=[
{
"role": "user",
"content": "Recommend a restaurant based on the food I like."
}
],
conversation=conversation.id,
)
このパターンは、OCIでリクエスト間の会話状態を管理する場合に使用します。
メモリー機能の詳細は、Conversations API、Short-Term Memory、Long-Term Memory、および Short-Term Memory Compactionを参照してください。
レスポンスAPIでのツールの使用
レスポンスAPIでは、toolsプロパティを介してツール対応のワークフローがサポートされます。多くのユース・ケースでは、リクエストでツールを宣言し、OCI Generative AIでモデルの実行とツールの使用を調整できます。
ツール・サポートは、APIでのみ使用可能です。
サポートされているツール・タイプ
OCI Generative AIは、Responses APIで次のツール・タイプをサポートしています。
| ツール | tools[].type |
摘要 |
|---|---|---|
| ファイル検索 | "file_search" |
取得ベースのレスポンスのために、アップロードされたファイルおよびベクトル・ストア・コンテンツをモデル検索できます。 |
| コードインタプリタ | "code_interpreter" |
OCI管理のサンドボックス環境でモデル・コードを実行できます。 |
| 関数呼び出し | "function" |
ローカル関数を定義し、アプリケーションで関数を実行し、結果をモデルに戻すことができます。 |
| MCPコール | "mcp" |
リモートMCPサーバーによって公開されるメソッドにモデル・アクセスを付与します。 |
設定ステップおよび例については、表内の各ツールのリンクを選択します。
OpenAIは他のツール・タイプを文書化しますが、OCI生成AIでは、Responses APIについてここにリストされているツール・タイプのみがサポートされます。NL2SQLなどの他のOCI機能は個別に説明されており、Responses APIのtoolsフィールドでは構成されません。
例: MCP呼び出し
次の例では、リクエスト内のMCPツールを定義します。
response = client.responses.create(
model="openai.gpt-oss-120b",
tools=[
{
"type": "mcp",
"server_url": "https://example.com/mcp",
}
],
input="What events are scheduled for 2026-04-02?"
)この例では、Responses APIがモデルを起動し、MCPツール定義を同じリクエストの一部として渡します。個別のMCP固有のAPIは必要ありません。
基本的なAPIを使用するタイミング
ワークフローでファイル、ベクトル・ストアまたはコンテナを直接制御する必要がある場合は、レスポンスAPIで低レベルの基礎エージェント・ビルディング・ブロックを使用できます。
よくある例は次のとおりです。
- モデル要求を送信する前のファイルのアップロード
- ベクトル・ストアの内容を直接管理する
- 複数のリクエストにわたるファイルまたはリソースの再利用
- より広範なワークフローの一部としてサンドボックス・コンテナを操作する
次のAPIは、レスポンスAPIで一般的に使用されます。
| API | エンドポイント・パス | レスポンスAPIでの一般的な使用 |
|---|---|---|
| ファイルAPI | /files |
レスポンス・リクエストで後で参照するファイルをアップロードおよび管理します。 |
| ベクトル・ストアAPI | /vector_stores/... |
ファイル検索などの取得ワークフローに使用されるベクトル・ストア・コンテンツを管理します。 |
| コンテナAPI | /containersおよび/containers/{id}/files |
ツール対応のワークフローで使用されるサンドボックス・リソースを管理します。 |
例: 最初にファイルをアップロードしてから、レスポンスAPIで使用します
最初にファイルをアップロードします。
file_response = client.files.create(
file=open("example-document.pdf", "rb"),
purpose="assistants"
)
file_id = file_response.id
次に、Responses APIリクエストでアップロードされたファイルを参照します。
response = client.responses.create(
model="<model-id>",
input=[
{
"role": "user",
"content": [
{ "type": "input_file", "file_id": file_id },
{ "type": "input_text", "text": "List all the cities mentioned in this document." }
]
}
]
)
この例では、Files APIとResponses APIが1つのワークフローで連携して動作します。
SDKおよびフレームワーク
OCIレスポンスAPIは、OpenAI SDKとともに使用できます。また、互換性のあるクライアント側エージェント・フレームワークとともに使用することもできます。
OpenAI SDKは、次の言語をサポートしています。
- Python
- Java
- TypeScript
- 移動
- .NET
コミュニティ・ライブラリを通じて、より多くの言語サポートを利用できます。
互換性のあるエージェント・フレームワークは次のとおりです。
- OpenAI Agents SDK(推奨)
- OpenAI Codex SDK
- Microsoft Agentフレームワーク
- ラングチェーン
- ランググラフ
- クルーイ
- 自動作成
- ログイン
- ピダンティック
OCIレスポンスAPIおよびOpenAIレスポンスAPI
| 機能 | OCIレスポンスAPI | OpenAI応答API |
|---|---|---|
| モデル選択 | OCIでホストされるモデルとOpenAI以外のモデルをサポート | OpenAIモデルのみ |
| モデル・サービス・インフラストラクチャ | OCI共有インフラストラクチャまたは専用AIクラスタ | OpenAI共有インフラストラクチャ |
| 認証 | OCI IAMまたはAPIキー | APIキー |
| データ保持 | OCIに残るデータ | データはOpenAIに格納されます。 |
| プライベート・ネットワーク | OCI VCN統合およびプライベート・エンドポイントをサポートします。 | 使用不可 |
| エンドポイント・モデル | リージョン・エンドポイント | グローバル・エンドポイント |