anthropic 0.4.0 → 1.0.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/.ignore +2 -0
- data/CHANGELOG.md +639 -24
- data/README.md +255 -274
- data/SECURITY.md +27 -0
- data/lib/anthropic/bedrock.rb +5 -0
- data/lib/anthropic/client.rb +90 -95
- data/lib/anthropic/errors.rb +192 -0
- data/lib/anthropic/file_part.rb +55 -0
- data/lib/anthropic/helpers/bedrock/client.rb +259 -0
- data/lib/anthropic/helpers/vertex/client.rb +218 -0
- data/lib/anthropic/internal/jsonl_stream.rb +26 -0
- data/lib/anthropic/internal/page.rb +99 -0
- data/lib/anthropic/internal/stream.rb +58 -0
- data/lib/anthropic/internal/transport/base_client.rb +558 -0
- data/lib/anthropic/internal/transport/pooled_net_requester.rb +209 -0
- data/lib/anthropic/internal/type/array_of.rb +162 -0
- data/lib/anthropic/internal/type/base_model.rb +481 -0
- data/lib/anthropic/internal/type/base_page.rb +55 -0
- data/lib/anthropic/internal/type/base_stream.rb +90 -0
- data/lib/anthropic/internal/type/boolean.rb +71 -0
- data/lib/anthropic/internal/type/converter.rb +292 -0
- data/lib/anthropic/internal/type/enum.rb +145 -0
- data/lib/anthropic/internal/type/file_input.rb +103 -0
- data/lib/anthropic/internal/type/hash_of.rb +182 -0
- data/lib/anthropic/internal/type/request_parameters.rb +42 -0
- data/lib/anthropic/internal/type/union.rb +252 -0
- data/lib/anthropic/internal/type/unknown.rb +75 -0
- data/lib/anthropic/internal/util.rb +907 -0
- data/lib/anthropic/internal.rb +20 -0
- data/lib/anthropic/models/anthropic_beta.rb +47 -0
- data/lib/anthropic/models/api_error_object.rb +21 -0
- data/lib/anthropic/models/authentication_error.rb +21 -0
- data/lib/anthropic/models/base64_image_source.rb +40 -0
- data/lib/anthropic/models/base64_pdf_source.rb +27 -0
- data/lib/anthropic/models/beta/beta_base64_image_source.rb +44 -0
- data/lib/anthropic/models/beta/beta_base64_pdf_block.rb +73 -0
- data/lib/anthropic/models/beta/beta_base64_pdf_source.rb +31 -0
- data/lib/anthropic/models/beta/beta_cache_control_ephemeral.rb +19 -0
- data/lib/anthropic/models/beta/beta_citation_char_location.rb +49 -0
- data/lib/anthropic/models/beta/beta_citation_char_location_param.rb +49 -0
- data/lib/anthropic/models/beta/beta_citation_content_block_location.rb +49 -0
- data/lib/anthropic/models/beta/beta_citation_content_block_location_param.rb +49 -0
- data/lib/anthropic/models/beta/beta_citation_page_location.rb +49 -0
- data/lib/anthropic/models/beta/beta_citation_page_location_param.rb +49 -0
- data/lib/anthropic/models/beta/beta_citation_web_search_result_location_param.rb +43 -0
- data/lib/anthropic/models/beta/beta_citations_config_param.rb +19 -0
- data/lib/anthropic/models/beta/beta_citations_delta.rb +43 -0
- data/lib/anthropic/models/beta/beta_citations_web_search_result_location.rb +43 -0
- data/lib/anthropic/models/beta/beta_content_block.rb +30 -0
- data/lib/anthropic/models/beta/beta_content_block_param.rb +36 -0
- data/lib/anthropic/models/beta/beta_content_block_source.rb +41 -0
- data/lib/anthropic/models/beta/beta_content_block_source_content.rb +22 -0
- data/lib/anthropic/models/beta/beta_image_block_param.rb +48 -0
- data/lib/anthropic/models/beta/beta_input_json_delta.rb +25 -0
- data/lib/anthropic/models/beta/beta_message.rb +148 -0
- data/lib/anthropic/models/beta/beta_message_delta_usage.rb +52 -0
- data/lib/anthropic/models/beta/beta_message_param.rb +52 -0
- data/lib/anthropic/models/beta/beta_message_tokens_count.rb +25 -0
- data/lib/anthropic/models/beta/beta_metadata.rb +27 -0
- data/lib/anthropic/models/beta/beta_model_info.rb +51 -0
- data/lib/anthropic/models/beta/beta_plain_text_source.rb +31 -0
- data/lib/anthropic/models/beta/beta_raw_content_block_delta.rb +28 -0
- data/lib/anthropic/models/beta/beta_raw_content_block_delta_event.rb +31 -0
- data/lib/anthropic/models/beta/beta_raw_content_block_start_event.rb +53 -0
- data/lib/anthropic/models/beta/beta_raw_content_block_stop_event.rb +25 -0
- data/lib/anthropic/models/beta/beta_raw_message_delta_event.rb +68 -0
- data/lib/anthropic/models/beta/beta_raw_message_start_event.rb +25 -0
- data/lib/anthropic/models/beta/beta_raw_message_stop_event.rb +19 -0
- data/lib/anthropic/models/beta/beta_raw_message_stream_event.rb +30 -0
- data/lib/anthropic/models/beta/beta_redacted_thinking_block.rb +25 -0
- data/lib/anthropic/models/beta/beta_redacted_thinking_block_param.rb +25 -0
- data/lib/anthropic/models/beta/beta_server_tool_usage.rb +20 -0
- data/lib/anthropic/models/beta/beta_server_tool_use_block.rb +37 -0
- data/lib/anthropic/models/beta/beta_server_tool_use_block_param.rb +48 -0
- data/lib/anthropic/models/beta/beta_signature_delta.rb +25 -0
- data/lib/anthropic/models/beta/beta_stop_reason.rb +23 -0
- data/lib/anthropic/models/beta/beta_text_block.rb +43 -0
- data/lib/anthropic/models/beta/beta_text_block_param.rb +43 -0
- data/lib/anthropic/models/beta/beta_text_citation.rb +26 -0
- data/lib/anthropic/models/beta/beta_text_citation_param.rb +26 -0
- data/lib/anthropic/models/beta/beta_text_delta.rb +25 -0
- data/lib/anthropic/models/beta/beta_thinking_block.rb +31 -0
- data/lib/anthropic/models/beta/beta_thinking_block_param.rb +31 -0
- data/lib/anthropic/models/beta/beta_thinking_config_disabled.rb +19 -0
- data/lib/anthropic/models/beta/beta_thinking_config_enabled.rb +38 -0
- data/lib/anthropic/models/beta/beta_thinking_config_param.rb +31 -0
- data/lib/anthropic/models/beta/beta_thinking_delta.rb +25 -0
- data/lib/anthropic/models/beta/beta_tool.rb +96 -0
- data/lib/anthropic/models/beta/beta_tool_bash_20241022.rb +40 -0
- data/lib/anthropic/models/beta/beta_tool_bash_20250124.rb +40 -0
- data/lib/anthropic/models/beta/beta_tool_choice.rb +32 -0
- data/lib/anthropic/models/beta/beta_tool_choice_any.rb +35 -0
- data/lib/anthropic/models/beta/beta_tool_choice_auto.rb +35 -0
- data/lib/anthropic/models/beta/beta_tool_choice_none.rb +21 -0
- data/lib/anthropic/models/beta/beta_tool_choice_tool.rb +43 -0
- data/lib/anthropic/models/beta/beta_tool_computer_use_20241022.rb +64 -0
- data/lib/anthropic/models/beta/beta_tool_computer_use_20250124.rb +64 -0
- data/lib/anthropic/models/beta/beta_tool_result_block_param.rb +79 -0
- data/lib/anthropic/models/beta/beta_tool_text_editor_20241022.rb +40 -0
- data/lib/anthropic/models/beta/beta_tool_text_editor_20250124.rb +40 -0
- data/lib/anthropic/models/beta/beta_tool_union.rb +32 -0
- data/lib/anthropic/models/beta/beta_tool_use_block.rb +37 -0
- data/lib/anthropic/models/beta/beta_tool_use_block_param.rb +48 -0
- data/lib/anthropic/models/beta/beta_url_image_source.rb +25 -0
- data/lib/anthropic/models/beta/beta_url_pdf_source.rb +25 -0
- data/lib/anthropic/models/beta/beta_usage.rb +52 -0
- data/lib/anthropic/models/beta/beta_web_search_result_block.rb +43 -0
- data/lib/anthropic/models/beta/beta_web_search_result_block_param.rb +43 -0
- data/lib/anthropic/models/beta/beta_web_search_tool_20250305.rb +126 -0
- data/lib/anthropic/models/beta/beta_web_search_tool_request_error.rb +39 -0
- data/lib/anthropic/models/beta/beta_web_search_tool_result_block.rb +31 -0
- data/lib/anthropic/models/beta/beta_web_search_tool_result_block_content.rb +24 -0
- data/lib/anthropic/models/beta/beta_web_search_tool_result_block_param.rb +41 -0
- data/lib/anthropic/models/beta/beta_web_search_tool_result_block_param_content.rb +26 -0
- data/lib/anthropic/models/beta/beta_web_search_tool_result_error.rb +39 -0
- data/lib/anthropic/models/beta/message_count_tokens_params.rb +292 -0
- data/lib/anthropic/models/beta/message_create_params.rb +351 -0
- data/lib/anthropic/models/beta/messages/batch_cancel_params.rb +26 -0
- data/lib/anthropic/models/beta/messages/batch_create_params.rb +424 -0
- data/lib/anthropic/models/beta/messages/batch_delete_params.rb +26 -0
- data/lib/anthropic/models/beta/messages/batch_list_params.rb +57 -0
- data/lib/anthropic/models/beta/messages/batch_results_params.rb +26 -0
- data/lib/anthropic/models/beta/messages/batch_retrieve_params.rb +26 -0
- data/lib/anthropic/models/beta/messages/beta_deleted_message_batch.rb +34 -0
- data/lib/anthropic/models/beta/messages/beta_message_batch.rb +133 -0
- data/lib/anthropic/models/beta/messages/beta_message_batch_canceled_result.rb +19 -0
- data/lib/anthropic/models/beta/messages/beta_message_batch_errored_result.rb +25 -0
- data/lib/anthropic/models/beta/messages/beta_message_batch_expired_result.rb +19 -0
- data/lib/anthropic/models/beta/messages/beta_message_batch_individual_response.rb +43 -0
- data/lib/anthropic/models/beta/messages/beta_message_batch_request_counts.rb +63 -0
- data/lib/anthropic/models/beta/messages/beta_message_batch_result.rb +31 -0
- data/lib/anthropic/models/beta/messages/beta_message_batch_succeeded_result.rb +25 -0
- data/lib/anthropic/models/beta/model_list_params.rb +55 -0
- data/lib/anthropic/models/beta/model_retrieve_params.rb +24 -0
- data/lib/anthropic/models/beta_api_error.rb +21 -0
- data/lib/anthropic/models/beta_authentication_error.rb +21 -0
- data/lib/anthropic/models/beta_billing_error.rb +21 -0
- data/lib/anthropic/models/beta_error.rb +32 -0
- data/lib/anthropic/models/beta_error_response.rb +21 -0
- data/lib/anthropic/models/beta_gateway_timeout_error.rb +21 -0
- data/lib/anthropic/models/beta_invalid_request_error.rb +21 -0
- data/lib/anthropic/models/beta_not_found_error.rb +21 -0
- data/lib/anthropic/models/beta_overloaded_error.rb +21 -0
- data/lib/anthropic/models/beta_permission_error.rb +21 -0
- data/lib/anthropic/models/beta_rate_limit_error.rb +21 -0
- data/lib/anthropic/models/billing_error.rb +21 -0
- data/lib/anthropic/models/cache_control_ephemeral.rb +15 -0
- data/lib/anthropic/models/citation_char_location.rb +45 -0
- data/lib/anthropic/models/citation_char_location_param.rb +45 -0
- data/lib/anthropic/models/citation_content_block_location.rb +45 -0
- data/lib/anthropic/models/citation_content_block_location_param.rb +45 -0
- data/lib/anthropic/models/citation_page_location.rb +45 -0
- data/lib/anthropic/models/citation_page_location_param.rb +45 -0
- data/lib/anthropic/models/citation_web_search_result_location_param.rb +39 -0
- data/lib/anthropic/models/citations_config_param.rb +15 -0
- data/lib/anthropic/models/citations_delta.rb +39 -0
- data/lib/anthropic/models/citations_web_search_result_location.rb +39 -0
- data/lib/anthropic/models/completion.rb +66 -0
- data/lib/anthropic/models/completion_create_params.rb +133 -0
- data/lib/anthropic/models/content_block.rb +26 -0
- data/lib/anthropic/models/content_block_param.rb +32 -0
- data/lib/anthropic/models/content_block_source.rb +37 -0
- data/lib/anthropic/models/content_block_source_content.rb +18 -0
- data/lib/anthropic/models/document_block_param.rb +69 -0
- data/lib/anthropic/models/error_object.rb +32 -0
- data/lib/anthropic/models/error_response.rb +21 -0
- data/lib/anthropic/models/gateway_timeout_error.rb +21 -0
- data/lib/anthropic/models/image_block_param.rb +44 -0
- data/lib/anthropic/models/input_json_delta.rb +21 -0
- data/lib/anthropic/models/invalid_request_error.rb +21 -0
- data/lib/anthropic/models/message.rb +144 -0
- data/lib/anthropic/models/message_count_tokens_params.rb +254 -0
- data/lib/anthropic/models/message_count_tokens_tool.rb +20 -0
- data/lib/anthropic/models/message_create_params.rb +339 -0
- data/lib/anthropic/models/message_delta_usage.rb +48 -0
- data/lib/anthropic/models/message_param.rb +49 -0
- data/lib/anthropic/models/message_tokens_count.rb +21 -0
- data/lib/anthropic/models/messages/batch_cancel_params.rb +16 -0
- data/lib/anthropic/models/messages/batch_create_params.rb +406 -0
- data/lib/anthropic/models/messages/batch_delete_params.rb +16 -0
- data/lib/anthropic/models/messages/batch_list_params.rb +47 -0
- data/lib/anthropic/models/messages/batch_results_params.rb +16 -0
- data/lib/anthropic/models/messages/batch_retrieve_params.rb +16 -0
- data/lib/anthropic/models/messages/deleted_message_batch.rb +32 -0
- data/lib/anthropic/models/messages/message_batch.rb +130 -0
- data/lib/anthropic/models/messages/message_batch_canceled_result.rb +19 -0
- data/lib/anthropic/models/messages/message_batch_errored_result.rb +25 -0
- data/lib/anthropic/models/messages/message_batch_expired_result.rb +19 -0
- data/lib/anthropic/models/messages/message_batch_individual_response.rb +42 -0
- data/lib/anthropic/models/messages/message_batch_request_counts.rb +63 -0
- data/lib/anthropic/models/messages/message_batch_result.rb +31 -0
- data/lib/anthropic/models/messages/message_batch_succeeded_result.rb +25 -0
- data/lib/anthropic/models/metadata.rb +23 -0
- data/lib/anthropic/models/model.rb +96 -0
- data/lib/anthropic/models/model_info.rb +47 -0
- data/lib/anthropic/models/model_list_params.rb +53 -0
- data/lib/anthropic/models/model_retrieve_params.rb +22 -0
- data/lib/anthropic/models/not_found_error.rb +21 -0
- data/lib/anthropic/models/overloaded_error.rb +21 -0
- data/lib/anthropic/models/permission_error.rb +21 -0
- data/lib/anthropic/models/plain_text_source.rb +27 -0
- data/lib/anthropic/models/rate_limit_error.rb +21 -0
- data/lib/anthropic/models/raw_content_block_delta.rb +24 -0
- data/lib/anthropic/models/raw_content_block_delta_event.rb +27 -0
- data/lib/anthropic/models/raw_content_block_start_event.rb +49 -0
- data/lib/anthropic/models/raw_content_block_stop_event.rb +21 -0
- data/lib/anthropic/models/raw_message_delta_event.rb +64 -0
- data/lib/anthropic/models/raw_message_start_event.rb +21 -0
- data/lib/anthropic/models/raw_message_stop_event.rb +15 -0
- data/lib/anthropic/models/raw_message_stream_event.rb +26 -0
- data/lib/anthropic/models/redacted_thinking_block.rb +21 -0
- data/lib/anthropic/models/redacted_thinking_block_param.rb +21 -0
- data/lib/anthropic/models/server_tool_usage.rb +16 -0
- data/lib/anthropic/models/server_tool_use_block.rb +33 -0
- data/lib/anthropic/models/server_tool_use_block_param.rb +44 -0
- data/lib/anthropic/models/signature_delta.rb +21 -0
- data/lib/anthropic/models/stop_reason.rb +19 -0
- data/lib/anthropic/models/text_block.rb +41 -0
- data/lib/anthropic/models/text_block_param.rb +39 -0
- data/lib/anthropic/models/text_citation.rb +22 -0
- data/lib/anthropic/models/text_citation_param.rb +22 -0
- data/lib/anthropic/models/text_delta.rb +21 -0
- data/lib/anthropic/models/thinking_block.rb +27 -0
- data/lib/anthropic/models/thinking_block_param.rb +27 -0
- data/lib/anthropic/models/thinking_config_disabled.rb +15 -0
- data/lib/anthropic/models/thinking_config_enabled.rb +34 -0
- data/lib/anthropic/models/thinking_config_param.rb +27 -0
- data/lib/anthropic/models/thinking_delta.rb +21 -0
- data/lib/anthropic/models/tool.rb +92 -0
- data/lib/anthropic/models/tool_bash_20250124.rb +36 -0
- data/lib/anthropic/models/tool_choice.rb +28 -0
- data/lib/anthropic/models/tool_choice_any.rb +31 -0
- data/lib/anthropic/models/tool_choice_auto.rb +31 -0
- data/lib/anthropic/models/tool_choice_none.rb +17 -0
- data/lib/anthropic/models/tool_choice_tool.rb +39 -0
- data/lib/anthropic/models/tool_result_block_param.rb +73 -0
- data/lib/anthropic/models/tool_text_editor_20250124.rb +36 -0
- data/lib/anthropic/models/tool_union.rb +20 -0
- data/lib/anthropic/models/tool_use_block.rb +33 -0
- data/lib/anthropic/models/tool_use_block_param.rb +44 -0
- data/lib/anthropic/models/url_image_source.rb +21 -0
- data/lib/anthropic/models/url_pdf_source.rb +21 -0
- data/lib/anthropic/models/usage.rb +48 -0
- data/lib/anthropic/models/web_search_result_block.rb +39 -0
- data/lib/anthropic/models/web_search_result_block_param.rb +39 -0
- data/lib/anthropic/models/web_search_tool_20250305.rb +122 -0
- data/lib/anthropic/models/web_search_tool_request_error.rb +35 -0
- data/lib/anthropic/models/web_search_tool_result_block.rb +27 -0
- data/lib/anthropic/models/web_search_tool_result_block_content.rb +19 -0
- data/lib/anthropic/models/web_search_tool_result_block_param.rb +37 -0
- data/lib/anthropic/models/web_search_tool_result_block_param_content.rb +20 -0
- data/lib/anthropic/models/web_search_tool_result_error.rb +35 -0
- data/lib/anthropic/models.rb +261 -0
- data/lib/anthropic/request_options.rb +77 -0
- data/lib/anthropic/resources/beta/messages/batches.rb +218 -0
- data/lib/anthropic/resources/beta/messages.rb +200 -0
- data/lib/anthropic/resources/beta/models.rb +80 -0
- data/lib/anthropic/resources/beta.rb +22 -0
- data/lib/anthropic/resources/completions.rb +132 -0
- data/lib/anthropic/resources/messages/batches.rb +193 -0
- data/lib/anthropic/resources/messages.rb +184 -0
- data/lib/anthropic/resources/models.rb +78 -0
- data/lib/anthropic/version.rb +3 -1
- data/lib/anthropic/vertex.rb +5 -0
- data/lib/anthropic.rb +286 -68
- data/manifest.yaml +15 -0
- data/rbi/anthropic/bedrock.rbi +5 -0
- data/rbi/anthropic/client.rbi +74 -0
- data/rbi/anthropic/errors.rbi +162 -0
- data/rbi/anthropic/file_part.rbi +37 -0
- data/rbi/anthropic/helpers/bedrock/client.rbi +82 -0
- data/rbi/anthropic/helpers/vertex/client.rbi +58 -0
- data/rbi/anthropic/internal/jsonl_stream.rbi +17 -0
- data/rbi/anthropic/internal/page.rbi +28 -0
- data/rbi/anthropic/internal/stream.rbi +20 -0
- data/rbi/anthropic/internal/transport/base_client.rbi +310 -0
- data/rbi/anthropic/internal/transport/pooled_net_requester.rbi +79 -0
- data/rbi/anthropic/internal/type/array_of.rbi +104 -0
- data/rbi/anthropic/internal/type/base_model.rbi +304 -0
- data/rbi/anthropic/internal/type/base_page.rbi +42 -0
- data/rbi/anthropic/internal/type/base_stream.rbi +68 -0
- data/rbi/anthropic/internal/type/boolean.rbi +56 -0
- data/rbi/anthropic/internal/type/converter.rbi +162 -0
- data/rbi/anthropic/internal/type/enum.rbi +82 -0
- data/rbi/anthropic/internal/type/file_input.rbi +59 -0
- data/rbi/anthropic/internal/type/hash_of.rbi +104 -0
- data/rbi/anthropic/internal/type/request_parameters.rbi +29 -0
- data/rbi/anthropic/internal/type/union.rbi +116 -0
- data/rbi/anthropic/internal/type/unknown.rbi +56 -0
- data/rbi/anthropic/internal/util.rbi +485 -0
- data/rbi/anthropic/internal.rbi +18 -0
- data/rbi/anthropic/models/anthropic_beta.rbi +54 -0
- data/rbi/anthropic/models/api_error_object.rbi +26 -0
- data/rbi/anthropic/models/authentication_error.rbi +26 -0
- data/rbi/anthropic/models/base64_image_source.rbi +82 -0
- data/rbi/anthropic/models/base64_pdf_source.rbi +35 -0
- data/rbi/anthropic/models/beta/beta_base64_image_source.rbi +95 -0
- data/rbi/anthropic/models/beta/beta_base64_pdf_block.rbi +134 -0
- data/rbi/anthropic/models/beta/beta_base64_pdf_source.rbi +42 -0
- data/rbi/anthropic/models/beta/beta_cache_control_ephemeral.rbi +30 -0
- data/rbi/anthropic/models/beta/beta_citation_char_location.rbi +72 -0
- data/rbi/anthropic/models/beta/beta_citation_char_location_param.rbi +72 -0
- data/rbi/anthropic/models/beta/beta_citation_content_block_location.rbi +72 -0
- data/rbi/anthropic/models/beta/beta_citation_content_block_location_param.rbi +73 -0
- data/rbi/anthropic/models/beta/beta_citation_page_location.rbi +72 -0
- data/rbi/anthropic/models/beta/beta_citation_page_location_param.rbi +72 -0
- data/rbi/anthropic/models/beta/beta_citation_web_search_result_location_param.rbi +67 -0
- data/rbi/anthropic/models/beta/beta_citations_config_param.rbi +33 -0
- data/rbi/anthropic/models/beta/beta_citations_delta.rbi +73 -0
- data/rbi/anthropic/models/beta/beta_citations_web_search_result_location.rbi +67 -0
- data/rbi/anthropic/models/beta/beta_content_block.rbi +33 -0
- data/rbi/anthropic/models/beta/beta_content_block_param.rbi +36 -0
- data/rbi/anthropic/models/beta/beta_content_block_source.rbi +80 -0
- data/rbi/anthropic/models/beta/beta_content_block_source_content.rbi +29 -0
- data/rbi/anthropic/models/beta/beta_image_block_param.rbi +101 -0
- data/rbi/anthropic/models/beta/beta_input_json_delta.rbi +35 -0
- data/rbi/anthropic/models/beta/beta_message.rbi +245 -0
- data/rbi/anthropic/models/beta/beta_message_delta_usage.rbi +85 -0
- data/rbi/anthropic/models/beta/beta_message_param.rbi +99 -0
- data/rbi/anthropic/models/beta/beta_message_tokens_count.rbi +36 -0
- data/rbi/anthropic/models/beta/beta_metadata.rbi +39 -0
- data/rbi/anthropic/models/beta/beta_model_info.rbi +66 -0
- data/rbi/anthropic/models/beta/beta_plain_text_source.rbi +42 -0
- data/rbi/anthropic/models/beta/beta_raw_content_block_delta.rbi +32 -0
- data/rbi/anthropic/models/beta/beta_raw_content_block_delta_event.rbi +57 -0
- data/rbi/anthropic/models/beta/beta_raw_content_block_start_event.rbi +89 -0
- data/rbi/anthropic/models/beta/beta_raw_content_block_stop_event.rbi +33 -0
- data/rbi/anthropic/models/beta/beta_raw_message_delta_event.rbi +135 -0
- data/rbi/anthropic/models/beta/beta_raw_message_start_event.rbi +45 -0
- data/rbi/anthropic/models/beta/beta_raw_message_stop_event.rbi +30 -0
- data/rbi/anthropic/models/beta/beta_raw_message_stream_event.rbi +33 -0
- data/rbi/anthropic/models/beta/beta_redacted_thinking_block.rbi +33 -0
- data/rbi/anthropic/models/beta/beta_redacted_thinking_block_param.rbi +33 -0
- data/rbi/anthropic/models/beta/beta_server_tool_usage.rbi +34 -0
- data/rbi/anthropic/models/beta/beta_server_tool_use_block.rbi +50 -0
- data/rbi/anthropic/models/beta/beta_server_tool_use_block_param.rbi +78 -0
- data/rbi/anthropic/models/beta/beta_signature_delta.rbi +35 -0
- data/rbi/anthropic/models/beta/beta_stop_reason.rbi +37 -0
- data/rbi/anthropic/models/beta/beta_text_block.rbi +78 -0
- data/rbi/anthropic/models/beta/beta_text_block_param.rbi +105 -0
- data/rbi/anthropic/models/beta/beta_text_citation.rbi +31 -0
- data/rbi/anthropic/models/beta/beta_text_citation_param.rbi +31 -0
- data/rbi/anthropic/models/beta/beta_text_delta.rbi +30 -0
- data/rbi/anthropic/models/beta/beta_thinking_block.rbi +44 -0
- data/rbi/anthropic/models/beta/beta_thinking_block_param.rbi +44 -0
- data/rbi/anthropic/models/beta/beta_thinking_config_disabled.rbi +30 -0
- data/rbi/anthropic/models/beta/beta_thinking_config_enabled.rbi +56 -0
- data/rbi/anthropic/models/beta/beta_thinking_config_param.rbi +38 -0
- data/rbi/anthropic/models/beta/beta_thinking_delta.rbi +33 -0
- data/rbi/anthropic/models/beta/beta_tool.rbi +165 -0
- data/rbi/anthropic/models/beta/beta_tool_bash_20241022.rbi +72 -0
- data/rbi/anthropic/models/beta/beta_tool_bash_20250124.rbi +72 -0
- data/rbi/anthropic/models/beta/beta_tool_choice.rbi +31 -0
- data/rbi/anthropic/models/beta/beta_tool_choice_any.rbi +56 -0
- data/rbi/anthropic/models/beta/beta_tool_choice_auto.rbi +56 -0
- data/rbi/anthropic/models/beta/beta_tool_choice_none.rbi +31 -0
- data/rbi/anthropic/models/beta/beta_tool_choice_tool.rbi +68 -0
- data/rbi/anthropic/models/beta/beta_tool_computer_use_20241022.rbi +96 -0
- data/rbi/anthropic/models/beta/beta_tool_computer_use_20250124.rbi +96 -0
- data/rbi/anthropic/models/beta/beta_tool_result_block_param.rbi +152 -0
- data/rbi/anthropic/models/beta/beta_tool_text_editor_20241022.rbi +72 -0
- data/rbi/anthropic/models/beta/beta_tool_text_editor_20250124.rbi +72 -0
- data/rbi/anthropic/models/beta/beta_tool_union.rbi +33 -0
- data/rbi/anthropic/models/beta/beta_tool_use_block.rbi +50 -0
- data/rbi/anthropic/models/beta/beta_tool_use_block_param.rbi +78 -0
- data/rbi/anthropic/models/beta/beta_url_image_source.rbi +33 -0
- data/rbi/anthropic/models/beta/beta_url_pdf_source.rbi +33 -0
- data/rbi/anthropic/models/beta/beta_usage.rbi +82 -0
- data/rbi/anthropic/models/beta/beta_web_search_result_block.rbi +66 -0
- data/rbi/anthropic/models/beta/beta_web_search_result_block_param.rbi +66 -0
- data/rbi/anthropic/models/beta/beta_web_search_tool_20250305.rbi +201 -0
- data/rbi/anthropic/models/beta/beta_web_search_tool_request_error.rbi +100 -0
- data/rbi/anthropic/models/beta/beta_web_search_tool_result_block.rbi +59 -0
- data/rbi/anthropic/models/beta/beta_web_search_tool_result_block_content.rbi +40 -0
- data/rbi/anthropic/models/beta/beta_web_search_tool_result_block_param.rbi +89 -0
- data/rbi/anthropic/models/beta/beta_web_search_tool_result_block_param_content.rbi +40 -0
- data/rbi/anthropic/models/beta/beta_web_search_tool_result_error.rbi +100 -0
- data/rbi/anthropic/models/beta/message_count_tokens_params.rbi +649 -0
- data/rbi/anthropic/models/beta/message_create_params.rbi +748 -0
- data/rbi/anthropic/models/beta/messages/batch_cancel_params.rbi +65 -0
- data/rbi/anthropic/models/beta/messages/batch_create_params.rbi +897 -0
- data/rbi/anthropic/models/beta/messages/batch_delete_params.rbi +65 -0
- data/rbi/anthropic/models/beta/messages/batch_list_params.rbi +106 -0
- data/rbi/anthropic/models/beta/messages/batch_results_params.rbi +65 -0
- data/rbi/anthropic/models/beta/messages/batch_retrieve_params.rbi +65 -0
- data/rbi/anthropic/models/beta/messages/beta_deleted_message_batch.rbi +44 -0
- data/rbi/anthropic/models/beta/messages/beta_message_batch.rbi +214 -0
- data/rbi/anthropic/models/beta/messages/beta_message_batch_canceled_result.rbi +30 -0
- data/rbi/anthropic/models/beta/messages/beta_message_batch_errored_result.rbi +45 -0
- data/rbi/anthropic/models/beta/messages/beta_message_batch_expired_result.rbi +30 -0
- data/rbi/anthropic/models/beta/messages/beta_message_batch_individual_response.rbi +77 -0
- data/rbi/anthropic/models/beta/messages/beta_message_batch_request_counts.rbi +92 -0
- data/rbi/anthropic/models/beta/messages/beta_message_batch_result.rbi +38 -0
- data/rbi/anthropic/models/beta/messages/beta_message_batch_succeeded_result.rbi +45 -0
- data/rbi/anthropic/models/beta/model_list_params.rbi +103 -0
- data/rbi/anthropic/models/beta/model_retrieve_params.rbi +62 -0
- data/rbi/anthropic/models/beta_api_error.rbi +26 -0
- data/rbi/anthropic/models/beta_authentication_error.rbi +29 -0
- data/rbi/anthropic/models/beta_billing_error.rbi +26 -0
- data/rbi/anthropic/models/beta_error.rbi +28 -0
- data/rbi/anthropic/models/beta_error_response.rbi +46 -0
- data/rbi/anthropic/models/beta_gateway_timeout_error.rbi +29 -0
- data/rbi/anthropic/models/beta_invalid_request_error.rbi +29 -0
- data/rbi/anthropic/models/beta_not_found_error.rbi +26 -0
- data/rbi/anthropic/models/beta_overloaded_error.rbi +26 -0
- data/rbi/anthropic/models/beta_permission_error.rbi +26 -0
- data/rbi/anthropic/models/beta_rate_limit_error.rbi +26 -0
- data/rbi/anthropic/models/billing_error.rbi +26 -0
- data/rbi/anthropic/models/cache_control_ephemeral.rbi +23 -0
- data/rbi/anthropic/models/citation_char_location.rbi +65 -0
- data/rbi/anthropic/models/citation_char_location_param.rbi +68 -0
- data/rbi/anthropic/models/citation_content_block_location.rbi +68 -0
- data/rbi/anthropic/models/citation_content_block_location_param.rbi +68 -0
- data/rbi/anthropic/models/citation_page_location.rbi +65 -0
- data/rbi/anthropic/models/citation_page_location_param.rbi +68 -0
- data/rbi/anthropic/models/citation_web_search_result_location_param.rbi +62 -0
- data/rbi/anthropic/models/citations_config_param.rbi +26 -0
- data/rbi/anthropic/models/citations_delta.rbi +66 -0
- data/rbi/anthropic/models/citations_web_search_result_location.rbi +62 -0
- data/rbi/anthropic/models/completion.rbi +93 -0
- data/rbi/anthropic/models/completion_create_params.rbi +217 -0
- data/rbi/anthropic/models/content_block.rbi +25 -0
- data/rbi/anthropic/models/content_block_param.rbi +28 -0
- data/rbi/anthropic/models/content_block_source.rbi +66 -0
- data/rbi/anthropic/models/content_block_source_content.rbi +22 -0
- data/rbi/anthropic/models/document_block_param.rbi +120 -0
- data/rbi/anthropic/models/error_object.rbi +28 -0
- data/rbi/anthropic/models/error_response.rbi +46 -0
- data/rbi/anthropic/models/gateway_timeout_error.rbi +26 -0
- data/rbi/anthropic/models/image_block_param.rbi +80 -0
- data/rbi/anthropic/models/input_json_delta.rbi +28 -0
- data/rbi/anthropic/models/invalid_request_error.rbi +26 -0
- data/rbi/anthropic/models/message.rbi +236 -0
- data/rbi/anthropic/models/message_count_tokens_params.rbi +571 -0
- data/rbi/anthropic/models/message_count_tokens_tool.rbi +25 -0
- data/rbi/anthropic/models/message_create_params.rbi +697 -0
- data/rbi/anthropic/models/message_delta_usage.rbi +76 -0
- data/rbi/anthropic/models/message_param.rbi +81 -0
- data/rbi/anthropic/models/message_tokens_count.rbi +29 -0
- data/rbi/anthropic/models/messages/batch_cancel_params.rbi +32 -0
- data/rbi/anthropic/models/messages/batch_create_params.rbi +843 -0
- data/rbi/anthropic/models/messages/batch_delete_params.rbi +32 -0
- data/rbi/anthropic/models/messages/batch_list_params.rbi +81 -0
- data/rbi/anthropic/models/messages/batch_results_params.rbi +32 -0
- data/rbi/anthropic/models/messages/batch_retrieve_params.rbi +32 -0
- data/rbi/anthropic/models/messages/deleted_message_batch.rbi +42 -0
- data/rbi/anthropic/models/messages/message_batch.rbi +208 -0
- data/rbi/anthropic/models/messages/message_batch_canceled_result.rbi +30 -0
- data/rbi/anthropic/models/messages/message_batch_errored_result.rbi +42 -0
- data/rbi/anthropic/models/messages/message_batch_expired_result.rbi +30 -0
- data/rbi/anthropic/models/messages/message_batch_individual_response.rbi +74 -0
- data/rbi/anthropic/models/messages/message_batch_request_counts.rbi +92 -0
- data/rbi/anthropic/models/messages/message_batch_result.rbi +36 -0
- data/rbi/anthropic/models/messages/message_batch_succeeded_result.rbi +40 -0
- data/rbi/anthropic/models/metadata.rbi +35 -0
- data/rbi/anthropic/models/model.rbi +68 -0
- data/rbi/anthropic/models/model_info.rbi +62 -0
- data/rbi/anthropic/models/model_list_params.rbi +95 -0
- data/rbi/anthropic/models/model_retrieve_params.rbi +54 -0
- data/rbi/anthropic/models/not_found_error.rbi +26 -0
- data/rbi/anthropic/models/overloaded_error.rbi +26 -0
- data/rbi/anthropic/models/permission_error.rbi +26 -0
- data/rbi/anthropic/models/plain_text_source.rbi +35 -0
- data/rbi/anthropic/models/rate_limit_error.rbi +26 -0
- data/rbi/anthropic/models/raw_content_block_delta.rbi +26 -0
- data/rbi/anthropic/models/raw_content_block_delta_event.rbi +53 -0
- data/rbi/anthropic/models/raw_content_block_start_event.rbi +83 -0
- data/rbi/anthropic/models/raw_content_block_stop_event.rbi +29 -0
- data/rbi/anthropic/models/raw_message_delta_event.rbi +119 -0
- data/rbi/anthropic/models/raw_message_start_event.rbi +33 -0
- data/rbi/anthropic/models/raw_message_stop_event.rbi +23 -0
- data/rbi/anthropic/models/raw_message_stream_event.rbi +27 -0
- data/rbi/anthropic/models/redacted_thinking_block.rbi +26 -0
- data/rbi/anthropic/models/redacted_thinking_block_param.rbi +29 -0
- data/rbi/anthropic/models/server_tool_usage.rbi +27 -0
- data/rbi/anthropic/models/server_tool_use_block.rbi +43 -0
- data/rbi/anthropic/models/server_tool_use_block_param.rbi +71 -0
- data/rbi/anthropic/models/signature_delta.rbi +26 -0
- data/rbi/anthropic/models/stop_reason.rbi +23 -0
- data/rbi/anthropic/models/text_block.rbi +67 -0
- data/rbi/anthropic/models/text_block_param.rbi +95 -0
- data/rbi/anthropic/models/text_citation.rbi +23 -0
- data/rbi/anthropic/models/text_citation_param.rbi +23 -0
- data/rbi/anthropic/models/text_delta.rbi +26 -0
- data/rbi/anthropic/models/thinking_block.rbi +35 -0
- data/rbi/anthropic/models/thinking_block_param.rbi +35 -0
- data/rbi/anthropic/models/thinking_config_disabled.rbi +23 -0
- data/rbi/anthropic/models/thinking_config_enabled.rbi +49 -0
- data/rbi/anthropic/models/thinking_config_param.rbi +32 -0
- data/rbi/anthropic/models/thinking_delta.rbi +26 -0
- data/rbi/anthropic/models/tool.rbi +142 -0
- data/rbi/anthropic/models/tool_bash_20250124.rbi +62 -0
- data/rbi/anthropic/models/tool_choice.rbi +25 -0
- data/rbi/anthropic/models/tool_choice_any.rbi +49 -0
- data/rbi/anthropic/models/tool_choice_auto.rbi +49 -0
- data/rbi/anthropic/models/tool_choice_none.rbi +24 -0
- data/rbi/anthropic/models/tool_choice_tool.rbi +57 -0
- data/rbi/anthropic/models/tool_result_block_param.rbi +127 -0
- data/rbi/anthropic/models/tool_text_editor_20250124.rbi +62 -0
- data/rbi/anthropic/models/tool_union.rbi +23 -0
- data/rbi/anthropic/models/tool_use_block.rbi +43 -0
- data/rbi/anthropic/models/tool_use_block_param.rbi +68 -0
- data/rbi/anthropic/models/url_image_source.rbi +26 -0
- data/rbi/anthropic/models/url_pdf_source.rbi +26 -0
- data/rbi/anthropic/models/usage.rbi +74 -0
- data/rbi/anthropic/models/web_search_result_block.rbi +59 -0
- data/rbi/anthropic/models/web_search_result_block_param.rbi +62 -0
- data/rbi/anthropic/models/web_search_tool_20250305.rbi +181 -0
- data/rbi/anthropic/models/web_search_tool_request_error.rbi +88 -0
- data/rbi/anthropic/models/web_search_tool_result_block.rbi +50 -0
- data/rbi/anthropic/models/web_search_tool_result_block_content.rbi +31 -0
- data/rbi/anthropic/models/web_search_tool_result_block_param.rbi +80 -0
- data/rbi/anthropic/models/web_search_tool_result_block_param_content.rbi +33 -0
- data/rbi/anthropic/models/web_search_tool_result_error.rbi +90 -0
- data/rbi/anthropic/models.rbi +229 -0
- data/rbi/anthropic/request_options.rbi +59 -0
- data/rbi/anthropic/resources/beta/messages/batches.rbi +186 -0
- data/rbi/anthropic/resources/beta/messages.rbi +830 -0
- data/rbi/anthropic/resources/beta/models.rbi +64 -0
- data/rbi/anthropic/resources/beta.rbi +18 -0
- data/rbi/anthropic/resources/completions.rbi +199 -0
- data/rbi/anthropic/resources/messages/batches.rbi +156 -0
- data/rbi/anthropic/resources/messages.rbi +806 -0
- data/rbi/anthropic/resources/models.rbi +62 -0
- data/rbi/anthropic/version.rbi +5 -0
- data/rbi/anthropic/vertex.rbi +5 -0
- data/sig/anthropic/bedrock.rbs +3 -0
- data/sig/anthropic/client.rbs +39 -0
- data/sig/anthropic/errors.rbs +101 -0
- data/sig/anthropic/file_part.rbs +21 -0
- data/sig/anthropic/helpers/bedrock/client.rbs +43 -0
- data/sig/anthropic/helpers/vertex/client.rbs +36 -0
- data/sig/anthropic/internal/jsonl_stream.rbs +9 -0
- data/sig/anthropic/internal/page.rbs +17 -0
- data/sig/anthropic/internal/stream.rbs +9 -0
- data/sig/anthropic/internal/transport/base_client.rbs +131 -0
- data/sig/anthropic/internal/transport/pooled_net_requester.rbs +45 -0
- data/sig/anthropic/internal/type/array_of.rbs +48 -0
- data/sig/anthropic/internal/type/base_model.rbs +102 -0
- data/sig/anthropic/internal/type/base_page.rbs +24 -0
- data/sig/anthropic/internal/type/base_stream.rbs +33 -0
- data/sig/anthropic/internal/type/boolean.rbs +26 -0
- data/sig/anthropic/internal/type/converter.rbs +56 -0
- data/sig/anthropic/internal/type/enum.rbs +32 -0
- data/sig/anthropic/internal/type/file_input.rbs +25 -0
- data/sig/anthropic/internal/type/hash_of.rbs +48 -0
- data/sig/anthropic/internal/type/request_parameters.rbs +19 -0
- data/sig/anthropic/internal/type/union.rbs +52 -0
- data/sig/anthropic/internal/type/unknown.rbs +26 -0
- data/sig/anthropic/internal/util.rbs +185 -0
- data/sig/anthropic/internal.rbs +9 -0
- data/sig/anthropic/models/anthropic_beta.rbs +29 -0
- data/sig/anthropic/models/api_error_object.rbs +13 -0
- data/sig/anthropic/models/authentication_error.rbs +13 -0
- data/sig/anthropic/models/base64_image_source.rbs +38 -0
- data/sig/anthropic/models/base64_pdf_source.rbs +20 -0
- data/sig/anthropic/models/beta/beta_base64_image_source.rbs +42 -0
- data/sig/anthropic/models/beta/beta_base64_pdf_block.rbs +56 -0
- data/sig/anthropic/models/beta/beta_base64_pdf_source.rbs +24 -0
- data/sig/anthropic/models/beta/beta_cache_control_ephemeral.rbs +15 -0
- data/sig/anthropic/models/beta/beta_citation_char_location.rbs +40 -0
- data/sig/anthropic/models/beta/beta_citation_char_location_param.rbs +40 -0
- data/sig/anthropic/models/beta/beta_citation_content_block_location.rbs +40 -0
- data/sig/anthropic/models/beta/beta_citation_content_block_location_param.rbs +40 -0
- data/sig/anthropic/models/beta/beta_citation_page_location.rbs +40 -0
- data/sig/anthropic/models/beta/beta_citation_page_location_param.rbs +40 -0
- data/sig/anthropic/models/beta/beta_citation_web_search_result_location_param.rbs +36 -0
- data/sig/anthropic/models/beta/beta_citations_config_param.rbs +17 -0
- data/sig/anthropic/models/beta/beta_citations_delta.rbs +36 -0
- data/sig/anthropic/models/beta/beta_citations_web_search_result_location.rbs +36 -0
- data/sig/anthropic/models/beta/beta_content_block.rbs +21 -0
- data/sig/anthropic/models/beta/beta_content_block_param.rbs +24 -0
- data/sig/anthropic/models/beta/beta_content_block_source.rbs +36 -0
- data/sig/anthropic/models/beta/beta_content_block_source_content.rbs +17 -0
- data/sig/anthropic/models/beta/beta_image_block_param.rbs +38 -0
- data/sig/anthropic/models/beta/beta_input_json_delta.rbs +18 -0
- data/sig/anthropic/models/beta/beta_message.rbs +48 -0
- data/sig/anthropic/models/beta/beta_message_delta_usage.rbs +36 -0
- data/sig/anthropic/models/beta/beta_message_param.rbs +46 -0
- data/sig/anthropic/models/beta/beta_message_tokens_count.rbs +15 -0
- data/sig/anthropic/models/beta/beta_metadata.rbs +15 -0
- data/sig/anthropic/models/beta/beta_model_info.rbs +27 -0
- data/sig/anthropic/models/beta/beta_plain_text_source.rbs +24 -0
- data/sig/anthropic/models/beta/beta_raw_content_block_delta.rbs +20 -0
- data/sig/anthropic/models/beta/beta_raw_content_block_delta_event.rbs +28 -0
- data/sig/anthropic/models/beta/beta_raw_content_block_start_event.rbs +42 -0
- data/sig/anthropic/models/beta/beta_raw_content_block_stop_event.rbs +18 -0
- data/sig/anthropic/models/beta/beta_raw_message_delta_event.rbs +45 -0
- data/sig/anthropic/models/beta/beta_raw_message_start_event.rbs +21 -0
- data/sig/anthropic/models/beta/beta_raw_message_stop_event.rbs +15 -0
- data/sig/anthropic/models/beta/beta_raw_message_stream_event.rbs +21 -0
- data/sig/anthropic/models/beta/beta_redacted_thinking_block.rbs +18 -0
- data/sig/anthropic/models/beta/beta_redacted_thinking_block_param.rbs +18 -0
- data/sig/anthropic/models/beta/beta_server_tool_usage.rbs +15 -0
- data/sig/anthropic/models/beta/beta_server_tool_use_block.rbs +27 -0
- data/sig/anthropic/models/beta/beta_server_tool_use_block_param.rbs +36 -0
- data/sig/anthropic/models/beta/beta_signature_delta.rbs +17 -0
- data/sig/anthropic/models/beta/beta_stop_reason.rbs +28 -0
- data/sig/anthropic/models/beta/beta_text_block.rbs +28 -0
- data/sig/anthropic/models/beta/beta_text_block_param.rbs +32 -0
- data/sig/anthropic/models/beta/beta_text_citation.rbs +19 -0
- data/sig/anthropic/models/beta/beta_text_citation_param.rbs +19 -0
- data/sig/anthropic/models/beta/beta_text_delta.rbs +17 -0
- data/sig/anthropic/models/beta/beta_thinking_block.rbs +24 -0
- data/sig/anthropic/models/beta/beta_thinking_block_param.rbs +24 -0
- data/sig/anthropic/models/beta/beta_thinking_config_disabled.rbs +15 -0
- data/sig/anthropic/models/beta/beta_thinking_config_enabled.rbs +18 -0
- data/sig/anthropic/models/beta/beta_thinking_config_param.rbs +17 -0
- data/sig/anthropic/models/beta/beta_thinking_delta.rbs +17 -0
- data/sig/anthropic/models/beta/beta_tool.rbs +58 -0
- data/sig/anthropic/models/beta/beta_tool_bash_20241022.rbs +28 -0
- data/sig/anthropic/models/beta/beta_tool_bash_20250124.rbs +28 -0
- data/sig/anthropic/models/beta/beta_tool_choice.rbs +19 -0
- data/sig/anthropic/models/beta/beta_tool_choice_any.rbs +20 -0
- data/sig/anthropic/models/beta/beta_tool_choice_auto.rbs +20 -0
- data/sig/anthropic/models/beta/beta_tool_choice_none.rbs +15 -0
- data/sig/anthropic/models/beta/beta_tool_choice_tool.rbs +26 -0
- data/sig/anthropic/models/beta/beta_tool_computer_use_20241022.rbs +40 -0
- data/sig/anthropic/models/beta/beta_tool_computer_use_20250124.rbs +40 -0
- data/sig/anthropic/models/beta/beta_tool_result_block_param.rbs +64 -0
- data/sig/anthropic/models/beta/beta_tool_text_editor_20241022.rbs +28 -0
- data/sig/anthropic/models/beta/beta_tool_text_editor_20250124.rbs +28 -0
- data/sig/anthropic/models/beta/beta_tool_union.rbs +23 -0
- data/sig/anthropic/models/beta/beta_tool_use_block.rbs +27 -0
- data/sig/anthropic/models/beta/beta_tool_use_block_param.rbs +36 -0
- data/sig/anthropic/models/beta/beta_url_image_source.rbs +17 -0
- data/sig/anthropic/models/beta/beta_url_pdf_source.rbs +17 -0
- data/sig/anthropic/models/beta/beta_usage.rbs +36 -0
- data/sig/anthropic/models/beta/beta_web_search_result_block.rbs +36 -0
- data/sig/anthropic/models/beta/beta_web_search_result_block_param.rbs +36 -0
- data/sig/anthropic/models/beta/beta_web_search_tool_20250305.rbs +73 -0
- data/sig/anthropic/models/beta/beta_web_search_tool_request_error.rbs +43 -0
- data/sig/anthropic/models/beta/beta_web_search_tool_result_block.rbs +28 -0
- data/sig/anthropic/models/beta/beta_web_search_tool_result_block_content.rbs +19 -0
- data/sig/anthropic/models/beta/beta_web_search_tool_result_block_param.rbs +32 -0
- data/sig/anthropic/models/beta/beta_web_search_tool_result_block_param_content.rbs +19 -0
- data/sig/anthropic/models/beta/beta_web_search_tool_result_error.rbs +43 -0
- data/sig/anthropic/models/beta/message_count_tokens_params.rbs +93 -0
- data/sig/anthropic/models/beta/message_create_params.rbs +113 -0
- data/sig/anthropic/models/beta/messages/batch_cancel_params.rbs +27 -0
- data/sig/anthropic/models/beta/messages/batch_create_params.rbs +152 -0
- data/sig/anthropic/models/beta/messages/batch_delete_params.rbs +27 -0
- data/sig/anthropic/models/beta/messages/batch_list_params.rbs +47 -0
- data/sig/anthropic/models/beta/messages/batch_results_params.rbs +27 -0
- data/sig/anthropic/models/beta/messages/batch_retrieve_params.rbs +27 -0
- data/sig/anthropic/models/beta/messages/beta_deleted_message_batch.rbs +18 -0
- data/sig/anthropic/models/beta/messages/beta_message_batch.rbs +68 -0
- data/sig/anthropic/models/beta/messages/beta_message_batch_canceled_result.rbs +15 -0
- data/sig/anthropic/models/beta/messages/beta_message_batch_errored_result.rbs +21 -0
- data/sig/anthropic/models/beta/messages/beta_message_batch_expired_result.rbs +15 -0
- data/sig/anthropic/models/beta/messages/beta_message_batch_individual_response.rbs +24 -0
- data/sig/anthropic/models/beta/messages/beta_message_batch_request_counts.rbs +36 -0
- data/sig/anthropic/models/beta/messages/beta_message_batch_result.rbs +19 -0
- data/sig/anthropic/models/beta/messages/beta_message_batch_succeeded_result.rbs +21 -0
- data/sig/anthropic/models/beta/model_list_params.rbs +45 -0
- data/sig/anthropic/models/beta/model_retrieve_params.rbs +25 -0
- data/sig/anthropic/models/beta_api_error.rbs +13 -0
- data/sig/anthropic/models/beta_authentication_error.rbs +14 -0
- data/sig/anthropic/models/beta_billing_error.rbs +13 -0
- data/sig/anthropic/models/beta_error.rbs +20 -0
- data/sig/anthropic/models/beta_error_response.rbs +17 -0
- data/sig/anthropic/models/beta_gateway_timeout_error.rbs +13 -0
- data/sig/anthropic/models/beta_invalid_request_error.rbs +14 -0
- data/sig/anthropic/models/beta_not_found_error.rbs +13 -0
- data/sig/anthropic/models/beta_overloaded_error.rbs +13 -0
- data/sig/anthropic/models/beta_permission_error.rbs +13 -0
- data/sig/anthropic/models/beta_rate_limit_error.rbs +13 -0
- data/sig/anthropic/models/billing_error.rbs +13 -0
- data/sig/anthropic/models/cache_control_ephemeral.rbs +11 -0
- data/sig/anthropic/models/citation_char_location.rbs +36 -0
- data/sig/anthropic/models/citation_char_location_param.rbs +36 -0
- data/sig/anthropic/models/citation_content_block_location.rbs +36 -0
- data/sig/anthropic/models/citation_content_block_location_param.rbs +36 -0
- data/sig/anthropic/models/citation_page_location.rbs +36 -0
- data/sig/anthropic/models/citation_page_location_param.rbs +36 -0
- data/sig/anthropic/models/citation_web_search_result_location_param.rbs +32 -0
- data/sig/anthropic/models/citations_config_param.rbs +13 -0
- data/sig/anthropic/models/citations_delta.rbs +29 -0
- data/sig/anthropic/models/citations_web_search_result_location.rbs +32 -0
- data/sig/anthropic/models/completion.rbs +32 -0
- data/sig/anthropic/models/completion_create_params.rbs +67 -0
- data/sig/anthropic/models/content_block.rbs +17 -0
- data/sig/anthropic/models/content_block_param.rbs +20 -0
- data/sig/anthropic/models/content_block_source.rbs +28 -0
- data/sig/anthropic/models/content_block_source_content.rbs +12 -0
- data/sig/anthropic/models/document_block_param.rbs +52 -0
- data/sig/anthropic/models/error_object.rbs +20 -0
- data/sig/anthropic/models/error_response.rbs +17 -0
- data/sig/anthropic/models/gateway_timeout_error.rbs +13 -0
- data/sig/anthropic/models/image_block_param.rbs +32 -0
- data/sig/anthropic/models/input_json_delta.rbs +13 -0
- data/sig/anthropic/models/invalid_request_error.rbs +14 -0
- data/sig/anthropic/models/message.rbs +44 -0
- data/sig/anthropic/models/message_count_tokens_params.rbs +67 -0
- data/sig/anthropic/models/message_count_tokens_tool.rbs +15 -0
- data/sig/anthropic/models/message_create_params.rbs +101 -0
- data/sig/anthropic/models/message_delta_usage.rbs +32 -0
- data/sig/anthropic/models/message_param.rbs +41 -0
- data/sig/anthropic/models/message_tokens_count.rbs +11 -0
- data/sig/anthropic/models/messages/batch_cancel_params.rbs +15 -0
- data/sig/anthropic/models/messages/batch_create_params.rbs +137 -0
- data/sig/anthropic/models/messages/batch_delete_params.rbs +15 -0
- data/sig/anthropic/models/messages/batch_list_params.rbs +33 -0
- data/sig/anthropic/models/messages/batch_results_params.rbs +15 -0
- data/sig/anthropic/models/messages/batch_retrieve_params.rbs +15 -0
- data/sig/anthropic/models/messages/deleted_message_batch.rbs +15 -0
- data/sig/anthropic/models/messages/message_batch.rbs +68 -0
- data/sig/anthropic/models/messages/message_batch_canceled_result.rbs +15 -0
- data/sig/anthropic/models/messages/message_batch_errored_result.rbs +21 -0
- data/sig/anthropic/models/messages/message_batch_expired_result.rbs +15 -0
- data/sig/anthropic/models/messages/message_batch_individual_response.rbs +24 -0
- data/sig/anthropic/models/messages/message_batch_request_counts.rbs +36 -0
- data/sig/anthropic/models/messages/message_batch_result.rbs +19 -0
- data/sig/anthropic/models/messages/message_batch_succeeded_result.rbs +18 -0
- data/sig/anthropic/models/metadata.rbs +11 -0
- data/sig/anthropic/models/model.rbs +61 -0
- data/sig/anthropic/models/model_info.rbs +23 -0
- data/sig/anthropic/models/model_list_params.rbs +43 -0
- data/sig/anthropic/models/model_retrieve_params.rbs +23 -0
- data/sig/anthropic/models/not_found_error.rbs +13 -0
- data/sig/anthropic/models/overloaded_error.rbs +13 -0
- data/sig/anthropic/models/permission_error.rbs +13 -0
- data/sig/anthropic/models/plain_text_source.rbs +20 -0
- data/sig/anthropic/models/rate_limit_error.rbs +13 -0
- data/sig/anthropic/models/raw_content_block_delta.rbs +16 -0
- data/sig/anthropic/models/raw_content_block_delta_event.rbs +24 -0
- data/sig/anthropic/models/raw_content_block_start_event.rbs +38 -0
- data/sig/anthropic/models/raw_content_block_stop_event.rbs +14 -0
- data/sig/anthropic/models/raw_message_delta_event.rbs +38 -0
- data/sig/anthropic/models/raw_message_start_event.rbs +17 -0
- data/sig/anthropic/models/raw_message_stop_event.rbs +11 -0
- data/sig/anthropic/models/raw_message_stream_event.rbs +17 -0
- data/sig/anthropic/models/redacted_thinking_block.rbs +13 -0
- data/sig/anthropic/models/redacted_thinking_block_param.rbs +14 -0
- data/sig/anthropic/models/server_tool_usage.rbs +11 -0
- data/sig/anthropic/models/server_tool_use_block.rbs +23 -0
- data/sig/anthropic/models/server_tool_use_block_param.rbs +32 -0
- data/sig/anthropic/models/signature_delta.rbs +13 -0
- data/sig/anthropic/models/stop_reason.rbs +24 -0
- data/sig/anthropic/models/text_block.rbs +24 -0
- data/sig/anthropic/models/text_block_param.rbs +28 -0
- data/sig/anthropic/models/text_citation.rbs +15 -0
- data/sig/anthropic/models/text_citation_param.rbs +15 -0
- data/sig/anthropic/models/text_delta.rbs +13 -0
- data/sig/anthropic/models/thinking_block.rbs +20 -0
- data/sig/anthropic/models/thinking_block_param.rbs +20 -0
- data/sig/anthropic/models/thinking_config_disabled.rbs +11 -0
- data/sig/anthropic/models/thinking_config_enabled.rbs +13 -0
- data/sig/anthropic/models/thinking_config_param.rbs +12 -0
- data/sig/anthropic/models/thinking_delta.rbs +13 -0
- data/sig/anthropic/models/tool.rbs +54 -0
- data/sig/anthropic/models/tool_bash_20250124.rbs +24 -0
- data/sig/anthropic/models/tool_choice.rbs +15 -0
- data/sig/anthropic/models/tool_choice_any.rbs +15 -0
- data/sig/anthropic/models/tool_choice_auto.rbs +15 -0
- data/sig/anthropic/models/tool_choice_none.rbs +11 -0
- data/sig/anthropic/models/tool_choice_tool.rbs +22 -0
- data/sig/anthropic/models/tool_result_block_param.rbs +57 -0
- data/sig/anthropic/models/tool_text_editor_20250124.rbs +24 -0
- data/sig/anthropic/models/tool_union.rbs +15 -0
- data/sig/anthropic/models/tool_use_block.rbs +23 -0
- data/sig/anthropic/models/tool_use_block_param.rbs +32 -0
- data/sig/anthropic/models/url_image_source.rbs +13 -0
- data/sig/anthropic/models/url_pdf_source.rbs +13 -0
- data/sig/anthropic/models/usage.rbs +32 -0
- data/sig/anthropic/models/web_search_result_block.rbs +32 -0
- data/sig/anthropic/models/web_search_result_block_param.rbs +32 -0
- data/sig/anthropic/models/web_search_tool_20250305.rbs +69 -0
- data/sig/anthropic/models/web_search_tool_request_error.rbs +39 -0
- data/sig/anthropic/models/web_search_tool_result_block.rbs +24 -0
- data/sig/anthropic/models/web_search_tool_result_block_content.rbs +15 -0
- data/sig/anthropic/models/web_search_tool_result_block_param.rbs +28 -0
- data/sig/anthropic/models/web_search_tool_result_block_param_content.rbs +15 -0
- data/sig/anthropic/models/web_search_tool_result_error.rbs +39 -0
- data/sig/anthropic/models.rbs +221 -0
- data/sig/anthropic/request_options.rbs +34 -0
- data/sig/anthropic/resources/beta/messages/batches.rbs +49 -0
- data/sig/anthropic/resources/beta/messages.rbs +56 -0
- data/sig/anthropic/resources/beta/models.rbs +23 -0
- data/sig/anthropic/resources/beta.rbs +11 -0
- data/sig/anthropic/resources/completions.rbs +33 -0
- data/sig/anthropic/resources/messages/batches.rbs +41 -0
- data/sig/anthropic/resources/messages.rbs +51 -0
- data/sig/anthropic/resources/models.rbs +21 -0
- data/sig/anthropic/version.rbs +3 -0
- data/sig/anthropic/vertex.rbs +3 -0
- metadata +799 -77
- data/.circleci/config.yml +0 -45
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
- data/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- data/.github/dependabot.yml +0 -15
- data/.gitignore +0 -16
- data/.rspec +0 -3
- data/.rubocop.yml +0 -30
- data/CODE_OF_CONDUCT.md +0 -74
- data/CONTRIBUTING.md +0 -3
- data/Gemfile +0 -13
- data/Gemfile.lock +0 -88
- data/LICENSE.txt +0 -21
- data/Rakefile +0 -19
- data/anthropic.gemspec +0 -31
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/lib/anthropic/compatibility.rb +0 -10
- data/lib/anthropic/http.rb +0 -200
- data/lib/anthropic/http_headers.rb +0 -38
- data/lib/anthropic/messages/batches.rb +0 -112
- data/lib/anthropic/messages/client.rb +0 -13
- data/lib/ruby/anthropic.rb +0 -2
- data/pull_request_template.md +0 -5
@@ -0,0 +1,259 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Anthropic
|
4
|
+
module Helpers
|
5
|
+
module Bedrock
|
6
|
+
class Client < Anthropic::Client
|
7
|
+
DEFAULT_VERSION = "bedrock-2023-05-31"
|
8
|
+
|
9
|
+
# @return [Anthropic::Resources::Messages]
|
10
|
+
attr_reader :messages
|
11
|
+
|
12
|
+
# @return [Anthropic::Resources::Completions]
|
13
|
+
attr_reader :completions
|
14
|
+
|
15
|
+
# @return [Anthropic::Resources::Beta]
|
16
|
+
attr_reader :beta
|
17
|
+
|
18
|
+
# @return [String]
|
19
|
+
attr_reader :aws_region
|
20
|
+
|
21
|
+
# @return [Aws::Credentials]
|
22
|
+
attr_reader :aws_credentials
|
23
|
+
|
24
|
+
# Creates and returns a new client for interacting with the AWS Bedrock API for Anthropic models.
|
25
|
+
#
|
26
|
+
# AWS credentials are resolved according to the AWS SDK's default resolution order, described at
|
27
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/setup-config.html#credchain or https://github.com/aws/aws-sdk-ruby?tab=readme-ov-file#configuration
|
28
|
+
#
|
29
|
+
# @param aws_region [String, nil] Enforce the AWS Region to use. If unset, the region is set according to the
|
30
|
+
# AWS SDK's default resolution order, described at https://github.com/aws/aws-sdk-ruby?tab=readme-ov-file#configuration
|
31
|
+
#
|
32
|
+
# @param aws_access_key [String, nil] Optional AWS access key to use for authentication. Overrides profile and credential provider chain
|
33
|
+
#
|
34
|
+
# @param aws_secret_key [String, nil] Optional AWS secret access key to use for authentication. Overrides profile and credential provider chain
|
35
|
+
#
|
36
|
+
# @param aws_session_token [String, nil] Optional AWS session token to use for authentication. Overrides profile and credential provider chain
|
37
|
+
#
|
38
|
+
# @param aws_profile [String, nil] Optional AWS profile to use for authentication. Overrides the credential provider chain
|
39
|
+
#
|
40
|
+
# @param base_url [String, nil] Override the default base URL for the API, e.g., `"https://api.example.com/v2/"`
|
41
|
+
#
|
42
|
+
# @param max_retries [Integer] The maximum number of times to retry a request if it fails
|
43
|
+
#
|
44
|
+
# @param timeout [Float] The number of seconds to wait for a response before timing out
|
45
|
+
#
|
46
|
+
# @param initial_retry_delay [Float] The number of seconds to wait before retrying a request
|
47
|
+
#
|
48
|
+
# @param max_retry_delay [Float] The maximum number of seconds to wait before retrying a request
|
49
|
+
#
|
50
|
+
def initialize(
|
51
|
+
aws_region: nil,
|
52
|
+
base_url: nil,
|
53
|
+
max_retries: DEFAULT_MAX_RETRIES,
|
54
|
+
timeout: DEFAULT_TIMEOUT_IN_SECONDS,
|
55
|
+
initial_retry_delay: DEFAULT_INITIAL_RETRY_DELAY,
|
56
|
+
max_retry_delay: DEFAULT_MAX_RETRY_DELAY,
|
57
|
+
aws_access_key: nil,
|
58
|
+
aws_secret_key: nil,
|
59
|
+
aws_session_token: nil,
|
60
|
+
aws_profile: nil
|
61
|
+
)
|
62
|
+
begin
|
63
|
+
require("aws-sdk-bedrockruntime")
|
64
|
+
rescue LoadError
|
65
|
+
raise <<~MSG
|
66
|
+
|
67
|
+
In order to access Anthropic models on Bedrock you must require the `aws-sdk-bedrockruntime` gem.
|
68
|
+
You can install it by adding the following to your Gemfile:
|
69
|
+
|
70
|
+
gem "aws-sdk-bedrockruntime"
|
71
|
+
|
72
|
+
and then running `bundle install`.
|
73
|
+
|
74
|
+
Alternatively, if you are not using Bundler, simply run:
|
75
|
+
|
76
|
+
gem install aws-sdk-bedrockruntime
|
77
|
+
MSG
|
78
|
+
end
|
79
|
+
|
80
|
+
@aws_region, @aws_credentials = resolve_region_and_credentials(
|
81
|
+
aws_region: aws_region,
|
82
|
+
aws_secret_key: aws_secret_key,
|
83
|
+
aws_access_key: aws_access_key,
|
84
|
+
aws_session_token: aws_session_token,
|
85
|
+
aws_profile: aws_profile
|
86
|
+
)
|
87
|
+
|
88
|
+
@signer = Aws::Sigv4::Signer.new(
|
89
|
+
service: "bedrock",
|
90
|
+
region: @aws_region,
|
91
|
+
credentials: @aws_credentials
|
92
|
+
)
|
93
|
+
|
94
|
+
base_url ||= ENV.fetch(
|
95
|
+
"ANTHROPIC_BEDROCK_BASE_URL",
|
96
|
+
"https://bedrock-runtime.#{@aws_region}.amazonaws.com"
|
97
|
+
)
|
98
|
+
|
99
|
+
super(
|
100
|
+
base_url: base_url,
|
101
|
+
timeout: timeout,
|
102
|
+
max_retries: max_retries,
|
103
|
+
initial_retry_delay: initial_retry_delay,
|
104
|
+
max_retry_delay: max_retry_delay,
|
105
|
+
)
|
106
|
+
|
107
|
+
@messages = Anthropic::Resources::Messages.new(client: self)
|
108
|
+
@completions = Anthropic::Resources::Completions.new(client: self)
|
109
|
+
@beta = Anthropic::Resources::Beta.new(client: self)
|
110
|
+
end
|
111
|
+
|
112
|
+
# @api private
|
113
|
+
#
|
114
|
+
# @param req [Hash{Symbol=>Object}] .
|
115
|
+
#
|
116
|
+
# @option req [Symbol] :method
|
117
|
+
#
|
118
|
+
# @option req [String, Array<String>] :path
|
119
|
+
#
|
120
|
+
# @option req [Hash{String=>Array<String>, String, nil}, nil] :query
|
121
|
+
#
|
122
|
+
# @option req [Hash{String=>String, Integer, Array<String, Integer, nil>, nil}, nil] :headers
|
123
|
+
#
|
124
|
+
# @option req [Object, nil] :body
|
125
|
+
#
|
126
|
+
# @option req [Symbol, Integer, Array<Symbol, Integer>, Proc, nil] :unwrap
|
127
|
+
#
|
128
|
+
# @option req [Class<Anthropic::Internal::Type::BasePage>, nil] :page
|
129
|
+
#
|
130
|
+
# @option req [Class<Anthropic::Internal::Type::BaseStream>, nil] :stream
|
131
|
+
#
|
132
|
+
# @option req [Anthropic::Internal::Type::Converter, Class, nil] :model
|
133
|
+
#
|
134
|
+
# @param opts [Hash{Symbol=>Object}] .
|
135
|
+
#
|
136
|
+
# @option opts [String, nil] :idempotency_key
|
137
|
+
#
|
138
|
+
# @option opts [Hash{String=>Array<String>, String, nil}, nil] :extra_query
|
139
|
+
#
|
140
|
+
# @option opts [Hash{String=>String, nil}, nil] :extra_headers
|
141
|
+
#
|
142
|
+
# @option opts [Object, nil] :extra_body
|
143
|
+
#
|
144
|
+
# @option opts [Integer, nil] :max_retries
|
145
|
+
#
|
146
|
+
# @option opts [Float, nil] :timeout
|
147
|
+
#
|
148
|
+
# @return [Hash{Symbol=>Object}]
|
149
|
+
private def build_request(req, opts)
|
150
|
+
fit_req_to_bedrock_specs!(req)
|
151
|
+
|
152
|
+
request_input = super
|
153
|
+
|
154
|
+
signed_request = @signer.sign_request(
|
155
|
+
http_method: request_input[:method],
|
156
|
+
url: request_input[:url],
|
157
|
+
headers: request_input[:headers],
|
158
|
+
body: request_input[:body]
|
159
|
+
)
|
160
|
+
|
161
|
+
request_input[:headers].merge!(signed_request.headers)
|
162
|
+
|
163
|
+
request_input
|
164
|
+
end
|
165
|
+
|
166
|
+
# @param aws_region [String, nil]
|
167
|
+
#
|
168
|
+
# @param aws_secret_key [String, nil]
|
169
|
+
#
|
170
|
+
# @param aws_access_key [String, nil]
|
171
|
+
#
|
172
|
+
# @param aws_session_token [String, nil]
|
173
|
+
#
|
174
|
+
# @param aws_profile [String, nil]
|
175
|
+
#
|
176
|
+
# @return [Array<String, Aws::Credentials>]
|
177
|
+
#
|
178
|
+
private def resolve_region_and_credentials(
|
179
|
+
aws_region:,
|
180
|
+
aws_secret_key:,
|
181
|
+
aws_access_key:,
|
182
|
+
aws_session_token:,
|
183
|
+
aws_profile:
|
184
|
+
)
|
185
|
+
client_options = {
|
186
|
+
access_key_id: aws_access_key,
|
187
|
+
secret_access_key: aws_secret_key,
|
188
|
+
session_token: aws_session_token,
|
189
|
+
profile: aws_profile
|
190
|
+
}
|
191
|
+
(client_options[:region] = aws_region) unless aws_region.nil?
|
192
|
+
|
193
|
+
bedrock_client = Aws::BedrockRuntime::Client.new(client_options)
|
194
|
+
[bedrock_client.config.region, bedrock_client.config.credentials.credentials]
|
195
|
+
end
|
196
|
+
|
197
|
+
# @private
|
198
|
+
#
|
199
|
+
# Overrides request components for Bedrock-specific request-shape requirements.
|
200
|
+
#
|
201
|
+
# @param request_components [Hash{Symbol=>Object}] .
|
202
|
+
#
|
203
|
+
# @option request_components [Symbol] :method
|
204
|
+
#
|
205
|
+
# @option request_components [String, Array<String>] :path
|
206
|
+
#
|
207
|
+
# @option request_components [Hash{String=>Array<String>, String, nil}, nil] :query
|
208
|
+
#
|
209
|
+
# @option request_components [Hash{String=>String, nil}, nil] :headers
|
210
|
+
#
|
211
|
+
# @option request_components [Object, nil] :body
|
212
|
+
#
|
213
|
+
# @option request_components [Symbol, nil] :unwrap
|
214
|
+
#
|
215
|
+
# @option request_components [Class, nil] :page
|
216
|
+
#
|
217
|
+
# @option request_components [Anthropic::Converter, Class, nil] :model
|
218
|
+
#
|
219
|
+
# @return [Hash{Symbol=>Object}]
|
220
|
+
#
|
221
|
+
private def fit_req_to_bedrock_specs!(request_components)
|
222
|
+
if (body = request_components[:body]).is_a?(Hash)
|
223
|
+
body[:anthropic_version] ||= DEFAULT_VERSION
|
224
|
+
body.transform_keys!("anthropic-beta": :anthropic_beta)
|
225
|
+
end
|
226
|
+
|
227
|
+
case request_components[:path]
|
228
|
+
in %r{^v1/messages/batches}
|
229
|
+
message = "The Batch API is not supported in Bedrock yet"
|
230
|
+
raise NotImplementedError.new(message)
|
231
|
+
in %r{v1/messages/count_tokens}
|
232
|
+
message = "Token counting is not supported in Bedrock yet"
|
233
|
+
raise NotImplementedError.new(message)
|
234
|
+
in %r{v1/models\?beta=true}
|
235
|
+
# rubocop:disable Layout/LineLength
|
236
|
+
message = "Please instead use https://docs.anthropic.com/en/api/claude-on-amazon-bedrock#list-available-models to list available models on Bedrock."
|
237
|
+
# rubocop:enable Layout/LineLength
|
238
|
+
raise NotImplementedError.new(message)
|
239
|
+
else
|
240
|
+
end
|
241
|
+
|
242
|
+
if %w[
|
243
|
+
v1/complete
|
244
|
+
v1/messages
|
245
|
+
v1/messages?beta=true
|
246
|
+
].include?(request_components[:path]) && request_components[:method] == :post && body.is_a?(Hash)
|
247
|
+
model = body.delete(:model)
|
248
|
+
model = URI.encode_www_form_component(model.to_s)
|
249
|
+
stream = body.delete(:stream) || false
|
250
|
+
request_components[:path] =
|
251
|
+
stream ? "model/#{model}/invoke-with-response-stream" : "model/#{model}/invoke"
|
252
|
+
end
|
253
|
+
|
254
|
+
request_components
|
255
|
+
end
|
256
|
+
end
|
257
|
+
end
|
258
|
+
end
|
259
|
+
end
|
@@ -0,0 +1,218 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Anthropic
|
4
|
+
module Helpers
|
5
|
+
module Vertex
|
6
|
+
class Client < Anthropic::Client
|
7
|
+
DEFAULT_VERSION = "vertex-2023-10-16"
|
8
|
+
|
9
|
+
# @return [String]
|
10
|
+
attr_reader :region
|
11
|
+
|
12
|
+
# @return [String]
|
13
|
+
attr_reader :project_id
|
14
|
+
|
15
|
+
# @return [Anthropic::Resources::Messages]
|
16
|
+
attr_reader :messages
|
17
|
+
|
18
|
+
# @return [Anthropic::Resources::Beta]
|
19
|
+
attr_reader :beta
|
20
|
+
|
21
|
+
# Creates and returns a new client for interacting with the GCP Vertex API for Anthropic models.
|
22
|
+
#
|
23
|
+
# GCP credentials are resolved according to Application Default Credentials, described at
|
24
|
+
# https://cloud.google.com/docs/authentication/provide-credentials-adc
|
25
|
+
#
|
26
|
+
# @param region [String, nil] Enforce the GCP Region to use. If unset, the region may be set with the CLOUD_ML_REGION environment variable.
|
27
|
+
#
|
28
|
+
# @param project_id [String, nil] Enforce the GCP Project ID to use. If unset, the project_id may be set with the ANTHROPIC_VERTEX_PROJECT_ID environment variable.
|
29
|
+
#
|
30
|
+
# @param base_url [String, nil] Override the default base URL for the API, e.g., `"https://api.example.com/v2/"`
|
31
|
+
#
|
32
|
+
# @param max_retries [Integer] The maximum number of times to retry a request if it fails
|
33
|
+
#
|
34
|
+
# @param timeout [Float] The number of seconds to wait for a response before timing out
|
35
|
+
#
|
36
|
+
# @param initial_retry_delay [Float] The number of seconds to wait before retrying a request
|
37
|
+
#
|
38
|
+
# @param max_retry_delay [Float] The maximum number of seconds to wait before retrying a request
|
39
|
+
#
|
40
|
+
def initialize(
|
41
|
+
region: ENV["CLOUD_ML_REGION"],
|
42
|
+
project_id: ENV["ANTHROPIC_VERTEX_PROJECT_ID"],
|
43
|
+
base_url: nil,
|
44
|
+
max_retries: DEFAULT_MAX_RETRIES,
|
45
|
+
timeout: DEFAULT_TIMEOUT_IN_SECONDS,
|
46
|
+
initial_retry_delay: DEFAULT_INITIAL_RETRY_DELAY,
|
47
|
+
max_retry_delay: DEFAULT_MAX_RETRY_DELAY
|
48
|
+
)
|
49
|
+
begin
|
50
|
+
require("googleauth")
|
51
|
+
rescue LoadError
|
52
|
+
raise <<~MSG
|
53
|
+
|
54
|
+
In order to access Anthropic models on Vertex you must require the `googleauth` gem.
|
55
|
+
You can install it by adding the following to your Gemfile:
|
56
|
+
|
57
|
+
gem "googleauth"
|
58
|
+
|
59
|
+
and then running `bundle install`.
|
60
|
+
|
61
|
+
Alternatively, if you are not using Bundler, simply run:
|
62
|
+
|
63
|
+
gem install googleauth
|
64
|
+
MSG
|
65
|
+
end
|
66
|
+
|
67
|
+
if region.to_s.empty?
|
68
|
+
# rubocop:disable Layout/LineLength
|
69
|
+
message = "No region was given. The client should be instantiated with the `region` argument or the `CLOUD_ML_REGION` environment variable should be set."
|
70
|
+
# rubocop:enable Layout/LineLength
|
71
|
+
raise ArgumentError.new(message)
|
72
|
+
end
|
73
|
+
@region = region
|
74
|
+
|
75
|
+
if project_id.to_s.empty?
|
76
|
+
# rubocop:disable Layout/LineLength
|
77
|
+
message = "No project_id was given and it could not be resolved from credentials. The client should be instantiated with the `project_id` argument or the `ANTHROPIC_VERTEX_PROJECT_ID` environment variable should be set."
|
78
|
+
# rubocop:enable Layout/LineLength
|
79
|
+
raise ArgumentError.new(message)
|
80
|
+
end
|
81
|
+
@project_id = project_id
|
82
|
+
|
83
|
+
base_url ||= ENV.fetch("ANTHROPIC_VERTEX_BASE_URL", "https://#{@region}-aiplatform.googleapis.com/v1")
|
84
|
+
|
85
|
+
super(
|
86
|
+
base_url: base_url,
|
87
|
+
timeout: timeout,
|
88
|
+
max_retries: max_retries,
|
89
|
+
initial_retry_delay: initial_retry_delay,
|
90
|
+
max_retry_delay: max_retry_delay,
|
91
|
+
)
|
92
|
+
|
93
|
+
@messages = Anthropic::Resources::Messages.new(client: self)
|
94
|
+
@beta = Anthropic::Resources::Beta.new(client: self)
|
95
|
+
end
|
96
|
+
|
97
|
+
# @api private
|
98
|
+
#
|
99
|
+
# @param req [Hash{Symbol=>Object}] .
|
100
|
+
#
|
101
|
+
# @option req [Symbol] :method
|
102
|
+
#
|
103
|
+
# @option req [String, Array<String>] :path
|
104
|
+
#
|
105
|
+
# @option req [Hash{String=>Array<String>, String, nil}, nil] :query
|
106
|
+
#
|
107
|
+
# @option req [Hash{String=>String, Integer, Array<String, Integer, nil>, nil}, nil] :headers
|
108
|
+
#
|
109
|
+
# @option req [Object, nil] :body
|
110
|
+
#
|
111
|
+
# @option req [Symbol, Integer, Array<Symbol, Integer>, Proc, nil] :unwrap
|
112
|
+
#
|
113
|
+
# @option req [Class<Anthropic::Internal::Type::BasePage>, nil] :page
|
114
|
+
#
|
115
|
+
# @option req [Class<Anthropic::Internal::Type::BaseStream>, nil] :stream
|
116
|
+
#
|
117
|
+
# @option req [Anthropic::Internal::Type::Converter, Class, nil] :model
|
118
|
+
#
|
119
|
+
# @param opts [Hash{Symbol=>Object}] .
|
120
|
+
#
|
121
|
+
# @option opts [String, nil] :idempotency_key
|
122
|
+
#
|
123
|
+
# @option opts [Hash{String=>Array<String>, String, nil}, nil] :extra_query
|
124
|
+
#
|
125
|
+
# @option opts [Hash{String=>String, nil}, nil] :extra_headers
|
126
|
+
#
|
127
|
+
# @option opts [Object, nil] :extra_body
|
128
|
+
#
|
129
|
+
# @option opts [Integer, nil] :max_retries
|
130
|
+
#
|
131
|
+
# @option opts [Float, nil] :timeout
|
132
|
+
#
|
133
|
+
# @return [Hash{Symbol=>Object}]
|
134
|
+
private def build_request(req, opts)
|
135
|
+
fit_req_to_vertex_specs!(req)
|
136
|
+
|
137
|
+
request_input = super
|
138
|
+
|
139
|
+
headers = request_input.fetch(:headers)
|
140
|
+
|
141
|
+
unless headers.key?("authorization")
|
142
|
+
authorization = Google::Auth.get_application_default(["https://www.googleapis.com/auth/cloud-platform"])
|
143
|
+
request_input.store(:headers, authorization.apply(headers))
|
144
|
+
end
|
145
|
+
|
146
|
+
request_input
|
147
|
+
end
|
148
|
+
|
149
|
+
# @private
|
150
|
+
#
|
151
|
+
# Overrides request components for Vertex-specific request-shape requirements.
|
152
|
+
#
|
153
|
+
# @param request_components [Hash{Symbol=>Object}] .
|
154
|
+
#
|
155
|
+
# @option request_components [Symbol] :method
|
156
|
+
#
|
157
|
+
# @option request_components [String, Array<String>] :path
|
158
|
+
#
|
159
|
+
# @option request_components [Hash{String=>Array<String>, String, nil}, nil] :query
|
160
|
+
#
|
161
|
+
# @option request_components [Hash{String=>String, nil}, nil] :headers
|
162
|
+
#
|
163
|
+
# @option request_components [Object, nil] :body
|
164
|
+
#
|
165
|
+
# @option request_components [Symbol, nil] :unwrap
|
166
|
+
#
|
167
|
+
# @option request_components [Class, nil] :page
|
168
|
+
#
|
169
|
+
# @option request_components [Anthropic::Converter, Class, nil] :model
|
170
|
+
#
|
171
|
+
# @return [Hash{Symbol=>Object}]
|
172
|
+
private def fit_req_to_vertex_specs!(request_components)
|
173
|
+
if (body = request_components[:body]).is_a?(Hash)
|
174
|
+
body[:anthropic_version] ||= DEFAULT_VERSION
|
175
|
+
|
176
|
+
if (anthropic_beta = body.delete(:"anthropic-beta"))
|
177
|
+
request_components[:headers] ||= {}
|
178
|
+
request_components[:headers]["anthropic-beta"] = anthropic_beta.join(",")
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
if %w[
|
183
|
+
v1/messages
|
184
|
+
v1/messages?beta=true
|
185
|
+
].include?(request_components[:path]) && request_components[:method] == :post
|
186
|
+
|
187
|
+
unless body.is_a?(Hash)
|
188
|
+
raise Anthropic::Error, "Expected json data to be a hash for post /v1/messages"
|
189
|
+
end
|
190
|
+
|
191
|
+
model = body.delete(:model)
|
192
|
+
specifier = body[:stream] ? "streamRawPredict" : "rawPredict"
|
193
|
+
|
194
|
+
request_components[:path] =
|
195
|
+
"projects/#{@project_id}/locations/#{region}/publishers/anthropic/models/#{model}:#{specifier}"
|
196
|
+
|
197
|
+
end
|
198
|
+
|
199
|
+
if %w[
|
200
|
+
v1/messages/count_tokens
|
201
|
+
v1/messages/count_tokens?beta=true
|
202
|
+
].include?(request_components[:path]) &&
|
203
|
+
request_components[:method] == :post
|
204
|
+
request_components[:path] =
|
205
|
+
"projects/#{@project_id}/locations/#{region}/publishers/anthropic/models/count-tokens:rawPredict"
|
206
|
+
|
207
|
+
end
|
208
|
+
|
209
|
+
if request_components[:path].start_with?("v1/messages/batches/")
|
210
|
+
raise AnthropicError("The Batch API is not supported in the Vertex client yet")
|
211
|
+
end
|
212
|
+
|
213
|
+
request_components
|
214
|
+
end
|
215
|
+
end
|
216
|
+
end
|
217
|
+
end
|
218
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Anthropic
|
4
|
+
module Internal
|
5
|
+
# @generic Elem
|
6
|
+
#
|
7
|
+
# @example
|
8
|
+
# stream.each do |batch|
|
9
|
+
# puts(batch)
|
10
|
+
# end
|
11
|
+
class JsonLStream
|
12
|
+
include Anthropic::Internal::Type::BaseStream
|
13
|
+
|
14
|
+
# @api private
|
15
|
+
#
|
16
|
+
# @return [Enumerable<generic<Elem>>]
|
17
|
+
private def iterator
|
18
|
+
@iterator ||= Anthropic::Internal::Util.chain_fused(@stream) do |y|
|
19
|
+
@stream.each do
|
20
|
+
y << Anthropic::Internal::Type::Converter.coerce(@model, _1)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Anthropic
|
4
|
+
module Internal
|
5
|
+
# @generic Elem
|
6
|
+
#
|
7
|
+
# @example
|
8
|
+
# if page.has_next?
|
9
|
+
# page = page.next_page
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# page.auto_paging_each do |batch|
|
14
|
+
# puts(batch)
|
15
|
+
# end
|
16
|
+
class Page
|
17
|
+
include Anthropic::Internal::Type::BasePage
|
18
|
+
|
19
|
+
# @return [Array<generic<Elem>>, nil]
|
20
|
+
attr_accessor :data
|
21
|
+
|
22
|
+
# @return [Boolean]
|
23
|
+
attr_accessor :has_more
|
24
|
+
|
25
|
+
# @return [String, nil]
|
26
|
+
attr_accessor :first_id
|
27
|
+
|
28
|
+
# @return [String, nil]
|
29
|
+
attr_accessor :last_id
|
30
|
+
|
31
|
+
# @return [Boolean]
|
32
|
+
def next_page?
|
33
|
+
has_more
|
34
|
+
end
|
35
|
+
|
36
|
+
# @raise [Anthropic::HTTP::Error]
|
37
|
+
# @return [self]
|
38
|
+
def next_page
|
39
|
+
unless next_page?
|
40
|
+
message = "No more pages available. Please check #next_page? before calling ##{__method__}"
|
41
|
+
raise RuntimeError.new(message)
|
42
|
+
end
|
43
|
+
|
44
|
+
req = Anthropic::Internal::Util.deep_merge(
|
45
|
+
@req,
|
46
|
+
{query: first_id.nil? ? {after_id: last_id} : {before_id: first_id}}
|
47
|
+
)
|
48
|
+
@client.request(req)
|
49
|
+
end
|
50
|
+
|
51
|
+
# @param blk [Proc]
|
52
|
+
#
|
53
|
+
# @yieldparam [generic<Elem>]
|
54
|
+
def auto_paging_each(&blk)
|
55
|
+
unless block_given?
|
56
|
+
raise ArgumentError.new("A block must be given to ##{__method__}")
|
57
|
+
end
|
58
|
+
|
59
|
+
page = self
|
60
|
+
loop do
|
61
|
+
page.data&.each(&blk)
|
62
|
+
|
63
|
+
break unless page.next_page?
|
64
|
+
page = page.next_page
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# @api private
|
69
|
+
#
|
70
|
+
# @param client [Anthropic::Internal::Transport::BaseClient]
|
71
|
+
# @param req [Hash{Symbol=>Object}]
|
72
|
+
# @param headers [Hash{String=>String}, Net::HTTPHeader]
|
73
|
+
# @param page_data [Hash{Symbol=>Object}]
|
74
|
+
def initialize(client:, req:, headers:, page_data:)
|
75
|
+
super
|
76
|
+
|
77
|
+
case page_data
|
78
|
+
in {data: Array => data}
|
79
|
+
@data = data.map { Anthropic::Internal::Type::Converter.coerce(@model, _1) }
|
80
|
+
else
|
81
|
+
end
|
82
|
+
@has_more = page_data[:has_more]
|
83
|
+
@first_id = page_data[:first_id]
|
84
|
+
@last_id = page_data[:last_id]
|
85
|
+
end
|
86
|
+
|
87
|
+
# @api private
|
88
|
+
#
|
89
|
+
# @return [String]
|
90
|
+
def inspect
|
91
|
+
# rubocop:disable Layout/LineLength
|
92
|
+
model = Anthropic::Internal::Type::Converter.inspect(@model, depth: 1)
|
93
|
+
|
94
|
+
"#<#{self.class}[#{model}]:0x#{object_id.to_s(16)} has_more=#{has_more.inspect} first_id=#{first_id.inspect} last_id=#{last_id.inspect}>"
|
95
|
+
# rubocop:enable Layout/LineLength
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Anthropic
|
4
|
+
module Internal
|
5
|
+
# @generic Elem
|
6
|
+
#
|
7
|
+
# @example
|
8
|
+
# stream.each do |event|
|
9
|
+
# puts(event)
|
10
|
+
# end
|
11
|
+
class Stream
|
12
|
+
include Anthropic::Internal::Type::BaseStream
|
13
|
+
|
14
|
+
# @api private
|
15
|
+
#
|
16
|
+
# @return [Enumerable<generic<Elem>>]
|
17
|
+
private def iterator
|
18
|
+
# rubocop:disable Metrics/BlockLength
|
19
|
+
# rubocop:disable Layout/LineLength
|
20
|
+
# rubocop:disable Lint/DuplicateBranch
|
21
|
+
@iterator ||= Anthropic::Internal::Util.chain_fused(@stream) do |y|
|
22
|
+
@stream.each do |msg|
|
23
|
+
case msg
|
24
|
+
in {event: "completion", data: String => data}
|
25
|
+
decoded = JSON.parse(data, symbolize_names: true)
|
26
|
+
y << Anthropic::Internal::Type::Converter.coerce(@model, decoded)
|
27
|
+
in {
|
28
|
+
event: "message_start" | "message_delta" | "message_stop" | "content_block_start" | "content_block_delta" | "content_block_stop",
|
29
|
+
data: String => data
|
30
|
+
}
|
31
|
+
decoded = JSON.parse(data, symbolize_names: true)
|
32
|
+
y << Anthropic::Internal::Type::Converter.coerce(@model, decoded)
|
33
|
+
in {event: "ping"}
|
34
|
+
next
|
35
|
+
in {event: "error", data: String => data}
|
36
|
+
decoded = Kernel.then do
|
37
|
+
JSON.parse(data, symbolize_names: true)
|
38
|
+
rescue JSON::ParserError
|
39
|
+
data
|
40
|
+
end
|
41
|
+
Anthropic::Errors::APIStatusError.for(
|
42
|
+
url: @url,
|
43
|
+
status: @status,
|
44
|
+
body: decoded,
|
45
|
+
request: nil,
|
46
|
+
response: @response
|
47
|
+
)
|
48
|
+
else
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
# rubocop:enable Lint/DuplicateBranch
|
53
|
+
# rubocop:enable Layout/LineLength
|
54
|
+
# rubocop:enable Metrics/BlockLength
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|