Skip to content

Converse Stream

bedrockruntime_converse_stream R Documentation

Sends messages to the specified Amazon Bedrock model and returns the response in a stream

Description

Sends messages to the specified Amazon Bedrock model and returns the response in a stream. converse_stream provides a consistent API that works with all Amazon Bedrock models that support messages. This allows you to write code once and use it with different models. Should a model have unique inference parameters, you can also pass those unique parameters to the model.

To find out if a model supports streaming, call GetFoundationModel and check the responseStreamingSupported field in the response.

The CLI doesn't support streaming operations in Amazon Bedrock, including converse_stream.

Amazon Bedrock doesn't store any text, images, or documents that you provide as content. The data is only used to generate the response.

For information about the Converse API, see Use the Converse API in the Amazon Bedrock User Guide. To use a guardrail, see Use a guardrail with the Converse API in the Amazon Bedrock User Guide. To use a tool with a model, see Tool use (Function calling) in the Amazon Bedrock User Guide

For example code, see Conversation streaming example in the Amazon Bedrock User Guide.

This operation requires permission for the bedrock:InvokeModelWithResponseStream action.

Usage

bedrockruntime_converse_stream(modelId, messages, system,
  inferenceConfig, toolConfig, guardrailConfig,
  additionalModelRequestFields, additionalModelResponseFieldPaths)

Arguments

modelId

[required] The ID for the model.

The modelId to provide depends on the type of model or throughput that you use:

The Converse API doesn't support imported models.

messages

[required] The messages that you want to send to the model.

system

A system prompt to send to the model.

inferenceConfig

Inference parameters to pass to the model. converse_stream supports a base set of inference parameters. If you need to pass additional parameters that the model supports, use the additionalModelRequestFields request field.

toolConfig

Configuration information for the tools that the model can use when generating a response.

This field is only supported by Anthropic Claude 3 models.

guardrailConfig

Configuration information for a guardrail that you want to use in the request.

additionalModelRequestFields

Additional inference parameters that the model supports, beyond the base set of inference parameters that converse_stream supports in the inferenceConfig field.

additionalModelResponseFieldPaths

Additional model parameters field paths to return in the response. converse_stream returns the requested fields as a JSON Pointer object in the additionalModelResponseFields field. The following is example JSON for additionalModelResponseFieldPaths.

⁠[ "/stop_sequence" ]⁠

For information about the JSON Pointer syntax, see the Internet Engineering Task Force (IETF) documentation.

converse_stream rejects an empty JSON Pointer or incorrectly structured JSON Pointer with a 400 error code. if the JSON Pointer is valid, but the requested field is not in the model response, it is ignored by converse_stream.

Value

A list with the following syntax:

