📌

GPT-OSS API Serviceを試してみた。

に公開

VertexAIのModel Gardenに、GPT-OSS API Serviceが二三日前から使えるようになっています。

使用可能モデル

gpt-oss-120b
gpt-oss-20b

料金 ※2025/8/18から

Gemini 2.5 Flashより安価。

さっそくつかってみよう

前提

  • uv
  • glcoud auth application-default login

作業ディレクトリ、uvの初期化

mkdir gpt-oss-test
uv init

必要モジュールの導入

uv add openai
uv add google-auth
uv add google-cloud-aiplatform
uv add requests

pyproject.tomlができあがります

[project]
name = "gpt-oss-test"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12.7"
dependencies = [
    "google-auth>=2.40.3",
    "google-cloud-aiplatform>=1.109.0",
    "openai>=1.99.9",
    "requests>=2.32.4",
]

サンプルコード

Google Cloud認証情報を取得して、API Keyを生成しているロジックは、OpenAICredentialsRefresherは[1]のものを利用しています。

サンプルコード上の xxxxxxxxxx は各自のGoogle Cloud project idにおきかえてください。

ソースコード

from typing import Any

import google.auth
import google.auth.transport.requests
import openai

class OpenAICredentialsRefresher:
def init(self, **kwargs: Any) -> None:
# Set a dummy key here
self.client = openai.OpenAI(**kwargs, api_key="DUMMY")
self.creds, self.project = google.auth.default(
scopes=["https://www.googleapis.com/auth/cloud-platform"]
)

def __getattr__(self, name: str) -> Any:
    if not self.creds.valid:
        auth_req = google.auth.transport.requests.Request()
        self.creds.refresh(auth_req)

        if not self.creds.valid:
            raise RuntimeError("Unable to refresh auth")

        self.client.api_key = self.creds.token
    return getattr(self.client, name)

client = OpenAICredentialsRefresher(base_url="https://us-central1-aiplatform.googleapis.com/v1/projects/xxxxxxxxxx/locations/us-central1/endpoints/openapi")

stream = client.chat.completions.create(
model="openai/gpt-oss-120b-maas",
messages=[
{
"role": "user",
"content": "3.9と3.11どちらがおおきいですか"
}
],
stream=True
)

for chunk in stream:
print(chunk)
if len(chunk.choices)!=0:
print(chunk.choices[0].delta.content)
print("##########")

実行してみましょう。

uv run test2.py
実行結果

ChatCompletionChunk(id='chatcmpl-0da325b35ba7477fbd01368ad7d6cb54', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1755309271, model='openai/gpt-oss-120b', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)

##########
ChatCompletionChunk(id='chatcmpl-0da325b35ba7477fbd01368ad7d6cb54', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role=None, tool_calls=None, reasoning_content=''), finish_reason=None, index=0, logprobs=None)], created=1755309271, model='openai/gpt-oss-120b', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
None
##########
ChatCompletionChunk(id='chatcmpl-0da325b35ba7477fbd01368ad7d6cb54', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role=None, tool_calls=None, reasoning_content=''), finish_reason=None, index=0, logprobs=None)], created=1755309271, model='openai/gpt-oss-120b', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
None
##########
ChatCompletionChunk(id='chatcmpl-0da325b35ba7477fbd01368ad7d6cb54', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role=None, tool_calls=None, reasoning_content=''), finish_reason=None, index=0, logprobs=None)], created=1755309271, model='openai/gpt-oss-120b', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
None
##########
ChatCompletionChunk(id='chatcmpl-0da325b35ba7477fbd01368ad7d6cb54', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role=None, tool_calls=None, reasoning_content='The'), finish_reason=None, index=0, logprobs=None)], created=1755309271, model='openai/gpt-oss-120b', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
None
##########

# 留意点
OpenAIインスタンス初期化時、base_urlとして、Google Cloudのエンドポイントを指定する必要があります。

base_url="https://us-central1-aiplatform.googleapis.com/v1/projects/xxxxxxxxxx/locations/us-central1/endpoints/openapi"
脚注
  1. Google Cloud 認証を使用して OpenAI API認証情報を更新する
    https://cloud.google.com/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-credentials-refresher-class?hl=ja ↩︎

Discussion