volcengine-python-sdk 4.0.28__py2.py3-none-any.whl → 4.0.30__py2.py3-none-any.whl
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.
Potentially problematic release.
This version of volcengine-python-sdk might be problematic. Click here for more details.
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/METADATA +1 -1
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/RECORD +486 -80
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/top_level.txt +2 -0
- volcenginesdkacep/__init__.py +42 -0
- volcenginesdkacep/api/acep_api.py +1001 -128
- volcenginesdkacep/models/__init__.py +42 -0
- volcenginesdkacep/models/add_phone_template_request.py +256 -0
- volcenginesdkacep/models/add_phone_template_response.py +123 -0
- volcenginesdkacep/models/app_list_for_create_pod_one_step_input.py +149 -0
- volcenginesdkacep/models/create_pod_one_step_request.py +698 -0
- volcenginesdkacep/models/create_pod_one_step_response.py +175 -0
- volcenginesdkacep/models/create_pod_request.py +696 -0
- volcenginesdkacep/models/create_pod_response.py +149 -0
- volcenginesdkacep/models/get_phone_template_request.py +124 -0
- volcenginesdkacep/models/get_phone_template_response.py +149 -0
- volcenginesdkacep/models/job_for_reset_pod_output.py +305 -0
- volcenginesdkacep/models/list_phone_template_request.py +279 -0
- volcenginesdkacep/models/list_phone_template_response.py +149 -0
- volcenginesdkacep/models/overlay_persist_property_for_add_phone_template_input.py +175 -0
- volcenginesdkacep/models/overlay_persist_property_for_create_pod_input.py +175 -0
- volcenginesdkacep/models/overlay_persist_property_for_create_pod_one_step_input.py +175 -0
- volcenginesdkacep/models/overlay_persist_property_for_get_phone_template_output.py +175 -0
- volcenginesdkacep/models/overlay_persist_property_for_list_phone_template_output.py +175 -0
- volcenginesdkacep/models/overlay_property_for_add_phone_template_input.py +175 -0
- volcenginesdkacep/models/overlay_property_for_create_pod_input.py +175 -0
- volcenginesdkacep/models/overlay_property_for_create_pod_one_step_input.py +175 -0
- volcenginesdkacep/models/overlay_property_for_get_phone_template_output.py +175 -0
- volcenginesdkacep/models/overlay_property_for_list_phone_template_output.py +175 -0
- volcenginesdkacep/models/overlay_setting_for_add_phone_template_input.py +201 -0
- volcenginesdkacep/models/overlay_setting_for_create_pod_input.py +201 -0
- volcenginesdkacep/models/overlay_setting_for_create_pod_one_step_input.py +201 -0
- volcenginesdkacep/models/overlay_setting_for_get_phone_template_output.py +201 -0
- volcenginesdkacep/models/overlay_setting_for_list_phone_template_output.py +201 -0
- volcenginesdkacep/models/phone_template_for_get_phone_template_output.py +279 -0
- volcenginesdkacep/models/pod_persist_property_for_update_pod_property_input.py +175 -0
- volcenginesdkacep/models/pod_property_for_update_pod_property_input.py +175 -0
- volcenginesdkacep/models/pod_setting_for_update_pod_property_input.py +201 -0
- volcenginesdkacep/models/pod_spec_list_for_create_pod_input.py +617 -0
- volcenginesdkacep/models/remove_phone_template_request.py +123 -0
- volcenginesdkacep/models/remove_phone_template_response.py +123 -0
- volcenginesdkacep/models/reset_pod_request.py +280 -0
- volcenginesdkacep/models/reset_pod_response.py +175 -0
- volcenginesdkacep/models/row_for_list_phone_template_output.py +279 -0
- volcenginesdkacep/models/tag_for_get_phone_template_output.py +201 -0
- volcenginesdkacep/models/update_phone_template_request.py +176 -0
- volcenginesdkacep/models/update_phone_template_response.py +95 -0
- volcenginesdkacep/models/update_pod_property_request.py +280 -0
- volcenginesdkacep/models/update_pod_property_response.py +95 -0
- volcenginesdkarkruntime/_client.py +7 -6
- volcenginesdkarkruntime/_utils/_key_agreement.py +18 -14
- volcenginesdkarkruntime/resources/batch_chat/completions.py +10 -141
- volcenginesdkarkruntime/resources/beta/chat/completions.py +10 -0
- volcenginesdkarkruntime/resources/chat/completions.py +9 -206
- volcenginesdkarkruntime/resources/encryption.py +217 -0
- volcenginesdkarkruntime/resources/images/images.py +72 -55
- volcenginesdkarkruntime/resources/responses/responses.py +42 -24
- volcenginesdkarkruntime/types/__init__.py +2 -0
- volcenginesdkarkruntime/types/content_generation/content_generation_task.py +15 -0
- volcenginesdkarkruntime/types/images/__init__.py +2 -2
- volcenginesdkarkruntime/types/images/images.py +7 -1
- volcenginesdkarkruntime/types/responses/audio_chunking_strategy.py +30 -0
- volcenginesdkarkruntime/types/responses/audio_chunking_strategy_param.py +28 -0
- volcenginesdkarkruntime/types/responses/image_process_grounding_options.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_grounding_options_param.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_point_options.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_point_options_param.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_rotate_options.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_rotate_options_param.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_tool.py +41 -0
- volcenginesdkarkruntime/types/responses/image_process_tool_param.py +40 -0
- volcenginesdkarkruntime/types/responses/image_process_zoom_options.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_zoom_options_param.py +23 -0
- volcenginesdkarkruntime/types/responses/item_function_image_process.py +37 -0
- volcenginesdkarkruntime/types/responses/knowledge_search_tool.py +46 -0
- volcenginesdkarkruntime/types/responses/knowledge_search_tool_param.py +44 -0
- volcenginesdkarkruntime/types/responses/mcp_tool.py +8 -4
- volcenginesdkarkruntime/types/responses/response.py +58 -92
- volcenginesdkarkruntime/types/responses/response_annotation_added_event.py +3 -22
- volcenginesdkarkruntime/types/responses/response_caching.py +6 -6
- volcenginesdkarkruntime/types/responses/response_caching_param.py +7 -4
- volcenginesdkarkruntime/types/responses/response_create_params.py +11 -3
- volcenginesdkarkruntime/types/responses/response_image_process_action.py +24 -0
- volcenginesdkarkruntime/types/responses/response_image_process_args.py +30 -0
- volcenginesdkarkruntime/types/responses/response_image_process_call_completed_event.py +35 -0
- volcenginesdkarkruntime/types/responses/response_image_process_call_in_progress_event.py +24 -0
- volcenginesdkarkruntime/types/responses/response_image_process_call_processing_event.py +30 -0
- volcenginesdkarkruntime/types/responses/response_image_process_error.py +20 -0
- volcenginesdkarkruntime/types/responses/response_image_process_grounding_args.py +24 -0
- volcenginesdkarkruntime/types/responses/response_image_process_point_args.py +24 -0
- volcenginesdkarkruntime/types/responses/response_image_process_rotate_args.py +22 -0
- volcenginesdkarkruntime/types/responses/response_image_process_zoom_args.py +24 -0
- volcenginesdkarkruntime/types/responses/response_input_audio.py +33 -0
- volcenginesdkarkruntime/types/responses/response_input_audio_param.py +32 -0
- volcenginesdkarkruntime/types/responses/response_input_content.py +13 -3
- volcenginesdkarkruntime/types/responses/response_input_file.py +32 -0
- volcenginesdkarkruntime/types/responses/response_input_file_param.py +30 -0
- volcenginesdkarkruntime/types/responses/response_input_message_content_list_param.py +11 -3
- volcenginesdkarkruntime/types/responses/response_input_video.py +33 -0
- volcenginesdkarkruntime/types/responses/response_input_video_param.py +6 -9
- volcenginesdkarkruntime/types/responses/response_knowledge_search_call_completed_event.py +24 -0
- volcenginesdkarkruntime/types/responses/response_knowledge_search_call_failed_event.py +24 -0
- volcenginesdkarkruntime/types/responses/response_knowledge_search_call_in_progress_event.py +24 -0
- volcenginesdkarkruntime/types/responses/response_knowledge_search_call_searching_event.py +24 -0
- volcenginesdkarkruntime/types/responses/response_knowledge_search_item.py +32 -0
- volcenginesdkarkruntime/types/responses/response_output_item.py +8 -4
- volcenginesdkarkruntime/types/responses/response_output_text.py +4 -33
- volcenginesdkarkruntime/types/responses/response_output_text_annotation.py +63 -0
- volcenginesdkarkruntime/types/responses/response_output_text_annotation_added_event.py +33 -0
- volcenginesdkarkruntime/types/responses/response_stream_event.py +89 -50
- volcenginesdkarkruntime/types/responses/response_tool_usage.py +14 -6
- volcenginesdkarkruntime/types/responses/responses_output_text_annotation_cover_image.py +25 -0
- volcenginesdkarkruntime/types/responses/tool.py +5 -2
- volcenginesdkarkruntime/types/responses/tool_choice_knowledge_search.py +22 -0
- volcenginesdkarkruntime/types/responses/tool_choice_knowledge_search_param.py +20 -0
- volcenginesdkarkruntime/types/responses/tool_choice_mcp.py +31 -0
- volcenginesdkarkruntime/types/responses/tool_choice_mcp_param.py +4 -4
- volcenginesdkarkruntime/types/responses/tool_choice_web_search.py +22 -0
- volcenginesdkarkruntime/types/responses/tool_choice_web_search_param.py +20 -0
- volcenginesdkarkruntime/types/responses/tool_param.py +11 -3
- volcenginesdkarkruntime/types/responses/user_location.py +29 -0
- volcenginesdkarkruntime/types/responses/user_location_param.py +31 -0
- volcenginesdkarkruntime/types/responses/web_search_tool.py +11 -22
- volcenginesdkarkruntime/types/responses/web_search_tool_param.py +8 -17
- volcenginesdkarkruntime/types/shared/__init__.py +3 -0
- volcenginesdkarkruntime/types/shared/reasoning.py +10 -0
- volcenginesdkarkruntime/types/shared/reasoning_effort.py +17 -0
- volcenginesdkarkruntime/types/shared_params/__init__.py +2 -0
- volcenginesdkarkruntime/types/shared_params/reasoning.py +12 -0
- volcenginesdkarkruntime/types/shared_params/reasoning_effort.py +8 -0
- volcenginesdkcbr/__init__.py +91 -0
- volcenginesdkcbr/api/__init__.py +6 -0
- volcenginesdkcbr/api/cbr_api.py +2362 -0
- volcenginesdkcbr/models/__init__.py +87 -0
- volcenginesdkcbr/models/backup_policy_for_describe_backup_policies_output.py +357 -0
- volcenginesdkcbr/models/create_backup_job_request.py +238 -0
- volcenginesdkcbr/models/create_backup_job_response.py +123 -0
- volcenginesdkcbr/models/create_backup_plan_request.py +176 -0
- volcenginesdkcbr/models/create_backup_plan_response.py +123 -0
- volcenginesdkcbr/models/create_backup_policy_request.py +293 -0
- volcenginesdkcbr/models/create_backup_policy_response.py +123 -0
- volcenginesdkcbr/models/create_backup_resource_request.py +211 -0
- volcenginesdkcbr/models/create_backup_resource_response.py +123 -0
- volcenginesdkcbr/models/create_restore_job_request.py +177 -0
- volcenginesdkcbr/models/create_restore_job_response.py +123 -0
- volcenginesdkcbr/models/create_vault_request.py +150 -0
- volcenginesdkcbr/models/create_vault_response.py +123 -0
- volcenginesdkcbr/models/delete_backup_plan_request.py +124 -0
- volcenginesdkcbr/models/delete_backup_plan_response.py +95 -0
- volcenginesdkcbr/models/delete_backup_policy_request.py +124 -0
- volcenginesdkcbr/models/delete_backup_policy_response.py +95 -0
- volcenginesdkcbr/models/delete_backup_resource_request.py +124 -0
- volcenginesdkcbr/models/delete_backup_resource_response.py +95 -0
- volcenginesdkcbr/models/delete_recovery_point_request.py +124 -0
- volcenginesdkcbr/models/delete_recovery_point_response.py +95 -0
- volcenginesdkcbr/models/delete_vault_request.py +124 -0
- volcenginesdkcbr/models/delete_vault_response.py +95 -0
- volcenginesdkcbr/models/describe_backup_plans_request.py +175 -0
- volcenginesdkcbr/models/describe_backup_plans_response.py +149 -0
- volcenginesdkcbr/models/describe_backup_policies_request.py +175 -0
- volcenginesdkcbr/models/describe_backup_policies_response.py +149 -0
- volcenginesdkcbr/models/describe_backup_resources_request.py +175 -0
- volcenginesdkcbr/models/describe_backup_resources_response.py +149 -0
- volcenginesdkcbr/models/describe_recovery_points_request.py +175 -0
- volcenginesdkcbr/models/describe_recovery_points_response.py +149 -0
- volcenginesdkcbr/models/describe_regions_request.py +95 -0
- volcenginesdkcbr/models/describe_regions_response.py +123 -0
- volcenginesdkcbr/models/describe_restore_jobs_request.py +175 -0
- volcenginesdkcbr/models/describe_restore_jobs_response.py +149 -0
- volcenginesdkcbr/models/describe_vaults_request.py +201 -0
- volcenginesdkcbr/models/describe_vaults_response.py +149 -0
- volcenginesdkcbr/models/disable_backup_policy_request.py +124 -0
- volcenginesdkcbr/models/disable_backup_policy_response.py +95 -0
- volcenginesdkcbr/models/enable_backup_policy_request.py +124 -0
- volcenginesdkcbr/models/enable_backup_policy_response.py +95 -0
- volcenginesdkcbr/models/filter_list_for_describe_backup_resources_input.py +149 -0
- volcenginesdkcbr/models/filters_for_describe_backup_plans_input.py +149 -0
- volcenginesdkcbr/models/filters_for_describe_backup_policies_input.py +175 -0
- volcenginesdkcbr/models/filters_for_describe_recovery_points_input.py +253 -0
- volcenginesdkcbr/models/filters_for_describe_restore_jobs_input.py +201 -0
- volcenginesdkcbr/models/filters_for_describe_vaults_input.py +149 -0
- volcenginesdkcbr/models/job_for_describe_restore_jobs_output.py +279 -0
- volcenginesdkcbr/models/meta_information_for_create_backup_plan_input.py +149 -0
- volcenginesdkcbr/models/meta_information_for_create_backup_resource_input.py +149 -0
- volcenginesdkcbr/models/meta_information_for_describe_backup_resources_output.py +149 -0
- volcenginesdkcbr/models/meta_information_for_update_backup_plan_input.py +149 -0
- volcenginesdkcbr/models/plan_for_describe_backup_plans_output.py +253 -0
- volcenginesdkcbr/models/plan_for_describe_backup_resources_output.py +149 -0
- volcenginesdkcbr/models/policy_for_describe_backup_plans_output.py +357 -0
- volcenginesdkcbr/models/recovery_point_for_describe_recovery_points_output.py +513 -0
- volcenginesdkcbr/models/region_for_describe_regions_output.py +149 -0
- volcenginesdkcbr/models/resource_for_describe_backup_resources_output.py +409 -0
- volcenginesdkcbr/models/resource_list_for_create_backup_plan_input.py +175 -0
- volcenginesdkcbr/models/resource_list_for_update_backup_plan_input.py +175 -0
- volcenginesdkcbr/models/tag_for_describe_vaults_output.py +149 -0
- volcenginesdkcbr/models/update_backup_plan_request.py +202 -0
- volcenginesdkcbr/models/update_backup_plan_response.py +95 -0
- volcenginesdkcbr/models/update_backup_policy_request.py +261 -0
- volcenginesdkcbr/models/update_backup_policy_response.py +95 -0
- volcenginesdkcbr/models/update_recovery_point_request.py +151 -0
- volcenginesdkcbr/models/update_recovery_point_response.py +95 -0
- volcenginesdkcbr/models/update_restore_job_request.py +151 -0
- volcenginesdkcbr/models/update_restore_job_response.py +95 -0
- volcenginesdkcbr/models/vault_list_for_describe_vaults_output.py +279 -0
- volcenginesdkcore/api_client.py +1 -1
- volcenginesdkcore/configuration.py +1 -1
- volcenginesdkcore/interceptor/interceptors/sign_request_interceptor.py +1 -0
- volcenginesdkcore/observability/debugger.py +4 -2
- volcenginesdkcore/retryer/retryer.py +4 -1
- volcenginesdkgraph/__init__.py +11 -0
- volcenginesdkgraph/api/graph_api.py +485 -0
- volcenginesdkgraph/models/__init__.py +11 -0
- volcenginesdkgraph/models/describe_vegraph_config_in_k8s_request.py +124 -0
- volcenginesdkgraph/models/describe_vegraph_config_in_k8s_response.py +201 -0
- volcenginesdkgraph/models/key_black_list_for_update_key_black_list_conf_input.py +175 -0
- volcenginesdkgraph/models/update_gremlin_keyword_black_list_conf_request.py +230 -0
- volcenginesdkgraph/models/update_gremlin_keyword_black_list_conf_response.py +95 -0
- volcenginesdkgraph/models/update_key_black_list_conf_request.py +230 -0
- volcenginesdkgraph/models/update_key_black_list_conf_response.py +95 -0
- volcenginesdkgraph/models/update_tablet_read_black_list_conf_request.py +230 -0
- volcenginesdkgraph/models/update_tablet_read_black_list_conf_response.py +95 -0
- volcenginesdkgraph/models/update_tablet_write_black_list_conf_request.py +230 -0
- volcenginesdkgraph/models/update_tablet_write_black_list_conf_response.py +95 -0
- volcenginesdkmilvus/__init__.py +112 -0
- volcenginesdkmilvus/api/__init__.py +6 -0
- volcenginesdkmilvus/api/milvus_api.py +2168 -0
- volcenginesdkmilvus/models/__init__.py +108 -0
- volcenginesdkmilvus/models/allow_group_list_for_describe_instance_detail_output.py +149 -0
- volcenginesdkmilvus/models/base_instance_for_describe_instance_detail_output.py +435 -0
- volcenginesdkmilvus/models/charge_config_for_create_instance_input.py +201 -0
- volcenginesdkmilvus/models/charge_config_for_create_instance_one_step_input.py +201 -0
- volcenginesdkmilvus/models/charge_config_for_describe_instance_detail_output.py +201 -0
- volcenginesdkmilvus/models/charge_config_for_describe_instances_output.py +201 -0
- volcenginesdkmilvus/models/charge_config_for_describe_price_input.py +201 -0
- volcenginesdkmilvus/models/component_spec_list_for_create_instance_input.py +253 -0
- volcenginesdkmilvus/models/component_spec_list_for_create_instance_one_step_input.py +253 -0
- volcenginesdkmilvus/models/component_spec_list_for_describe_price_input.py +227 -0
- volcenginesdkmilvus/models/component_spec_list_for_scale_instance_input.py +227 -0
- volcenginesdkmilvus/models/config_assign_list_for_modify_instance_config_input.py +149 -0
- volcenginesdkmilvus/models/configuration_for_describe_instance_config_output.py +331 -0
- volcenginesdkmilvus/models/create_instance_one_step_request.py +306 -0
- volcenginesdkmilvus/models/create_instance_one_step_response.py +227 -0
- volcenginesdkmilvus/models/create_instance_request.py +306 -0
- volcenginesdkmilvus/models/create_instance_response.py +227 -0
- volcenginesdkmilvus/models/describe_available_spec_request.py +95 -0
- volcenginesdkmilvus/models/describe_available_spec_response.py +201 -0
- volcenginesdkmilvus/models/describe_available_version_request.py +95 -0
- volcenginesdkmilvus/models/describe_available_version_response.py +123 -0
- volcenginesdkmilvus/models/describe_config_modules_request.py +124 -0
- volcenginesdkmilvus/models/describe_config_modules_response.py +123 -0
- volcenginesdkmilvus/models/describe_instance_config_request.py +124 -0
- volcenginesdkmilvus/models/describe_instance_config_response.py +123 -0
- volcenginesdkmilvus/models/describe_instance_detail_request.py +124 -0
- volcenginesdkmilvus/models/describe_instance_detail_response.py +409 -0
- volcenginesdkmilvus/models/describe_instances_request.py +253 -0
- volcenginesdkmilvus/models/describe_instances_response.py +227 -0
- volcenginesdkmilvus/models/describe_node_info_request.py +124 -0
- volcenginesdkmilvus/models/describe_node_info_response.py +123 -0
- volcenginesdkmilvus/models/describe_price_request.py +175 -0
- volcenginesdkmilvus/models/describe_price_response.py +227 -0
- volcenginesdkmilvus/models/describe_zones_request.py +95 -0
- volcenginesdkmilvus/models/describe_zones_response.py +123 -0
- volcenginesdkmilvus/models/endpoint_list_for_describe_instance_detail_output.py +305 -0
- volcenginesdkmilvus/models/instance_configuration_for_create_instance_input.py +227 -0
- volcenginesdkmilvus/models/instance_configuration_for_create_instance_one_step_input.py +227 -0
- volcenginesdkmilvus/models/instance_info_for_describe_instances_output.py +409 -0
- volcenginesdkmilvus/models/list_tags_for_resources_request.py +228 -0
- volcenginesdkmilvus/models/list_tags_for_resources_response.py +149 -0
- volcenginesdkmilvus/models/modify_delete_protect_request.py +151 -0
- volcenginesdkmilvus/models/modify_delete_protect_response.py +123 -0
- volcenginesdkmilvus/models/modify_instance_config_request.py +150 -0
- volcenginesdkmilvus/models/modify_instance_config_response.py +123 -0
- volcenginesdkmilvus/models/modify_instance_name_request.py +151 -0
- volcenginesdkmilvus/models/modify_instance_name_response.py +123 -0
- volcenginesdkmilvus/models/modify_post_paid_request.py +205 -0
- volcenginesdkmilvus/models/modify_post_paid_response.py +253 -0
- volcenginesdkmilvus/models/modify_pre_paid_request.py +205 -0
- volcenginesdkmilvus/models/modify_pre_paid_response.py +253 -0
- volcenginesdkmilvus/models/modify_resource_tags_request.py +176 -0
- volcenginesdkmilvus/models/modify_resource_tags_response.py +123 -0
- volcenginesdkmilvus/models/network_config_for_create_instance_input.py +175 -0
- volcenginesdkmilvus/models/network_config_for_create_instance_one_step_input.py +175 -0
- volcenginesdkmilvus/models/network_config_for_describe_instance_detail_output.py +175 -0
- volcenginesdkmilvus/models/network_config_for_describe_instances_output.py +175 -0
- volcenginesdkmilvus/models/node_cu_type_support_spec_list_for_describe_available_spec_output.py +175 -0
- volcenginesdkmilvus/models/node_info_list_for_describe_node_info_output.py +357 -0
- volcenginesdkmilvus/models/node_price_list_for_describe_price_output.py +305 -0
- volcenginesdkmilvus/models/node_support_spec_list_for_describe_available_spec_output.py +175 -0
- volcenginesdkmilvus/models/release_instance_request.py +124 -0
- volcenginesdkmilvus/models/release_instance_response.py +123 -0
- volcenginesdkmilvus/models/scale_instance_request.py +204 -0
- volcenginesdkmilvus/models/scale_instance_response.py +175 -0
- volcenginesdkmilvus/models/spec_config_for_describe_instance_detail_output.py +227 -0
- volcenginesdkmilvus/models/spec_list_for_describe_available_spec_output.py +253 -0
- volcenginesdkmilvus/models/subnet_info_for_create_instance_input.py +149 -0
- volcenginesdkmilvus/models/subnet_info_for_create_instance_one_step_input.py +149 -0
- volcenginesdkmilvus/models/subnet_info_for_describe_instance_detail_output.py +149 -0
- volcenginesdkmilvus/models/subnet_info_for_describe_instances_output.py +149 -0
- volcenginesdkmilvus/models/tag_filter_for_describe_instances_input.py +149 -0
- volcenginesdkmilvus/models/tag_filter_for_list_tags_for_resources_input.py +149 -0
- volcenginesdkmilvus/models/tag_for_create_instance_input.py +149 -0
- volcenginesdkmilvus/models/tag_for_create_instance_one_step_input.py +149 -0
- volcenginesdkmilvus/models/tag_for_describe_instance_detail_output.py +149 -0
- volcenginesdkmilvus/models/tag_for_describe_instances_output.py +149 -0
- volcenginesdkmilvus/models/tag_for_modify_resource_tags_input.py +149 -0
- volcenginesdkmilvus/models/tag_for_tag_resources_input.py +149 -0
- volcenginesdkmilvus/models/tag_resource_for_list_tags_for_resources_output.py +201 -0
- volcenginesdkmilvus/models/tag_resources_request.py +175 -0
- volcenginesdkmilvus/models/tag_resources_response.py +123 -0
- volcenginesdkmilvus/models/untag_resources_request.py +175 -0
- volcenginesdkmilvus/models/untag_resources_response.py +123 -0
- volcenginesdkmilvus/models/version_for_describe_available_version_output.py +149 -0
- volcenginesdkmilvus/models/vpc_info_for_create_instance_input.py +149 -0
- volcenginesdkmilvus/models/vpc_info_for_create_instance_one_step_input.py +149 -0
- volcenginesdkmilvus/models/vpc_info_for_describe_instance_detail_output.py +149 -0
- volcenginesdkmilvus/models/vpc_info_for_describe_instances_output.py +149 -0
- volcenginesdkmilvus/models/zone_for_describe_zones_output.py +175 -0
- volcenginesdkmilvus/models/zone_support_spec_list_for_describe_available_spec_output.py +149 -0
- volcenginesdkorganization/__init__.py +6 -0
- volcenginesdkorganization/api/organization_api.py +194 -0
- volcenginesdkorganization/models/__init__.py +6 -0
- volcenginesdkorganization/models/filter_for_list_tags_keys_input.py +123 -0
- volcenginesdkorganization/models/filter_for_list_tags_values_input.py +123 -0
- volcenginesdkorganization/models/list_tags_keys_request.py +209 -0
- volcenginesdkorganization/models/list_tags_keys_response.py +175 -0
- volcenginesdkorganization/models/list_tags_values_request.py +236 -0
- volcenginesdkorganization/models/list_tags_values_response.py +175 -0
- volcenginesdkseccenter20240508/__init__.py +128 -0
- volcenginesdkseccenter20240508/api/seccenter20240508_api.py +7987 -3913
- volcenginesdkseccenter20240508/models/__init__.py +128 -0
- volcenginesdkseccenter20240508/models/add_baseline_check_config_request.py +383 -0
- volcenginesdkseccenter20240508/models/add_baseline_check_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/add_login_config_request.py +27 -1
- volcenginesdkseccenter20240508/models/alarm_topic_config_for_get_tls_info_output.py +175 -0
- volcenginesdkseccenter20240508/models/alarm_topic_config_for_modify_tls_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/ban_alarm_ip_request.py +175 -0
- volcenginesdkseccenter20240508/models/ban_alarm_ip_response.py +123 -0
- volcenginesdkseccenter20240508/models/baseline_list_for_add_baseline_check_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/baseline_list_for_edit_baseline_check_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/baseline_list_for_list_baseline_basic_info_output.py +201 -0
- volcenginesdkseccenter20240508/models/baseline_list_for_list_baseline_check_config_output.py +149 -0
- volcenginesdkseccenter20240508/models/bind_mlp_auth_request.py +123 -0
- volcenginesdkseccenter20240508/models/bind_mlp_auth_response.py +123 -0
- volcenginesdkseccenter20240508/models/check_alarm_support_ban_ip_request.py +175 -0
- volcenginesdkseccenter20240508/models/check_alarm_support_ban_ip_response.py +227 -0
- volcenginesdkseccenter20240508/models/check_install_agent_client_response.py +105 -1
- volcenginesdkseccenter20240508/models/conditions_for_list_ordered_hosts_basic_infos_input.py +435 -0
- volcenginesdkseccenter20240508/models/create_mlp_asset_sync_task_request.py +124 -0
- volcenginesdkseccenter20240508/models/create_mlp_asset_sync_task_response.py +123 -0
- volcenginesdkseccenter20240508/models/data_for_get_alarm_rule_list_output.py +331 -0
- volcenginesdkseccenter20240508/models/data_for_get_fingerprint_env_output.py +409 -0
- volcenginesdkseccenter20240508/models/data_for_get_fingerprint_process_output.py +27 -1
- volcenginesdkseccenter20240508/models/data_for_get_fingerprint_service_output.py +53 -1
- volcenginesdkseccenter20240508/models/data_for_get_mlp_asset_sync_task_detail_output.py +305 -0
- volcenginesdkseccenter20240508/models/data_for_get_offline_notification_list_output.py +929 -0
- volcenginesdkseccenter20240508/models/data_for_list_ban_ip_list_output.py +487 -0
- volcenginesdkseccenter20240508/models/data_for_list_baseline_basic_info_output.py +201 -0
- volcenginesdkseccenter20240508/models/data_for_list_baseline_check_config_output.py +617 -0
- volcenginesdkseccenter20240508/models/data_for_list_baseline_for_group_policy_output.py +201 -0
- volcenginesdkseccenter20240508/models/data_for_list_check_config_related_baseline_output.py +201 -0
- volcenginesdkseccenter20240508/models/data_for_list_fingerprint_collect_config_output.py +331 -0
- volcenginesdkseccenter20240508/models/data_for_list_mlp_asset_tasks_output.py +305 -0
- volcenginesdkseccenter20240508/models/data_for_list_ordered_hosts_basic_infos_output.py +539 -0
- volcenginesdkseccenter20240508/models/delete_baseline_check_config_request.py +124 -0
- volcenginesdkseccenter20240508/models/delete_baseline_check_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/detect_baseline_by_check_config_request.py +124 -0
- volcenginesdkseccenter20240508/models/detect_baseline_by_check_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/ecs_instance_for_get_auto_isolate_agent_list_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_get_host_basic_info_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_get_offline_notification_list_output.py +669 -0
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_asset_center_hosts_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_auto_defense_hosts_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_ban_ip_list_output.py +669 -0
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_hosts_basic_infos_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_multi_level_asset_hosts_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_ordered_hosts_basic_infos_output.py +669 -0
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_rasp_config_agent_infos_output.py +53 -1
- volcenginesdkseccenter20240508/models/edit_baseline_check_config_request.py +410 -0
- volcenginesdkseccenter20240508/models/edit_baseline_check_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/edit_fingerprint_collect_config_request.py +254 -0
- volcenginesdkseccenter20240508/models/edit_fingerprint_collect_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/export_dev_fingerprint_data_request.py +1 -1
- volcenginesdkseccenter20240508/models/file_for_handle_endpoint_alarms_input.py +149 -0
- volcenginesdkseccenter20240508/models/get_alarm_rule_list_request.py +333 -0
- volcenginesdkseccenter20240508/models/get_alarm_rule_list_response.py +201 -0
- volcenginesdkseccenter20240508/models/get_auto_protect_config_request.py +95 -0
- volcenginesdkseccenter20240508/models/get_auto_protect_config_response.py +149 -0
- volcenginesdkvod20250101/models/scenario_for_create_ai_termbase_input.py → volcenginesdkseccenter20240508/models/get_brute_force_ban_cap_params_request.py +6 -6
- volcenginesdkseccenter20240508/models/get_brute_force_ban_cap_params_response.py +123 -0
- volcenginesdkseccenter20240508/models/get_brute_force_ban_config_request.py +123 -0
- volcenginesdkseccenter20240508/models/get_brute_force_ban_config_response.py +383 -0
- volcenginesdkseccenter20240508/models/get_brute_force_ban_statistics_request.py +123 -0
- volcenginesdkseccenter20240508/models/get_brute_force_ban_statistics_response.py +149 -0
- volcenginesdkseccenter20240508/models/get_custom_weak_passwords_request.py +95 -0
- volcenginesdkseccenter20240508/models/get_custom_weak_passwords_response.py +201 -0
- volcenginesdkseccenter20240508/models/get_fingerprint_env_request.py +489 -0
- volcenginesdkseccenter20240508/models/get_fingerprint_env_response.py +201 -0
- volcenginesdkseccenter20240508/models/get_fingerprint_service_request.py +0 -7
- volcenginesdkseccenter20240508/models/get_fingerprint_statistics_response.py +27 -1
- volcenginesdkseccenter20240508/models/get_geo_location_request.py +123 -0
- volcenginesdkseccenter20240508/models/get_geo_location_response.py +123 -0
- volcenginesdkseccenter20240508/models/get_mlp_asset_sync_task_detail_request.py +124 -0
- volcenginesdkseccenter20240508/models/get_mlp_asset_sync_task_detail_response.py +123 -0
- volcenginesdkseccenter20240508/models/get_mlp_asset_sync_task_status_request.py +124 -0
- volcenginesdkseccenter20240508/models/get_mlp_asset_sync_task_status_response.py +201 -0
- volcenginesdkseccenter20240508/models/get_offline_notification_config_request.py +95 -0
- volcenginesdkseccenter20240508/models/get_offline_notification_config_response.py +149 -0
- volcenginesdkseccenter20240508/models/get_offline_notification_list_request.py +411 -0
- volcenginesdkseccenter20240508/models/get_offline_notification_list_response.py +201 -0
- volcenginesdkseccenter20240508/models/get_security_overview_score_stats_request.py +123 -0
- volcenginesdkseccenter20240508/models/get_security_overview_score_stats_response.py +149 -0
- volcenginesdkseccenter20240508/models/get_tls_info_response.py +122 -70
- volcenginesdkseccenter20240508/models/handle_endpoint_alarms_request.py +150 -0
- volcenginesdkseccenter20240508/models/handle_endpoint_alarms_response.py +95 -0
- volcenginesdkseccenter20240508/models/handle_list_for_handle_endpoint_alarms_input.py +201 -0
- volcenginesdkseccenter20240508/models/host_info_for_list_ban_ip_list_output.py +279 -0
- volcenginesdkseccenter20240508/models/list_alarm_tags_request.py +6 -6
- volcenginesdkseccenter20240508/models/list_ban_ip_list_request.py +567 -0
- volcenginesdkseccenter20240508/models/list_ban_ip_list_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_baseline_basic_info_request.py +203 -0
- volcenginesdkseccenter20240508/models/list_baseline_basic_info_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_baseline_check_config_request.py +203 -0
- volcenginesdkseccenter20240508/models/list_baseline_check_config_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_baseline_for_group_policy_request.py +124 -0
- volcenginesdkseccenter20240508/models/list_baseline_for_group_policy_response.py +123 -0
- volcenginesdkseccenter20240508/models/list_batch_endpoint_handle_methods_request.py +150 -0
- volcenginesdkseccenter20240508/models/list_batch_endpoint_handle_methods_response.py +149 -0
- volcenginesdkseccenter20240508/models/list_check_config_related_baseline_request.py +256 -0
- volcenginesdkseccenter20240508/models/list_check_config_related_baseline_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_fingerprint_collect_config_request.py +149 -0
- volcenginesdkseccenter20240508/models/list_fingerprint_collect_config_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_mlp_alarm_tags_request.py +6 -6
- volcenginesdkseccenter20240508/models/list_mlp_asset_tasks_request.py +255 -0
- volcenginesdkseccenter20240508/models/list_mlp_asset_tasks_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_ordered_hosts_basic_infos_request.py +256 -0
- volcenginesdkseccenter20240508/models/list_ordered_hosts_basic_infos_response.py +201 -0
- volcenginesdkseccenter20240508/models/location_for_get_geo_location_output.py +149 -0
- volcenginesdkseccenter20240508/models/login_location_for_add_login_config_input.py +175 -0
- volcenginesdkseccenter20240508/models/login_location_for_update_login_config_input.py +175 -0
- volcenginesdkseccenter20240508/models/login_topic_config_for_get_tls_info_output.py +175 -0
- volcenginesdkseccenter20240508/models/login_topic_config_for_modify_tls_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/modify_tls_config_request.py +133 -3
- volcenginesdkseccenter20240508/models/operation_list_for_list_batch_endpoint_handle_methods_output.py +201 -0
- volcenginesdkseccenter20240508/models/port_change_topic_config_for_get_tls_info_output.py +175 -0
- volcenginesdkseccenter20240508/models/port_change_topic_config_for_modify_tls_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/proc_list_for_list_batch_endpoint_handle_methods_output.py +175 -0
- volcenginesdkseccenter20240508/models/process_for_handle_endpoint_alarms_input.py +175 -0
- volcenginesdkseccenter20240508/models/process_start_topic_config_for_get_tls_info_output.py +175 -0
- volcenginesdkseccenter20240508/models/process_start_topic_config_for_modify_tls_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/relate_alarm_info_for_list_ban_ip_list_output.py +149 -0
- volcenginesdkseccenter20240508/models/retry_ip_operation_request.py +150 -0
- volcenginesdkseccenter20240508/models/retry_ip_operation_response.py +123 -0
- volcenginesdkseccenter20240508/models/risk_for_get_offline_notification_list_output.py +201 -0
- volcenginesdkseccenter20240508/models/rule_list_for_get_brute_force_ban_config_output.py +227 -0
- volcenginesdkseccenter20240508/models/rule_list_for_set_brute_force_ban_config_input.py +227 -0
- volcenginesdkseccenter20240508/models/score_for_get_security_overview_score_stats_output.py +149 -0
- volcenginesdkseccenter20240508/models/set_brute_force_ban_config_request.py +461 -0
- volcenginesdkseccenter20240508/models/set_brute_force_ban_config_response.py +95 -0
- volcenginesdkseccenter20240508/models/set_custom_weak_passwords_request.py +123 -0
- volcenginesdkseccenter20240508/models/set_custom_weak_passwords_response.py +123 -0
- volcenginesdkseccenter20240508/models/stop_mlp_asset_sync_task_request.py +124 -0
- volcenginesdkseccenter20240508/models/stop_mlp_asset_sync_task_response.py +123 -0
- volcenginesdkseccenter20240508/models/un_ban_ip_item_request.py +123 -0
- volcenginesdkseccenter20240508/models/un_ban_ip_item_response.py +149 -0
- volcenginesdkseccenter20240508/models/unbind_mlp_auth_request.py +123 -0
- volcenginesdkseccenter20240508/models/unbind_mlp_auth_response.py +123 -0
- volcenginesdkseccenter20240508/models/update_auto_protect_config_request.py +124 -0
- volcenginesdkseccenter20240508/models/update_auto_protect_config_response.py +149 -0
- volcenginesdkseccenter20240508/models/update_baseline_check_config_switch_request.py +150 -0
- volcenginesdkseccenter20240508/models/update_baseline_check_config_switch_response.py +123 -0
- volcenginesdkseccenter20240508/models/update_cloud_provider_request.py +149 -0
- volcenginesdkseccenter20240508/models/update_cloud_provider_response.py +201 -0
- volcenginesdkseccenter20240508/models/update_login_config_request.py +27 -1
- volcenginesdkseccenter20240508/models/update_offline_notification_config_request.py +151 -0
- volcenginesdkseccenter20240508/models/update_offline_notification_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/vuln_topic_config_for_get_tls_info_output.py +175 -0
- volcenginesdkseccenter20240508/models/vuln_topic_config_for_modify_tls_config_input.py +149 -0
- volcenginesdkvefaas/__init__.py +1 -0
- volcenginesdkvefaas/models/__init__.py +1 -0
- volcenginesdkvefaas/models/describe_sandbox_response.py +53 -1
- volcenginesdkvefaas/models/metadata_list_for_describe_sandbox_output.py +149 -0
- volcenginesdkvod20250101/__init__.py +0 -1
- volcenginesdkvod20250101/models/__init__.py +0 -1
- volcenginesdkvod20250101/models/create_ai_termbase_request.py +6 -5
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/WHEEL +0 -0
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/licenses/LICENSE.txt +0 -0
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/licenses/NOTICE.md +0 -0
|
@@ -20,12 +20,11 @@ from typing import Dict, List, Union, Iterable, Optional, Callable
|
|
|
20
20
|
from typing_extensions import Literal
|
|
21
21
|
|
|
22
22
|
import httpx
|
|
23
|
-
import warnings
|
|
24
23
|
|
|
25
24
|
from ..._exceptions import ArkAPITimeoutError, ArkAPIConnectionError, ArkAPIStatusError
|
|
26
25
|
from ..._types import Body, Query, Headers
|
|
27
|
-
from ..._utils import with_sts_token, async_with_sts_token
|
|
28
|
-
from
|
|
26
|
+
from ..._utils import with_sts_token, async_with_sts_token
|
|
27
|
+
from ..encryption import with_e2e_encryption, async_with_e2e_encryption
|
|
29
28
|
from ..._base_client import make_request_options
|
|
30
29
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
31
30
|
from ..._compat import cached_property
|
|
@@ -50,43 +49,10 @@ from ..._constants import (
|
|
|
50
49
|
__all__ = ["Completions", "AsyncCompletions"]
|
|
51
50
|
|
|
52
51
|
|
|
53
|
-
def _process_messages(
|
|
54
|
-
messages: Iterable[ChatCompletionMessageParam], f: Callable[[str], str]
|
|
55
|
-
):
|
|
56
|
-
for message in messages:
|
|
57
|
-
if message.get("content", None) is not None:
|
|
58
|
-
current_content = message.get("content")
|
|
59
|
-
if isinstance(current_content, str):
|
|
60
|
-
message["content"] = f(current_content)
|
|
61
|
-
elif isinstance(current_content, Iterable):
|
|
62
|
-
for part in current_content:
|
|
63
|
-
if part.get("type", None) == "text":
|
|
64
|
-
part["text"] = f(part["text"])
|
|
65
|
-
elif part.get("type", None) == "image_url":
|
|
66
|
-
if part["image_url"]["url"].startswith("data:"):
|
|
67
|
-
part["image_url"]["url"] = f(part["image_url"]["url"])
|
|
68
|
-
else:
|
|
69
|
-
warnings.warn(
|
|
70
|
-
"encryption is not supported for image url, "
|
|
71
|
-
"please use base64 image if you want encryption"
|
|
72
|
-
)
|
|
73
|
-
else:
|
|
74
|
-
raise TypeError(
|
|
75
|
-
"encryption is not supported for content type {}".format(
|
|
76
|
-
type(part)
|
|
77
|
-
)
|
|
78
|
-
)
|
|
79
|
-
else:
|
|
80
|
-
raise TypeError(
|
|
81
|
-
"encryption is not supported for content type {}".format(
|
|
82
|
-
type(message.get("content"))
|
|
83
|
-
)
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
|
|
87
52
|
def _calculate_retry_timeout(retry_times) -> float:
|
|
88
53
|
nbRetries = min(retry_times, MAX_RETRY_DELAY / INITIAL_RETRY_DELAY)
|
|
89
|
-
sleep_seconds = min(INITIAL_RETRY_DELAY *
|
|
54
|
+
sleep_seconds = min(INITIAL_RETRY_DELAY *
|
|
55
|
+
pow(2, nbRetries), MAX_RETRY_DELAY)
|
|
90
56
|
# Apply some jitter, plus-or-minus half a second.
|
|
91
57
|
jitter = 1 - 0.25 * random()
|
|
92
58
|
timeout = sleep_seconds * jitter
|
|
@@ -126,58 +92,8 @@ class Completions(SyncAPIResource):
|
|
|
126
92
|
def with_raw_response(self) -> CompletionsWithRawResponse:
|
|
127
93
|
return CompletionsWithRawResponse(self)
|
|
128
94
|
|
|
129
|
-
def _process_messages(
|
|
130
|
-
self, messages: Iterable[ChatCompletionMessageParam], f: Callable[[str], str]
|
|
131
|
-
):
|
|
132
|
-
for message in messages:
|
|
133
|
-
if message.get("content", None) is not None:
|
|
134
|
-
current_content = message.get("content")
|
|
135
|
-
if isinstance(current_content, str):
|
|
136
|
-
message["content"] = f(current_content)
|
|
137
|
-
elif isinstance(current_content, Iterable):
|
|
138
|
-
raise TypeError(
|
|
139
|
-
"content type {} is not supported end-to-end encryption".format(
|
|
140
|
-
type(message.get("content"))
|
|
141
|
-
)
|
|
142
|
-
)
|
|
143
|
-
else:
|
|
144
|
-
raise TypeError(
|
|
145
|
-
"content type {} is not supported end-to-end encryption".format(
|
|
146
|
-
type(message.get("content"))
|
|
147
|
-
)
|
|
148
|
-
)
|
|
149
|
-
|
|
150
|
-
def _encrypt(
|
|
151
|
-
self,
|
|
152
|
-
model: str,
|
|
153
|
-
messages: Iterable[ChatCompletionMessageParam],
|
|
154
|
-
extra_headers: Headers,
|
|
155
|
-
) -> tuple[bytes, bytes]:
|
|
156
|
-
client = self._client._get_endpoint_certificate(model)
|
|
157
|
-
_crypto_key, _crypto_nonce, session_token = client.generate_ecies_key_pair()
|
|
158
|
-
extra_headers["X-Session-Token"] = session_token
|
|
159
|
-
_process_messages(
|
|
160
|
-
messages,
|
|
161
|
-
lambda x: client.encrypt_string_with_key(_crypto_key, _crypto_nonce, x),
|
|
162
|
-
)
|
|
163
|
-
return _crypto_key, _crypto_nonce
|
|
164
|
-
|
|
165
|
-
def _decrypt(
|
|
166
|
-
self, key: bytes, nonce: bytes, resp: ChatCompletion
|
|
167
|
-
) -> ChatCompletion:
|
|
168
|
-
if resp.choices is not None:
|
|
169
|
-
for index, choice in enumerate(resp.choices):
|
|
170
|
-
if (
|
|
171
|
-
choice.message is not None and choice.finish_reason != 'content_filter'
|
|
172
|
-
and choice.message.content is not None
|
|
173
|
-
):
|
|
174
|
-
choice.message.content = aes_gcm_decrypt_base64_string(
|
|
175
|
-
key, nonce, choice.message.content
|
|
176
|
-
)
|
|
177
|
-
resp.choices[index] = choice
|
|
178
|
-
return resp
|
|
179
|
-
|
|
180
95
|
@with_sts_token
|
|
96
|
+
@with_e2e_encryption
|
|
181
97
|
def create(
|
|
182
98
|
self,
|
|
183
99
|
*,
|
|
@@ -208,14 +124,6 @@ class Completions(SyncAPIResource):
|
|
|
208
124
|
extra_body: Body | None = None,
|
|
209
125
|
timeout: float | httpx.Timeout | None = None,
|
|
210
126
|
) -> ChatCompletion:
|
|
211
|
-
is_encrypt = False
|
|
212
|
-
if (
|
|
213
|
-
extra_headers is not None
|
|
214
|
-
and extra_headers.get(ARK_E2E_ENCRYPTION_HEADER, None) == "true"
|
|
215
|
-
):
|
|
216
|
-
is_encrypt = True
|
|
217
|
-
messages = deepcopy_minimal(messages)
|
|
218
|
-
e2e_key, e2e_nonce = self._encrypt(model, messages, extra_headers)
|
|
219
127
|
retryTimes = 0
|
|
220
128
|
last_time = self._get_request_last_time(timeout)
|
|
221
129
|
model_breaker = self._client.get_model_breaker(model)
|
|
@@ -273,8 +181,6 @@ class Completions(SyncAPIResource):
|
|
|
273
181
|
continue
|
|
274
182
|
else:
|
|
275
183
|
raise err
|
|
276
|
-
if is_encrypt:
|
|
277
|
-
resp = self._decrypt(e2e_key, e2e_nonce, resp)
|
|
278
184
|
return resp
|
|
279
185
|
|
|
280
186
|
def _get_request_last_time(self, timeout):
|
|
@@ -289,7 +195,8 @@ class Completions(SyncAPIResource):
|
|
|
289
195
|
timeoutSeconds = timeout
|
|
290
196
|
else:
|
|
291
197
|
raise TypeError(
|
|
292
|
-
"timeout type {} is not supported".format(
|
|
198
|
+
"timeout type {} is not supported".format(
|
|
199
|
+
type(self._client.timeout))
|
|
293
200
|
)
|
|
294
201
|
return datetime.now() + timedelta(seconds=timeoutSeconds)
|
|
295
202
|
|
|
@@ -299,37 +206,8 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
299
206
|
def with_raw_response(self) -> AsyncCompletionsWithRawResponse:
|
|
300
207
|
return AsyncCompletionsWithRawResponse(self)
|
|
301
208
|
|
|
302
|
-
def _encrypt(
|
|
303
|
-
self,
|
|
304
|
-
model: str,
|
|
305
|
-
messages: Iterable[ChatCompletionMessageParam],
|
|
306
|
-
extra_headers: Headers,
|
|
307
|
-
) -> tuple[bytes, bytes]:
|
|
308
|
-
client = self._client._get_endpoint_certificate(model)
|
|
309
|
-
_crypto_key, _crypto_nonce, session_token = client.generate_ecies_key_pair()
|
|
310
|
-
extra_headers["X-Session-Token"] = session_token
|
|
311
|
-
_process_messages(
|
|
312
|
-
messages,
|
|
313
|
-
lambda x: client.encrypt_string_with_key(_crypto_key, _crypto_nonce, x),
|
|
314
|
-
)
|
|
315
|
-
return _crypto_key, _crypto_nonce
|
|
316
|
-
|
|
317
|
-
async def _decrypt(
|
|
318
|
-
self, key: bytes, nonce: bytes, resp: ChatCompletion
|
|
319
|
-
) -> ChatCompletion:
|
|
320
|
-
if resp.choices is not None:
|
|
321
|
-
for index, choice in enumerate(resp.choices):
|
|
322
|
-
if (
|
|
323
|
-
choice.message is not None and choice.finish_reason != 'content_filter'
|
|
324
|
-
and choice.message.content is not None
|
|
325
|
-
):
|
|
326
|
-
choice.message.content = aes_gcm_decrypt_base64_string(
|
|
327
|
-
key, nonce, choice.message.content
|
|
328
|
-
)
|
|
329
|
-
resp.choices[index] = choice
|
|
330
|
-
return resp
|
|
331
|
-
|
|
332
209
|
@async_with_sts_token
|
|
210
|
+
@async_with_e2e_encryption
|
|
333
211
|
async def create(
|
|
334
212
|
self,
|
|
335
213
|
*,
|
|
@@ -360,14 +238,6 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
360
238
|
extra_body: Body | None = None,
|
|
361
239
|
timeout: float | httpx.Timeout | None = None,
|
|
362
240
|
) -> ChatCompletion:
|
|
363
|
-
is_encrypt = False
|
|
364
|
-
if (
|
|
365
|
-
extra_headers is not None
|
|
366
|
-
and extra_headers.get(ARK_E2E_ENCRYPTION_HEADER, None) == "true"
|
|
367
|
-
):
|
|
368
|
-
is_encrypt = True
|
|
369
|
-
messages = deepcopy_minimal(messages)
|
|
370
|
-
e2e_key, e2e_nonce = self._encrypt(model, messages, extra_headers)
|
|
371
241
|
|
|
372
242
|
retryTimes = 0
|
|
373
243
|
last_time = self._get_request_last_time(timeout)
|
|
@@ -426,8 +296,6 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
426
296
|
continue
|
|
427
297
|
else:
|
|
428
298
|
raise err
|
|
429
|
-
if is_encrypt:
|
|
430
|
-
resp = await self._decrypt(e2e_key, e2e_nonce, resp)
|
|
431
299
|
return resp
|
|
432
300
|
|
|
433
301
|
def _get_request_last_time(self, timeout):
|
|
@@ -442,7 +310,8 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
442
310
|
timeoutSeconds = timeout
|
|
443
311
|
else:
|
|
444
312
|
raise TypeError(
|
|
445
|
-
"timeout type {} is not supported".format(
|
|
313
|
+
"timeout type {} is not supported".format(
|
|
314
|
+
type(self._client.timeout))
|
|
446
315
|
)
|
|
447
316
|
return datetime.now() + timedelta(seconds=timeoutSeconds)
|
|
448
317
|
|
|
@@ -56,6 +56,8 @@ from ....types.chat.chat_completion_stream_options_param import (
|
|
|
56
56
|
from ....types.chat.chat_completion_tool_choice_option_param import (
|
|
57
57
|
ChatCompletionToolChoiceOptionParam,
|
|
58
58
|
)
|
|
59
|
+
from ....types.shared.reasoning_effort import ReasoningEffort
|
|
60
|
+
|
|
59
61
|
|
|
60
62
|
__all__ = ["Completions", "AsyncCompletions"]
|
|
61
63
|
|
|
@@ -100,6 +102,7 @@ class Completions(SyncAPIResource):
|
|
|
100
102
|
top_logprobs: Optional[int] | NotGiven = NOT_GIVEN,
|
|
101
103
|
top_p: Optional[float] | NotGiven = NOT_GIVEN,
|
|
102
104
|
user: str | NotGiven = NOT_GIVEN,
|
|
105
|
+
reasoning_effort: Optional[ReasoningEffort] | NotGiven = NOT_GIVEN,
|
|
103
106
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
104
107
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
105
108
|
extra_headers: Headers | None = None,
|
|
@@ -147,6 +150,7 @@ class Completions(SyncAPIResource):
|
|
|
147
150
|
"top_logprobs": top_logprobs,
|
|
148
151
|
"top_p": top_p,
|
|
149
152
|
"user": user,
|
|
153
|
+
"reasoning_effort": reasoning_effort,
|
|
150
154
|
},
|
|
151
155
|
completion_create_params.CompletionCreateParams,
|
|
152
156
|
),
|
|
@@ -188,6 +192,7 @@ class Completions(SyncAPIResource):
|
|
|
188
192
|
top_logprobs: Optional[int] | NotGiven = NOT_GIVEN,
|
|
189
193
|
top_p: Optional[float] | NotGiven = NOT_GIVEN,
|
|
190
194
|
user: str | NotGiven = NOT_GIVEN,
|
|
195
|
+
reasoning_effort: Optional[ReasoningEffort] | NotGiven = NOT_GIVEN,
|
|
191
196
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
192
197
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
193
198
|
extra_headers: Headers | None = None,
|
|
@@ -202,6 +207,7 @@ class Completions(SyncAPIResource):
|
|
|
202
207
|
|
|
203
208
|
api_request: partial[Stream[ChatCompletionChunk]] = partial(
|
|
204
209
|
self._client.chat.completions.create,
|
|
210
|
+
reasoning_effort=reasoning_effort,
|
|
205
211
|
messages=messages,
|
|
206
212
|
model=model,
|
|
207
213
|
stream=True,
|
|
@@ -274,6 +280,7 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
274
280
|
top_logprobs: Optional[int] | NotGiven = NOT_GIVEN,
|
|
275
281
|
top_p: Optional[float] | NotGiven = NOT_GIVEN,
|
|
276
282
|
user: str | NotGiven = NOT_GIVEN,
|
|
283
|
+
reasoning_effort: Optional[ReasoningEffort] | NotGiven = NOT_GIVEN,
|
|
277
284
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
278
285
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
279
286
|
extra_headers: Headers | None = None,
|
|
@@ -321,6 +328,7 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
321
328
|
"top_logprobs": top_logprobs,
|
|
322
329
|
"top_p": top_p,
|
|
323
330
|
"user": user,
|
|
331
|
+
"reasoning_effort": reasoning_effort,
|
|
324
332
|
},
|
|
325
333
|
completion_create_params.CompletionCreateParams,
|
|
326
334
|
),
|
|
@@ -362,6 +370,7 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
362
370
|
top_logprobs: Optional[int] | NotGiven = NOT_GIVEN,
|
|
363
371
|
top_p: Optional[float] | NotGiven = NOT_GIVEN,
|
|
364
372
|
user: str | NotGiven = NOT_GIVEN,
|
|
373
|
+
reasoning_effort: Optional[ReasoningEffort] | NotGiven = NOT_GIVEN,
|
|
365
374
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
366
375
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
367
376
|
extra_headers: Headers | None = None,
|
|
@@ -397,6 +406,7 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
397
406
|
top_logprobs=top_logprobs,
|
|
398
407
|
top_p=top_p,
|
|
399
408
|
user=user,
|
|
409
|
+
reasoning_effort=reasoning_effort,
|
|
400
410
|
extra_headers=extra_headers,
|
|
401
411
|
extra_query=extra_query,
|
|
402
412
|
extra_body=extra_body,
|
|
@@ -23,19 +23,16 @@ from typing import (
|
|
|
23
23
|
AsyncIterator,
|
|
24
24
|
)
|
|
25
25
|
|
|
26
|
-
import os
|
|
27
|
-
import json
|
|
28
26
|
import httpx
|
|
29
|
-
import warnings
|
|
30
27
|
from typing_extensions import Literal
|
|
31
28
|
|
|
32
29
|
from ..._types import Body, Query, Headers
|
|
33
|
-
from ..._utils._utils import
|
|
34
|
-
from
|
|
30
|
+
from ..._utils._utils import with_sts_token, async_with_sts_token
|
|
31
|
+
from ..encryption import with_e2e_encryption, async_with_e2e_encryption
|
|
35
32
|
from ..._base_client import make_request_options
|
|
36
33
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
37
34
|
from ..._compat import cached_property
|
|
38
|
-
|
|
35
|
+
from ...types.shared.reasoning_effort import ReasoningEffort
|
|
39
36
|
from ..._response import (
|
|
40
37
|
to_raw_response_wrapper,
|
|
41
38
|
async_to_raw_response_wrapper,
|
|
@@ -52,46 +49,10 @@ from ...types.chat import (
|
|
|
52
49
|
ChatCompletionToolParam,
|
|
53
50
|
ChatCompletionToolChoiceOptionParam,
|
|
54
51
|
)
|
|
55
|
-
from ..._constants import ARK_E2E_ENCRYPTION_HEADER
|
|
56
52
|
|
|
57
53
|
__all__ = ["Completions", "AsyncCompletions"]
|
|
58
54
|
|
|
59
55
|
|
|
60
|
-
def _process_messages(
|
|
61
|
-
messages: Iterable[ChatCompletionMessageParam], f: Callable[[str], str]
|
|
62
|
-
):
|
|
63
|
-
for message in messages:
|
|
64
|
-
if message.get("content", None) is not None:
|
|
65
|
-
current_content = message.get("content")
|
|
66
|
-
if isinstance(current_content, str):
|
|
67
|
-
message["content"] = f(current_content)
|
|
68
|
-
elif isinstance(current_content, Iterable):
|
|
69
|
-
for part in current_content:
|
|
70
|
-
if part.get("type", None) == "text":
|
|
71
|
-
part["text"] = f(part["text"])
|
|
72
|
-
elif part.get("type", None) == "image_url":
|
|
73
|
-
if part["image_url"]["url"].startswith("data:"):
|
|
74
|
-
part["image_url"]["url"] = f(
|
|
75
|
-
part["image_url"]["url"])
|
|
76
|
-
else:
|
|
77
|
-
warnings.warn(
|
|
78
|
-
"encryption is not supported for image url, "
|
|
79
|
-
"please use base64 image if you want encryption"
|
|
80
|
-
)
|
|
81
|
-
else:
|
|
82
|
-
raise TypeError(
|
|
83
|
-
"encryption is not supported for content type {}".format(
|
|
84
|
-
type(part)
|
|
85
|
-
)
|
|
86
|
-
)
|
|
87
|
-
else:
|
|
88
|
-
raise TypeError(
|
|
89
|
-
"encryption is not supported for content type {}".format(
|
|
90
|
-
type(message.get("content"))
|
|
91
|
-
)
|
|
92
|
-
)
|
|
93
|
-
|
|
94
|
-
|
|
95
56
|
class Completions(SyncAPIResource):
|
|
96
57
|
@cached_property
|
|
97
58
|
def with_raw_response(self) -> CompletionsWithRawResponse:
|
|
@@ -101,70 +62,8 @@ class Completions(SyncAPIResource):
|
|
|
101
62
|
def with_streaming_response(self) -> CompletionsWithStreamingResponse:
|
|
102
63
|
return CompletionsWithStreamingResponse(self)
|
|
103
64
|
|
|
104
|
-
def _encrypt(
|
|
105
|
-
self,
|
|
106
|
-
model: str,
|
|
107
|
-
messages: Iterable[ChatCompletionMessageParam],
|
|
108
|
-
extra_headers: Headers,
|
|
109
|
-
) -> tuple[bytes, bytes, str, str]:
|
|
110
|
-
client, ring_id, key_id = self._client._get_endpoint_certificate(model)
|
|
111
|
-
_crypto_key, _crypto_nonce, session_token = client.generate_ecies_key_pair()
|
|
112
|
-
extra_headers["X-Session-Token"] = session_token
|
|
113
|
-
_process_messages(
|
|
114
|
-
messages,
|
|
115
|
-
lambda x: client.encrypt_string_with_key(
|
|
116
|
-
_crypto_key, _crypto_nonce, x),
|
|
117
|
-
)
|
|
118
|
-
return _crypto_key, _crypto_nonce, ring_id, key_id
|
|
119
|
-
|
|
120
|
-
def _decrypt_chunk(
|
|
121
|
-
self, key: bytes, nonce: bytes, resp: Stream[ChatCompletionChunk]
|
|
122
|
-
) -> Iterator[ChatCompletionChunk]:
|
|
123
|
-
for chunk in resp:
|
|
124
|
-
if chunk.choices is not None:
|
|
125
|
-
for index, choice in enumerate(chunk.choices):
|
|
126
|
-
if (
|
|
127
|
-
choice.delta is not None and choice.delta.content is not None
|
|
128
|
-
and choice.finish_reason != 'content_filter'
|
|
129
|
-
):
|
|
130
|
-
choice.delta.content = aes_gcm_decrypt_base64_string(
|
|
131
|
-
key, nonce, choice.delta.content
|
|
132
|
-
)
|
|
133
|
-
chunk.choices[index] = choice
|
|
134
|
-
yield chunk
|
|
135
|
-
|
|
136
|
-
def _decrypt(
|
|
137
|
-
self,
|
|
138
|
-
key: bytes,
|
|
139
|
-
nonce: bytes,
|
|
140
|
-
resp: ChatCompletion | Stream[ChatCompletionChunk],
|
|
141
|
-
) -> ChatCompletion | Stream[ChatCompletionChunk]:
|
|
142
|
-
if isinstance(resp, ChatCompletion):
|
|
143
|
-
if resp.choices is not None:
|
|
144
|
-
for index, choice in enumerate(resp.choices):
|
|
145
|
-
if (
|
|
146
|
-
choice.message is not None and choice.finish_reason != 'content_filter'
|
|
147
|
-
and choice.message.content is not None
|
|
148
|
-
):
|
|
149
|
-
try:
|
|
150
|
-
content = aes_gcm_decrypt_base64_string(
|
|
151
|
-
key, nonce, choice.message.content
|
|
152
|
-
)
|
|
153
|
-
except Exception:
|
|
154
|
-
content = ''
|
|
155
|
-
if content == '' or not decrypt_validate(choice.message.content):
|
|
156
|
-
content = aes_gcm_decrypt_base64_list(
|
|
157
|
-
key, nonce, choice.message.content
|
|
158
|
-
)
|
|
159
|
-
choice.message.content = content
|
|
160
|
-
resp.choices[index] = choice
|
|
161
|
-
return resp
|
|
162
|
-
else:
|
|
163
|
-
return Stream._make_stream_from_iterator(
|
|
164
|
-
self._decrypt_chunk(key, nonce, resp)
|
|
165
|
-
)
|
|
166
|
-
|
|
167
65
|
@with_sts_token
|
|
66
|
+
@with_e2e_encryption
|
|
168
67
|
def create(
|
|
169
68
|
self,
|
|
170
69
|
*,
|
|
@@ -191,29 +90,13 @@ class Completions(SyncAPIResource):
|
|
|
191
90
|
response_format: completion_create_params.ResponseFormat | None = None,
|
|
192
91
|
thinking: completion_create_params.Thinking | None = None,
|
|
193
92
|
max_completion_tokens: Optional[int] | None = None,
|
|
93
|
+
reasoning_effort: Optional[ReasoningEffort] | None = None,
|
|
194
94
|
user: str | None = None,
|
|
195
95
|
extra_headers: Headers | None = None,
|
|
196
96
|
extra_query: Query | None = None,
|
|
197
97
|
extra_body: Body | None = None,
|
|
198
98
|
timeout: float | httpx.Timeout | None = None,
|
|
199
99
|
) -> ChatCompletion | Stream[ChatCompletionChunk]:
|
|
200
|
-
is_encrypt = False
|
|
201
|
-
if (
|
|
202
|
-
extra_headers is not None
|
|
203
|
-
and extra_headers.get(ARK_E2E_ENCRYPTION_HEADER, None) == "true"
|
|
204
|
-
):
|
|
205
|
-
is_encrypt = True
|
|
206
|
-
messages = deepcopy_minimal(messages)
|
|
207
|
-
e2e_key, e2e_nonce, ring_id, key_id = self._encrypt(
|
|
208
|
-
model, messages, extra_headers)
|
|
209
|
-
if os.environ.get("VOLC_ARK_ENCRYPTION") == "AICC":
|
|
210
|
-
info = {
|
|
211
|
-
'Version': 'AICCv0.1',
|
|
212
|
-
'RingID': ring_id,
|
|
213
|
-
'KeyID': key_id,
|
|
214
|
-
}
|
|
215
|
-
extra_headers["X-Encrypt-Info"] = json.dumps(info)
|
|
216
|
-
|
|
217
100
|
resp = self._post(
|
|
218
101
|
"/chat/completions",
|
|
219
102
|
body={
|
|
@@ -241,6 +124,7 @@ class Completions(SyncAPIResource):
|
|
|
241
124
|
"response_format": response_format,
|
|
242
125
|
"thinking": thinking,
|
|
243
126
|
"max_completion_tokens": max_completion_tokens,
|
|
127
|
+
"reasoning_effort": reasoning_effort,
|
|
244
128
|
},
|
|
245
129
|
options=make_request_options(
|
|
246
130
|
extra_headers=extra_headers,
|
|
@@ -252,9 +136,6 @@ class Completions(SyncAPIResource):
|
|
|
252
136
|
stream=stream or False,
|
|
253
137
|
stream_cls=Stream[ChatCompletionChunk],
|
|
254
138
|
)
|
|
255
|
-
|
|
256
|
-
if is_encrypt:
|
|
257
|
-
resp = self._decrypt(e2e_key, e2e_nonce, resp)
|
|
258
139
|
return resp
|
|
259
140
|
|
|
260
141
|
|
|
@@ -267,70 +148,8 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
267
148
|
def with_streaming_response(self) -> AsyncCompletionsWithStreamingResponse:
|
|
268
149
|
return AsyncCompletionsWithStreamingResponse(self)
|
|
269
150
|
|
|
270
|
-
def _encrypt(
|
|
271
|
-
self,
|
|
272
|
-
model: str,
|
|
273
|
-
messages: Iterable[ChatCompletionMessageParam],
|
|
274
|
-
extra_headers: Headers,
|
|
275
|
-
) -> tuple[bytes, bytes, str, str]:
|
|
276
|
-
client, ring_id, key_id = self._client._get_endpoint_certificate(model)
|
|
277
|
-
_crypto_key, _crypto_nonce, session_token = client.generate_ecies_key_pair()
|
|
278
|
-
extra_headers["X-Session-Token"] = session_token
|
|
279
|
-
_process_messages(
|
|
280
|
-
messages,
|
|
281
|
-
lambda x: client.encrypt_string_with_key(
|
|
282
|
-
_crypto_key, _crypto_nonce, x),
|
|
283
|
-
)
|
|
284
|
-
return _crypto_key, _crypto_nonce, ring_id, key_id
|
|
285
|
-
|
|
286
|
-
async def _decrypt_chunk(
|
|
287
|
-
self, key: bytes, nonce: bytes, resp: AsyncStream[ChatCompletionChunk]
|
|
288
|
-
) -> AsyncIterator[ChatCompletionChunk]:
|
|
289
|
-
async for chunk in resp:
|
|
290
|
-
if chunk.choices is not None:
|
|
291
|
-
for index, choice in enumerate(chunk.choices):
|
|
292
|
-
if (
|
|
293
|
-
choice.delta is not None and choice.delta.content is not None
|
|
294
|
-
and choice.finish_reason != 'content_filter'
|
|
295
|
-
):
|
|
296
|
-
choice.delta.content = aes_gcm_decrypt_base64_string(
|
|
297
|
-
key, nonce, choice.delta.content
|
|
298
|
-
)
|
|
299
|
-
chunk.choices[index] = choice
|
|
300
|
-
yield chunk
|
|
301
|
-
|
|
302
|
-
async def _decrypt(
|
|
303
|
-
self,
|
|
304
|
-
key: bytes,
|
|
305
|
-
nonce: bytes,
|
|
306
|
-
resp: ChatCompletion | AsyncStream[ChatCompletionChunk],
|
|
307
|
-
) -> ChatCompletion | AsyncStream[ChatCompletionChunk]:
|
|
308
|
-
if isinstance(resp, ChatCompletion):
|
|
309
|
-
if resp.choices is not None:
|
|
310
|
-
for index, choice in enumerate(resp.choices):
|
|
311
|
-
if (
|
|
312
|
-
choice.message is not None and choice.finish_reason != 'content_filter'
|
|
313
|
-
and choice.message.content is not None
|
|
314
|
-
):
|
|
315
|
-
try:
|
|
316
|
-
content = aes_gcm_decrypt_base64_string(
|
|
317
|
-
key, nonce, choice.message.content
|
|
318
|
-
)
|
|
319
|
-
except Exception:
|
|
320
|
-
content = ''
|
|
321
|
-
if content == '' or not decrypt_validate(choice.message.content):
|
|
322
|
-
content = aes_gcm_decrypt_base64_list(
|
|
323
|
-
key, nonce, choice.message.content
|
|
324
|
-
)
|
|
325
|
-
choice.message.content = content
|
|
326
|
-
resp.choices[index] = choice
|
|
327
|
-
return resp
|
|
328
|
-
else:
|
|
329
|
-
return AsyncStream._make_stream_from_iterator(
|
|
330
|
-
self._decrypt_chunk(key, nonce, resp)
|
|
331
|
-
)
|
|
332
|
-
|
|
333
151
|
@async_with_sts_token
|
|
152
|
+
@async_with_e2e_encryption
|
|
334
153
|
async def create(
|
|
335
154
|
self,
|
|
336
155
|
*,
|
|
@@ -358,27 +177,12 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
358
177
|
response_format: completion_create_params.ResponseFormat | None = None,
|
|
359
178
|
thinking: completion_create_params.Thinking | None = None,
|
|
360
179
|
max_completion_tokens: Optional[int] | None = None,
|
|
180
|
+
reasoning_effort: Optional[ReasoningEffort] | None = None,
|
|
361
181
|
extra_headers: Headers | None = None,
|
|
362
182
|
extra_query: Query | None = None,
|
|
363
183
|
extra_body: Body | None = None,
|
|
364
184
|
timeout: float | httpx.Timeout | None = None,
|
|
365
185
|
) -> ChatCompletion | AsyncStream[ChatCompletionChunk]:
|
|
366
|
-
is_encrypt = False
|
|
367
|
-
if (
|
|
368
|
-
extra_headers is not None
|
|
369
|
-
and extra_headers.get(ARK_E2E_ENCRYPTION_HEADER, None) == "true"
|
|
370
|
-
):
|
|
371
|
-
is_encrypt = True
|
|
372
|
-
messages = deepcopy_minimal(messages)
|
|
373
|
-
e2e_key, e2e_nonce, ring_id, key_id = self._encrypt(
|
|
374
|
-
model, messages, extra_headers)
|
|
375
|
-
if os.environ.get("VOLC_ARK_ENCRYPTION") == "AICC":
|
|
376
|
-
info = {
|
|
377
|
-
'Version': 'AICCv0.1',
|
|
378
|
-
'RingID': ring_id,
|
|
379
|
-
'KeyID': key_id,
|
|
380
|
-
}
|
|
381
|
-
extra_headers["X-Encrypt-Info"] = json.dumps(info)
|
|
382
186
|
|
|
383
187
|
resp = await self._post(
|
|
384
188
|
"/chat/completions",
|
|
@@ -407,6 +211,7 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
407
211
|
"response_format": response_format,
|
|
408
212
|
"thinking": thinking,
|
|
409
213
|
"max_completion_tokens": max_completion_tokens,
|
|
214
|
+
"reasoning_effort": reasoning_effort,
|
|
410
215
|
},
|
|
411
216
|
options=make_request_options(
|
|
412
217
|
extra_headers=extra_headers,
|
|
@@ -419,8 +224,6 @@ class AsyncCompletions(AsyncAPIResource):
|
|
|
419
224
|
stream_cls=AsyncStream[ChatCompletionChunk],
|
|
420
225
|
)
|
|
421
226
|
|
|
422
|
-
if is_encrypt:
|
|
423
|
-
resp = await self._decrypt(e2e_key, e2e_nonce, resp)
|
|
424
227
|
return resp
|
|
425
228
|
|
|
426
229
|
|