Skip to content

Commit d788bcf

Browse files
authored
feat: add Claude Opus 4.7 model support (#1556)
1 parent ed32dd1 commit d788bcf

7 files changed

Lines changed: 93 additions & 8 deletions

File tree

docs/en/DEPLOY_OPTION.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -968,12 +968,14 @@ As of 2025/03, the multimodal models are:
968968
"anthropic.claude-3-opus-20240229-v1:0",
969969
"anthropic.claude-3-sonnet-20240229-v1:0",
970970
"anthropic.claude-3-haiku-20240307-v1:0",
971+
"global.anthropic.claude-opus-4-7",
971972
"global.anthropic.claude-opus-4-6-v1",
972973
"global.anthropic.claude-sonnet-4-6",
973974
"global.anthropic.claude-opus-4-5-20251101-v1:0",
974975
"global.anthropic.claude-sonnet-4-5-20250929-v1:0",
975976
"global.anthropic.claude-haiku-4-5-20251001-v1:0",
976977
"global.anthropic.claude-sonnet-4-20250514-v1:0",
978+
"us.anthropic.claude-opus-4-7",
977979
"us.anthropic.claude-opus-4-6-v1",
978980
"us.anthropic.claude-sonnet-4-6",
979981
"us.anthropic.claude-sonnet-4-5-20250929-v1:0",
@@ -986,6 +988,7 @@ As of 2025/03, the multimodal models are:
986988
"us.anthropic.claude-3-opus-20240229-v1:0",
987989
"us.anthropic.claude-3-sonnet-20240229-v1:0",
988990
"us.anthropic.claude-3-haiku-20240307-v1:0",
991+
"eu.anthropic.claude-opus-4-7",
989992
"eu.anthropic.claude-opus-4-6-v1",
990993
"eu.anthropic.claude-sonnet-4-6",
991994
"eu.anthropic.claude-sonnet-4-5-20250929-v1:0",
@@ -1001,6 +1004,7 @@ As of 2025/03, the multimodal models are:
10011004
"apac.anthropic.claude-3-sonnet-20240229-v1:0",
10021005
"apac.anthropic.claude-3-5-sonnet-20240620-v1:0",
10031006
"apac.anthropic.claude-3-5-sonnet-20241022-v2:0",
1007+
"jp.anthropic.claude-opus-4-7",
10041008
"jp.anthropic.claude-sonnet-4-5-20250929-v1:0",
10051009
"jp.anthropic.claude-haiku-4-5-20251001-v1:0",
10061010
"qwen.qwen3-vl-235b-a22b",
@@ -1158,11 +1162,13 @@ This solution supports the following text generation models:
11581162
"anthropic.claude-3-opus-20240229-v1:0",
11591163
"anthropic.claude-3-sonnet-20240229-v1:0",
11601164
"anthropic.claude-3-haiku-20240307-v1:0",
1165+
"global.anthropic.claude-opus-4-7",
11611166
"global.anthropic.claude-opus-4-6-v1",
11621167
"global.anthropic.claude-sonnet-4-6",
11631168
"global.anthropic.claude-opus-4-5-20251101-v1:0",
11641169
"global.anthropic.claude-sonnet-4-5-20250929-v1:0",
11651170
"global.anthropic.claude-sonnet-4-20250514-v1:0",
1171+
"us.anthropic.claude-opus-4-7",
11661172
"us.anthropic.claude-opus-4-6-v1",
11671173
"us.anthropic.claude-sonnet-4-6",
11681174
"us.anthropic.claude-opus-4-1-20250805-v1:0",
@@ -1177,13 +1183,15 @@ This solution supports the following text generation models:
11771183
"us.anthropic.claude-3-haiku-20240307-v1:0",
11781184
"au.anthropic.claude-opus-4-6-v1",
11791185
"au.anthropic.claude-sonnet-4-6",
1186+
"eu.anthropic.claude-opus-4-7",
11801187
"eu.anthropic.claude-opus-4-6-v1",
11811188
"eu.anthropic.claude-sonnet-4-6",
11821189
"eu.anthropic.claude-sonnet-4-20250514-v1:0",
11831190
"eu.anthropic.claude-3-7-sonnet-20250219-v1:0",
11841191
"eu.anthropic.claude-3-5-sonnet-20240620-v1:0",
11851192
"eu.anthropic.claude-3-sonnet-20240229-v1:0",
11861193
"eu.anthropic.claude-3-haiku-20240307-v1:0",
1194+
"jp.anthropic.claude-opus-4-7",
11871195
"apac.anthropic.claude-sonnet-4-20250514-v1:0",
11881196
"apac.anthropic.claude-3-7-sonnet-20250219-v1:0",
11891197
"apac.anthropic.claude-3-haiku-20240307-v1:0",

docs/ja/DEPLOY_OPTION.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -987,12 +987,14 @@ const envs: Record<string, Partial<StackInput>> = {
987987
"anthropic.claude-3-opus-20240229-v1:0",
988988
"anthropic.claude-3-sonnet-20240229-v1:0",
989989
"anthropic.claude-3-haiku-20240307-v1:0",
990+
"global.anthropic.claude-opus-4-7",
990991
"global.anthropic.claude-opus-4-6-v1",
991992
"global.anthropic.claude-sonnet-4-6",
992993
"global.anthropic.claude-opus-4-5-20251101-v1:0",
993994
"global.anthropic.claude-sonnet-4-5-20250929-v1:0",
994995
"global.anthropic.claude-haiku-4-5-20251001-v1:0",
995996
"global.anthropic.claude-sonnet-4-20250514-v1:0",
997+
"us.anthropic.claude-opus-4-7",
996998
"us.anthropic.claude-opus-4-6-v1",
997999
"us.anthropic.claude-sonnet-4-6",
9981000
"us.anthropic.claude-sonnet-4-5-20250929-v1:0",
@@ -1005,6 +1007,7 @@ const envs: Record<string, Partial<StackInput>> = {
10051007
"us.anthropic.claude-3-opus-20240229-v1:0",
10061008
"us.anthropic.claude-3-sonnet-20240229-v1:0",
10071009
"us.anthropic.claude-3-haiku-20240307-v1:0",
1010+
"eu.anthropic.claude-opus-4-7",
10081011
"eu.anthropic.claude-opus-4-6-v1",
10091012
"eu.anthropic.claude-sonnet-4-6",
10101013
"eu.anthropic.claude-sonnet-4-5-20250929-v1:0",
@@ -1020,6 +1023,7 @@ const envs: Record<string, Partial<StackInput>> = {
10201023
"apac.anthropic.claude-3-sonnet-20240229-v1:0",
10211024
"apac.anthropic.claude-3-5-sonnet-20240620-v1:0",
10221025
"apac.anthropic.claude-3-5-sonnet-20241022-v2:0",
1026+
"jp.anthropic.claude-opus-4-7",
10231027
"jp.anthropic.claude-sonnet-4-5-20250929-v1:0",
10241028
"jp.anthropic.claude-haiku-4-5-20251001-v1:0",
10251029
"qwen.qwen3-vl-235b-a22b",
@@ -1177,11 +1181,13 @@ const envs: Record<string, Partial<StackInput>> = {
11771181
"anthropic.claude-3-opus-20240229-v1:0",
11781182
"anthropic.claude-3-sonnet-20240229-v1:0",
11791183
"anthropic.claude-3-haiku-20240307-v1:0",
1184+
"global.anthropic.claude-opus-4-7",
11801185
"global.anthropic.claude-opus-4-6-v1",
11811186
"global.anthropic.claude-sonnet-4-6",
11821187
"global.anthropic.claude-opus-4-5-20251101-v1:0",
11831188
"global.anthropic.claude-sonnet-4-5-20250929-v1:0",
11841189
"global.anthropic.claude-sonnet-4-20250514-v1:0",
1190+
"us.anthropic.claude-opus-4-7",
11851191
"us.anthropic.claude-opus-4-6-v1",
11861192
"us.anthropic.claude-sonnet-4-6",
11871193
"us.anthropic.claude-opus-4-1-20250805-v1:0",
@@ -1196,13 +1202,15 @@ const envs: Record<string, Partial<StackInput>> = {
11961202
"us.anthropic.claude-3-haiku-20240307-v1:0",
11971203
"au.anthropic.claude-opus-4-6-v1",
11981204
"au.anthropic.claude-sonnet-4-6",
1205+
"eu.anthropic.claude-opus-4-7",
11991206
"eu.anthropic.claude-opus-4-6-v1",
12001207
"eu.anthropic.claude-sonnet-4-6",
12011208
"eu.anthropic.claude-sonnet-4-20250514-v1:0",
12021209
"eu.anthropic.claude-3-7-sonnet-20250219-v1:0",
12031210
"eu.anthropic.claude-3-5-sonnet-20240620-v1:0",
12041211
"eu.anthropic.claude-3-sonnet-20240229-v1:0",
12051212
"eu.anthropic.claude-3-haiku-20240307-v1:0",
1213+
"jp.anthropic.claude-opus-4-7",
12061214
"apac.anthropic.claude-sonnet-4-20250514-v1:0",
12071215
"apac.anthropic.claude-3-7-sonnet-20250219-v1:0",
12081216
"apac.anthropic.claude-3-haiku-20240307-v1:0",

packages/cdk/cdk.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"modelIds": [
4545
"global.anthropic.claude-sonnet-4-6",
4646
"global.anthropic.claude-sonnet-4-5-20250929-v1:0",
47+
"global.anthropic.claude-opus-4-7",
4748
"global.anthropic.claude-opus-4-6-v1",
4849
"global.anthropic.claude-opus-4-5-20251101-v1:0",
4950
"global.anthropic.claude-haiku-4-5-20251001-v1:0",

packages/cdk/lambda/utils/models.ts

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,12 @@ const CLAUDE_OPUS_4_6_DEFAULT_PARAMS: ConverseInferenceParams = {
137137
},
138138
};
139139

140+
const CLAUDE_OPUS_4_7_DEFAULT_PARAMS: ConverseInferenceParams = {
141+
inferenceConfig: {
142+
maxTokens: 128000,
143+
},
144+
};
145+
140146
const CLAUDE_SONNET_4_6_DEFAULT_PARAMS: ConverseInferenceParams = {
141147
inferenceConfig: {
142148
maxTokens: 64000,
@@ -504,7 +510,9 @@ const createConverseCommandInput = (
504510
modelId: model.modelId,
505511
messages: conversationWithCache,
506512
system: systemContextWithCache,
507-
inferenceConfig: params.inferenceConfig,
513+
inferenceConfig: modelMetadata[model.modelId].flags.noSamplingParams
514+
? { maxTokens: params.inferenceConfig?.maxTokens }
515+
: params.inferenceConfig,
508516
guardrailConfig,
509517
};
510518

@@ -513,9 +521,10 @@ const createConverseCommandInput = (
513521
(model.modelParameters?.reasoningConfig?.type === 'enabled' ||
514522
model.modelParameters?.reasoningConfig?.type === 'adaptive')
515523
) {
524+
const noSampling = modelMetadata[model.modelId].flags.noSamplingParams;
516525
converseCommandInput.inferenceConfig = {
517526
...params.inferenceConfig,
518-
temperature: 1, // reasoning requires temperature to be 1
527+
temperature: noSampling ? undefined : 1, // reasoning requires temperature to be 1, but some models don't support it
519528
topP: undefined, // reasoning does not require topP
520529
maxTokens: params.inferenceConfig?.maxTokens,
521530
};
@@ -989,6 +998,38 @@ export const BEDROCK_TEXT_GEN_MODELS: {
989998
extractConverseStreamOutput: (body: ConverseStreamOutput) => StreamingChunk;
990999
};
9911000
} = {
1001+
'global.anthropic.claude-opus-4-7': {
1002+
defaultParams: CLAUDE_OPUS_4_7_DEFAULT_PARAMS,
1003+
usecaseParams: USECASE_DEFAULT_PARAMS,
1004+
createConverseCommandInput: createConverseCommandInput,
1005+
createConverseStreamCommandInput: createConverseStreamCommandInput,
1006+
extractConverseOutput: extractConverseOutput,
1007+
extractConverseStreamOutput: extractConverseStreamOutput,
1008+
},
1009+
'us.anthropic.claude-opus-4-7': {
1010+
defaultParams: CLAUDE_OPUS_4_7_DEFAULT_PARAMS,
1011+
usecaseParams: USECASE_DEFAULT_PARAMS,
1012+
createConverseCommandInput: createConverseCommandInput,
1013+
createConverseStreamCommandInput: createConverseStreamCommandInput,
1014+
extractConverseOutput: extractConverseOutput,
1015+
extractConverseStreamOutput: extractConverseStreamOutput,
1016+
},
1017+
'eu.anthropic.claude-opus-4-7': {
1018+
defaultParams: CLAUDE_OPUS_4_7_DEFAULT_PARAMS,
1019+
usecaseParams: USECASE_DEFAULT_PARAMS,
1020+
createConverseCommandInput: createConverseCommandInput,
1021+
createConverseStreamCommandInput: createConverseStreamCommandInput,
1022+
extractConverseOutput: extractConverseOutput,
1023+
extractConverseStreamOutput: extractConverseStreamOutput,
1024+
},
1025+
'jp.anthropic.claude-opus-4-7': {
1026+
defaultParams: CLAUDE_OPUS_4_7_DEFAULT_PARAMS,
1027+
usecaseParams: USECASE_DEFAULT_PARAMS,
1028+
createConverseCommandInput: createConverseCommandInput,
1029+
createConverseStreamCommandInput: createConverseStreamCommandInput,
1030+
extractConverseOutput: extractConverseOutput,
1031+
extractConverseStreamOutput: extractConverseStreamOutput,
1032+
},
9921033
'global.anthropic.claude-opus-4-6-v1': {
9931034
defaultParams: CLAUDE_OPUS_4_6_DEFAULT_PARAMS,
9941035
usecaseParams: USECASE_DEFAULT_PARAMS,

0 commit comments

Comments
 (0)