volcengine-python-sdk 4.0.27__py2.py3-none-any.whl → 4.0.29__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.

Files changed (278) hide show
  1. {volcengine_python_sdk-4.0.27.dist-info → volcengine_python_sdk-4.0.29.dist-info}/METADATA +1 -1
  2. {volcengine_python_sdk-4.0.27.dist-info → volcengine_python_sdk-4.0.29.dist-info}/RECORD +278 -17
  3. {volcengine_python_sdk-4.0.27.dist-info → volcengine_python_sdk-4.0.29.dist-info}/top_level.txt +1 -0
  4. volcenginesdkarkruntime/_client.py +7 -6
  5. volcenginesdkarkruntime/_utils/_key_agreement.py +18 -14
  6. volcenginesdkarkruntime/resources/batch_chat/completions.py +10 -141
  7. volcenginesdkarkruntime/resources/beta/chat/completions.py +10 -0
  8. volcenginesdkarkruntime/resources/chat/completions.py +9 -206
  9. volcenginesdkarkruntime/resources/encryption.py +209 -0
  10. volcenginesdkarkruntime/resources/images/images.py +72 -55
  11. volcenginesdkarkruntime/types/content_generation/content_generation_task.py +15 -0
  12. volcenginesdkarkruntime/types/images/__init__.py +2 -2
  13. volcenginesdkarkruntime/types/images/images.py +7 -1
  14. volcenginesdkarkruntime/types/shared/reasoning_effort.py +17 -0
  15. volcenginesdkcore/api_client.py +1 -1
  16. volcenginesdkcore/configuration.py +1 -1
  17. volcenginesdkid/__init__.py +276 -0
  18. volcenginesdkid/api/__init__.py +6 -0
  19. volcenginesdkid/api/id_api.py +7891 -0
  20. volcenginesdkid/models/__init__.py +272 -0
  21. volcenginesdkid/models/api_key_auth_config_for_batch_get_inbound_auth_config_output.py +201 -0
  22. volcenginesdkid/models/api_key_auth_config_for_create_api_key_input.py +201 -0
  23. volcenginesdkid/models/api_key_auth_config_for_create_inbound_auth_config_input.py +201 -0
  24. volcenginesdkid/models/api_key_auth_config_for_create_inbound_auth_config_output.py +201 -0
  25. volcenginesdkid/models/api_key_auth_config_for_get_inbound_auth_config_output.py +201 -0
  26. volcenginesdkid/models/api_key_auth_config_for_list_inbound_auth_configs_output.py +201 -0
  27. volcenginesdkid/models/api_key_auth_config_for_update_inbound_auth_config_input.py +201 -0
  28. volcenginesdkid/models/api_key_credential_provider_for_batch_get_api_key_credential_providers_output.py +201 -0
  29. volcenginesdkid/models/api_key_credential_provider_for_list_api_key_credential_providers_output.py +201 -0
  30. volcenginesdkid/models/api_key_metadata_for_batch_get_inbound_auth_config_output.py +149 -0
  31. volcenginesdkid/models/api_key_metadata_for_create_api_key_credential_provider_input.py +149 -0
  32. volcenginesdkid/models/api_key_metadata_for_create_api_key_input.py +149 -0
  33. volcenginesdkid/models/api_key_metadata_for_create_inbound_auth_config_input.py +149 -0
  34. volcenginesdkid/models/api_key_metadata_for_create_inbound_auth_config_output.py +149 -0
  35. volcenginesdkid/models/api_key_metadata_for_get_api_key_credential_provider_output.py +149 -0
  36. volcenginesdkid/models/api_key_metadata_for_get_inbound_auth_config_output.py +149 -0
  37. volcenginesdkid/models/api_key_metadata_for_get_resource_api_key_output.py +149 -0
  38. volcenginesdkid/models/api_key_metadata_for_list_inbound_auth_configs_output.py +149 -0
  39. volcenginesdkid/models/api_key_metadata_for_update_api_key_credential_provider_input.py +149 -0
  40. volcenginesdkid/models/api_key_metadata_for_update_inbound_auth_config_input.py +149 -0
  41. volcenginesdkid/models/attach_inbound_auth_config_request.py +151 -0
  42. volcenginesdkid/models/attach_inbound_auth_config_response.py +95 -0
  43. volcenginesdkid/models/authorization_server_metadata_for_create_oauth2_credential_provider_input.py +201 -0
  44. volcenginesdkid/models/authorization_server_metadata_for_get_oauth2_credential_provider_output.py +201 -0
  45. volcenginesdkid/models/authorization_server_metadata_for_update_oauth2_credential_provider_input.py +201 -0
  46. volcenginesdkid/models/batch_get_api_key_credential_providers_request.py +149 -0
  47. volcenginesdkid/models/batch_get_api_key_credential_providers_response.py +123 -0
  48. volcenginesdkid/models/batch_get_inbound_auth_config_request.py +123 -0
  49. volcenginesdkid/models/batch_get_inbound_auth_config_response.py +123 -0
  50. volcenginesdkid/models/batch_get_oauth2_credential_providers_request.py +149 -0
  51. volcenginesdkid/models/batch_get_oauth2_credential_providers_response.py +123 -0
  52. volcenginesdkid/models/check_api_key_request.py +124 -0
  53. volcenginesdkid/models/check_api_key_response.py +95 -0
  54. volcenginesdkid/models/check_permission_request.py +254 -0
  55. volcenginesdkid/models/check_permission_response.py +149 -0
  56. volcenginesdkid/models/config_for_create_oauth2_credential_provider_input.py +331 -0
  57. volcenginesdkid/models/config_for_get_oauth2_credential_provider_output.py +331 -0
  58. volcenginesdkid/models/config_for_update_oauth2_credential_provider_input.py +331 -0
  59. volcenginesdkid/models/create_api_key_credential_provider_request.py +203 -0
  60. volcenginesdkid/models/create_api_key_credential_provider_response.py +175 -0
  61. volcenginesdkid/models/create_api_key_request.py +150 -0
  62. volcenginesdkid/models/create_api_key_response.py +95 -0
  63. volcenginesdkid/models/create_identity_provider_o_auth_request.py +419 -0
  64. volcenginesdkid/models/create_identity_provider_o_auth_response.py +409 -0
  65. volcenginesdkid/models/create_identity_provider_oidc_request.py +365 -0
  66. volcenginesdkid/models/create_identity_provider_oidc_response.py +357 -0
  67. volcenginesdkid/models/create_inbound_auth_config_request.py +254 -0
  68. volcenginesdkid/models/create_inbound_auth_config_response.py +357 -0
  69. volcenginesdkid/models/create_namespace_request.py +149 -0
  70. volcenginesdkid/models/create_namespace_response.py +175 -0
  71. volcenginesdkid/models/create_oauth2_credential_provider_request.py +206 -0
  72. volcenginesdkid/models/create_oauth2_credential_provider_response.py +175 -0
  73. volcenginesdkid/models/create_policy_request.py +149 -0
  74. volcenginesdkid/models/create_policy_response.py +175 -0
  75. volcenginesdkid/models/create_user_pool_client_request.py +230 -0
  76. volcenginesdkid/models/create_user_pool_client_response.py +461 -0
  77. volcenginesdkid/models/create_user_pool_request.py +150 -0
  78. volcenginesdkid/models/create_user_pool_response.py +383 -0
  79. volcenginesdkid/models/create_user_request.py +410 -0
  80. volcenginesdkid/models/create_user_response.py +773 -0
  81. volcenginesdkid/models/create_users_csv_request.py +124 -0
  82. volcenginesdkid/models/create_users_csv_response.py +201 -0
  83. volcenginesdkid/models/create_users_request.py +150 -0
  84. volcenginesdkid/models/create_users_response.py +201 -0
  85. volcenginesdkid/models/create_workload_identity_request.py +228 -0
  86. volcenginesdkid/models/create_workload_identity_response.py +305 -0
  87. volcenginesdkid/models/create_workload_pool_request.py +149 -0
  88. volcenginesdkid/models/create_workload_pool_response.py +253 -0
  89. volcenginesdkid/models/credential_provider_for_list_credential_providers_output.py +253 -0
  90. volcenginesdkid/models/custom_parameters_for_create_oauth2_credential_provider_input.py +123 -0
  91. volcenginesdkid/models/custom_parameters_for_get_oauth2_credential_provider_output.py +123 -0
  92. volcenginesdkid/models/custom_parameters_for_get_resource_oauth2_token_input.py +123 -0
  93. volcenginesdkid/models/custom_parameters_for_update_oauth2_credential_provider_input.py +123 -0
  94. volcenginesdkid/models/data_for_list_identity_providers_o_auth_output.py +409 -0
  95. volcenginesdkid/models/data_for_list_identity_providers_oidc_output.py +357 -0
  96. volcenginesdkid/models/data_for_list_identity_providers_output.py +227 -0
  97. volcenginesdkid/models/data_for_list_policies_output.py +175 -0
  98. volcenginesdkid/models/data_for_list_user_pool_clients_output.py +253 -0
  99. volcenginesdkid/models/data_for_list_user_pools_output.py +279 -0
  100. volcenginesdkid/models/data_for_list_users_output.py +773 -0
  101. volcenginesdkid/models/delete_api_key_credential_provider_request.py +150 -0
  102. volcenginesdkid/models/delete_api_key_credential_provider_response.py +95 -0
  103. volcenginesdkid/models/delete_api_key_request.py +151 -0
  104. volcenginesdkid/models/delete_api_key_response.py +95 -0
  105. volcenginesdkid/models/delete_identity_provider_o_auth_request.py +151 -0
  106. volcenginesdkid/models/delete_identity_provider_o_auth_response.py +123 -0
  107. volcenginesdkid/models/delete_identity_provider_oidc_request.py +151 -0
  108. volcenginesdkid/models/delete_identity_provider_oidc_response.py +123 -0
  109. volcenginesdkid/models/delete_identity_provider_request.py +151 -0
  110. volcenginesdkid/models/delete_identity_provider_response.py +123 -0
  111. volcenginesdkid/models/delete_inbound_auth_config_request.py +124 -0
  112. volcenginesdkid/models/delete_inbound_auth_config_response.py +95 -0
  113. volcenginesdkid/models/delete_namespace_request.py +123 -0
  114. volcenginesdkid/models/delete_namespace_response.py +149 -0
  115. volcenginesdkid/models/delete_oauth2_credential_provider_request.py +150 -0
  116. volcenginesdkid/models/delete_oauth2_credential_provider_response.py +95 -0
  117. volcenginesdkid/models/delete_policy_request.py +149 -0
  118. volcenginesdkid/models/delete_policy_response.py +149 -0
  119. volcenginesdkid/models/delete_user_pool_client_request.py +151 -0
  120. volcenginesdkid/models/delete_user_pool_client_response.py +123 -0
  121. volcenginesdkid/models/delete_user_pool_request.py +124 -0
  122. volcenginesdkid/models/delete_user_pool_response.py +123 -0
  123. volcenginesdkid/models/delete_users_request.py +150 -0
  124. volcenginesdkid/models/delete_users_response.py +201 -0
  125. volcenginesdkid/models/delete_workload_identity_request.py +150 -0
  126. volcenginesdkid/models/delete_workload_identity_response.py +95 -0
  127. volcenginesdkid/models/delete_workload_pool_request.py +123 -0
  128. volcenginesdkid/models/delete_workload_pool_response.py +95 -0
  129. volcenginesdkid/models/detach_inbound_auth_config_request.py +151 -0
  130. volcenginesdkid/models/detach_inbound_auth_config_response.py +95 -0
  131. volcenginesdkid/models/entity_for_check_permission_input.py +149 -0
  132. volcenginesdkid/models/entry_for_create_oauth2_credential_provider_input.py +149 -0
  133. volcenginesdkid/models/entry_for_get_oauth2_credential_provider_output.py +149 -0
  134. volcenginesdkid/models/entry_for_get_resource_oauth2_token_input.py +149 -0
  135. volcenginesdkid/models/entry_for_update_oauth2_credential_provider_input.py +149 -0
  136. volcenginesdkid/models/filter_for_list_identity_providers_input.py +149 -0
  137. volcenginesdkid/models/filter_for_list_user_pool_clients_input.py +175 -0
  138. volcenginesdkid/models/filter_for_list_user_pools_input.py +201 -0
  139. volcenginesdkid/models/filter_for_list_users_input.py +435 -0
  140. volcenginesdkid/models/get_api_key_credential_provider_request.py +150 -0
  141. volcenginesdkid/models/get_api_key_credential_provider_response.py +279 -0
  142. volcenginesdkid/models/get_identity_provider_o_auth_request.py +151 -0
  143. volcenginesdkid/models/get_identity_provider_o_auth_response.py +409 -0
  144. volcenginesdkid/models/get_identity_provider_oidc_request.py +151 -0
  145. volcenginesdkid/models/get_identity_provider_oidc_response.py +357 -0
  146. volcenginesdkid/models/get_inbound_auth_config_request.py +124 -0
  147. volcenginesdkid/models/get_inbound_auth_config_response.py +357 -0
  148. volcenginesdkid/models/get_namespace_request.py +149 -0
  149. volcenginesdkid/models/get_namespace_response.py +201 -0
  150. volcenginesdkid/models/get_oauth2_credential_provider_request.py +150 -0
  151. volcenginesdkid/models/get_oauth2_credential_provider_response.py +305 -0
  152. volcenginesdkid/models/get_policy_request.py +149 -0
  153. volcenginesdkid/models/get_policy_response.py +175 -0
  154. volcenginesdkid/models/get_resource_api_key_request.py +177 -0
  155. volcenginesdkid/models/get_resource_api_key_response.py +149 -0
  156. volcenginesdkid/models/get_resource_oauth2_token_request.py +307 -0
  157. volcenginesdkid/models/get_resource_oauth2_token_response.py +149 -0
  158. volcenginesdkid/models/get_user_csv_template_request.py +124 -0
  159. volcenginesdkid/models/get_user_csv_template_response.py +95 -0
  160. volcenginesdkid/models/get_user_pool_client_request.py +151 -0
  161. volcenginesdkid/models/get_user_pool_client_response.py +461 -0
  162. volcenginesdkid/models/get_user_pool_request.py +124 -0
  163. volcenginesdkid/models/get_user_pool_response.py +383 -0
  164. volcenginesdkid/models/get_user_request.py +151 -0
  165. volcenginesdkid/models/get_user_response.py +773 -0
  166. volcenginesdkid/models/get_workload_access_token_for_jwt_request.py +176 -0
  167. volcenginesdkid/models/get_workload_access_token_for_jwt_response.py +149 -0
  168. volcenginesdkid/models/get_workload_access_token_for_user_id_request.py +176 -0
  169. volcenginesdkid/models/get_workload_access_token_for_user_id_response.py +149 -0
  170. volcenginesdkid/models/get_workload_access_token_request.py +149 -0
  171. volcenginesdkid/models/get_workload_access_token_response.py +149 -0
  172. volcenginesdkid/models/get_workload_identity_request.py +150 -0
  173. volcenginesdkid/models/get_workload_identity_response.py +305 -0
  174. volcenginesdkid/models/get_workload_pool_request.py +149 -0
  175. volcenginesdkid/models/get_workload_pool_response.py +253 -0
  176. volcenginesdkid/models/grant_permission_request.py +228 -0
  177. volcenginesdkid/models/grant_permission_response.py +175 -0
  178. volcenginesdkid/models/id_token_for_create_user_pool_client_output.py +123 -0
  179. volcenginesdkid/models/id_token_for_get_user_pool_client_output.py +123 -0
  180. volcenginesdkid/models/id_token_for_update_user_pool_client_input.py +123 -0
  181. volcenginesdkid/models/id_token_for_update_user_pool_client_output.py +123 -0
  182. volcenginesdkid/models/inbound_auth_config_for_batch_get_inbound_auth_config_output.py +357 -0
  183. volcenginesdkid/models/inbound_auth_config_for_list_inbound_auth_configs_output.py +357 -0
  184. volcenginesdkid/models/jwt_auth_config_for_batch_get_inbound_auth_config_output.py +175 -0
  185. volcenginesdkid/models/jwt_auth_config_for_create_inbound_auth_config_input.py +175 -0
  186. volcenginesdkid/models/jwt_auth_config_for_create_inbound_auth_config_output.py +175 -0
  187. volcenginesdkid/models/jwt_auth_config_for_get_inbound_auth_config_output.py +175 -0
  188. volcenginesdkid/models/jwt_auth_config_for_list_inbound_auth_configs_output.py +175 -0
  189. volcenginesdkid/models/jwt_auth_config_for_update_inbound_auth_config_input.py +175 -0
  190. volcenginesdkid/models/list_api_key_credential_providers_request.py +177 -0
  191. volcenginesdkid/models/list_api_key_credential_providers_response.py +201 -0
  192. volcenginesdkid/models/list_credential_providers_request.py +177 -0
  193. volcenginesdkid/models/list_credential_providers_response.py +201 -0
  194. volcenginesdkid/models/list_identity_providers_o_auth_request.py +124 -0
  195. volcenginesdkid/models/list_identity_providers_o_auth_response.py +201 -0
  196. volcenginesdkid/models/list_identity_providers_oidc_request.py +124 -0
  197. volcenginesdkid/models/list_identity_providers_oidc_response.py +201 -0
  198. volcenginesdkid/models/list_identity_providers_request.py +204 -0
  199. volcenginesdkid/models/list_identity_providers_response.py +201 -0
  200. volcenginesdkid/models/list_inbound_auth_configs_request.py +203 -0
  201. volcenginesdkid/models/list_inbound_auth_configs_response.py +201 -0
  202. volcenginesdkid/models/list_namespaces_request.py +149 -0
  203. volcenginesdkid/models/list_namespaces_response.py +201 -0
  204. volcenginesdkid/models/list_oauth2_credential_providers_request.py +177 -0
  205. volcenginesdkid/models/list_oauth2_credential_providers_response.py +201 -0
  206. volcenginesdkid/models/list_policies_request.py +123 -0
  207. volcenginesdkid/models/list_policies_response.py +123 -0
  208. volcenginesdkid/models/list_user_pool_clients_request.py +256 -0
  209. volcenginesdkid/models/list_user_pool_clients_response.py +201 -0
  210. volcenginesdkid/models/list_user_pools_request.py +229 -0
  211. volcenginesdkid/models/list_user_pools_response.py +201 -0
  212. volcenginesdkid/models/list_users_request.py +256 -0
  213. volcenginesdkid/models/list_users_response.py +201 -0
  214. volcenginesdkid/models/list_workload_identities_request.py +209 -0
  215. volcenginesdkid/models/list_workload_identities_response.py +201 -0
  216. volcenginesdkid/models/list_workload_pools_request.py +157 -0
  217. volcenginesdkid/models/list_workload_pools_response.py +201 -0
  218. volcenginesdkid/models/oauth2_callback_request.py +178 -0
  219. volcenginesdkid/models/oauth2_callback_response.py +123 -0
  220. volcenginesdkid/models/oauth2_credential_provider_for_batch_get_oauth2_credential_providers_output.py +227 -0
  221. volcenginesdkid/models/oauth2_credential_provider_for_list_oauth2_credential_providers_output.py +227 -0
  222. volcenginesdkid/models/oauth2_discovery_for_create_oauth2_credential_provider_input.py +149 -0
  223. volcenginesdkid/models/oauth2_discovery_for_get_oauth2_credential_provider_output.py +149 -0
  224. volcenginesdkid/models/oauth2_discovery_for_update_oauth2_credential_provider_input.py +149 -0
  225. volcenginesdkid/models/operation_for_check_permission_input.py +149 -0
  226. volcenginesdkid/models/operation_for_grant_permission_input.py +175 -0
  227. volcenginesdkid/models/original_caller_for_check_permission_input.py +149 -0
  228. volcenginesdkid/models/original_caller_for_grant_permission_input.py +175 -0
  229. volcenginesdkid/models/parent_for_check_permission_input.py +149 -0
  230. volcenginesdkid/models/principal_for_check_permission_input.py +149 -0
  231. volcenginesdkid/models/principal_for_grant_permission_input.py +175 -0
  232. volcenginesdkid/models/provider_options_for_create_identity_provider_o_auth_input.py +227 -0
  233. volcenginesdkid/models/provider_options_for_create_identity_provider_o_auth_output.py +227 -0
  234. volcenginesdkid/models/provider_options_for_create_identity_provider_oidc_input.py +227 -0
  235. volcenginesdkid/models/provider_options_for_create_identity_provider_oidc_output.py +227 -0
  236. volcenginesdkid/models/provider_options_for_get_identity_provider_o_auth_output.py +227 -0
  237. volcenginesdkid/models/provider_options_for_get_identity_provider_oidc_output.py +227 -0
  238. volcenginesdkid/models/provider_options_for_list_identity_providers_o_auth_output.py +227 -0
  239. volcenginesdkid/models/provider_options_for_list_identity_providers_oidc_output.py +227 -0
  240. volcenginesdkid/models/provider_options_for_update_identity_provider_o_auth_input.py +227 -0
  241. volcenginesdkid/models/provider_options_for_update_identity_provider_o_auth_output.py +227 -0
  242. volcenginesdkid/models/provider_options_for_update_identity_provider_oidc_input.py +227 -0
  243. volcenginesdkid/models/provider_options_for_update_identity_provider_oidc_output.py +227 -0
  244. volcenginesdkid/models/reference_for_check_permission_input.py +149 -0
  245. volcenginesdkid/models/refresh_token_for_create_user_pool_client_output.py +227 -0
  246. volcenginesdkid/models/refresh_token_for_get_user_pool_client_output.py +227 -0
  247. volcenginesdkid/models/refresh_token_for_update_user_pool_client_input.py +227 -0
  248. volcenginesdkid/models/refresh_token_for_update_user_pool_client_output.py +227 -0
  249. volcenginesdkid/models/resource_for_check_permission_input.py +149 -0
  250. volcenginesdkid/models/resource_for_grant_permission_input.py +175 -0
  251. volcenginesdkid/models/update_api_key_credential_provider_request.py +202 -0
  252. volcenginesdkid/models/update_api_key_credential_provider_response.py +227 -0
  253. volcenginesdkid/models/update_identity_provider_o_auth_request.py +440 -0
  254. volcenginesdkid/models/update_identity_provider_o_auth_response.py +409 -0
  255. volcenginesdkid/models/update_identity_provider_oidc_request.py +388 -0
  256. volcenginesdkid/models/update_identity_provider_oidc_response.py +357 -0
  257. volcenginesdkid/models/update_inbound_auth_config_request.py +202 -0
  258. volcenginesdkid/models/update_inbound_auth_config_response.py +95 -0
  259. volcenginesdkid/models/update_namespace_request.py +149 -0
  260. volcenginesdkid/models/update_namespace_response.py +149 -0
  261. volcenginesdkid/models/update_oauth2_credential_provider_request.py +176 -0
  262. volcenginesdkid/models/update_oauth2_credential_provider_response.py +227 -0
  263. volcenginesdkid/models/update_user_pool_client_request.py +359 -0
  264. volcenginesdkid/models/update_user_pool_client_response.py +461 -0
  265. volcenginesdkid/models/update_user_pool_request.py +176 -0
  266. volcenginesdkid/models/update_user_pool_response.py +383 -0
  267. volcenginesdkid/models/update_user_request.py +411 -0
  268. volcenginesdkid/models/update_user_response.py +773 -0
  269. volcenginesdkid/models/update_workload_identity_request.py +202 -0
  270. volcenginesdkid/models/update_workload_identity_response.py +95 -0
  271. volcenginesdkid/models/update_workload_pool_request.py +149 -0
  272. volcenginesdkid/models/update_workload_pool_response.py +95 -0
  273. volcenginesdkid/models/user_for_create_users_input.py +383 -0
  274. volcenginesdkid/models/workload_identity_for_list_workload_identities_output.py +305 -0
  275. volcenginesdkid/models/workload_pool_for_list_workload_pools_output.py +253 -0
  276. {volcengine_python_sdk-4.0.27.dist-info → volcengine_python_sdk-4.0.29.dist-info}/WHEEL +0 -0
  277. {volcengine_python_sdk-4.0.27.dist-info → volcengine_python_sdk-4.0.29.dist-info}/licenses/LICENSE.txt +0 -0
  278. {volcengine_python_sdk-4.0.27.dist-info → volcengine_python_sdk-4.0.29.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, deepcopy_minimal
28
- from ..._utils._key_agreement import aes_gcm_decrypt_base64_string
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 * pow(2, nbRetries), MAX_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(type(self._client.timeout))
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(type(self._client.timeout))
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 deepcopy_minimal, with_sts_token, async_with_sts_token
34
- from ..._utils._key_agreement import aes_gcm_decrypt_base64_string, aes_gcm_decrypt_base64_list, decrypt_validate
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