list(
  stream = list(
    messageStart = list(
      role = "user"|"assistant"
    ),
    contentBlockStart = list(
      start = list(
        toolUse = list(
          toolUseId = "string",
          name = "string"
        )
      ),
      contentBlockIndex = 123
    ),
    contentBlockDelta = list(
      delta = list(
        text = "string",
        toolUse = list(
          input = "string"
        )
      ),
      contentBlockIndex = 123
    ),
    contentBlockStop = list(
      contentBlockIndex = 123
    ),
    messageStop = list(
      stopReason = "end_turn"|"tool_use"|"max_tokens"|"stop_sequence"|"guardrail_intervened"|"content_filtered",
      additionalModelResponseFields = list()
    ),
    metadata = list(
      usage = list(
        inputTokens = 123,
        outputTokens = 123,
        totalTokens = 123
      ),
      metrics = list(
        latencyMs = 123
      ),
      trace = list(
        guardrail = list(
          modelOutput = list(
            "string"
          ),
          inputAssessment = list(
            list(
              topicPolicy = list(
                topics = list(
                  list(
                    name = "string",
                    type = "DENY",
                    action = "BLOCKED"
                  )
                )
              ),
              contentPolicy = list(
                filters = list(
                  list(
                    type = "INSULTS"|"HATE"|"SEXUAL"|"VIOLENCE"|"MISCONDUCT"|"PROMPT_ATTACK",
                    confidence = "NONE"|"LOW"|"MEDIUM"|"HIGH",
                    action = "BLOCKED"
                  )
                )
              ),
              wordPolicy = list(
                customWords = list(
                  list(
                    match = "string",
                    action = "BLOCKED"
                  )
                ),
                managedWordLists = list(
                  list(
                    match = "string",
                    type = "PROFANITY",
                    action = "BLOCKED"
                  )
                )
              ),
              sensitiveInformationPolicy = list(
                piiEntities = list(
                  list(
                    match = "string",
                    type = "ADDRESS"|"AGE"|"AWS_ACCESS_KEY"|"AWS_SECRET_KEY"|"CA_HEALTH_NUMBER"|"CA_SOCIAL_INSURANCE_NUMBER"|"CREDIT_DEBIT_CARD_CVV"|"CREDIT_DEBIT_CARD_EXPIRY"|"CREDIT_DEBIT_CARD_NUMBER"|"DRIVER_ID"|"EMAIL"|"INTERNATIONAL_BANK_ACCOUNT_NUMBER"|"IP_ADDRESS"|"LICENSE_PLATE"|"MAC_ADDRESS"|"NAME"|"PASSWORD"|"PHONE"|"PIN"|"SWIFT_CODE"|"UK_NATIONAL_HEALTH_SERVICE_NUMBER"|"UK_NATIONAL_INSURANCE_NUMBER"|"UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER"|"URL"|"USERNAME"|"US_BANK_ACCOUNT_NUMBER"|"US_BANK_ROUTING_NUMBER"|"US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER"|"US_PASSPORT_NUMBER"|"US_SOCIAL_SECURITY_NUMBER"|"VEHICLE_IDENTIFICATION_NUMBER",
                    action = "ANONYMIZED"|"BLOCKED"
                  )
                ),
                regexes = list(
                  list(
                    name = "string",
                    match = "string",
                    regex = "string",
                    action = "ANONYMIZED"|"BLOCKED"
                  )
                )
              ),
              contextualGroundingPolicy = list(
                filters = list(
                  list(
                    type = "GROUNDING"|"RELEVANCE",
                    threshold = 123.0,
                    score = 123.0,
                    action = "BLOCKED"|"NONE"
                  )
                )
              )
            )
          ),
          outputAssessments = list(
            list(
              list(
                topicPolicy = list(
                  topics = list(
                    list(
                      name = "string",
                      type = "DENY",
                      action = "BLOCKED"
                    )
                  )
                ),
                contentPolicy = list(
                  filters = list(
                    list(
                      type = "INSULTS"|"HATE"|"SEXUAL"|"VIOLENCE"|"MISCONDUCT"|"PROMPT_ATTACK",
                      confidence = "NONE"|"LOW"|"MEDIUM"|"HIGH",
                      action = "BLOCKED"
                    )
                  )
                ),
                wordPolicy = list(
                  customWords = list(
                    list(
                      match = "string",
                      action = "BLOCKED"
                    )
                  ),
                  managedWordLists = list(
                    list(
                      match = "string",
                      type = "PROFANITY",
                      action = "BLOCKED"
                    )
                  )
                ),
                sensitiveInformationPolicy = list(
                  piiEntities = list(
                    list(
                      match = "string",
                      type = "ADDRESS"|"AGE"|"AWS_ACCESS_KEY"|"AWS_SECRET_KEY"|"CA_HEALTH_NUMBER"|"CA_SOCIAL_INSURANCE_NUMBER"|"CREDIT_DEBIT_CARD_CVV"|"CREDIT_DEBIT_CARD_EXPIRY"|"CREDIT_DEBIT_CARD_NUMBER"|"DRIVER_ID"|"EMAIL"|"INTERNATIONAL_BANK_ACCOUNT_NUMBER"|"IP_ADDRESS"|"LICENSE_PLATE"|"MAC_ADDRESS"|"NAME"|"PASSWORD"|"PHONE"|"PIN"|"SWIFT_CODE"|"UK_NATIONAL_HEALTH_SERVICE_NUMBER"|"UK_NATIONAL_INSURANCE_NUMBER"|"UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER"|"URL"|"USERNAME"|"US_BANK_ACCOUNT_NUMBER"|"US_BANK_ROUTING_NUMBER"|"US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER"|"US_PASSPORT_NUMBER"|"US_SOCIAL_SECURITY_NUMBER"|"VEHICLE_IDENTIFICATION_NUMBER",
                      action = "ANONYMIZED"|"BLOCKED"
                    )
                  ),
                  regexes = list(
                    list(
                      name = "string",
                      match = "string",
                      regex = "string",
                      action = "ANONYMIZED"|"BLOCKED"
                    )
                  )
                ),
                contextualGroundingPolicy = list(
                  filters = list(
                    list(
                      type = "GROUNDING"|"RELEVANCE",
                      threshold = 123.0,
                      score = 123.0,
                      action = "BLOCKED"|"NONE"
                    )
                  )
                )
              )
            )
          )
        )
      )
    ),
    internalServerException = list(
      message = "string"
    ),
    modelStreamErrorException = list(
      message = "string",
      originalStatusCode = 123,
      originalMessage = "string"
    ),
    validationException = list(
      message = "string"
    ),
    throttlingException = list(
      message = "string"
    ),
    serviceUnavailableException = list(
      message = "string"
    )
  )
)

