はじめに
OCI には、OCI 生成AIサービス(Generative AI Service)という LLM などを API で利用することができるフルマネージドサービスがあります。OpenAI や Anthropic の API サービスや Amazon Bedrock のようなサービスです。
OCI 生成AIサービス(Generative AI Service)には、これまで OCI SDK を使う方法と、OCI OpenAI-Compatible SDKs を使う方法がありました。
OCI SDKは、名前の通り OCI 独自の SDK で、他のOCI サービスと同様のスタイルでプログラミングできるものです。OCI OpenAI-Compatible SDKsは、OpenAI の SDK で作成されたコードに OCI の認証機能を付加して最小限の修正で OCI 生成AIサービス(Generative AI Service)を利用できるようにするものです。
日本時間の2026年1月23日(金)に、新しい機能として OCI Generative AI API keys が登場しました。
これは、OpenAI の SDK で作成されたコードの API キーと Base URL を変更するだけで、OCI 生成AIサービス(Generative AI Service)が利用できるようになる機能です。
つまり、OpenAI 互換の API Provider をサポートするアプリケーションであれば、コードの修正なくOCI 生成AIサービス(Generative AI Service)を利用できるようになりました。
コーディングエージェントの Cline で API Provider を OpenAI Compatibleとして、Base URL、OpenAI Compatible API Key、Model IDを設定することでOCI 生成AIサービス(Generative AI Service)の xai.grok-4-1-fast-reasoning モデルを利用できることを確認しています
本記事の執筆時点(2026/1/25)で、OCI Generative AI API keysを利用できるのは、OpenAI OSS モデルと Metaのモデル(Llamaシリーズ)、xAI のモデル(Grokシリーズ)となります。Cohere と Google のモデルについては引き続き LiteLLM などのプロキシーを利用することができます
準備
API Key を生成する
API Key はリージョン毎に生成する必要があります
OCI コンソールの生成AIサービスの左側メニューから "API Keys"を選択します
"APIキーの作成" をクリックします
名前、説明、コンパートメント、Key names、expiration times を設定します
API Keyは、キーローテーションなどのためにexpiration timeが異なるキーを2つ生成することができますので、Key names、expiration times にはそれぞれのキーの名前と使用期限を設定します。
作成をクリックすると API Key 2つが作成されて表示されます。"コピー"ボタンからキーをコピーしてメモ帳などに保存します。これらのキーは後から見ることはできません。忘れてしまうと再生成となります
OCI IAM ポリシーで権限を付与する
OCI コンソールの左上ハンバーガーメニューから"アイデンティティとセキュリティ" >> "ポリシー"と遷移します
"ポリシーの作成"をクリックします
名前、説明、コンパートメントを設定して、"手動エディタの表示"をクリックして、ポリシーを入力し、作成ボタンをクリックします
入力するポリシーの例
allow any-user to use generative-ai-chat in compartment コンパートメント名 where request.principal.type = 'generativeaiapikey'
"コンパートメント名"は実際の値に直してください
使ってみる
大阪リージョンの Open AI OSS モデルを使ってみる
from openai import OpenAI
client = OpenAI(
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
base_url="https://inference.generativeai.ap-osaka-1.oci.oraclecloud.com/20231130/actions/v1/",
)
prompt = "日本列島で最も大きな島の名前は?"
response = client.responses.create(
model="openai.gpt-oss-120b",
input=prompt,
)
# 応答テキストを取得
response_text = None
for output_item in response.output:
if output_item.type == 'message':
response_text = output_item.content[0].text
break
if response_text is None:
# message タイプがない場合は最初の要素を使用
response_text = response.output[0].content[0].text
# トークン数を取得
input_tokens = response.usage.input_tokens
output_tokens = response.usage.output_tokens
total_tokens = response.usage.total_tokens
# 結果を表示
print("【プロンプト】")
print(prompt)
print("\n【応答テキスト】")
print(response_text)
print(f"\n【トークン数】")
print(f"入力トークン: {input_tokens}")
print(f"出力トークン: {output_tokens}")
print(f"合計トークン: {total_tokens}")
api_key は、実際の値に直してください
$ uv run apikeytest-osaka.py
【プロンプト】
日本列島で最も大きな島の名前は?
【応答テキスト】
日本列島で最も大きな島は **本州(ほんしゅう)** です。全長約1,300 km、面積は約227,960 km²で、日本の人口や主要な都市(東京、大阪、名古屋、京都など)の多くがこの本州に位置しています。
【トークン数】
入力トークン: 79
出力トークン: 139
合計トークン: 218
シカゴリージョンの xAI Grok モデルを使ってみる
from openai import OpenAI
client = OpenAI(
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
base_url="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/v1/",
)
prompt = "日本列島で最も大きな島の名前は?"
response = client.responses.create(
model="xai.grok-4-1-fast-reasoning",
input=prompt,
)
# 応答テキストを取得
response_text = None
for output_item in response.output:
if output_item.type == 'message':
response_text = output_item.content[0].text
break
if response_text is None:
# message タイプがない場合は最初の要素を使用
response_text = response.output[0].content[0].text
# トークン数を取得
input_tokens = response.usage.input_tokens
output_tokens = response.usage.output_tokens
total_tokens = response.usage.total_tokens
# 結果を表示
print("【プロンプト】")
print(prompt)
print("\n【応答テキスト】")
print(response_text)
print(f"\n【トークン数】")
print(f"入力トークン: {input_tokens}")
print(f"出力トークン: {output_tokens}")
print(f"合計トークン: {total_tokens}")
api_key は、実際の値に直してください
$ uv run apikeytest-chicago.py
【プロンプト】
日本列島で最も大きな島の名前は?
【応答テキスト】
**本州(Honshu)**
日本列島の4大島(北海道、本州、四国、九州)の中で、最も面積が大きいのは本州です。面積は約22.8万km²で、全 体の約60%を占めています。
【トークン数】
入力トークン: 167
出力トークン: 259
合計トークン: 426
あとがき
これまでは、OCI 生成AIサービス(Generative AI Service)を OpenAI 互換 API Provider をサポートするアプリケーションから利用するためには、LiteLLM などのプロキシーが必要でしたが、OpenAI OSS、Meta Llama、xAI Grok については、今後は API Key と Base URL を設定するだけで利用することができるようになりました。アプリケーションを OCI 上に構築していて API Provider も OCI に閉じたい場合や、料金請求を OCI に一本化したい場合などに便利にお使いいただけるかと思います。
また、Cohere や Google Gemini をご利用の場合は、引き続き LiteLLM などのプロキシーをご利用いただけます。








