aws-sdk-bedrockruntime 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-bedrockruntime/client.rb +634 -1
- data/lib/aws-sdk-bedrockruntime/client_api.rb +311 -0
- data/lib/aws-sdk-bedrockruntime/endpoints.rb +28 -0
- data/lib/aws-sdk-bedrockruntime/event_streams.rb +79 -0
- data/lib/aws-sdk-bedrockruntime/plugins/endpoints.rb +4 -0
- data/lib/aws-sdk-bedrockruntime/types.rb +1012 -0
- data/lib/aws-sdk-bedrockruntime.rb +2 -2
- data/sig/client.rbs +176 -0
- data/sig/types.rbs +300 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45f103c6303711170cab8d8dcc833d7a514ff0ef8d3d36e367a24c82e8b446b0
|
4
|
+
data.tar.gz: a83aa4819278b6ec6fb78e36fcb9ecaa34eb4e1fd470d5ed5e1046c3ff808687
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43ce7968c5f49e2a202f632435178b7ad09fac50f0caccd665dd06ee64bf1cc97bba1bb082b8fe5a3807fe6af5d4e1793094315a2e7308f2cbdd36b57a39276e
|
7
|
+
data.tar.gz: e05f07d44f2459550dc704fd4f812344818171cc3ccf422d2debb27cc402fba480da7bf44ea6ac8c1c3b6c039d1416d5a4cbe8361cac9a03f62169deceed1851
|
data/CHANGELOG.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.9.0
|
@@ -424,6 +424,639 @@ module Aws::BedrockRuntime
|
|
424
424
|
|
425
425
|
# @!group API Operations
|
426
426
|
|
427
|
+
# Sends messages to the specified Amazon Bedrock model. `Converse`
|
428
|
+
# provides a consistent interface that works with all models that
|
429
|
+
# support messages. This allows you to write code once and use it with
|
430
|
+
# different models. Should a model have unique inference parameters, you
|
431
|
+
# can also pass those unique parameters to the model. For more
|
432
|
+
# information, see [Run inference][1] in the Bedrock User Guide.
|
433
|
+
#
|
434
|
+
# This operation requires permission for the `bedrock:InvokeModel`
|
435
|
+
# action.
|
436
|
+
#
|
437
|
+
#
|
438
|
+
#
|
439
|
+
# [1]: https://docs.aws.amazon.com/bedrock/latest/userguide/api-methods-run.html
|
440
|
+
#
|
441
|
+
# @option params [required, String] :model_id
|
442
|
+
# The identifier for the model that you want to call.
|
443
|
+
#
|
444
|
+
# The `modelId` to provide depends on the type of model that you use:
|
445
|
+
#
|
446
|
+
# * If you use a base model, specify the model ID or its ARN. For a list
|
447
|
+
# of model IDs for base models, see [Amazon Bedrock base model IDs
|
448
|
+
# (on-demand throughput)][1] in the Amazon Bedrock User Guide.
|
449
|
+
#
|
450
|
+
# * If you use a provisioned model, specify the ARN of the Provisioned
|
451
|
+
# Throughput. For more information, see [Run inference using a
|
452
|
+
# Provisioned Throughput][2] in the Amazon Bedrock User Guide.
|
453
|
+
#
|
454
|
+
# * If you use a custom model, first purchase Provisioned Throughput for
|
455
|
+
# it. Then specify the ARN of the resulting provisioned model. For
|
456
|
+
# more information, see [Use a custom model in Amazon Bedrock][3] in
|
457
|
+
# the Amazon Bedrock User Guide.
|
458
|
+
#
|
459
|
+
#
|
460
|
+
#
|
461
|
+
# [1]: https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html#model-ids-arns
|
462
|
+
# [2]: https://docs.aws.amazon.com/bedrock/latest/userguide/prov-thru-use.html
|
463
|
+
# [3]: https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-use.html
|
464
|
+
#
|
465
|
+
# @option params [required, Array<Types::Message>] :messages
|
466
|
+
# The messages that you want to send to the model.
|
467
|
+
#
|
468
|
+
# @option params [Array<Types::SystemContentBlock>] :system
|
469
|
+
# A system prompt to pass to the model.
|
470
|
+
#
|
471
|
+
# @option params [Types::InferenceConfiguration] :inference_config
|
472
|
+
# Inference parameters to pass to the model. `Converse` supports a base
|
473
|
+
# set of inference parameters. If you need to pass additional parameters
|
474
|
+
# that the model supports, use the `additionalModelRequestFields`
|
475
|
+
# request field.
|
476
|
+
#
|
477
|
+
# @option params [Types::ToolConfiguration] :tool_config
|
478
|
+
# Configuration information for the tools that the model can use when
|
479
|
+
# generating a response.
|
480
|
+
#
|
481
|
+
# <note markdown="1"> This field is only supported by Anthropic Claude 3, Cohere Command R,
|
482
|
+
# Cohere Command R+, and Mistral Large models.
|
483
|
+
#
|
484
|
+
# </note>
|
485
|
+
#
|
486
|
+
# @option params [Hash,Array,String,Numeric,Boolean] :additional_model_request_fields
|
487
|
+
# Additional inference parameters that the model supports, beyond the
|
488
|
+
# base set of inference parameters that `Converse` supports in the
|
489
|
+
# `inferenceConfig` field. For more information, see [Model
|
490
|
+
# parameters][1].
|
491
|
+
#
|
492
|
+
# Document type used to carry open content
|
493
|
+
# (Hash,Array,String,Numeric,Boolean). A document type value is
|
494
|
+
# serialized using the same format as its surroundings and requires no
|
495
|
+
# additional encoding or escaping.
|
496
|
+
#
|
497
|
+
#
|
498
|
+
#
|
499
|
+
# [1]: https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html
|
500
|
+
#
|
501
|
+
# @option params [Array<String>] :additional_model_response_field_paths
|
502
|
+
# Additional model parameters field paths to return in the response.
|
503
|
+
# `Converse` returns the requested fields as a JSON Pointer object in
|
504
|
+
# the `additionalModelResultFields` field. The following is example JSON
|
505
|
+
# for `additionalModelResponseFieldPaths`.
|
506
|
+
#
|
507
|
+
# `[ "/stop_sequence" ]`
|
508
|
+
#
|
509
|
+
# For information about the JSON Pointer syntax, see the [Internet
|
510
|
+
# Engineering Task Force (IETF)][1] documentation.
|
511
|
+
#
|
512
|
+
# `Converse` rejects an empty JSON Pointer or incorrectly structured
|
513
|
+
# JSON Pointer with a `400` error code. if the JSON Pointer is valid,
|
514
|
+
# but the requested field is not in the model response, it is ignored by
|
515
|
+
# `Converse`.
|
516
|
+
#
|
517
|
+
#
|
518
|
+
#
|
519
|
+
# [1]: https://datatracker.ietf.org/doc/html/rfc6901
|
520
|
+
#
|
521
|
+
# @return [Types::ConverseResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
522
|
+
#
|
523
|
+
# * {Types::ConverseResponse#output #output} => Types::ConverseOutput
|
524
|
+
# * {Types::ConverseResponse#stop_reason #stop_reason} => String
|
525
|
+
# * {Types::ConverseResponse#usage #usage} => Types::TokenUsage
|
526
|
+
# * {Types::ConverseResponse#metrics #metrics} => Types::ConverseMetrics
|
527
|
+
# * {Types::ConverseResponse#additional_model_response_fields #additional_model_response_fields} => Hash,Array,String,Numeric,Boolean
|
528
|
+
#
|
529
|
+
# @example Request syntax with placeholder values
|
530
|
+
#
|
531
|
+
# resp = client.converse({
|
532
|
+
# model_id: "ConversationalModelId", # required
|
533
|
+
# messages: [ # required
|
534
|
+
# {
|
535
|
+
# role: "user", # required, accepts user, assistant
|
536
|
+
# content: [ # required
|
537
|
+
# {
|
538
|
+
# text: "String",
|
539
|
+
# image: {
|
540
|
+
# format: "png", # required, accepts png, jpeg, gif, webp
|
541
|
+
# source: { # required
|
542
|
+
# bytes: "data",
|
543
|
+
# },
|
544
|
+
# },
|
545
|
+
# tool_use: {
|
546
|
+
# tool_use_id: "ToolUseId", # required
|
547
|
+
# name: "ToolName", # required
|
548
|
+
# input: { # required
|
549
|
+
# },
|
550
|
+
# },
|
551
|
+
# tool_result: {
|
552
|
+
# tool_use_id: "ToolUseId", # required
|
553
|
+
# content: [ # required
|
554
|
+
# {
|
555
|
+
# json: {
|
556
|
+
# },
|
557
|
+
# text: "String",
|
558
|
+
# image: {
|
559
|
+
# format: "png", # required, accepts png, jpeg, gif, webp
|
560
|
+
# source: { # required
|
561
|
+
# bytes: "data",
|
562
|
+
# },
|
563
|
+
# },
|
564
|
+
# },
|
565
|
+
# ],
|
566
|
+
# status: "success", # accepts success, error
|
567
|
+
# },
|
568
|
+
# },
|
569
|
+
# ],
|
570
|
+
# },
|
571
|
+
# ],
|
572
|
+
# system: [
|
573
|
+
# {
|
574
|
+
# text: "NonEmptyString",
|
575
|
+
# },
|
576
|
+
# ],
|
577
|
+
# inference_config: {
|
578
|
+
# max_tokens: 1,
|
579
|
+
# temperature: 1.0,
|
580
|
+
# top_p: 1.0,
|
581
|
+
# stop_sequences: ["NonEmptyString"],
|
582
|
+
# },
|
583
|
+
# tool_config: {
|
584
|
+
# tools: [ # required
|
585
|
+
# {
|
586
|
+
# tool_spec: {
|
587
|
+
# name: "ToolName", # required
|
588
|
+
# description: "NonEmptyString",
|
589
|
+
# input_schema: { # required
|
590
|
+
# json: {
|
591
|
+
# },
|
592
|
+
# },
|
593
|
+
# },
|
594
|
+
# },
|
595
|
+
# ],
|
596
|
+
# tool_choice: {
|
597
|
+
# auto: {
|
598
|
+
# },
|
599
|
+
# any: {
|
600
|
+
# },
|
601
|
+
# tool: {
|
602
|
+
# name: "ToolName", # required
|
603
|
+
# },
|
604
|
+
# },
|
605
|
+
# },
|
606
|
+
# additional_model_request_fields: {
|
607
|
+
# },
|
608
|
+
# additional_model_response_field_paths: ["ConverseRequestAdditionalModelResponseFieldPathsListMemberString"],
|
609
|
+
# })
|
610
|
+
#
|
611
|
+
# @example Response structure
|
612
|
+
#
|
613
|
+
# resp.output.message.role #=> String, one of "user", "assistant"
|
614
|
+
# resp.output.message.content #=> Array
|
615
|
+
# resp.output.message.content[0].text #=> String
|
616
|
+
# resp.output.message.content[0].image.format #=> String, one of "png", "jpeg", "gif", "webp"
|
617
|
+
# resp.output.message.content[0].image.source.bytes #=> String
|
618
|
+
# resp.output.message.content[0].tool_use.tool_use_id #=> String
|
619
|
+
# resp.output.message.content[0].tool_use.name #=> String
|
620
|
+
# resp.output.message.content[0].tool_result.tool_use_id #=> String
|
621
|
+
# resp.output.message.content[0].tool_result.content #=> Array
|
622
|
+
# resp.output.message.content[0].tool_result.content[0].text #=> String
|
623
|
+
# resp.output.message.content[0].tool_result.content[0].image.format #=> String, one of "png", "jpeg", "gif", "webp"
|
624
|
+
# resp.output.message.content[0].tool_result.content[0].image.source.bytes #=> String
|
625
|
+
# resp.output.message.content[0].tool_result.status #=> String, one of "success", "error"
|
626
|
+
# resp.stop_reason #=> String, one of "end_turn", "tool_use", "max_tokens", "stop_sequence", "content_filtered"
|
627
|
+
# resp.usage.input_tokens #=> Integer
|
628
|
+
# resp.usage.output_tokens #=> Integer
|
629
|
+
# resp.usage.total_tokens #=> Integer
|
630
|
+
# resp.metrics.latency_ms #=> Integer
|
631
|
+
#
|
632
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-runtime-2023-09-30/Converse AWS API Documentation
|
633
|
+
#
|
634
|
+
# @overload converse(params = {})
|
635
|
+
# @param [Hash] params ({})
|
636
|
+
def converse(params = {}, options = {})
|
637
|
+
req = build_request(:converse, params)
|
638
|
+
req.send_request(options)
|
639
|
+
end
|
640
|
+
|
641
|
+
# Sends messages to the specified Amazon Bedrock model and returns the
|
642
|
+
# response in a stream. `ConverseStream` provides a consistent API that
|
643
|
+
# works with all Amazon Bedrock models that support messages. This
|
644
|
+
# allows you to write code once and use it with different models. Should
|
645
|
+
# a model have unique inference parameters, you can also pass those
|
646
|
+
# unique parameters to the model. For more information, see [Run
|
647
|
+
# inference][1] in the Bedrock User Guide.
|
648
|
+
#
|
649
|
+
# To find out if a model supports streaming, call
|
650
|
+
# [GetFoundationModel][2] and check the `responseStreamingSupported`
|
651
|
+
# field in the response.
|
652
|
+
#
|
653
|
+
# For example code, see *Invoke model with streaming code example* in
|
654
|
+
# the *Amazon Bedrock User Guide*.
|
655
|
+
#
|
656
|
+
# This operation requires permission for the
|
657
|
+
# `bedrock:InvokeModelWithResponseStream` action.
|
658
|
+
#
|
659
|
+
#
|
660
|
+
#
|
661
|
+
# [1]: https://docs.aws.amazon.com/bedrock/latest/userguide/api-methods-run.html
|
662
|
+
# [2]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetFoundationModel.html
|
663
|
+
#
|
664
|
+
# @option params [required, String] :model_id
|
665
|
+
# The ID for the model.
|
666
|
+
#
|
667
|
+
# The `modelId` to provide depends on the type of model that you use:
|
668
|
+
#
|
669
|
+
# * If you use a base model, specify the model ID or its ARN. For a list
|
670
|
+
# of model IDs for base models, see [Amazon Bedrock base model IDs
|
671
|
+
# (on-demand throughput)][1] in the Amazon Bedrock User Guide.
|
672
|
+
#
|
673
|
+
# * If you use a provisioned model, specify the ARN of the Provisioned
|
674
|
+
# Throughput. For more information, see [Run inference using a
|
675
|
+
# Provisioned Throughput][2] in the Amazon Bedrock User Guide.
|
676
|
+
#
|
677
|
+
# * If you use a custom model, first purchase Provisioned Throughput for
|
678
|
+
# it. Then specify the ARN of the resulting provisioned model. For
|
679
|
+
# more information, see [Use a custom model in Amazon Bedrock][3] in
|
680
|
+
# the Amazon Bedrock User Guide.
|
681
|
+
#
|
682
|
+
#
|
683
|
+
#
|
684
|
+
# [1]: https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html#model-ids-arns
|
685
|
+
# [2]: https://docs.aws.amazon.com/bedrock/latest/userguide/prov-thru-use.html
|
686
|
+
# [3]: https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-use.html
|
687
|
+
#
|
688
|
+
# @option params [required, Array<Types::Message>] :messages
|
689
|
+
# The messages that you want to send to the model.
|
690
|
+
#
|
691
|
+
# @option params [Array<Types::SystemContentBlock>] :system
|
692
|
+
# A system prompt to send to the model.
|
693
|
+
#
|
694
|
+
# @option params [Types::InferenceConfiguration] :inference_config
|
695
|
+
# Inference parameters to pass to the model. `ConverseStream` supports a
|
696
|
+
# base set of inference parameters. If you need to pass additional
|
697
|
+
# parameters that the model supports, use the
|
698
|
+
# `additionalModelRequestFields` request field.
|
699
|
+
#
|
700
|
+
# @option params [Types::ToolConfiguration] :tool_config
|
701
|
+
# Configuration information for the tools that the model can use when
|
702
|
+
# generating a response.
|
703
|
+
#
|
704
|
+
# <note markdown="1"> This field is only supported by Anthropic Claude 3 models.
|
705
|
+
#
|
706
|
+
# </note>
|
707
|
+
#
|
708
|
+
# @option params [Hash,Array,String,Numeric,Boolean] :additional_model_request_fields
|
709
|
+
# Additional inference parameters that the model supports, beyond the
|
710
|
+
# base set of inference parameters that `ConverseStream` supports in the
|
711
|
+
# `inferenceConfig` field.
|
712
|
+
#
|
713
|
+
# Document type used to carry open content
|
714
|
+
# (Hash,Array,String,Numeric,Boolean). A document type value is
|
715
|
+
# serialized using the same format as its surroundings and requires no
|
716
|
+
# additional encoding or escaping.
|
717
|
+
#
|
718
|
+
# @option params [Array<String>] :additional_model_response_field_paths
|
719
|
+
# Additional model parameters field paths to return in the response.
|
720
|
+
# `ConverseStream` returns the requested fields as a JSON Pointer object
|
721
|
+
# in the `additionalModelResultFields` field. The following is example
|
722
|
+
# JSON for `additionalModelResponseFieldPaths`.
|
723
|
+
#
|
724
|
+
# `[ "/stop_sequence" ]`
|
725
|
+
#
|
726
|
+
# For information about the JSON Pointer syntax, see the [Internet
|
727
|
+
# Engineering Task Force (IETF)][1] documentation.
|
728
|
+
#
|
729
|
+
# `ConverseStream` rejects an empty JSON Pointer or incorrectly
|
730
|
+
# structured JSON Pointer with a `400` error code. if the JSON Pointer
|
731
|
+
# is valid, but the requested field is not in the model response, it is
|
732
|
+
# ignored by `ConverseStream`.
|
733
|
+
#
|
734
|
+
#
|
735
|
+
#
|
736
|
+
# [1]: https://datatracker.ietf.org/doc/html/rfc6901
|
737
|
+
#
|
738
|
+
# @return [Types::ConverseStreamResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
739
|
+
#
|
740
|
+
# * {Types::ConverseStreamResponse#stream #stream} => Types::ConverseStreamOutput
|
741
|
+
#
|
742
|
+
# @example EventStream Operation Example
|
743
|
+
#
|
744
|
+
# You can process the event once it arrives immediately, or wait until the
|
745
|
+
# full response is complete and iterate through the eventstream enumerator.
|
746
|
+
#
|
747
|
+
# To interact with event immediately, you need to register #converse_stream
|
748
|
+
# with callbacks. Callbacks can be registered for specific events or for all
|
749
|
+
# events, including error events.
|
750
|
+
#
|
751
|
+
# Callbacks can be passed into the `:event_stream_handler` option or within a
|
752
|
+
# block statement attached to the #converse_stream call directly. Hybrid
|
753
|
+
# pattern of both is also supported.
|
754
|
+
#
|
755
|
+
# `:event_stream_handler` option takes in either a Proc object or
|
756
|
+
# Aws::BedrockRuntime::EventStreams::ConverseStreamOutput object.
|
757
|
+
#
|
758
|
+
# Usage pattern a): Callbacks with a block attached to #converse_stream
|
759
|
+
# Example for registering callbacks for all event types and an error event
|
760
|
+
#
|
761
|
+
# client.converse_stream( # params input# ) do |stream|
|
762
|
+
# stream.on_error_event do |event|
|
763
|
+
# # catch unmodeled error event in the stream
|
764
|
+
# raise event
|
765
|
+
# # => Aws::Errors::EventError
|
766
|
+
# # event.event_type => :error
|
767
|
+
# # event.error_code => String
|
768
|
+
# # event.error_message => String
|
769
|
+
# end
|
770
|
+
#
|
771
|
+
# stream.on_event do |event|
|
772
|
+
# # process all events arrive
|
773
|
+
# puts event.event_type
|
774
|
+
# ...
|
775
|
+
# end
|
776
|
+
#
|
777
|
+
# end
|
778
|
+
#
|
779
|
+
# Usage pattern b): Pass in `:event_stream_handler` for #converse_stream
|
780
|
+
#
|
781
|
+
# 1) Create a Aws::BedrockRuntime::EventStreams::ConverseStreamOutput object
|
782
|
+
# Example for registering callbacks with specific events
|
783
|
+
#
|
784
|
+
# handler = Aws::BedrockRuntime::EventStreams::ConverseStreamOutput.new
|
785
|
+
# handler.on_message_start_event do |event|
|
786
|
+
# event # => Aws::BedrockRuntime::Types::messageStart
|
787
|
+
# end
|
788
|
+
# handler.on_content_block_start_event do |event|
|
789
|
+
# event # => Aws::BedrockRuntime::Types::contentBlockStart
|
790
|
+
# end
|
791
|
+
# handler.on_content_block_delta_event do |event|
|
792
|
+
# event # => Aws::BedrockRuntime::Types::contentBlockDelta
|
793
|
+
# end
|
794
|
+
# handler.on_content_block_stop_event do |event|
|
795
|
+
# event # => Aws::BedrockRuntime::Types::contentBlockStop
|
796
|
+
# end
|
797
|
+
# handler.on_message_stop_event do |event|
|
798
|
+
# event # => Aws::BedrockRuntime::Types::messageStop
|
799
|
+
# end
|
800
|
+
# handler.on_metadata_event do |event|
|
801
|
+
# event # => Aws::BedrockRuntime::Types::metadata
|
802
|
+
# end
|
803
|
+
# handler.on_internal_server_exception_event do |event|
|
804
|
+
# event # => Aws::BedrockRuntime::Types::internalServerException
|
805
|
+
# end
|
806
|
+
# handler.on_model_stream_error_exception_event do |event|
|
807
|
+
# event # => Aws::BedrockRuntime::Types::modelStreamErrorException
|
808
|
+
# end
|
809
|
+
# handler.on_validation_exception_event do |event|
|
810
|
+
# event # => Aws::BedrockRuntime::Types::validationException
|
811
|
+
# end
|
812
|
+
# handler.on_throttling_exception_event do |event|
|
813
|
+
# event # => Aws::BedrockRuntime::Types::throttlingException
|
814
|
+
# end
|
815
|
+
#
|
816
|
+
# client.converse_stream( # params input #, event_stream_handler: handler)
|
817
|
+
#
|
818
|
+
# 2) Use a Ruby Proc object
|
819
|
+
# Example for registering callbacks with specific events
|
820
|
+
#
|
821
|
+
# handler = Proc.new do |stream|
|
822
|
+
# stream.on_message_start_event do |event|
|
823
|
+
# event # => Aws::BedrockRuntime::Types::messageStart
|
824
|
+
# end
|
825
|
+
# stream.on_content_block_start_event do |event|
|
826
|
+
# event # => Aws::BedrockRuntime::Types::contentBlockStart
|
827
|
+
# end
|
828
|
+
# stream.on_content_block_delta_event do |event|
|
829
|
+
# event # => Aws::BedrockRuntime::Types::contentBlockDelta
|
830
|
+
# end
|
831
|
+
# stream.on_content_block_stop_event do |event|
|
832
|
+
# event # => Aws::BedrockRuntime::Types::contentBlockStop
|
833
|
+
# end
|
834
|
+
# stream.on_message_stop_event do |event|
|
835
|
+
# event # => Aws::BedrockRuntime::Types::messageStop
|
836
|
+
# end
|
837
|
+
# stream.on_metadata_event do |event|
|
838
|
+
# event # => Aws::BedrockRuntime::Types::metadata
|
839
|
+
# end
|
840
|
+
# stream.on_internal_server_exception_event do |event|
|
841
|
+
# event # => Aws::BedrockRuntime::Types::internalServerException
|
842
|
+
# end
|
843
|
+
# stream.on_model_stream_error_exception_event do |event|
|
844
|
+
# event # => Aws::BedrockRuntime::Types::modelStreamErrorException
|
845
|
+
# end
|
846
|
+
# stream.on_validation_exception_event do |event|
|
847
|
+
# event # => Aws::BedrockRuntime::Types::validationException
|
848
|
+
# end
|
849
|
+
# stream.on_throttling_exception_event do |event|
|
850
|
+
# event # => Aws::BedrockRuntime::Types::throttlingException
|
851
|
+
# end
|
852
|
+
# end
|
853
|
+
#
|
854
|
+
# client.converse_stream( # params input #, event_stream_handler: handler)
|
855
|
+
#
|
856
|
+
# Usage pattern c): Hybrid pattern of a) and b)
|
857
|
+
#
|
858
|
+
# handler = Aws::BedrockRuntime::EventStreams::ConverseStreamOutput.new
|
859
|
+
# handler.on_message_start_event do |event|
|
860
|
+
# event # => Aws::BedrockRuntime::Types::messageStart
|
861
|
+
# end
|
862
|
+
# handler.on_content_block_start_event do |event|
|
863
|
+
# event # => Aws::BedrockRuntime::Types::contentBlockStart
|
864
|
+
# end
|
865
|
+
# handler.on_content_block_delta_event do |event|
|
866
|
+
# event # => Aws::BedrockRuntime::Types::contentBlockDelta
|
867
|
+
# end
|
868
|
+
# handler.on_content_block_stop_event do |event|
|
869
|
+
# event # => Aws::BedrockRuntime::Types::contentBlockStop
|
870
|
+
# end
|
871
|
+
# handler.on_message_stop_event do |event|
|
872
|
+
# event # => Aws::BedrockRuntime::Types::messageStop
|
873
|
+
# end
|
874
|
+
# handler.on_metadata_event do |event|
|
875
|
+
# event # => Aws::BedrockRuntime::Types::metadata
|
876
|
+
# end
|
877
|
+
# handler.on_internal_server_exception_event do |event|
|
878
|
+
# event # => Aws::BedrockRuntime::Types::internalServerException
|
879
|
+
# end
|
880
|
+
# handler.on_model_stream_error_exception_event do |event|
|
881
|
+
# event # => Aws::BedrockRuntime::Types::modelStreamErrorException
|
882
|
+
# end
|
883
|
+
# handler.on_validation_exception_event do |event|
|
884
|
+
# event # => Aws::BedrockRuntime::Types::validationException
|
885
|
+
# end
|
886
|
+
# handler.on_throttling_exception_event do |event|
|
887
|
+
# event # => Aws::BedrockRuntime::Types::throttlingException
|
888
|
+
# end
|
889
|
+
#
|
890
|
+
# client.converse_stream( # params input #, event_stream_handler: handler) do |stream|
|
891
|
+
# stream.on_error_event do |event|
|
892
|
+
# # catch unmodeled error event in the stream
|
893
|
+
# raise event
|
894
|
+
# # => Aws::Errors::EventError
|
895
|
+
# # event.event_type => :error
|
896
|
+
# # event.error_code => String
|
897
|
+
# # event.error_message => String
|
898
|
+
# end
|
899
|
+
# end
|
900
|
+
#
|
901
|
+
# You can also iterate through events after the response complete.
|
902
|
+
#
|
903
|
+
# Events are available at resp.stream # => Enumerator
|
904
|
+
# For parameter input example, please refer to following request syntax
|
905
|
+
#
|
906
|
+
# @example Request syntax with placeholder values
|
907
|
+
#
|
908
|
+
# resp = client.converse_stream({
|
909
|
+
# model_id: "ConversationalModelId", # required
|
910
|
+
# messages: [ # required
|
911
|
+
# {
|
912
|
+
# role: "user", # required, accepts user, assistant
|
913
|
+
# content: [ # required
|
914
|
+
# {
|
915
|
+
# text: "String",
|
916
|
+
# image: {
|
917
|
+
# format: "png", # required, accepts png, jpeg, gif, webp
|
918
|
+
# source: { # required
|
919
|
+
# bytes: "data",
|
920
|
+
# },
|
921
|
+
# },
|
922
|
+
# tool_use: {
|
923
|
+
# tool_use_id: "ToolUseId", # required
|
924
|
+
# name: "ToolName", # required
|
925
|
+
# input: { # required
|
926
|
+
# },
|
927
|
+
# },
|
928
|
+
# tool_result: {
|
929
|
+
# tool_use_id: "ToolUseId", # required
|
930
|
+
# content: [ # required
|
931
|
+
# {
|
932
|
+
# json: {
|
933
|
+
# },
|
934
|
+
# text: "String",
|
935
|
+
# image: {
|
936
|
+
# format: "png", # required, accepts png, jpeg, gif, webp
|
937
|
+
# source: { # required
|
938
|
+
# bytes: "data",
|
939
|
+
# },
|
940
|
+
# },
|
941
|
+
# },
|
942
|
+
# ],
|
943
|
+
# status: "success", # accepts success, error
|
944
|
+
# },
|
945
|
+
# },
|
946
|
+
# ],
|
947
|
+
# },
|
948
|
+
# ],
|
949
|
+
# system: [
|
950
|
+
# {
|
951
|
+
# text: "NonEmptyString",
|
952
|
+
# },
|
953
|
+
# ],
|
954
|
+
# inference_config: {
|
955
|
+
# max_tokens: 1,
|
956
|
+
# temperature: 1.0,
|
957
|
+
# top_p: 1.0,
|
958
|
+
# stop_sequences: ["NonEmptyString"],
|
959
|
+
# },
|
960
|
+
# tool_config: {
|
961
|
+
# tools: [ # required
|
962
|
+
# {
|
963
|
+
# tool_spec: {
|
964
|
+
# name: "ToolName", # required
|
965
|
+
# description: "NonEmptyString",
|
966
|
+
# input_schema: { # required
|
967
|
+
# json: {
|
968
|
+
# },
|
969
|
+
# },
|
970
|
+
# },
|
971
|
+
# },
|
972
|
+
# ],
|
973
|
+
# tool_choice: {
|
974
|
+
# auto: {
|
975
|
+
# },
|
976
|
+
# any: {
|
977
|
+
# },
|
978
|
+
# tool: {
|
979
|
+
# name: "ToolName", # required
|
980
|
+
# },
|
981
|
+
# },
|
982
|
+
# },
|
983
|
+
# additional_model_request_fields: {
|
984
|
+
# },
|
985
|
+
# additional_model_response_field_paths: ["ConverseStreamRequestAdditionalModelResponseFieldPathsListMemberString"],
|
986
|
+
# })
|
987
|
+
#
|
988
|
+
# @example Response structure
|
989
|
+
#
|
990
|
+
# All events are available at resp.stream:
|
991
|
+
# resp.stream #=> Enumerator
|
992
|
+
# resp.stream.event_types #=> [:message_start, :content_block_start, :content_block_delta, :content_block_stop, :message_stop, :metadata, :internal_server_exception, :model_stream_error_exception, :validation_exception, :throttling_exception]
|
993
|
+
#
|
994
|
+
# For :message_start event available at #on_message_start_event callback and response eventstream enumerator:
|
995
|
+
# event.role #=> String, one of "user", "assistant"
|
996
|
+
#
|
997
|
+
# For :content_block_start event available at #on_content_block_start_event callback and response eventstream enumerator:
|
998
|
+
# event.start.tool_use.tool_use_id #=> String
|
999
|
+
# event.start.tool_use.name #=> String
|
1000
|
+
# event.content_block_index #=> Integer
|
1001
|
+
#
|
1002
|
+
# For :content_block_delta event available at #on_content_block_delta_event callback and response eventstream enumerator:
|
1003
|
+
# event.delta.text #=> String
|
1004
|
+
# event.delta.tool_use.input #=> String
|
1005
|
+
# event.content_block_index #=> Integer
|
1006
|
+
#
|
1007
|
+
# For :content_block_stop event available at #on_content_block_stop_event callback and response eventstream enumerator:
|
1008
|
+
# event.content_block_index #=> Integer
|
1009
|
+
#
|
1010
|
+
# For :message_stop event available at #on_message_stop_event callback and response eventstream enumerator:
|
1011
|
+
# event.stop_reason #=> String, one of "end_turn", "tool_use", "max_tokens", "stop_sequence", "content_filtered"
|
1012
|
+
#
|
1013
|
+
# For :metadata event available at #on_metadata_event callback and response eventstream enumerator:
|
1014
|
+
# event.usage.input_tokens #=> Integer
|
1015
|
+
# event.usage.output_tokens #=> Integer
|
1016
|
+
# event.usage.total_tokens #=> Integer
|
1017
|
+
# event.metrics.latency_ms #=> Integer
|
1018
|
+
#
|
1019
|
+
# For :internal_server_exception event available at #on_internal_server_exception_event callback and response eventstream enumerator:
|
1020
|
+
# event.message #=> String
|
1021
|
+
#
|
1022
|
+
# For :model_stream_error_exception event available at #on_model_stream_error_exception_event callback and response eventstream enumerator:
|
1023
|
+
# event.message #=> String
|
1024
|
+
# event.original_status_code #=> Integer
|
1025
|
+
# event.original_message #=> String
|
1026
|
+
#
|
1027
|
+
# For :validation_exception event available at #on_validation_exception_event callback and response eventstream enumerator:
|
1028
|
+
# event.message #=> String
|
1029
|
+
#
|
1030
|
+
# For :throttling_exception event available at #on_throttling_exception_event callback and response eventstream enumerator:
|
1031
|
+
# event.message #=> String
|
1032
|
+
#
|
1033
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-runtime-2023-09-30/ConverseStream AWS API Documentation
|
1034
|
+
#
|
1035
|
+
# @overload converse_stream(params = {})
|
1036
|
+
# @param [Hash] params ({})
|
1037
|
+
def converse_stream(params = {}, options = {}, &block)
|
1038
|
+
params = params.dup
|
1039
|
+
event_stream_handler = case handler = params.delete(:event_stream_handler)
|
1040
|
+
when EventStreams::ConverseStreamOutput then handler
|
1041
|
+
when Proc then EventStreams::ConverseStreamOutput.new.tap(&handler)
|
1042
|
+
when nil then EventStreams::ConverseStreamOutput.new
|
1043
|
+
else
|
1044
|
+
msg = "expected :event_stream_handler to be a block or "\
|
1045
|
+
"instance of Aws::BedrockRuntime::EventStreams::ConverseStreamOutput"\
|
1046
|
+
", got `#{handler.inspect}` instead"
|
1047
|
+
raise ArgumentError, msg
|
1048
|
+
end
|
1049
|
+
|
1050
|
+
yield(event_stream_handler) if block_given?
|
1051
|
+
|
1052
|
+
req = build_request(:converse_stream, params)
|
1053
|
+
|
1054
|
+
req.context[:event_stream_handler] = event_stream_handler
|
1055
|
+
req.handlers.add(Aws::Binary::DecodeHandler, priority: 95)
|
1056
|
+
|
1057
|
+
req.send_request(options, &block)
|
1058
|
+
end
|
1059
|
+
|
427
1060
|
# Invokes the specified Amazon Bedrock model to run inference using the
|
428
1061
|
# prompt and inference parameters provided in the request body. You use
|
429
1062
|
# model inference to generate text, images, and embeddings.
|
@@ -831,7 +1464,7 @@ module Aws::BedrockRuntime
|
|
831
1464
|
params: params,
|
832
1465
|
config: config)
|
833
1466
|
context[:gem_name] = 'aws-sdk-bedrockruntime'
|
834
|
-
context[:gem_version] = '1.
|
1467
|
+
context[:gem_version] = '1.9.0'
|
835
1468
|
Seahorse::Client::Request.new(handlers, context)
|
836
1469
|
end
|
837
1470
|
|