随着 GPT-5 的推出,我们新增了一些检查,用于识别并阻止对危险信息的访问。一些用户可能迟早会尝试使用您的应用进行违反 OpenAI 政策的活动,尤其是在支持多种使用场景的应用中。
我们按风险阈值对发往 GPT-5 的请求进行分类。
如果您的组织反复触及高风险阈值,OpenAI 会返回错误并发送警告邮件。
如果此类请求在规定时限(通常为七天)过后仍然持续,我们将停止您的组织对 GPT-5 的访问。请求将不再有效。
如果您的组织存在违反我们安全政策的可疑活动,我们可能会返回错误、限制模型访问,甚至封禁您的账户。以下安全措施有助于我们识别高风险请求的来源,并封禁个别最终用户,而非您的整个组织。
对于允许各个用户与模型交互的产品,请实施安全标识符 。我们建议使用安全标识符,但并不强制要求。
如果您的使用场景需要访问限制较少的服务版本,以开展生命科学领域的有益应用,请了解我们的特殊访问计划 ,确认您是否符合条件。
Responses API 和较早的 Chat Completions API 均支持 safety_identifier 参数。Realtime API 通过 OpenAI-Safety-Identifier 请求头支持相同的机制。要使用安全标识符,请在每次请求中为最终用户提供一个稳定的 ID。请对用户邮箱地址或内部用户 ID 进行哈希处理,以避免传递任何个人信息。
安全标识符不会在不同 API 或会话之间自动沿用。如果您的应用已在 Responses API 请求中发送 safety_identifier,请在创建或连接每个 Realtime 会话时,单独传入相同的稳定值。
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 的监控系统识别出潜在滥用,我们可能会采取不同程度的措施:
延迟流式响应
对于可能违反政策的用户,OpenAI 可能先采取影响较小的干预措施:在向该用户返回完整响应之前,执行额外检查,并在检查期间延迟流式响应。
如果检查通过,流式传输就会开始。如果检查未通过,请求将停止,不会显示任何 Token,也不会开始流式响应。
为了改善最终用户体验,您可以考虑在流式传输延迟时显示加载动画。
阻止个别用户访问模型
如果以高置信度判定存在违反政策的行为,相关的 safety_identifier 将被完全禁止访问 OpenAI 模型。
此后,使用同一安全标识符的所有 GPT-5 请求都会收到 identifier blocked 错误。OpenAI 目前无法解除对单个标识符的封禁。
为确保这些封禁措施有效,请采取管控措施,防止被封禁的用户注册新账户。请注意,您的组织如果反复违反政策,可能导致整个组织失去访问权限。
具体执行标准可能会随着实际使用情况的变化或新模型的发布而调整。目前,对于涉及高风险或可疑生物学或化学活动的安全标识符,OpenAI 可能会限制或阻止其访问。请参阅这篇博客文章 ,进一步了解我们如何应对 AI 在生物学领域日益增强的能力。
有关针对工具和模型自定义的安全措施,请参阅计算机使用的确认与同意 和微调安全 。OpenAI 还会在模型评估中心 发布结果。