bedrock: Support Amazon Nova Premier (#29720)

Shardul Vaidya and Marshall Bowers created

Release Notes:

- Bedrock: Added support for Amazon Nova Premier.


https://aws.amazon.com/blogs/aws/amazon-nova-premier-our-most-capable-model-for-complex-tasks-and-teacher-for-model-distillation/

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Change summary

crates/bedrock/src/models.rs | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

Detailed changes

crates/bedrock/src/models.rs 🔗

@@ -38,6 +38,7 @@ pub enum Model {
     AmazonNovaLite,
     AmazonNovaMicro,
     AmazonNovaPro,
+    AmazonNovaPremier,
     // AI21 models
     AI21J2GrandeInstruct,
     AI21J2JumboInstruct,
@@ -123,6 +124,7 @@ impl Model {
             Model::AmazonNovaLite => "amazon.nova-lite-v1:0",
             Model::AmazonNovaMicro => "amazon.nova-micro-v1:0",
             Model::AmazonNovaPro => "amazon.nova-pro-v1:0",
+            Model::AmazonNovaPremier => "amazon.nova-premier-v1:0",
             Model::DeepSeekR1 => "us.deepseek.r1-v1:0",
             Model::AI21J2GrandeInstruct => "ai21.j2-grande-instruct",
             Model::AI21J2JumboInstruct => "ai21.j2-jumbo-instruct",
@@ -171,6 +173,7 @@ impl Model {
             Self::AmazonNovaLite => "Amazon Nova Lite",
             Self::AmazonNovaMicro => "Amazon Nova Micro",
             Self::AmazonNovaPro => "Amazon Nova Pro",
+            Self::AmazonNovaPremier => "Amazon Nova Premier",
             Self::DeepSeekR1 => "DeepSeek R1",
             Self::AI21J2GrandeInstruct => "AI21 Jurassic2 Grande Instruct",
             Self::AI21J2JumboInstruct => "AI21 Jurassic2 Jumbo Instruct",
@@ -215,6 +218,7 @@ impl Model {
             | Self::Claude3Sonnet
             | Self::Claude3_5Haiku
             | Self::Claude3_7Sonnet => 200_000,
+            Self::AmazonNovaPremier => 1_000_000,
             Self::PalmyraWriterX5 => 1_000_000,
             Self::PalmyraWriterX4 => 128_000,
             Self::Custom { max_tokens, .. } => *max_tokens,
@@ -261,7 +265,10 @@ impl Model {
             | Self::Claude3_5Haiku => true,
 
             // Amazon Nova models (all support tool use)
-            Self::AmazonNovaPro | Self::AmazonNovaLite | Self::AmazonNovaMicro => true,
+            Self::AmazonNovaPremier
+            | Self::AmazonNovaPro
+            | Self::AmazonNovaLite
+            | Self::AmazonNovaMicro => true,
 
             // AI21 Jamba 1.5 models support tool use
             Self::AI21Jamba15LargeV1 | Self::AI21Jamba15MiniV1 => true,
@@ -315,9 +322,8 @@ impl Model {
             // Models available only in US
             (Model::Claude3Opus, "us")
             | (Model::Claude3_7Sonnet, "us")
-            | (Model::Claude3_7SonnetThinking, "us") => {
-                Ok(format!("{}.{}", region_group, model_id))
-            }
+            | (Model::Claude3_7SonnetThinking, "us")
+            | (Model::AmazonNovaPremier, "us") => Ok(format!("{}.{}", region_group, model_id)),
 
             // Models available in US, EU, and APAC
             (Model::Claude3_5SonnetV2, "us")