GPT-5 の導入に伴い、OpenAI は危険な情報へのアクセスを検出して阻止するためのチェックを追加しました。特に用途の広いアプリケーションでは、いずれ一部のユーザーが OpenAI のポリシーに違反する目的でアプリケーションを利用しようとする可能性が高くなります。
OpenAI は、設定されたしきい値に基づいて GPT-5 へのリクエストをリスクの高さ別に分類します。
組織からのリクエストが高リスクのしきい値に繰り返し達すると、OpenAI はエラーを返し、警告メールを送信します。
通知に記載された期間(通常は 7 日間)を過ぎてもこうしたリクエストが続くと、OpenAI は組織の GPT-5 へのアクセスを停止します。以降、リクエストは処理されなくなります。
組織で OpenAI の安全性ポリシーに違反する不審な利用があった場合、OpenAI はエラーを返す、モデルへのアクセスを制限する、アカウントをブロックするといった措置を取ることがあります。以下の対策を講じると、OpenAI が高リスクのリクエストの送信元を特定し、ブロックの対象を組織全体ではなく該当するエンドユーザーに限定しやすくなります。
ユーザーが個別にモデルを利用する製品には、安全性識別子を実装してください 。安全性識別子の使用は推奨されていますが、必須ではありません。
ライフサイエンス分野で有益な用途に活用するために、利用制限を緩和したサービスへのアクセスが必要な場合は、特別アクセスプログラム の案内を読み、利用条件を満たしているか確認してください。
安全性識別子に関する警告や利用停止の通知を調査やサポートのワークフローに送る方法は、安全性ポリシーの適用に関する通知 を参照してください。
safety_identifier パラメーターは、Responses API 、Chat Completions API 、Images API で使用できます。Realtime API では、OpenAI-Safety-Identifier ヘッダーが同じ役割を果たします。安全性識別子を使用するには、エンドユーザーごとに一貫した ID を割り当て、リクエストのたびに指定してください。個人情報を送信しないよう、ユーザーのメールアドレスや内部ユーザー ID はハッシュ化してください。
安全性識別子は API 間やセッション間で引き継がれません。アプリケーションがすでに Responses API のリクエストで safety_identifier を送信している場合は、Images API の各リクエストにも同じ値を指定してください。Realtime セッションを作成するときや接続するときも、その都度同じ値を指定してください。
Images API では、画像生成または画像編集の各リクエストに safety_identifier を含めてください。識別子は 128 文字以内にしてください。画像の安全性識別子 では、非推奨の user パラメーターからの移行方法を説明しています。
Responses API Chat Completions API Realtime API Responses API
1
2
3
4
5
6
7
8
9
10
11 import OpenAI from "openai" ;
const client = new OpenAI ();
const response = await client.responses. create ({
model: "gpt-5.6-terra" ,
input: "This is a test" ,
safety_identifier: "user_123456" ,
});
console. log (response.output_text); 1
2
3
4
5
6
7
8
9 from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.6-terra",
input="This is a test",
safety_identifier="user_123456",
) 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/responses"
)
func main() {
client := openai.NewClient()
response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{
Model: "gpt-5.6-terra",
Input: responses.ResponseNewParamsInputUnion{OfString: openai.String("This is a test")},
SafetyIdentifier: openai.String("user_123456"),
})
if err != nil {
panic(err)
}
fmt.Println(response.OutputText())
} 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.responses.ResponseCreateParams;
ResponseCreateParams params =
ResponseCreateParams.builder()
.model("gpt-5.6-terra")
.input("Help me plan a study schedule.")
.safetyIdentifier("user_1234")
.build();
client.responses().create(params).output().stream()
.flatMap(item -> item.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(text -> System.out.println(text.text())); 1
2
3
4
5
6
7
8
9
10 require "openai"
client = OpenAI::Client.new
response = client.responses.create(
model: "gpt-5.6-terra",
input: "Help me plan a study schedule.",
safety_identifier: "user_1234"
)
puts(response.output_text) 1
2
3
4
5
6
7
8 curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-5.6-terra",
"input": "This is a test",
"safety_identifier": "user_123456"
}' Chat Completions API
1
2
3
4
5
6
7
8
9
10
11 import OpenAI from "openai" ;
const client = new OpenAI ();
const response = await client.chat.completions. create ({
model: "gpt-5.6-terra" ,
messages: [{ role: "user" , content: "This is a test" }],
safety_identifier: "user_123456" ,
});
console. log (response.choices[ 0 ].message.content); 1
2
3
4
5
6
7
8
9 from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-5.6-terra",
messages=[{"role": "user", "content": "This is a test"}],
safety_identifier="user_123456",
) 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
)
func main() {
client := openai.NewClient()
response, err := client.Chat.Completions.New(context.Background(), openai.ChatCompletionNewParams{
Model: "gpt-5.6-terra",
Messages: []openai.ChatCompletionMessageParamUnion{openai.UserMessage("This is a test")},
SafetyIdentifier: openai.String("user_123456"),
})
if err != nil {
panic(err)
}
fmt.Println(response.Choices[0].Message.Content)
} 1
2
3
4
5
6
7
8
9
10
11
12
13
14 import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.ChatCompletionCreateParams;
ChatCompletionCreateParams params =
ChatCompletionCreateParams.builder()
.model("gpt-5.6-terra")
.addUserMessage("Help me plan a study schedule.")
.safetyIdentifier("user_1234")
.build();
client.chat().completions().create(params).choices().stream()
.flatMap(choice -> choice.message().content().stream())
.forEach(System.out::println); 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 require "openai"
client = OpenAI::Client.new
completion = client.chat.completions.create(
model: "gpt-5.6-terra",
messages: [
{
role: :user,
content: "Help me plan a study schedule."
}
],
safety_identifier: "user_1234"
)
puts(completion.choices.fetch(0).message.content) 1
2
3
4
5
6
7
8
9
10 curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-5.6-terra",
"messages": [
{"role": "user", "content": "This is a test"}
],
"safety_identifier": "user_123456"
}' Realtime API
1
2
3
4
5
6
7
8
9
10 curl https://api.openai.com/v1/realtime/client_secrets \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY " \
-H "OpenAI-Safety-Identifier: user_123456" \
-d '{
"session": {
"type": "realtime",
"model": "gpt-realtime-2.1"
}
}'
OpenAI の監視システムが不正利用の兆候を検出した場合、状況に応じて次の措置を取ることがあります。
ストリーミング応答の遅延
ポリシー違反の疑いがあるユーザーに対しては、影響の小さい初期措置として、応答全体を返す前に追加チェックを行い、その間はストリーミングの開始を遅らせることがあります。
チェックに合格すると、ストリーミングが始まります。不合格の場合はリクエストの処理が停止し、トークンは一つも表示されず、ストリーミングも始まりません。
ストリーミングの開始が遅れたときにエンドユーザーが待機中だと分かるよう、読み込み中のスピナーの表示を検討してください。
ユーザー単位でのモデルへのアクセスのブロック
ポリシー違反の確度が高い場合、該当する safety_identifier による OpenAI モデルへのアクセスは全面的にブロックされます。
以降、同じ安全性識別子を使った GPT-5 へのリクエストには、すべて identifier blocked エラーが返されます。現時点では、OpenAI は個別の識別子のブロックを解除できません。
ブロックが有効に機能するよう、ブロックされたユーザーが新しいアカウントを作成できない仕組みを設けてください。組織内でポリシー違反が繰り返されると、組織全体がアクセスを失う可能性があります。
措置を取る際の具体的な基準は、実際の利用状況の変化や新しいモデルのリリースに応じて変わることがあります。現在、OpenAI は、生物学や化学の分野でリスクの高い利用や不審な利用が見られる安全性識別子について、アクセスを制限またはブロックすることがあります。生物学分野での AI の能力向上に OpenAI がどのように対応しているかについては、ブログ記事 を参照してください。
ツールやモデルのカスタマイズに固有の安全対策については、コンピューターの使用に関する確認と同意 およびファインチューニングの安全性 を参照してください。OpenAI はモデル評価ハブ でも評価結果を公開しています。