1
1
// Copyright (c) Microsoft. All rights reserved.
2
2
3
+ using System ;
3
4
using Amazon . BedrockRuntime ;
4
5
using Amazon . Runtime ;
5
6
using Microsoft . SemanticKernel . ChatCompletion ;
@@ -18,13 +19,15 @@ public class BedrockKernelBuilderExtensionTests
18
19
/// <summary>
19
20
/// Checks that AddBedrockTextGenerationService builds a proper kernel with a null bedrockRuntime.
20
21
/// </summary>
21
- [ Fact ]
22
- public void AddBedrockTextGenerationCreatesServiceWithNonNullBedrockRuntime ( )
22
+ [ Theory ]
23
+ [ InlineData ( "amazon.titan-text-premier-v1:0" ) ]
24
+ [ InlineData ( "us.amazon.titan-text-premier-v1:0" ) ]
25
+ public void AddBedrockTextGenerationCreatesServiceWithNonNullBedrockRuntime ( string modelId )
23
26
{
24
27
// Arrange
25
28
var bedrockRuntime = new Mock < IAmazonBedrockRuntime > ( ) . Object ;
26
29
var builder = Kernel . CreateBuilder ( ) ;
27
- builder . AddBedrockTextGenerationService ( "amazon.titan-text-premier-v1:0" , bedrockRuntime ) ;
30
+ builder . AddBedrockTextGenerationService ( modelId , bedrockRuntime ) ;
28
31
29
32
// Act
30
33
var kernel = builder . Build ( ) ;
@@ -37,13 +40,15 @@ public void AddBedrockTextGenerationCreatesServiceWithNonNullBedrockRuntime()
37
40
/// <summary>
38
41
/// Checks that AddBedrockChatCompletionService builds a proper kernel with a non-null bedrockRuntime.
39
42
/// </summary>
40
- [ Fact ]
41
- public void AddBedrockChatCompletionCreatesServiceWithNonNullBedrockRuntime ( )
43
+ [ Theory ]
44
+ [ InlineData ( "amazon.titan-text-premier-v1:0" ) ]
45
+ [ InlineData ( "us.amazon.titan-text-premier-v1:0" ) ]
46
+ public void AddBedrockChatCompletionCreatesServiceWithNonNullBedrockRuntime ( string modelId )
42
47
{
43
48
// Arrange
44
49
var bedrockRuntime = new Mock < IAmazonBedrockRuntime > ( ) . Object ;
45
50
var builder = Kernel . CreateBuilder ( ) ;
46
- builder . AddBedrockChatCompletionService ( "amazon.titan-text-premier-v1:0" , bedrockRuntime ) ;
51
+ builder . AddBedrockChatCompletionService ( modelId , bedrockRuntime ) ;
47
52
48
53
// Act
49
54
var kernel = builder . Build ( ) ;
@@ -65,4 +70,22 @@ public void AwsServiceClientBeforeServiceRequestDoesNothingForNonWebServiceReque
65
70
// Assert
66
71
// No exceptions should be thrown
67
72
}
73
+
74
+ [ Theory ]
75
+ [ InlineData ( "unknown.titan-text-premier-v1:0" ) ]
76
+ [ InlineData ( "us.unknown.titan-text-premier-v1:0" ) ]
77
+ public void AwsUnknownBedrockTextCompletionModelShouldThrowException ( string modelId )
78
+ {
79
+ // Arrange
80
+ var bedrockRuntime = new Mock < IAmazonBedrockRuntime > ( ) . Object ;
81
+ var builder = Kernel . CreateBuilder ( ) ;
82
+ builder . AddBedrockTextGenerationService ( modelId , bedrockRuntime ) ;
83
+
84
+ // Act & Assert
85
+ Assert . Throws < KernelException > ( ( ) =>
86
+ {
87
+ var kernel = builder . Build ( ) ;
88
+ kernel . GetRequiredService < ITextGenerationService > ( ) ;
89
+ } ) ;
90
+ }
68
91
}
0 commit comments