@@ -3,33 +3,36 @@ use aws_sdk_bedrockagentruntime::{self as bedrockagentruntime, types::ResponseSt
3
3
4
4
const BEDROCK_AGENT_ID : & str = "AJBHXXILZN" ;
5
5
const BEDROCK_AGENT_ALIAS_ID : & str = "AVKP1ITZAA" ;
6
+ const BEDROCK_AGENT_REGION : & str = "us-east-1" ;
6
7
7
- #[ :: tokio:: main]
8
+ #[ tokio:: main]
8
9
async fn main ( ) -> Result < ( ) , Box < bedrockagentruntime:: Error > > {
9
10
let result = invoke_bedrock_agent ( "I need help." . to_string ( ) , "123" . to_string ( ) ) . await ?;
10
11
println ! ( "{}" , result) ;
11
12
Ok ( ( ) )
12
13
}
13
14
14
15
async fn invoke_bedrock_agent ( prompt : String , session_id : String ) -> Result < String , bedrockagentruntime:: Error > {
15
- let aws_config: SdkConfig = aws_config:: load_defaults ( BehaviorVersion :: latest ( ) ) . await ;
16
- let bedrock_client = bedrockagentruntime:: Client :: new ( & aws_config) ;
16
+ let sdk_config: SdkConfig = aws_config:: defaults ( BehaviorVersion :: latest ( ) )
17
+ . region ( BEDROCK_AGENT_REGION )
18
+ . load ( )
19
+ . await ;
20
+ let bedrock_client = bedrockagentruntime:: Client :: new ( & sdk_config) ;
17
21
18
22
let command_builder = bedrock_client
19
23
. invoke_agent ( )
20
24
. agent_id ( BEDROCK_AGENT_ID )
21
25
. agent_alias_id ( BEDROCK_AGENT_ALIAS_ID )
22
26
. session_id ( session_id)
23
- . input_text ( prompt)
24
- . enable_trace ( false ) ;
27
+ . input_text ( prompt) ;
25
28
26
29
let response = command_builder. send ( ) . await ?;
27
30
28
31
let mut response_stream = response. completion ;
29
32
let mut full_agent_text_response = String :: new ( ) ;
30
33
31
34
println ! ( "Processing Bedrock agent response stream..." ) ;
32
- while let Some ( event_result) = response_stream. recv ( ) . await . unwrap ( ) {
35
+ while let Some ( event_result) = response_stream. recv ( ) . await ? {
33
36
match event_result {
34
37
ResponseStream :: Chunk ( chunk) => {
35
38
if let Some ( bytes) = chunk. bytes {
@@ -39,7 +42,7 @@ async fn invoke_bedrock_agent(prompt: String, session_id: String) -> Result<Stri
39
42
}
40
43
Err ( e) => {
41
44
eprintln ! ( "UTF-8 decoding error for chunk: {}" , e) ;
42
- }
45
+ }
43
46
}
44
47
}
45
48
}
@@ -51,3 +54,5 @@ async fn invoke_bedrock_agent(prompt: String, session_id: String) -> Result<Stri
51
54
52
55
Ok ( full_agent_text_response)
53
56
}
57
+
58
+
0 commit comments