Request syntax

svc$converse_stream(
  modelId = "string",
  messages = list(
    list(
      role = "user"|"assistant",
      content = list(
        list(
          text = "string",
          image = list(
            format = "png"|"jpeg"|"gif"|"webp",
            source = list(
              bytes = raw
            )
          ),
          document = list(
            format = "pdf"|"csv"|"doc"|"docx"|"xls"|"xlsx"|"html"|"txt"|"md",
            name = "string",
            source = list(
              bytes = raw
            )
          ),
          toolUse = list(
            toolUseId = "string",
            name = "string",
            input = list()
          ),
          toolResult = list(
            toolUseId = "string",
            content = list(
              list(
                json = list(),
                text = "string",
                image = list(
                  format = "png"|"jpeg"|"gif"|"webp",
                  source = list(
                    bytes = raw
                  )
                ),
                document = list(
                  format = "pdf"|"csv"|"doc"|"docx"|"xls"|"xlsx"|"html"|"txt"|"md",
                  name = "string",
                  source = list(
                    bytes = raw
                  )
                )
              )
            ),
            status = "success"|"error"
          ),
          guardContent = list(
            text = list(
              text = "string",
              qualifiers = list(
                "grounding_source"|"query"|"guard_content"
              )
            )
          )
        )
      )
    )
  ),
  system = list(
    list(
      text = "string",
      guardContent = list(
        text = list(
          text = "string",
          qualifiers = list(
            "grounding_source"|"query"|"guard_content"
          )
        )
      )
    )
  ),
  inferenceConfig = list(
    maxTokens = 123,
    temperature = 123.0,
    topP = 123.0,
    stopSequences = list(
      "string"
    )
  ),
  toolConfig = list(
    tools = list(
      list(
        toolSpec = list(
          name = "string",
          description = "string",
          inputSchema = list(
            json = list()
          )
        )
      )
    ),
    toolChoice = list(
      auto = list(),
      any = list(),
      tool = list(
        name = "string"
      )
    )
  ),
  guardrailConfig = list(
    guardrailIdentifier = "string",
    guardrailVersion = "string",
    trace = "enabled"|"disabled",
    streamProcessingMode = "sync"|"async"
  ),
  additionalModelRequestFields = list(),
  additionalModelResponseFieldPaths = list(
    "string"
  )
)