AWS bedrock documentation change
Summary
Added Kotlin SDK code example for streaming text generation with Amazon Nova via Bedrock's ConverseStream API
Security assessment
Change adds a code example demonstrating API usage patterns but contains no security-related content, vulnerability fixes, or security feature documentation
Diff
diff --git a/bedrock/latest/userguide/bedrock-runtime_example_bedrock-runtime_ConverseStream_AmazonNovaText_section.md b/bedrock/latest/userguide/bedrock-runtime_example_bedrock-runtime_ConverseStream_AmazonNovaText_section.md index 26262dd6f..dec3fa964 100644 --- a/bedrock/latest/userguide/bedrock-runtime_example_bedrock-runtime_ConverseStream_AmazonNovaText_section.md +++ b/bedrock/latest/userguide/bedrock-runtime_example_bedrock-runtime_ConverseStream_AmazonNovaText_section.md @@ -292,0 +293,96 @@ Send a text message to Amazon Nova using Bedrock's Converse API and process the +Kotlin + + +**SDK for Kotlin** + + +###### Note + +There's more on GitHub. Find the complete example and learn how to set up and run in the [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/bedrock-runtime#code-examples). + +Send a text message to Amazon Nova using Bedrock's Converse API and process the response stream in real-time. + + + import aws.sdk.kotlin.services.bedrockruntime.BedrockRuntimeClient + import aws.sdk.kotlin.services.bedrockruntime.model.ContentBlock + import aws.sdk.kotlin.services.bedrockruntime.model.ConversationRole + import aws.sdk.kotlin.services.bedrockruntime.model.ConverseStreamOutput + import aws.sdk.kotlin.services.bedrockruntime.model.ConverseStreamRequest + import aws.sdk.kotlin.services.bedrockruntime.model.Message + + /** + * This example demonstrates how to use the Amazon Nova foundation models + * to generate streaming text responses. + * It shows how to: + * - Set up the Amazon Bedrock runtime client + * - Create a message with a prompt + * - Configure a streaming request with parameters + * - Process the response stream in real time + */ + suspend fun main() { + converseStream() + } + + suspend fun converseStream(): String { + // A buffer to collect the complete response + val completeResponseBuffer = StringBuilder() + + // Create and configure the Bedrock runtime client + BedrockRuntimeClient { region = "us-east-1" }.use { client -> + + // Specify the model ID. For the latest available models, see: + // https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html + val modelId = "amazon.nova-lite-v1:0" + + // Create the message with the user's prompt + val prompt = "Describe the purpose of a 'hello world' program in a paragraph." + val message = Message { + role = ConversationRole.User + content = listOf(ContentBlock.Text(prompt)) + } + + // Configure the request with optional model parameters + val request = ConverseStreamRequest { + this.modelId = modelId + messages = listOf(message) + inferenceConfig { + maxTokens = 500 // Maximum response length + temperature = 0.5F // Lower values: more focused output + // topP = 0.8F // Alternative to temperature + } + } + + // Process the streaming response + runCatching { + client.converseStream(request) { response -> + response.stream?.collect { chunk -> + when (chunk) { + is ConverseStreamOutput.ContentBlockDelta -> { + // Process each text chunk as it arrives + chunk.value.delta?.asText()?.let { text -> + print(text) + System.out.flush() // Ensure immediate output + completeResponseBuffer.append(text) + } + } + else -> {} // Other output block types can be handled as needed + } + } + } + }.onFailure { error -> + error.message?.let { e -> System.err.println("ERROR: Can't invoke '$modelId'. Reason: $e") } + throw RuntimeException("Failed to generate text with model $modelId: $error", error) + } + } + + return completeResponseBuffer.toString() + } + + + + + * For API details, see [ConverseStream](https://sdk.amazonaws.com/kotlin/api/latest/index.html) in _AWS SDK for Kotlin API reference_. + + + +