Skip to content

Commit ee4cd0c

Browse files
Victor ThuillierVictor Thuillier
authored andcommitted
Input and Result unit tests for BedrockRuntime InvokeModel operation
1 parent 27319b8 commit ee4cd0c

File tree

2 files changed

+23
-23
lines changed

2 files changed

+23
-23
lines changed

src/Service/BedrockRuntime/tests/Unit/Input/InvokeModelRequestTest.php

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,29 @@ class InvokeModelRequestTest extends TestCase
99
{
1010
public function testRequest(): void
1111
{
12-
self::fail('Not implemented');
13-
1412
$input = new InvokeModelRequest([
15-
'body' => 'change me',
16-
'contentType' => 'change me',
17-
'accept' => 'change me',
18-
'modelId' => 'change me',
19-
'trace' => 'change me',
20-
'guardrailIdentifier' => 'change me',
21-
'guardrailVersion' => 'change me',
22-
'performanceConfigLatency' => 'change me',
13+
'body' => '{"anthropic_version":"bedrock-2023-05-31","max_tokens":4096,"messages":[{"role":"user","content":[{"type":"text","text":"Write me a love poem."}]}],"temperature":1}',
14+
'contentType' => 'application/json',
15+
'accept' => 'application/json',
16+
'modelId' => 'us.anthropic.claude-3-7-sonnet-20250219-v1:0',
17+
'trace' => 'DISABLED',
18+
'guardrailIdentifier' => 'arn:aws:bedrock:eu-west-1:965624758642:guardrail/azertyuiopqs',
19+
'guardrailVersion' => 'DRAFT',
20+
'performanceConfigLatency' => 'standard',
2321
]);
2422

2523
// see https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html
2624
$expected = '
27-
POST / HTTP/1.0
25+
POST /model/us.anthropic.claude-3-7-sonnet-20250219-v1:0/invoke HTTP/1.0
2826
Content-Type: application/json
27+
Accept: application/json
28+
X-Amzn-Bedrock-GuardrailIdentifier: arn:aws:bedrock:eu-west-1:965624758642:guardrail/azertyuiopqs
29+
X-Amzn-Bedrock-GuardrailVersion: DRAFT
30+
X-Amzn-Bedrock-PerformanceConfig-Latency: standard
31+
X-Amzn-Bedrock-Trace: DISABLED
2932
30-
{
31-
"change": "it"
32-
}
33-
';
33+
{"anthropic_version":"bedrock-2023-05-31","max_tokens":4096,"messages":[{"role":"user","content":[{"type":"text","text":"Write me a love poem."}]}],"temperature":1}
34+
';
3435

3536
self::assertRequestEqualsHttpRequest($expected, $input->request());
3637
}

src/Service/BedrockRuntime/tests/Unit/Result/InvokeModelResponseTest.php

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,17 @@ class InvokeModelResponseTest extends TestCase
1313
{
1414
public function testInvokeModelResponse(): void
1515
{
16-
self::fail('Not implemented');
17-
1816
// see https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html
19-
$response = new SimpleMockedResponse('{
20-
"change": "it"
21-
}');
17+
$response = new SimpleMockedResponse(
18+
'{"id":"msg_bdrk_01SK3CsA23VBbZig4HqemAoo","type":"message","role":"assistant","model":"claude-3-7-sonnet-20250219","content":[{"type":"text","text":"# Whispers of the Heart\n\nIn the quiet moments between breaths,\nI find my thoughts wandering to you,\nLike stars that navigate sailors home,\nYour smile guides me through.\n\nThe universe conspired in silent ways,\nTo weave our paths into one,\nNow each sunrise holds new promise,\nA dance we\'ve just begun.\n\nYour laughter echoes in my dreams,\nA melody I\'ve known all along,\nMy heart recognizes yours completely,\nLike remembering a forgotten song.\n\nI love you not just for who you are,\nBut for who I become when we\'re together,\nA better version, a truer self,\nA love to cherish forever."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":13,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":153}}',
19+
['Content-type' => 'Application/json', 'X-Amzn-Bedrock-PerformanceConfig-Latency' => 'standard']
20+
);
2221

2322
$client = new MockHttpClient($response);
2423
$result = new InvokeModelResponse(new Response($client->request('POST', 'http://localhost'), $client, new NullLogger()));
2524

26-
// self::assertTODO(expected, $result->getBody());
27-
self::assertSame('changeIt', $result->getContentType());
28-
self::assertSame('changeIt', $result->getPerformanceConfigLatency());
25+
self::assertSame('{"id":"msg_bdrk_01SK3CsA23VBbZig4HqemAoo","type":"message","role":"assistant","model":"claude-3-7-sonnet-20250219","content":[{"type":"text","text":"# Whispers of the Heart\n\nIn the quiet moments between breaths,\nI find my thoughts wandering to you,\nLike stars that navigate sailors home,\nYour smile guides me through.\n\nThe universe conspired in silent ways,\nTo weave our paths into one,\nNow each sunrise holds new promise,\nA dance we\'ve just begun.\n\nYour laughter echoes in my dreams,\nA melody I\'ve known all along,\nMy heart recognizes yours completely,\nLike remembering a forgotten song.\n\nI love you not just for who you are,\nBut for who I become when we\'re together,\nA better version, a truer self,\nA love to cherish forever."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":13,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":153}}', $result->getBody());
26+
self::assertSame('application/json', $result->getContentType());
27+
self::assertSame('standard', $result->getPerformanceConfigLatency());
2928
}
3029
}

0 commit comments

Comments
 (0)