vellum-ai 0.14.63__py3-none-any.whl → 1.11.2__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 vellum-ai might be problematic. Click here for more details.

Files changed (1305) hide show
  1. vellum/__init__.py +269 -4
  2. vellum/client/README.md +68 -15
  3. vellum/client/__init__.py +598 -1437
  4. vellum/client/core/__init__.py +5 -0
  5. vellum/client/core/api_error.py +13 -5
  6. vellum/client/core/client_wrapper.py +30 -4
  7. vellum/client/core/force_multipart.py +16 -0
  8. vellum/client/core/http_client.py +70 -26
  9. vellum/client/core/http_response.py +55 -0
  10. vellum/client/core/jsonable_encoder.py +0 -1
  11. vellum/client/core/pydantic_utilities.py +87 -117
  12. vellum/client/core/serialization.py +7 -3
  13. vellum/client/errors/__init__.py +14 -1
  14. vellum/client/errors/bad_request_error.py +4 -3
  15. vellum/client/errors/forbidden_error.py +4 -3
  16. vellum/client/errors/internal_server_error.py +4 -3
  17. vellum/client/errors/misdirected_request_error.py +11 -0
  18. vellum/client/errors/not_found_error.py +4 -3
  19. vellum/client/errors/too_many_requests_error.py +11 -0
  20. vellum/client/errors/unauthorized_error.py +11 -0
  21. vellum/client/raw_client.py +2725 -0
  22. vellum/client/reference.md +1980 -638
  23. vellum/client/resources/__init__.py +16 -2
  24. vellum/client/resources/ad_hoc/__init__.py +2 -0
  25. vellum/client/resources/ad_hoc/client.py +173 -377
  26. vellum/client/resources/ad_hoc/raw_client.py +569 -0
  27. vellum/client/resources/container_images/__init__.py +2 -0
  28. vellum/client/resources/container_images/client.py +72 -191
  29. vellum/client/resources/container_images/raw_client.py +407 -0
  30. vellum/client/resources/deployments/__init__.py +2 -0
  31. vellum/client/resources/deployments/client.py +119 -463
  32. vellum/client/resources/deployments/raw_client.py +1002 -0
  33. vellum/client/resources/deployments/types/__init__.py +2 -0
  34. vellum/client/resources/document_indexes/__init__.py +2 -0
  35. vellum/client/resources/document_indexes/client.py +131 -383
  36. vellum/client/resources/document_indexes/raw_client.py +866 -0
  37. vellum/client/resources/document_indexes/types/__init__.py +2 -0
  38. vellum/client/resources/documents/__init__.py +2 -0
  39. vellum/client/resources/documents/client.py +93 -325
  40. vellum/client/resources/documents/raw_client.py +662 -0
  41. vellum/client/resources/{release_reviews → environments}/__init__.py +2 -0
  42. vellum/client/resources/environments/client.py +106 -0
  43. vellum/client/resources/environments/raw_client.py +95 -0
  44. vellum/client/resources/events/__init__.py +4 -0
  45. vellum/client/resources/events/client.py +201 -0
  46. vellum/client/resources/events/raw_client.py +211 -0
  47. vellum/client/resources/folder_entities/__init__.py +2 -0
  48. vellum/client/resources/folder_entities/client.py +56 -95
  49. vellum/client/resources/folder_entities/raw_client.py +276 -0
  50. vellum/client/resources/folder_entities/types/__init__.py +2 -0
  51. vellum/client/resources/integration_auth_configs/__init__.py +4 -0
  52. vellum/client/resources/integration_auth_configs/client.py +186 -0
  53. vellum/client/resources/integration_auth_configs/raw_client.py +171 -0
  54. vellum/client/resources/integration_providers/__init__.py +4 -0
  55. vellum/client/resources/integration_providers/client.py +299 -0
  56. vellum/client/resources/integration_providers/raw_client.py +275 -0
  57. vellum/client/resources/integrations/__init__.py +4 -0
  58. vellum/client/resources/integrations/client.py +466 -0
  59. vellum/client/resources/integrations/raw_client.py +557 -0
  60. vellum/client/resources/metric_definitions/__init__.py +2 -0
  61. vellum/client/resources/metric_definitions/client.py +60 -106
  62. vellum/client/resources/metric_definitions/raw_client.py +224 -0
  63. vellum/client/resources/ml_models/__init__.py +2 -0
  64. vellum/client/resources/ml_models/client.py +37 -46
  65. vellum/client/resources/ml_models/raw_client.py +102 -0
  66. vellum/client/resources/organizations/__init__.py +2 -0
  67. vellum/client/resources/organizations/client.py +37 -45
  68. vellum/client/resources/organizations/raw_client.py +95 -0
  69. vellum/client/resources/prompts/__init__.py +2 -0
  70. vellum/client/resources/prompts/client.py +84 -202
  71. vellum/client/resources/prompts/raw_client.py +353 -0
  72. vellum/client/resources/sandboxes/__init__.py +2 -0
  73. vellum/client/resources/sandboxes/client.py +69 -159
  74. vellum/client/resources/sandboxes/raw_client.py +392 -0
  75. vellum/client/resources/test_suite_runs/__init__.py +2 -0
  76. vellum/client/resources/test_suite_runs/client.py +65 -157
  77. vellum/client/resources/test_suite_runs/raw_client.py +354 -0
  78. vellum/client/resources/test_suites/__init__.py +2 -0
  79. vellum/client/resources/test_suites/client.py +162 -266
  80. vellum/client/resources/test_suites/raw_client.py +530 -0
  81. vellum/client/resources/uploaded_files/__init__.py +4 -0
  82. vellum/client/resources/uploaded_files/client.py +230 -0
  83. vellum/client/resources/uploaded_files/raw_client.py +316 -0
  84. vellum/client/resources/workflow_deployments/__init__.py +2 -0
  85. vellum/client/resources/workflow_deployments/client.py +302 -353
  86. vellum/client/resources/workflow_deployments/raw_client.py +1059 -0
  87. vellum/client/resources/workflow_deployments/types/__init__.py +2 -0
  88. vellum/client/resources/workflow_executions/__init__.py +4 -0
  89. vellum/client/resources/workflow_executions/client.py +140 -0
  90. vellum/client/resources/workflow_executions/raw_client.py +173 -0
  91. vellum/client/resources/workflow_sandboxes/__init__.py +2 -0
  92. vellum/client/resources/workflow_sandboxes/client.py +58 -123
  93. vellum/client/resources/workflow_sandboxes/raw_client.py +291 -0
  94. vellum/client/resources/workflow_sandboxes/types/__init__.py +2 -0
  95. vellum/client/resources/workflows/__init__.py +2 -0
  96. vellum/client/resources/workflows/client.py +256 -141
  97. vellum/client/resources/workflows/raw_client.py +547 -0
  98. vellum/client/resources/workspace_secrets/__init__.py +2 -0
  99. vellum/client/resources/workspace_secrets/client.py +43 -100
  100. vellum/client/resources/workspace_secrets/raw_client.py +219 -0
  101. vellum/client/resources/workspaces/__init__.py +2 -0
  102. vellum/client/resources/workspaces/client.py +37 -45
  103. vellum/client/resources/workspaces/raw_client.py +95 -0
  104. vellum/client/tests/__init__.py +0 -0
  105. vellum/client/tests/test_utils.py +34 -0
  106. vellum/client/types/__init__.py +242 -0
  107. vellum/client/types/ad_hoc_execute_prompt_event.py +3 -2
  108. vellum/client/types/ad_hoc_expand_meta.py +2 -2
  109. vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py +3 -3
  110. vellum/client/types/ad_hoc_initiated_prompt_execution_meta.py +2 -2
  111. vellum/client/types/ad_hoc_rejected_prompt_execution_meta.py +3 -3
  112. vellum/client/types/ad_hoc_streaming_prompt_execution_meta.py +2 -2
  113. vellum/client/types/api_actor_type_enum.py +7 -0
  114. vellum/client/types/api_node_result.py +3 -3
  115. vellum/client/types/api_node_result_data.py +4 -4
  116. vellum/client/types/api_request_parent_context.py +17 -10
  117. vellum/client/types/api_version_enum.py +1 -1
  118. vellum/client/types/array_chat_message_content.py +3 -3
  119. vellum/client/types/array_chat_message_content_item.py +7 -4
  120. vellum/client/types/array_chat_message_content_item_request.py +7 -4
  121. vellum/client/types/array_chat_message_content_request.py +3 -3
  122. vellum/client/types/array_input.py +12 -6
  123. vellum/client/types/array_vellum_value.py +4 -4
  124. vellum/client/types/array_vellum_value_request.py +4 -4
  125. vellum/client/types/audio_chat_message_content.py +3 -3
  126. vellum/client/types/audio_chat_message_content_request.py +3 -3
  127. vellum/client/types/audio_input.py +30 -0
  128. vellum/client/types/audio_input_request.py +30 -0
  129. vellum/client/types/audio_prompt_block.py +4 -4
  130. vellum/client/types/audio_vellum_value.py +3 -3
  131. vellum/client/types/audio_vellum_value_request.py +3 -3
  132. vellum/client/types/auth_type_enum.py +5 -0
  133. vellum/client/types/base_output.py +4 -4
  134. vellum/client/types/basic_vectorizer_intfloat_multilingual_e_5_large.py +2 -2
  135. vellum/client/types/basic_vectorizer_intfloat_multilingual_e_5_large_request.py +2 -2
  136. vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_cos_v_1.py +2 -2
  137. vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_cos_v_1_request.py +2 -2
  138. vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1.py +2 -2
  139. vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1_request.py +2 -2
  140. vellum/client/types/build_status_enum.py +5 -0
  141. vellum/client/types/chat_history_input.py +3 -3
  142. vellum/client/types/chat_history_input_request.py +3 -3
  143. vellum/client/types/chat_history_vellum_value.py +3 -3
  144. vellum/client/types/chat_history_vellum_value_request.py +3 -3
  145. vellum/client/types/chat_message.py +4 -4
  146. vellum/client/types/chat_message_content.py +7 -4
  147. vellum/client/types/chat_message_content_request.py +7 -4
  148. vellum/client/types/chat_message_prompt_block.py +7 -7
  149. vellum/client/types/chat_message_request.py +4 -4
  150. vellum/client/types/code_execution_node_array_result.py +11 -5
  151. vellum/client/types/code_execution_node_chat_history_result.py +3 -3
  152. vellum/client/types/code_execution_node_error_result.py +3 -3
  153. vellum/client/types/code_execution_node_function_call_result.py +3 -3
  154. vellum/client/types/code_execution_node_json_result.py +2 -2
  155. vellum/client/types/code_execution_node_number_result.py +2 -2
  156. vellum/client/types/code_execution_node_result.py +10 -4
  157. vellum/client/types/code_execution_node_result_data.py +10 -4
  158. vellum/client/types/code_execution_node_result_output.py +6 -5
  159. vellum/client/types/code_execution_node_search_results_result.py +3 -3
  160. vellum/client/types/code_execution_node_string_result.py +2 -2
  161. vellum/client/types/code_execution_package.py +3 -2
  162. vellum/client/types/code_executor_input.py +15 -6
  163. vellum/client/types/code_executor_response.py +11 -5
  164. vellum/client/types/code_executor_secret_input.py +3 -3
  165. vellum/client/types/code_resource_definition.py +3 -3
  166. vellum/client/types/compile_prompt_deployment_expand_meta_request.py +2 -2
  167. vellum/client/types/compile_prompt_meta.py +2 -2
  168. vellum/client/types/components_schemas_composio_execute_tool_request.py +5 -0
  169. vellum/client/types/components_schemas_composio_execute_tool_response.py +5 -0
  170. vellum/client/types/components_schemas_composio_integration_exec_config.py +5 -0
  171. vellum/client/types/components_schemas_composio_tool_definition.py +5 -0
  172. vellum/client/types/components_schemas_slim_composio_tool_definition.py +5 -0
  173. vellum/client/types/composio_execute_tool_request.py +24 -0
  174. vellum/client/types/composio_execute_tool_response.py +24 -0
  175. vellum/client/types/composio_integration_exec_config.py +21 -0
  176. vellum/client/types/composio_tool_definition.py +30 -0
  177. vellum/client/types/conditional_node_result.py +3 -3
  178. vellum/client/types/conditional_node_result_data.py +2 -2
  179. vellum/client/types/container_image_build_config.py +21 -0
  180. vellum/client/types/container_image_container_image_tag.py +2 -2
  181. vellum/client/types/container_image_read.py +8 -4
  182. vellum/client/types/create_test_suite_test_case_request.py +9 -3
  183. vellum/client/types/create_workflow_event_request.py +7 -0
  184. vellum/client/types/dataset_row_push_request.py +20 -0
  185. vellum/client/types/delimiter_chunker_config.py +20 -0
  186. vellum/client/types/delimiter_chunker_config_request.py +20 -0
  187. vellum/client/types/delimiter_chunking.py +21 -0
  188. vellum/client/types/delimiter_chunking_request.py +21 -0
  189. vellum/client/types/deployment_history_item.py +10 -4
  190. vellum/client/types/deployment_provider_payload_response.py +4 -4
  191. vellum/client/types/deployment_read.py +15 -9
  192. vellum/client/types/deployment_release_tag_deployment_history_item.py +2 -2
  193. vellum/client/types/deployment_release_tag_read.py +4 -4
  194. vellum/client/types/deprecated_prompt_request_input.py +8 -0
  195. vellum/client/types/docker_service_token.py +2 -2
  196. vellum/client/types/document_chat_message_content.py +3 -3
  197. vellum/client/types/document_chat_message_content_request.py +3 -3
  198. vellum/client/types/document_document_to_document_index.py +4 -4
  199. vellum/client/types/document_index_chunking.py +5 -1
  200. vellum/client/types/document_index_chunking_request.py +3 -1
  201. vellum/client/types/document_index_indexing_config.py +4 -4
  202. vellum/client/types/document_index_indexing_config_request.py +4 -4
  203. vellum/client/types/document_index_read.py +4 -4
  204. vellum/client/types/document_input.py +30 -0
  205. vellum/client/types/document_input_request.py +30 -0
  206. vellum/client/types/document_prompt_block.py +4 -4
  207. vellum/client/types/document_read.py +9 -5
  208. vellum/client/types/document_vellum_value.py +3 -3
  209. vellum/client/types/document_vellum_value_request.py +3 -3
  210. vellum/client/types/enriched_normalized_completion.py +3 -3
  211. vellum/client/types/environment_display_config.py +19 -0
  212. vellum/client/types/environment_read.py +23 -0
  213. vellum/client/types/ephemeral_prompt_cache_config.py +3 -3
  214. vellum/client/types/error_detail_response.py +22 -0
  215. vellum/client/types/error_input.py +3 -3
  216. vellum/client/types/error_vellum_value.py +3 -3
  217. vellum/client/types/error_vellum_value_request.py +3 -3
  218. vellum/client/types/event_create_response.py +31 -0
  219. vellum/client/types/execute_api_request_bearer_token.py +1 -0
  220. vellum/client/types/execute_api_request_headers_value.py +1 -0
  221. vellum/client/types/execute_api_response.py +6 -6
  222. vellum/client/types/execute_prompt_event.py +3 -2
  223. vellum/client/types/execute_prompt_response.py +1 -0
  224. vellum/client/types/execute_workflow_async_response.py +26 -0
  225. vellum/client/types/execute_workflow_response.py +10 -4
  226. vellum/client/types/execute_workflow_workflow_result_event.py +1 -0
  227. vellum/client/types/execution_array_vellum_value.py +12 -6
  228. vellum/client/types/execution_audio_vellum_value.py +31 -0
  229. vellum/client/types/execution_chat_history_vellum_value.py +3 -3
  230. vellum/client/types/execution_document_vellum_value.py +31 -0
  231. vellum/client/types/execution_error_vellum_value.py +3 -3
  232. vellum/client/types/execution_function_call_vellum_value.py +3 -3
  233. vellum/client/types/execution_image_vellum_value.py +31 -0
  234. vellum/client/types/execution_json_vellum_value.py +3 -3
  235. vellum/client/types/execution_number_vellum_value.py +3 -3
  236. vellum/client/types/execution_search_results_vellum_value.py +3 -3
  237. vellum/client/types/execution_string_vellum_value.py +3 -3
  238. vellum/client/types/execution_thinking_vellum_value.py +31 -0
  239. vellum/client/types/execution_vellum_value.py +16 -5
  240. vellum/client/types/execution_video_vellum_value.py +31 -0
  241. vellum/client/types/external_input_descriptor.py +3 -3
  242. vellum/client/types/external_parent_context.py +38 -0
  243. vellum/client/types/external_test_case_execution.py +10 -4
  244. vellum/client/types/external_test_case_execution_request.py +10 -4
  245. vellum/client/types/fast_embed_vectorizer_baai_bge_small_en_v_15.py +23 -0
  246. vellum/client/types/fast_embed_vectorizer_baai_bge_small_en_v_15_request.py +23 -0
  247. vellum/client/types/folder_entity.py +5 -2
  248. vellum/client/types/folder_entity_dataset.py +26 -0
  249. vellum/client/types/folder_entity_dataset_data.py +25 -0
  250. vellum/client/types/folder_entity_document_index.py +3 -3
  251. vellum/client/types/folder_entity_document_index_data.py +5 -3
  252. vellum/client/types/folder_entity_folder.py +3 -3
  253. vellum/client/types/folder_entity_folder_data.py +2 -2
  254. vellum/client/types/folder_entity_prompt_sandbox.py +3 -3
  255. vellum/client/types/folder_entity_prompt_sandbox_data.py +4 -3
  256. vellum/client/types/folder_entity_test_suite.py +3 -3
  257. vellum/client/types/folder_entity_test_suite_data.py +3 -3
  258. vellum/client/types/folder_entity_workflow_sandbox.py +3 -3
  259. vellum/client/types/folder_entity_workflow_sandbox_data.py +6 -3
  260. vellum/client/types/fulfilled_ad_hoc_execute_prompt_event.py +4 -4
  261. vellum/client/types/fulfilled_execute_prompt_event.py +4 -4
  262. vellum/client/types/fulfilled_execute_prompt_response.py +3 -3
  263. vellum/client/types/fulfilled_execute_workflow_workflow_result_event.py +11 -5
  264. vellum/client/types/fulfilled_prompt_execution_meta.py +3 -3
  265. vellum/client/types/fulfilled_workflow_node_result_event.py +12 -6
  266. vellum/client/types/function_call.py +2 -2
  267. vellum/client/types/function_call_chat_message_content.py +3 -3
  268. vellum/client/types/function_call_chat_message_content_request.py +3 -3
  269. vellum/client/types/function_call_chat_message_content_value.py +2 -2
  270. vellum/client/types/function_call_chat_message_content_value_request.py +2 -2
  271. vellum/client/types/function_call_input.py +3 -3
  272. vellum/client/types/function_call_prompt_block.py +4 -4
  273. vellum/client/types/function_call_request.py +2 -2
  274. vellum/client/types/function_call_vellum_value.py +3 -3
  275. vellum/client/types/function_call_vellum_value_request.py +3 -3
  276. vellum/client/types/function_definition.py +9 -4
  277. vellum/client/types/generate_options_request.py +3 -3
  278. vellum/client/types/generate_request.py +2 -2
  279. vellum/client/types/generate_response.py +3 -3
  280. vellum/client/types/generate_result.py +3 -3
  281. vellum/client/types/generate_result_data.py +3 -3
  282. vellum/client/types/generate_result_error.py +3 -3
  283. vellum/client/types/generate_stream_response.py +3 -3
  284. vellum/client/types/generate_stream_result.py +4 -4
  285. vellum/client/types/generate_stream_result_data.py +3 -3
  286. vellum/client/types/google_vertex_ai_vectorizer_config.py +2 -2
  287. vellum/client/types/google_vertex_ai_vectorizer_config_request.py +2 -2
  288. vellum/client/types/google_vertex_ai_vectorizer_gemini_embedding_001.py +21 -0
  289. vellum/client/types/google_vertex_ai_vectorizer_gemini_embedding_001_request.py +21 -0
  290. vellum/client/types/google_vertex_ai_vectorizer_text_embedding_004.py +3 -3
  291. vellum/client/types/google_vertex_ai_vectorizer_text_embedding_004_request.py +3 -3
  292. vellum/client/types/google_vertex_ai_vectorizer_text_multilingual_embedding_002.py +3 -3
  293. vellum/client/types/google_vertex_ai_vectorizer_text_multilingual_embedding_002_request.py +3 -3
  294. vellum/client/types/hkunlp_instructor_xl_vectorizer.py +3 -3
  295. vellum/client/types/hkunlp_instructor_xl_vectorizer_request.py +3 -3
  296. vellum/client/types/image_chat_message_content.py +3 -3
  297. vellum/client/types/image_chat_message_content_request.py +3 -3
  298. vellum/client/types/image_input.py +30 -0
  299. vellum/client/types/image_input_request.py +30 -0
  300. vellum/client/types/image_prompt_block.py +4 -4
  301. vellum/client/types/image_vellum_value.py +3 -3
  302. vellum/client/types/image_vellum_value_request.py +3 -3
  303. vellum/client/types/indexing_config_vectorizer.py +11 -4
  304. vellum/client/types/indexing_config_vectorizer_request.py +11 -4
  305. vellum/client/types/initiated_ad_hoc_execute_prompt_event.py +3 -3
  306. vellum/client/types/initiated_execute_prompt_event.py +3 -3
  307. vellum/client/types/initiated_prompt_execution_meta.py +2 -2
  308. vellum/client/types/initiated_workflow_node_result_event.py +12 -6
  309. vellum/client/types/instructor_vectorizer_config.py +2 -2
  310. vellum/client/types/instructor_vectorizer_config_request.py +2 -2
  311. vellum/client/types/integration.py +27 -0
  312. vellum/client/types/integration_auth_config_integration.py +23 -0
  313. vellum/client/types/integration_auth_config_integration_credential.py +19 -0
  314. vellum/client/types/integration_credential_access_type.py +5 -0
  315. vellum/client/types/integration_name.py +85 -0
  316. vellum/client/types/integration_provider.py +5 -0
  317. vellum/client/types/integration_read.py +30 -0
  318. vellum/client/types/integration_trigger_context.py +39 -0
  319. vellum/client/types/invoked_port.py +2 -2
  320. vellum/client/types/jinja_prompt_block.py +4 -4
  321. vellum/client/types/json_input.py +3 -3
  322. vellum/client/types/json_input_request.py +3 -3
  323. vellum/client/types/json_vellum_value.py +2 -2
  324. vellum/client/types/json_vellum_value_request.py +2 -2
  325. vellum/client/types/logical_operator.py +4 -0
  326. vellum/client/types/map_node_result.py +3 -3
  327. vellum/client/types/map_node_result_data.py +3 -3
  328. vellum/client/types/merge_node_result.py +3 -3
  329. vellum/client/types/merge_node_result_data.py +2 -2
  330. vellum/client/types/metadata_filter_config_request.py +12 -6
  331. vellum/client/types/metadata_filter_rule_request.py +5 -5
  332. vellum/client/types/metadata_filters_request.py +1 -0
  333. vellum/client/types/metric_definition_execution.py +10 -4
  334. vellum/client/types/metric_definition_history_item.py +10 -4
  335. vellum/client/types/metric_definition_input.py +3 -2
  336. vellum/client/types/metric_node_result.py +2 -2
  337. vellum/client/types/ml_model_read.py +6 -3
  338. vellum/client/types/ml_model_usage.py +2 -2
  339. vellum/client/types/ml_model_usage_wrapper.py +3 -3
  340. vellum/client/types/named_scenario_input_audio_variable_value_request.py +22 -0
  341. vellum/client/types/named_scenario_input_chat_history_variable_value_request.py +3 -3
  342. vellum/client/types/named_scenario_input_document_variable_value_request.py +22 -0
  343. vellum/client/types/named_scenario_input_image_variable_value_request.py +22 -0
  344. vellum/client/types/named_scenario_input_json_variable_value_request.py +2 -2
  345. vellum/client/types/named_scenario_input_request.py +11 -2
  346. vellum/client/types/named_scenario_input_string_variable_value_request.py +2 -2
  347. vellum/client/types/named_scenario_input_video_variable_value_request.py +22 -0
  348. vellum/client/types/named_test_case_array_variable_value.py +11 -5
  349. vellum/client/types/named_test_case_array_variable_value_request.py +11 -5
  350. vellum/client/types/named_test_case_audio_variable_value.py +26 -0
  351. vellum/client/types/named_test_case_audio_variable_value_request.py +26 -0
  352. vellum/client/types/named_test_case_chat_history_variable_value.py +3 -3
  353. vellum/client/types/named_test_case_chat_history_variable_value_request.py +3 -3
  354. vellum/client/types/named_test_case_document_variable_value.py +22 -0
  355. vellum/client/types/named_test_case_document_variable_value_request.py +22 -0
  356. vellum/client/types/named_test_case_error_variable_value.py +3 -3
  357. vellum/client/types/named_test_case_error_variable_value_request.py +3 -3
  358. vellum/client/types/named_test_case_function_call_variable_value.py +3 -3
  359. vellum/client/types/named_test_case_function_call_variable_value_request.py +3 -3
  360. vellum/client/types/named_test_case_image_variable_value.py +22 -0
  361. vellum/client/types/named_test_case_image_variable_value_request.py +22 -0
  362. vellum/client/types/named_test_case_json_variable_value.py +2 -2
  363. vellum/client/types/named_test_case_json_variable_value_request.py +2 -2
  364. vellum/client/types/named_test_case_number_variable_value.py +2 -2
  365. vellum/client/types/named_test_case_number_variable_value_request.py +2 -2
  366. vellum/client/types/named_test_case_search_results_variable_value.py +3 -3
  367. vellum/client/types/named_test_case_search_results_variable_value_request.py +3 -3
  368. vellum/client/types/named_test_case_string_variable_value.py +2 -2
  369. vellum/client/types/named_test_case_string_variable_value_request.py +2 -2
  370. vellum/client/types/named_test_case_variable_value.py +14 -5
  371. vellum/client/types/named_test_case_variable_value_request.py +14 -5
  372. vellum/client/types/named_test_case_video_variable_value.py +22 -0
  373. vellum/client/types/named_test_case_video_variable_value_request.py +22 -0
  374. vellum/client/types/node_execution_fulfilled_body.py +4 -4
  375. vellum/client/types/node_execution_fulfilled_event.py +24 -15
  376. vellum/client/types/node_execution_initiated_body.py +3 -3
  377. vellum/client/types/node_execution_initiated_event.py +24 -15
  378. vellum/client/types/node_execution_paused_body.py +3 -3
  379. vellum/client/types/node_execution_paused_event.py +24 -15
  380. vellum/client/types/node_execution_rejected_body.py +5 -4
  381. vellum/client/types/node_execution_rejected_event.py +24 -15
  382. vellum/client/types/node_execution_resumed_body.py +3 -3
  383. vellum/client/types/node_execution_resumed_event.py +24 -15
  384. vellum/client/types/node_execution_span.py +23 -12
  385. vellum/client/types/node_execution_span_attributes.py +4 -2
  386. vellum/client/types/node_execution_streaming_body.py +4 -4
  387. vellum/client/types/node_execution_streaming_event.py +24 -15
  388. vellum/client/types/node_input_compiled_array_value.py +11 -5
  389. vellum/client/types/node_input_compiled_audio_value.py +23 -0
  390. vellum/client/types/node_input_compiled_chat_history_value.py +3 -3
  391. vellum/client/types/node_input_compiled_document_value.py +23 -0
  392. vellum/client/types/node_input_compiled_error_value.py +3 -3
  393. vellum/client/types/node_input_compiled_function_call_value.py +3 -3
  394. vellum/client/types/node_input_compiled_image_value.py +23 -0
  395. vellum/client/types/node_input_compiled_json_value.py +2 -2
  396. vellum/client/types/node_input_compiled_number_value.py +2 -2
  397. vellum/client/types/node_input_compiled_search_results_value.py +3 -3
  398. vellum/client/types/node_input_compiled_secret_value.py +3 -3
  399. vellum/client/types/node_input_compiled_string_value.py +2 -2
  400. vellum/client/types/node_input_compiled_video_value.py +23 -0
  401. vellum/client/types/node_input_variable_compiled_value.py +14 -5
  402. vellum/client/types/node_output_compiled_array_value.py +12 -6
  403. vellum/client/types/node_output_compiled_chat_history_value.py +3 -3
  404. vellum/client/types/node_output_compiled_error_value.py +3 -3
  405. vellum/client/types/node_output_compiled_function_call_value.py +3 -3
  406. vellum/client/types/node_output_compiled_json_value.py +3 -3
  407. vellum/client/types/node_output_compiled_number_value.py +3 -3
  408. vellum/client/types/node_output_compiled_search_results_value.py +3 -3
  409. vellum/client/types/node_output_compiled_string_value.py +3 -3
  410. vellum/client/types/node_output_compiled_thinking_value.py +28 -0
  411. vellum/client/types/node_output_compiled_value.py +8 -5
  412. vellum/client/types/node_parent_context.py +14 -11
  413. vellum/client/types/normalized_log_probs.py +3 -3
  414. vellum/client/types/normalized_token_log_probs.py +2 -2
  415. vellum/client/types/number_input.py +3 -3
  416. vellum/client/types/number_vellum_value.py +2 -2
  417. vellum/client/types/number_vellum_value_request.py +2 -2
  418. vellum/client/types/open_ai_vectorizer_config.py +3 -3
  419. vellum/client/types/open_ai_vectorizer_config_request.py +3 -3
  420. vellum/client/types/open_ai_vectorizer_text_embedding_3_large.py +3 -3
  421. vellum/client/types/open_ai_vectorizer_text_embedding_3_large_request.py +3 -3
  422. vellum/client/types/open_ai_vectorizer_text_embedding_3_small.py +3 -3
  423. vellum/client/types/open_ai_vectorizer_text_embedding_3_small_request.py +3 -3
  424. vellum/client/types/open_ai_vectorizer_text_embedding_ada_002.py +3 -3
  425. vellum/client/types/open_ai_vectorizer_text_embedding_ada_002_request.py +3 -3
  426. vellum/client/types/organization_read.py +6 -3
  427. vellum/client/types/paginated_container_image_read_list.py +3 -3
  428. vellum/client/types/paginated_deployment_release_tag_read_list.py +3 -3
  429. vellum/client/types/paginated_document_index_read_list.py +3 -3
  430. vellum/client/types/paginated_folder_entity_list.py +3 -3
  431. vellum/client/types/paginated_slim_deployment_read_list.py +10 -4
  432. vellum/client/types/paginated_slim_document_list.py +3 -3
  433. vellum/client/types/paginated_slim_integration_auth_config_read_list.py +23 -0
  434. vellum/client/types/paginated_slim_integration_read_list.py +23 -0
  435. vellum/client/types/paginated_slim_tool_definition_list.py +23 -0
  436. vellum/client/types/paginated_slim_workflow_deployment_list.py +10 -4
  437. vellum/client/types/paginated_test_suite_run_execution_list.py +10 -4
  438. vellum/client/types/paginated_test_suite_test_case_list.py +10 -4
  439. vellum/client/types/paginated_workflow_deployment_release_list.py +30 -0
  440. vellum/client/types/paginated_workflow_release_tag_read_list.py +3 -3
  441. vellum/client/types/paginated_workflow_sandbox_example_list.py +3 -3
  442. vellum/client/types/parent_context.py +21 -11
  443. vellum/client/types/pdf_search_result_meta_source.py +2 -2
  444. vellum/client/types/pdf_search_result_meta_source_request.py +2 -2
  445. vellum/client/types/plain_text_prompt_block.py +4 -4
  446. vellum/client/types/price.py +3 -3
  447. vellum/client/types/private_vectorizer.py +23 -0
  448. vellum/client/types/private_vectorizer_request.py +23 -0
  449. vellum/client/types/processing_failure_reason_enum.py +3 -1
  450. vellum/client/types/prompt_block.py +9 -6
  451. vellum/client/types/prompt_deployment_expand_meta_request.py +2 -2
  452. vellum/client/types/prompt_deployment_input_request.py +16 -3
  453. vellum/client/types/prompt_deployment_parent_context.py +13 -10
  454. vellum/client/types/prompt_deployment_release.py +6 -6
  455. vellum/client/types/prompt_deployment_release_prompt_deployment.py +2 -2
  456. vellum/client/types/prompt_deployment_release_prompt_version.py +4 -4
  457. vellum/client/types/prompt_exec_config.py +15 -9
  458. vellum/client/types/prompt_execution_meta.py +3 -3
  459. vellum/client/types/prompt_node_execution_meta.py +3 -3
  460. vellum/client/types/prompt_node_result.py +3 -3
  461. vellum/client/types/prompt_node_result_data.py +3 -3
  462. vellum/client/types/prompt_output.py +7 -3
  463. vellum/client/types/prompt_parameters.py +2 -2
  464. vellum/client/types/prompt_push_response.py +2 -2
  465. vellum/client/types/prompt_request_audio_input.py +26 -0
  466. vellum/client/types/prompt_request_chat_history_input.py +3 -3
  467. vellum/client/types/prompt_request_document_input.py +26 -0
  468. vellum/client/types/prompt_request_image_input.py +26 -0
  469. vellum/client/types/prompt_request_input.py +16 -3
  470. vellum/client/types/prompt_request_json_input.py +3 -3
  471. vellum/client/types/prompt_request_string_input.py +3 -3
  472. vellum/client/types/prompt_request_video_input.py +26 -0
  473. vellum/client/types/prompt_settings.py +2 -2
  474. vellum/client/types/prompt_version_build_config_sandbox.py +2 -2
  475. vellum/client/types/raw_prompt_execution_overrides_request.py +2 -2
  476. vellum/client/types/reducto_chunker_config.py +2 -2
  477. vellum/client/types/reducto_chunker_config_request.py +2 -2
  478. vellum/client/types/reducto_chunking.py +3 -3
  479. vellum/client/types/reducto_chunking_request.py +3 -3
  480. vellum/client/types/rejected_ad_hoc_execute_prompt_event.py +4 -4
  481. vellum/client/types/rejected_execute_prompt_event.py +4 -4
  482. vellum/client/types/rejected_execute_prompt_response.py +3 -3
  483. vellum/client/types/rejected_execute_workflow_workflow_result_event.py +4 -4
  484. vellum/client/types/rejected_prompt_execution_meta.py +3 -3
  485. vellum/client/types/rejected_workflow_node_result_event.py +12 -6
  486. vellum/client/types/release_created_by.py +2 -2
  487. vellum/client/types/release_environment.py +2 -2
  488. vellum/client/types/release_release_tag.py +3 -3
  489. vellum/client/types/release_review_reviewer.py +2 -2
  490. vellum/client/types/release_tag_release.py +2 -2
  491. vellum/client/types/replace_test_suite_test_case_request.py +9 -3
  492. vellum/client/types/rich_text_child_block.py +2 -1
  493. vellum/client/types/rich_text_prompt_block.py +4 -4
  494. vellum/client/types/sandbox_scenario.py +3 -3
  495. vellum/client/types/scenario_input.py +14 -3
  496. vellum/client/types/scenario_input_audio_variable_value.py +22 -0
  497. vellum/client/types/scenario_input_chat_history_variable_value.py +3 -3
  498. vellum/client/types/scenario_input_document_variable_value.py +22 -0
  499. vellum/client/types/scenario_input_image_variable_value.py +22 -0
  500. vellum/client/types/scenario_input_json_variable_value.py +2 -2
  501. vellum/client/types/scenario_input_string_variable_value.py +2 -2
  502. vellum/client/types/scenario_input_video_variable_value.py +22 -0
  503. vellum/client/types/scheduled_trigger_context.py +39 -0
  504. vellum/client/types/search_filters_request.py +11 -5
  505. vellum/client/types/search_node_result.py +3 -3
  506. vellum/client/types/search_node_result_data.py +3 -3
  507. vellum/client/types/search_request_options_request.py +13 -7
  508. vellum/client/types/search_response.py +3 -3
  509. vellum/client/types/search_result.py +3 -3
  510. vellum/client/types/search_result_document.py +2 -2
  511. vellum/client/types/search_result_document_request.py +2 -2
  512. vellum/client/types/search_result_merging_request.py +2 -2
  513. vellum/client/types/search_result_meta.py +3 -3
  514. vellum/client/types/search_result_meta_request.py +3 -3
  515. vellum/client/types/search_result_request.py +3 -3
  516. vellum/client/types/search_results_input.py +3 -3
  517. vellum/client/types/search_results_vellum_value.py +3 -3
  518. vellum/client/types/search_results_vellum_value_request.py +3 -3
  519. vellum/client/types/search_weights_request.py +2 -2
  520. vellum/client/types/secret_type_enum.py +3 -1
  521. vellum/client/types/sentence_chunker_config.py +2 -2
  522. vellum/client/types/sentence_chunker_config_request.py +2 -2
  523. vellum/client/types/sentence_chunking.py +3 -3
  524. vellum/client/types/sentence_chunking_request.py +3 -3
  525. vellum/client/types/slim_composio_tool_definition.py +24 -0
  526. vellum/client/types/slim_deployment_read.py +15 -9
  527. vellum/client/types/slim_document.py +6 -5
  528. vellum/client/types/slim_document_document_to_document_index.py +4 -4
  529. vellum/client/types/slim_integration_auth_config_read.py +36 -0
  530. vellum/client/types/slim_integration_read.py +25 -0
  531. vellum/client/types/slim_release_review.py +4 -4
  532. vellum/client/types/slim_workflow_deployment.py +16 -10
  533. vellum/client/types/slim_workflow_execution_read.py +24 -15
  534. vellum/client/types/span_link.py +15 -12
  535. vellum/client/types/span_link_type_enum.py +1 -1
  536. vellum/client/types/streaming_ad_hoc_execute_prompt_event.py +4 -4
  537. vellum/client/types/streaming_execute_prompt_event.py +3 -3
  538. vellum/client/types/streaming_prompt_execution_meta.py +2 -2
  539. vellum/client/types/streaming_workflow_node_result_event.py +12 -6
  540. vellum/client/types/string_chat_message_content.py +2 -2
  541. vellum/client/types/string_chat_message_content_request.py +2 -2
  542. vellum/client/types/string_input.py +3 -3
  543. vellum/client/types/string_input_request.py +3 -3
  544. vellum/client/types/string_vellum_value.py +2 -2
  545. vellum/client/types/string_vellum_value_request.py +2 -2
  546. vellum/client/types/submit_completion_actual_request.py +3 -3
  547. vellum/client/types/submit_workflow_execution_actual_request.py +3 -2
  548. vellum/client/types/subworkflow_node_result.py +3 -3
  549. vellum/client/types/subworkflow_node_result_data.py +2 -2
  550. vellum/client/types/templating_node_array_result.py +11 -5
  551. vellum/client/types/templating_node_chat_history_result.py +3 -3
  552. vellum/client/types/templating_node_error_result.py +3 -3
  553. vellum/client/types/templating_node_function_call_result.py +3 -3
  554. vellum/client/types/templating_node_json_result.py +2 -2
  555. vellum/client/types/templating_node_number_result.py +2 -2
  556. vellum/client/types/templating_node_result.py +10 -4
  557. vellum/client/types/templating_node_result_data.py +10 -4
  558. vellum/client/types/templating_node_result_output.py +6 -5
  559. vellum/client/types/templating_node_search_results_result.py +3 -3
  560. vellum/client/types/templating_node_string_result.py +2 -2
  561. vellum/client/types/terminal_node_array_result.py +11 -5
  562. vellum/client/types/terminal_node_chat_history_result.py +2 -2
  563. vellum/client/types/terminal_node_error_result.py +2 -2
  564. vellum/client/types/terminal_node_function_call_result.py +2 -2
  565. vellum/client/types/terminal_node_json_result.py +2 -2
  566. vellum/client/types/terminal_node_number_result.py +2 -2
  567. vellum/client/types/terminal_node_result.py +10 -4
  568. vellum/client/types/terminal_node_result_data.py +10 -4
  569. vellum/client/types/terminal_node_result_output.py +6 -5
  570. vellum/client/types/terminal_node_search_results_result.py +2 -2
  571. vellum/client/types/terminal_node_string_result.py +2 -2
  572. vellum/client/types/test_case_array_variable_value.py +11 -5
  573. vellum/client/types/test_case_audio_variable_value.py +27 -0
  574. vellum/client/types/test_case_chat_history_variable_value.py +3 -3
  575. vellum/client/types/test_case_document_variable_value.py +27 -0
  576. vellum/client/types/test_case_error_variable_value.py +3 -3
  577. vellum/client/types/test_case_function_call_variable_value.py +3 -3
  578. vellum/client/types/test_case_image_variable_value.py +27 -0
  579. vellum/client/types/test_case_json_variable_value.py +2 -2
  580. vellum/client/types/test_case_number_variable_value.py +2 -2
  581. vellum/client/types/test_case_search_results_variable_value.py +3 -3
  582. vellum/client/types/test_case_string_variable_value.py +2 -2
  583. vellum/client/types/test_case_variable_value.py +14 -5
  584. vellum/client/types/test_case_video_variable_value.py +27 -0
  585. vellum/client/types/test_suite_run_deployment_release_tag_exec_config.py +3 -3
  586. vellum/client/types/test_suite_run_deployment_release_tag_exec_config_data.py +3 -3
  587. vellum/client/types/test_suite_run_deployment_release_tag_exec_config_data_request.py +3 -3
  588. vellum/client/types/test_suite_run_deployment_release_tag_exec_config_request.py +3 -3
  589. vellum/client/types/test_suite_run_exec_config.py +2 -1
  590. vellum/client/types/test_suite_run_exec_config_request.py +2 -1
  591. vellum/client/types/test_suite_run_execution.py +11 -5
  592. vellum/client/types/test_suite_run_execution_array_output.py +11 -5
  593. vellum/client/types/test_suite_run_execution_chat_history_output.py +3 -3
  594. vellum/client/types/test_suite_run_execution_error_output.py +3 -3
  595. vellum/client/types/test_suite_run_execution_function_call_output.py +3 -3
  596. vellum/client/types/test_suite_run_execution_json_output.py +2 -2
  597. vellum/client/types/test_suite_run_execution_metric_definition.py +2 -2
  598. vellum/client/types/test_suite_run_execution_metric_result.py +11 -5
  599. vellum/client/types/test_suite_run_execution_number_output.py +2 -2
  600. vellum/client/types/test_suite_run_execution_output.py +6 -5
  601. vellum/client/types/test_suite_run_execution_search_results_output.py +3 -3
  602. vellum/client/types/test_suite_run_execution_string_output.py +2 -2
  603. vellum/client/types/test_suite_run_external_exec_config.py +10 -4
  604. vellum/client/types/test_suite_run_external_exec_config_data.py +10 -4
  605. vellum/client/types/test_suite_run_external_exec_config_data_request.py +10 -4
  606. vellum/client/types/test_suite_run_external_exec_config_request.py +10 -4
  607. vellum/client/types/test_suite_run_metric_array_output.py +11 -5
  608. vellum/client/types/test_suite_run_metric_error_output.py +3 -3
  609. vellum/client/types/test_suite_run_metric_json_output.py +2 -2
  610. vellum/client/types/test_suite_run_metric_number_output.py +2 -2
  611. vellum/client/types/test_suite_run_metric_output.py +5 -4
  612. vellum/client/types/test_suite_run_metric_string_output.py +2 -2
  613. vellum/client/types/test_suite_run_progress.py +2 -2
  614. vellum/client/types/test_suite_run_prompt_sandbox_exec_config_data_request.py +3 -3
  615. vellum/client/types/test_suite_run_prompt_sandbox_exec_config_request.py +3 -3
  616. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config.py +3 -3
  617. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_data.py +3 -3
  618. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_data_request.py +3 -3
  619. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_request.py +3 -3
  620. vellum/client/types/test_suite_run_read.py +12 -6
  621. vellum/client/types/test_suite_run_test_suite.py +2 -2
  622. vellum/client/types/test_suite_run_workflow_release_tag_exec_config.py +3 -3
  623. vellum/client/types/test_suite_run_workflow_release_tag_exec_config_data.py +3 -3
  624. vellum/client/types/test_suite_run_workflow_release_tag_exec_config_data_request.py +3 -3
  625. vellum/client/types/test_suite_run_workflow_release_tag_exec_config_request.py +3 -3
  626. vellum/client/types/test_suite_run_workflow_sandbox_exec_config_data_request.py +3 -3
  627. vellum/client/types/test_suite_run_workflow_sandbox_exec_config_request.py +3 -3
  628. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config.py +3 -3
  629. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_data.py +3 -3
  630. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_data_request.py +3 -3
  631. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_request.py +3 -3
  632. vellum/client/types/test_suite_test_case.py +10 -4
  633. vellum/client/types/test_suite_test_case_bulk_operation_request.py +2 -1
  634. vellum/client/types/test_suite_test_case_bulk_result.py +2 -1
  635. vellum/client/types/test_suite_test_case_create_bulk_operation_request.py +10 -4
  636. vellum/client/types/test_suite_test_case_created_bulk_result.py +3 -3
  637. vellum/client/types/test_suite_test_case_created_bulk_result_data.py +2 -2
  638. vellum/client/types/test_suite_test_case_delete_bulk_operation_data_request.py +2 -2
  639. vellum/client/types/test_suite_test_case_delete_bulk_operation_request.py +3 -3
  640. vellum/client/types/test_suite_test_case_deleted_bulk_result.py +3 -3
  641. vellum/client/types/test_suite_test_case_deleted_bulk_result_data.py +2 -2
  642. vellum/client/types/test_suite_test_case_rejected_bulk_result.py +2 -2
  643. vellum/client/types/test_suite_test_case_replace_bulk_operation_request.py +10 -4
  644. vellum/client/types/test_suite_test_case_replaced_bulk_result.py +3 -3
  645. vellum/client/types/test_suite_test_case_replaced_bulk_result_data.py +2 -2
  646. vellum/client/types/test_suite_test_case_upsert_bulk_operation_request.py +10 -4
  647. vellum/client/types/thinking_vellum_value.py +25 -0
  648. vellum/client/types/thinking_vellum_value_request.py +25 -0
  649. vellum/client/types/token_overlapping_window_chunker_config.py +2 -2
  650. vellum/client/types/token_overlapping_window_chunker_config_request.py +2 -2
  651. vellum/client/types/token_overlapping_window_chunking.py +3 -3
  652. vellum/client/types/token_overlapping_window_chunking_request.py +3 -3
  653. vellum/client/types/update_active_workspace_response.py +32 -0
  654. vellum/client/types/upload_document_response.py +3 -3
  655. vellum/client/types/uploaded_file_read.py +27 -0
  656. vellum/client/types/upsert_test_suite_test_case_request.py +9 -3
  657. vellum/client/types/variable_prompt_block.py +11 -4
  658. vellum/client/types/vellum_audio.py +5 -4
  659. vellum/client/types/vellum_audio_request.py +3 -3
  660. vellum/client/types/vellum_code_resource_definition.py +7 -2
  661. vellum/client/types/vellum_document.py +9 -4
  662. vellum/client/types/vellum_document_request.py +7 -3
  663. vellum/client/types/vellum_error.py +5 -4
  664. vellum/client/types/vellum_error_code_enum.py +6 -0
  665. vellum/client/types/vellum_error_request.py +5 -4
  666. vellum/client/types/vellum_image.py +9 -4
  667. vellum/client/types/vellum_image_request.py +7 -3
  668. vellum/client/types/vellum_node_execution_event.py +4 -3
  669. vellum/client/types/vellum_sdk_error.py +4 -3
  670. vellum/client/types/vellum_sdk_error_code_enum.py +5 -0
  671. vellum/client/types/vellum_secret.py +2 -2
  672. vellum/client/types/vellum_span.py +2 -1
  673. vellum/client/types/vellum_value.py +13 -8
  674. vellum/client/types/vellum_value_logical_condition_group_request.py +6 -6
  675. vellum/client/types/vellum_value_logical_condition_request.py +13 -7
  676. vellum/client/types/vellum_value_logical_expression_request.py +2 -1
  677. vellum/client/types/vellum_value_request.py +13 -8
  678. vellum/client/types/vellum_variable.py +13 -7
  679. vellum/client/types/vellum_variable_extensions.py +3 -2
  680. vellum/client/types/vellum_variable_type.py +3 -1
  681. vellum/client/types/vellum_video.py +25 -0
  682. vellum/client/types/vellum_video_request.py +24 -0
  683. vellum/client/types/vellum_workflow_execution_event.py +4 -3
  684. vellum/client/types/video_chat_message_content.py +25 -0
  685. vellum/client/types/video_chat_message_content_request.py +25 -0
  686. vellum/client/types/video_input.py +30 -0
  687. vellum/client/types/video_input_request.py +30 -0
  688. vellum/client/types/video_prompt_block.py +29 -0
  689. vellum/client/types/video_vellum_value.py +25 -0
  690. vellum/client/types/video_vellum_value_request.py +25 -0
  691. vellum/client/types/workflow_deployment_display_data.py +27 -0
  692. vellum/client/types/workflow_deployment_event_executions_response.py +20 -11
  693. vellum/client/types/workflow_deployment_history_item.py +10 -4
  694. vellum/client/types/workflow_deployment_parent_context.py +13 -10
  695. vellum/client/types/workflow_deployment_read.py +22 -10
  696. vellum/client/types/workflow_deployment_release.py +13 -7
  697. vellum/client/types/workflow_deployment_release_workflow_deployment.py +2 -2
  698. vellum/client/types/workflow_deployment_release_workflow_version.py +10 -4
  699. vellum/client/types/workflow_display_icon.py +24 -0
  700. vellum/client/types/workflow_error.py +1 -0
  701. vellum/client/types/workflow_event.py +37 -0
  702. vellum/client/types/workflow_event_error.py +5 -3
  703. vellum/client/types/workflow_event_execution_read.py +26 -16
  704. vellum/client/types/workflow_execution_actual.py +11 -5
  705. vellum/client/types/workflow_execution_actual_chat_history_request.py +2 -2
  706. vellum/client/types/workflow_execution_actual_json_request.py +2 -2
  707. vellum/client/types/workflow_execution_actual_string_request.py +2 -2
  708. vellum/client/types/workflow_execution_detail.py +51 -0
  709. vellum/client/types/workflow_execution_event_error_code.py +5 -0
  710. vellum/client/types/workflow_execution_fulfilled_body.py +5 -3
  711. vellum/client/types/workflow_execution_fulfilled_event.py +24 -15
  712. vellum/client/types/workflow_execution_initiated_body.py +3 -3
  713. vellum/client/types/workflow_execution_initiated_event.py +24 -15
  714. vellum/client/types/workflow_execution_node_result_event.py +10 -4
  715. vellum/client/types/workflow_execution_paused_body.py +4 -4
  716. vellum/client/types/workflow_execution_paused_event.py +24 -15
  717. vellum/client/types/workflow_execution_rejected_body.py +5 -4
  718. vellum/client/types/workflow_execution_rejected_event.py +24 -15
  719. vellum/client/types/workflow_execution_resumed_body.py +3 -3
  720. vellum/client/types/workflow_execution_resumed_event.py +24 -15
  721. vellum/client/types/workflow_execution_snapshotted_body.py +4 -3
  722. vellum/client/types/workflow_execution_snapshotted_event.py +24 -15
  723. vellum/client/types/workflow_execution_span.py +22 -11
  724. vellum/client/types/workflow_execution_span_attributes.py +3 -2
  725. vellum/client/types/workflow_execution_streaming_body.py +4 -4
  726. vellum/client/types/workflow_execution_streaming_event.py +24 -15
  727. vellum/client/types/workflow_execution_usage_calculation_error.py +3 -3
  728. vellum/client/types/workflow_execution_usage_calculation_fulfilled_body.py +22 -0
  729. vellum/client/types/workflow_execution_usage_result.py +3 -3
  730. vellum/client/types/workflow_execution_view_online_eval_metric_result.py +10 -4
  731. vellum/client/types/workflow_execution_workflow_result_event.py +10 -4
  732. vellum/client/types/workflow_expand_meta_request.py +2 -2
  733. vellum/client/types/workflow_initialization_error.py +2 -2
  734. vellum/client/types/workflow_input.py +31 -0
  735. vellum/client/types/workflow_node_result_data.py +8 -7
  736. vellum/client/types/workflow_node_result_event.py +3 -2
  737. vellum/client/types/workflow_output.py +12 -5
  738. vellum/client/types/workflow_output_array.py +12 -6
  739. vellum/client/types/workflow_output_audio.py +31 -0
  740. vellum/client/types/workflow_output_chat_history.py +3 -3
  741. vellum/client/types/workflow_output_document.py +31 -0
  742. vellum/client/types/workflow_output_error.py +3 -3
  743. vellum/client/types/workflow_output_function_call.py +3 -3
  744. vellum/client/types/workflow_output_image.py +3 -3
  745. vellum/client/types/workflow_output_json.py +3 -3
  746. vellum/client/types/workflow_output_number.py +3 -3
  747. vellum/client/types/workflow_output_search_results.py +3 -3
  748. vellum/client/types/workflow_output_string.py +3 -3
  749. vellum/client/types/workflow_output_video.py +31 -0
  750. vellum/client/types/workflow_parent_context.py +14 -11
  751. vellum/client/types/workflow_push_deployment_config_request.py +3 -2
  752. vellum/client/types/workflow_push_response.py +2 -2
  753. vellum/client/types/workflow_release_tag_read.py +4 -4
  754. vellum/client/types/workflow_release_tag_workflow_deployment_history_item.py +2 -2
  755. vellum/client/types/workflow_request_audio_input_request.py +30 -0
  756. vellum/client/types/workflow_request_chat_history_input_request.py +3 -3
  757. vellum/client/types/workflow_request_document_input_request.py +30 -0
  758. vellum/client/types/workflow_request_image_input_request.py +30 -0
  759. vellum/client/types/workflow_request_input_request.py +11 -2
  760. vellum/client/types/workflow_request_json_input_request.py +3 -3
  761. vellum/client/types/workflow_request_number_input_request.py +3 -3
  762. vellum/client/types/workflow_request_string_input_request.py +3 -3
  763. vellum/client/types/workflow_request_video_input_request.py +30 -0
  764. vellum/client/types/workflow_resolved_state.py +31 -0
  765. vellum/client/types/workflow_result_event.py +14 -8
  766. vellum/client/types/workflow_result_event_output_data.py +7 -6
  767. vellum/client/types/workflow_result_event_output_data_array.py +12 -6
  768. vellum/client/types/workflow_result_event_output_data_chat_history.py +3 -3
  769. vellum/client/types/workflow_result_event_output_data_error.py +3 -3
  770. vellum/client/types/workflow_result_event_output_data_function_call.py +3 -3
  771. vellum/client/types/workflow_result_event_output_data_json.py +3 -3
  772. vellum/client/types/workflow_result_event_output_data_number.py +3 -3
  773. vellum/client/types/workflow_result_event_output_data_search_results.py +3 -3
  774. vellum/client/types/workflow_result_event_output_data_string.py +3 -3
  775. vellum/client/types/workflow_result_event_state.py +7 -0
  776. vellum/client/types/workflow_sandbox_display_data.py +27 -0
  777. vellum/client/types/workflow_sandbox_example.py +4 -2
  778. vellum/client/types/workflow_sandbox_parent_context.py +13 -10
  779. vellum/client/types/workflow_stream_event.py +2 -1
  780. vellum/client/types/workspace_display_config.py +19 -0
  781. vellum/client/types/workspace_read.py +5 -3
  782. vellum/client/types/workspace_secret_read.py +3 -3
  783. vellum/client/utils.py +24 -0
  784. vellum/core/force_multipart.py +3 -0
  785. vellum/core/http_response.py +3 -0
  786. vellum/errors/misdirected_request_error.py +3 -0
  787. vellum/errors/too_many_requests_error.py +3 -0
  788. vellum/errors/unauthorized_error.py +3 -0
  789. vellum/evaluations/resources.py +5 -5
  790. vellum/plugins/pydantic.py +14 -3
  791. vellum/plugins/tests/__init__.py +0 -0
  792. vellum/plugins/tests/test_pydantic.py +30 -0
  793. vellum/plugins/vellum_mypy.py +31 -23
  794. vellum/prompts/__init__.py +3 -0
  795. vellum/prompts/blocks/__init__.py +3 -0
  796. vellum/prompts/blocks/compilation.py +29 -11
  797. vellum/prompts/blocks/helpers.py +31 -0
  798. vellum/prompts/blocks/tests/test_compilation.py +64 -0
  799. vellum/raw_client.py +3 -0
  800. vellum/resources/ad_hoc/raw_client.py +3 -0
  801. vellum/resources/container_images/raw_client.py +3 -0
  802. vellum/resources/deployments/raw_client.py +3 -0
  803. vellum/resources/document_indexes/raw_client.py +3 -0
  804. vellum/resources/documents/raw_client.py +3 -0
  805. vellum/resources/{release_reviews → environments}/__init__.py +1 -1
  806. vellum/resources/{release_reviews → environments}/client.py +1 -1
  807. vellum/resources/environments/raw_client.py +3 -0
  808. vellum/resources/events/__init__.py +3 -0
  809. vellum/resources/events/client.py +3 -0
  810. vellum/resources/events/raw_client.py +3 -0
  811. vellum/resources/folder_entities/raw_client.py +3 -0
  812. vellum/resources/integration_auth_configs/__init__.py +3 -0
  813. vellum/resources/integration_auth_configs/client.py +3 -0
  814. vellum/resources/integration_auth_configs/raw_client.py +3 -0
  815. vellum/resources/integration_providers/__init__.py +3 -0
  816. vellum/resources/integration_providers/client.py +3 -0
  817. vellum/resources/integration_providers/raw_client.py +3 -0
  818. vellum/resources/integrations/__init__.py +3 -0
  819. vellum/resources/integrations/client.py +3 -0
  820. vellum/resources/integrations/raw_client.py +3 -0
  821. vellum/resources/metric_definitions/raw_client.py +3 -0
  822. vellum/resources/ml_models/raw_client.py +3 -0
  823. vellum/resources/organizations/raw_client.py +3 -0
  824. vellum/resources/prompts/raw_client.py +3 -0
  825. vellum/resources/sandboxes/raw_client.py +3 -0
  826. vellum/resources/test_suite_runs/raw_client.py +3 -0
  827. vellum/resources/test_suites/raw_client.py +3 -0
  828. vellum/resources/uploaded_files/__init__.py +3 -0
  829. vellum/resources/uploaded_files/client.py +3 -0
  830. vellum/resources/uploaded_files/raw_client.py +3 -0
  831. vellum/resources/workflow_deployments/raw_client.py +3 -0
  832. vellum/resources/workflow_executions/__init__.py +3 -0
  833. vellum/resources/workflow_executions/client.py +3 -0
  834. vellum/resources/workflow_executions/raw_client.py +3 -0
  835. vellum/resources/workflow_sandboxes/raw_client.py +3 -0
  836. vellum/resources/workflows/raw_client.py +3 -0
  837. vellum/resources/workspace_secrets/raw_client.py +3 -0
  838. vellum/resources/workspaces/raw_client.py +3 -0
  839. vellum/types/api_actor_type_enum.py +3 -0
  840. vellum/types/audio_input.py +3 -0
  841. vellum/types/audio_input_request.py +3 -0
  842. vellum/types/auth_type_enum.py +3 -0
  843. vellum/types/build_status_enum.py +3 -0
  844. vellum/types/components_schemas_composio_execute_tool_request.py +3 -0
  845. vellum/types/components_schemas_composio_execute_tool_response.py +3 -0
  846. vellum/types/components_schemas_composio_integration_exec_config.py +3 -0
  847. vellum/types/components_schemas_composio_tool_definition.py +3 -0
  848. vellum/types/components_schemas_slim_composio_tool_definition.py +3 -0
  849. vellum/types/composio_execute_tool_request.py +3 -0
  850. vellum/types/composio_execute_tool_response.py +3 -0
  851. vellum/types/composio_integration_exec_config.py +3 -0
  852. vellum/types/composio_tool_definition.py +3 -0
  853. vellum/types/container_image_build_config.py +3 -0
  854. vellum/types/create_workflow_event_request.py +3 -0
  855. vellum/types/dataset_row_push_request.py +3 -0
  856. vellum/types/delimiter_chunker_config.py +3 -0
  857. vellum/types/delimiter_chunker_config_request.py +3 -0
  858. vellum/types/delimiter_chunking.py +3 -0
  859. vellum/types/delimiter_chunking_request.py +3 -0
  860. vellum/types/deprecated_prompt_request_input.py +3 -0
  861. vellum/types/document_input.py +3 -0
  862. vellum/types/document_input_request.py +3 -0
  863. vellum/types/environment_display_config.py +3 -0
  864. vellum/types/environment_read.py +3 -0
  865. vellum/types/error_detail_response.py +3 -0
  866. vellum/types/event_create_response.py +3 -0
  867. vellum/types/execute_workflow_async_response.py +3 -0
  868. vellum/types/execution_audio_vellum_value.py +3 -0
  869. vellum/types/execution_document_vellum_value.py +3 -0
  870. vellum/types/execution_image_vellum_value.py +3 -0
  871. vellum/types/execution_thinking_vellum_value.py +3 -0
  872. vellum/types/execution_video_vellum_value.py +3 -0
  873. vellum/types/external_parent_context.py +3 -0
  874. vellum/types/fast_embed_vectorizer_baai_bge_small_en_v_15.py +3 -0
  875. vellum/types/fast_embed_vectorizer_baai_bge_small_en_v_15_request.py +3 -0
  876. vellum/types/folder_entity_dataset.py +3 -0
  877. vellum/types/folder_entity_dataset_data.py +3 -0
  878. vellum/types/google_vertex_ai_vectorizer_gemini_embedding_001.py +3 -0
  879. vellum/types/google_vertex_ai_vectorizer_gemini_embedding_001_request.py +3 -0
  880. vellum/types/image_input.py +3 -0
  881. vellum/types/image_input_request.py +3 -0
  882. vellum/types/integration.py +3 -0
  883. vellum/types/integration_auth_config_integration.py +3 -0
  884. vellum/types/integration_auth_config_integration_credential.py +3 -0
  885. vellum/types/integration_credential_access_type.py +3 -0
  886. vellum/types/integration_name.py +3 -0
  887. vellum/types/integration_provider.py +3 -0
  888. vellum/types/integration_read.py +3 -0
  889. vellum/types/integration_trigger_context.py +3 -0
  890. vellum/types/named_scenario_input_audio_variable_value_request.py +3 -0
  891. vellum/types/named_scenario_input_document_variable_value_request.py +3 -0
  892. vellum/types/named_scenario_input_image_variable_value_request.py +3 -0
  893. vellum/types/named_scenario_input_video_variable_value_request.py +3 -0
  894. vellum/types/named_test_case_audio_variable_value.py +3 -0
  895. vellum/types/named_test_case_audio_variable_value_request.py +3 -0
  896. vellum/types/named_test_case_document_variable_value.py +3 -0
  897. vellum/types/named_test_case_document_variable_value_request.py +3 -0
  898. vellum/types/named_test_case_image_variable_value.py +3 -0
  899. vellum/types/named_test_case_image_variable_value_request.py +3 -0
  900. vellum/types/named_test_case_video_variable_value.py +3 -0
  901. vellum/types/named_test_case_video_variable_value_request.py +3 -0
  902. vellum/types/node_input_compiled_audio_value.py +3 -0
  903. vellum/types/node_input_compiled_document_value.py +3 -0
  904. vellum/types/node_input_compiled_image_value.py +3 -0
  905. vellum/types/node_input_compiled_video_value.py +3 -0
  906. vellum/types/node_output_compiled_thinking_value.py +3 -0
  907. vellum/types/paginated_slim_integration_auth_config_read_list.py +3 -0
  908. vellum/types/paginated_slim_integration_read_list.py +3 -0
  909. vellum/types/paginated_slim_tool_definition_list.py +3 -0
  910. vellum/types/paginated_workflow_deployment_release_list.py +3 -0
  911. vellum/types/private_vectorizer.py +3 -0
  912. vellum/types/private_vectorizer_request.py +3 -0
  913. vellum/types/prompt_request_audio_input.py +3 -0
  914. vellum/types/prompt_request_document_input.py +3 -0
  915. vellum/types/prompt_request_image_input.py +3 -0
  916. vellum/types/prompt_request_video_input.py +3 -0
  917. vellum/types/scenario_input_audio_variable_value.py +3 -0
  918. vellum/types/scenario_input_document_variable_value.py +3 -0
  919. vellum/types/scenario_input_image_variable_value.py +3 -0
  920. vellum/types/scenario_input_video_variable_value.py +3 -0
  921. vellum/types/scheduled_trigger_context.py +3 -0
  922. vellum/types/slim_composio_tool_definition.py +3 -0
  923. vellum/types/slim_integration_auth_config_read.py +3 -0
  924. vellum/types/slim_integration_read.py +3 -0
  925. vellum/types/test_case_audio_variable_value.py +3 -0
  926. vellum/types/test_case_document_variable_value.py +3 -0
  927. vellum/types/test_case_image_variable_value.py +3 -0
  928. vellum/types/test_case_video_variable_value.py +3 -0
  929. vellum/types/thinking_vellum_value.py +3 -0
  930. vellum/types/thinking_vellum_value_request.py +3 -0
  931. vellum/types/update_active_workspace_response.py +3 -0
  932. vellum/types/uploaded_file_read.py +3 -0
  933. vellum/types/vellum_video.py +3 -0
  934. vellum/types/vellum_video_request.py +3 -0
  935. vellum/types/video_chat_message_content.py +3 -0
  936. vellum/types/video_chat_message_content_request.py +3 -0
  937. vellum/types/video_input.py +3 -0
  938. vellum/types/video_input_request.py +3 -0
  939. vellum/types/video_prompt_block.py +3 -0
  940. vellum/types/video_vellum_value.py +3 -0
  941. vellum/types/video_vellum_value_request.py +3 -0
  942. vellum/types/workflow_deployment_display_data.py +3 -0
  943. vellum/types/workflow_display_icon.py +3 -0
  944. vellum/types/workflow_event.py +3 -0
  945. vellum/types/workflow_execution_detail.py +3 -0
  946. vellum/types/workflow_execution_usage_calculation_fulfilled_body.py +3 -0
  947. vellum/types/workflow_input.py +3 -0
  948. vellum/types/workflow_output_audio.py +3 -0
  949. vellum/types/workflow_output_document.py +3 -0
  950. vellum/types/workflow_output_video.py +3 -0
  951. vellum/types/workflow_request_audio_input_request.py +3 -0
  952. vellum/types/workflow_request_document_input_request.py +3 -0
  953. vellum/types/workflow_request_image_input_request.py +3 -0
  954. vellum/types/workflow_request_video_input_request.py +3 -0
  955. vellum/types/workflow_resolved_state.py +3 -0
  956. vellum/types/workflow_result_event_state.py +3 -0
  957. vellum/types/workflow_sandbox_display_data.py +3 -0
  958. vellum/types/workspace_display_config.py +3 -0
  959. vellum/utils/files/__init__.py +18 -0
  960. vellum/utils/files/constants.py +47 -0
  961. vellum/utils/files/exceptions.py +25 -0
  962. vellum/utils/files/extensions.py +59 -0
  963. vellum/utils/files/mixin.py +109 -0
  964. vellum/utils/files/read.py +41 -0
  965. vellum/utils/files/stream.py +135 -0
  966. vellum/utils/files/tests/__init__.py +0 -0
  967. vellum/utils/files/tests/test_extensions.py +54 -0
  968. vellum/utils/files/tests/test_mixin.py +205 -0
  969. vellum/utils/files/tests/test_read.py +204 -0
  970. vellum/utils/files/tests/test_stream.py +199 -0
  971. vellum/utils/files/tests/test_upload.py +309 -0
  972. vellum/utils/files/tests/test_urls.py +252 -0
  973. vellum/utils/files/types.py +8 -0
  974. vellum/utils/files/upload.py +151 -0
  975. vellum/utils/files/urls.py +71 -0
  976. vellum/utils/json_encoder.py +95 -0
  977. vellum/utils/templating/custom_filters.py +4 -4
  978. vellum/utils/templating/render.py +4 -4
  979. vellum/utils/tests/__init__.py +0 -0
  980. vellum/utils/tests/test_json_encoder.py +92 -0
  981. vellum/utils/vellum_client.py +40 -0
  982. vellum/workflows/__init__.py +78 -0
  983. vellum/workflows/constants.py +7 -0
  984. vellum/workflows/context.py +27 -9
  985. vellum/workflows/descriptors/base.py +83 -2
  986. vellum/workflows/descriptors/exceptions.py +18 -1
  987. vellum/workflows/descriptors/tests/test_utils.py +57 -0
  988. vellum/workflows/descriptors/utils.py +27 -3
  989. vellum/workflows/edges/__init__.py +2 -0
  990. vellum/workflows/edges/trigger_edge.py +67 -0
  991. vellum/workflows/emitters/__init__.py +2 -0
  992. vellum/workflows/emitters/base.py +25 -0
  993. vellum/workflows/emitters/vellum_emitter.py +150 -0
  994. vellum/workflows/environment/__init__.py +2 -1
  995. vellum/workflows/environment/environment.py +10 -3
  996. vellum/workflows/errors/types.py +18 -1
  997. vellum/workflows/events/__init__.py +2 -0
  998. vellum/workflows/events/context.py +90 -0
  999. vellum/workflows/events/exception_handling.py +58 -0
  1000. vellum/workflows/events/node.py +27 -11
  1001. vellum/workflows/events/relational_threads.py +41 -0
  1002. vellum/workflows/events/stream.py +28 -0
  1003. vellum/workflows/events/tests/test_basic_workflow.py +50 -0
  1004. vellum/workflows/events/tests/test_event.py +145 -20
  1005. vellum/workflows/events/types.py +32 -4
  1006. vellum/workflows/events/workflow.py +111 -8
  1007. vellum/workflows/exceptions.py +46 -7
  1008. vellum/workflows/executable.py +9 -0
  1009. vellum/workflows/expressions/accessor.py +65 -11
  1010. vellum/workflows/expressions/add.py +41 -0
  1011. vellum/workflows/expressions/comparison_utils.py +38 -0
  1012. vellum/workflows/expressions/concat.py +35 -0
  1013. vellum/workflows/expressions/contains.py +7 -0
  1014. vellum/workflows/expressions/greater_than.py +8 -1
  1015. vellum/workflows/expressions/greater_than_or_equal_to.py +8 -1
  1016. vellum/workflows/expressions/is_error.py +23 -0
  1017. vellum/workflows/expressions/length.py +46 -0
  1018. vellum/workflows/expressions/less_than.py +8 -1
  1019. vellum/workflows/expressions/less_than_or_equal_to.py +8 -1
  1020. vellum/workflows/expressions/minus.py +41 -0
  1021. vellum/workflows/expressions/tests/test_accessor.py +248 -0
  1022. vellum/workflows/expressions/tests/test_add.py +72 -0
  1023. vellum/workflows/expressions/tests/test_concat.py +108 -0
  1024. vellum/workflows/expressions/tests/test_contains.py +175 -0
  1025. vellum/workflows/expressions/tests/test_expressions.py +145 -32
  1026. vellum/workflows/expressions/tests/test_length.py +38 -0
  1027. vellum/workflows/expressions/tests/test_minus.py +109 -0
  1028. vellum/workflows/graph/graph.py +255 -8
  1029. vellum/workflows/graph/tests/test_graph.py +300 -0
  1030. vellum/workflows/inputs/__init__.py +2 -0
  1031. vellum/workflows/inputs/base.py +49 -15
  1032. vellum/workflows/inputs/dataset_row.py +81 -0
  1033. vellum/workflows/inputs/tests/test_inputs.py +181 -1
  1034. vellum/workflows/integrations/__init__.py +5 -0
  1035. vellum/workflows/integrations/composio_service.py +158 -0
  1036. vellum/workflows/integrations/mcp_service.py +282 -0
  1037. vellum/workflows/integrations/tests/__init__.py +0 -0
  1038. vellum/workflows/integrations/tests/test_mcp_service.py +273 -0
  1039. vellum/workflows/integrations/tests/test_vellum_integration_service.py +299 -0
  1040. vellum/workflows/integrations/vellum_integration_service.py +136 -0
  1041. vellum/workflows/loaders/__init__.py +3 -0
  1042. vellum/workflows/loaders/base.py +36 -0
  1043. vellum/workflows/nodes/__init__.py +2 -0
  1044. vellum/workflows/nodes/bases/base.py +142 -80
  1045. vellum/workflows/nodes/bases/base_adornment_node.py +55 -1
  1046. vellum/workflows/nodes/bases/tests/test_base_node.py +50 -4
  1047. vellum/workflows/nodes/core/error_node/node.py +11 -2
  1048. vellum/workflows/nodes/core/inline_subworkflow_node/node.py +29 -3
  1049. vellum/workflows/nodes/core/inline_subworkflow_node/tests/test_node.py +35 -0
  1050. vellum/workflows/nodes/core/map_node/node.py +26 -1
  1051. vellum/workflows/nodes/core/map_node/tests/test_node.py +73 -0
  1052. vellum/workflows/nodes/core/retry_node/tests/test_node.py +2 -3
  1053. vellum/workflows/nodes/core/templating_node/node.py +7 -2
  1054. vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py +194 -1
  1055. vellum/workflows/nodes/displayable/__init__.py +6 -0
  1056. vellum/workflows/nodes/displayable/api_node/node.py +10 -1
  1057. vellum/workflows/nodes/displayable/api_node/tests/test_api_node.py +113 -2
  1058. vellum/workflows/nodes/displayable/bases/api_node/node.py +70 -16
  1059. vellum/workflows/nodes/displayable/bases/api_node/tests/__init__.py +0 -0
  1060. vellum/workflows/nodes/displayable/bases/api_node/tests/test_node.py +150 -0
  1061. vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py +68 -7
  1062. vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py +215 -17
  1063. vellum/workflows/nodes/displayable/bases/inline_prompt_node/tests/test_inline_prompt_node.py +352 -32
  1064. vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py +73 -1
  1065. vellum/workflows/nodes/displayable/bases/search_node.py +26 -3
  1066. vellum/workflows/nodes/displayable/bases/tests/test_prompt_deployment_node.py +90 -0
  1067. vellum/workflows/nodes/displayable/bases/utils.py +82 -5
  1068. vellum/workflows/nodes/displayable/code_execution_node/node.py +35 -9
  1069. vellum/workflows/nodes/displayable/code_execution_node/tests/test_node.py +242 -13
  1070. vellum/workflows/nodes/displayable/code_execution_node/utils.py +5 -21
  1071. vellum/workflows/nodes/displayable/conditional_node/node.py +8 -4
  1072. vellum/workflows/nodes/displayable/final_output_node/node.py +80 -1
  1073. vellum/workflows/nodes/displayable/final_output_node/tests/test_node.py +96 -1
  1074. vellum/workflows/nodes/displayable/guardrail_node/node.py +13 -4
  1075. vellum/workflows/nodes/displayable/inline_prompt_node/node.py +9 -36
  1076. vellum/workflows/nodes/displayable/inline_prompt_node/tests/test_node.py +3 -0
  1077. vellum/workflows/nodes/displayable/merge_node/node.py +8 -1
  1078. vellum/workflows/nodes/displayable/note_node/node.py +8 -1
  1079. vellum/workflows/nodes/displayable/prompt_deployment_node/node.py +7 -23
  1080. vellum/workflows/nodes/displayable/search_node/node.py +15 -2
  1081. vellum/workflows/nodes/displayable/search_node/tests/test_node.py +33 -0
  1082. vellum/workflows/nodes/displayable/set_state_node/__init__.py +5 -0
  1083. vellum/workflows/nodes/displayable/set_state_node/node.py +71 -0
  1084. vellum/workflows/nodes/displayable/set_state_node/tests/__init__.py +0 -0
  1085. vellum/workflows/nodes/displayable/set_state_node/tests/test_node.py +212 -0
  1086. vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py +220 -59
  1087. vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/test_node.py +1 -1
  1088. vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py +4 -1
  1089. vellum/workflows/nodes/displayable/tests/test_search_node_error_handling.py +329 -0
  1090. vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py +10 -15
  1091. vellum/workflows/nodes/displayable/tool_calling_node/__init__.py +3 -0
  1092. vellum/workflows/nodes/displayable/tool_calling_node/node.py +225 -0
  1093. vellum/workflows/nodes/displayable/tool_calling_node/state.py +11 -0
  1094. vellum/workflows/nodes/displayable/tool_calling_node/tests/__init__.py +0 -0
  1095. vellum/workflows/nodes/displayable/tool_calling_node/tests/test_composio_service.py +219 -0
  1096. vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py +802 -0
  1097. vellum/workflows/nodes/displayable/tool_calling_node/tests/test_utils.py +316 -0
  1098. vellum/workflows/nodes/displayable/tool_calling_node/utils.py +633 -0
  1099. vellum/workflows/nodes/displayable/web_search_node/__init__.py +3 -0
  1100. vellum/workflows/nodes/displayable/web_search_node/node.py +136 -0
  1101. vellum/workflows/nodes/displayable/web_search_node/tests/__init__.py +0 -0
  1102. vellum/workflows/nodes/displayable/web_search_node/tests/test_node.py +246 -0
  1103. vellum/workflows/nodes/experimental/__init__.py +1 -3
  1104. vellum/workflows/nodes/mocks.py +40 -9
  1105. vellum/workflows/nodes/tests/test_mocks.py +2 -2
  1106. vellum/workflows/nodes/tests/test_utils.py +34 -5
  1107. vellum/workflows/nodes/utils.py +45 -6
  1108. vellum/workflows/outputs/base.py +53 -12
  1109. vellum/workflows/ports/node_ports.py +3 -0
  1110. vellum/workflows/ports/port.py +27 -12
  1111. vellum/workflows/ports/tests/test_port.py +45 -0
  1112. vellum/workflows/ports/utils.py +26 -6
  1113. vellum/workflows/references/__init__.py +2 -0
  1114. vellum/workflows/references/constant.py +4 -1
  1115. vellum/workflows/references/environment_variable.py +27 -9
  1116. vellum/workflows/references/output.py +4 -6
  1117. vellum/workflows/references/trigger.py +77 -0
  1118. vellum/workflows/resolvers/base.py +19 -1
  1119. vellum/workflows/resolvers/resolver.py +71 -0
  1120. vellum/workflows/resolvers/tests/test_resolver.py +168 -0
  1121. vellum/workflows/resolvers/types.py +11 -0
  1122. vellum/workflows/runner/runner.py +642 -160
  1123. vellum/workflows/sandbox.py +55 -9
  1124. vellum/workflows/state/base.py +164 -40
  1125. vellum/workflows/state/context.py +225 -6
  1126. vellum/workflows/state/delta.py +20 -0
  1127. vellum/workflows/state/encoder.py +2 -77
  1128. vellum/workflows/state/tests/test_state.py +24 -9
  1129. vellum/workflows/tests/test_dataset_row.py +190 -0
  1130. vellum/workflows/tests/test_sandbox.py +137 -0
  1131. vellum/workflows/tests/triggers/test_integration_trigger.py +156 -0
  1132. vellum/workflows/triggers/__init__.py +6 -0
  1133. vellum/workflows/triggers/base.py +391 -0
  1134. vellum/workflows/triggers/integration.py +186 -0
  1135. vellum/workflows/triggers/manual.py +37 -0
  1136. vellum/workflows/triggers/schedule.py +18 -0
  1137. vellum/workflows/triggers/tests/__init__.py +1 -0
  1138. vellum/workflows/triggers/tests/test_base_trigger_display.py +147 -0
  1139. vellum/workflows/triggers/tests/test_integration.py +155 -0
  1140. vellum/workflows/types/__init__.py +2 -1
  1141. vellum/workflows/types/code_execution_node_wrappers.py +5 -1
  1142. vellum/workflows/types/core.py +5 -0
  1143. vellum/workflows/types/definition.py +168 -2
  1144. vellum/workflows/types/generics.py +5 -0
  1145. vellum/workflows/types/tests/test_definition.py +183 -0
  1146. vellum/workflows/types/tests/test_utils.py +11 -0
  1147. vellum/workflows/types/utils.py +33 -3
  1148. vellum/workflows/utils/files.py +28 -0
  1149. vellum/workflows/utils/functions.py +244 -19
  1150. vellum/workflows/utils/hmac.py +44 -0
  1151. vellum/workflows/utils/names.py +32 -4
  1152. vellum/workflows/utils/pydantic_schema.py +38 -0
  1153. vellum/workflows/utils/tests/test_functions.py +357 -15
  1154. vellum/workflows/utils/tests/test_names.py +9 -0
  1155. vellum/workflows/utils/tests/test_vellum_variables.py +32 -2
  1156. vellum/workflows/utils/uuids.py +35 -0
  1157. vellum/workflows/utils/vellum_variables.py +131 -7
  1158. vellum/workflows/utils/zip.py +46 -0
  1159. vellum/workflows/vellum_client.py +3 -33
  1160. vellum/workflows/workflows/base.py +350 -39
  1161. vellum/workflows/workflows/event_filters.py +13 -0
  1162. vellum/workflows/workflows/tests/test_base_workflow.py +118 -6
  1163. vellum/workflows/workflows/tests/test_event_filters.py +126 -0
  1164. {vellum_ai-0.14.63.dist-info → vellum_ai-1.11.2.dist-info}/METADATA +12 -13
  1165. vellum_ai-1.11.2.dist-info/RECORD +2177 -0
  1166. vellum_ai-1.11.2.dist-info/entry_points.txt +4 -0
  1167. vellum_cli/__init__.py +34 -4
  1168. vellum_cli/config.py +5 -3
  1169. vellum_cli/image_push.py +106 -8
  1170. vellum_cli/move.py +56 -0
  1171. vellum_cli/ping.py +6 -0
  1172. vellum_cli/pull.py +48 -14
  1173. vellum_cli/push.py +103 -26
  1174. vellum_cli/tests/conftest.py +6 -0
  1175. vellum_cli/tests/test_image_push.py +190 -12
  1176. vellum_cli/tests/test_image_push_error_handling.py +258 -0
  1177. vellum_cli/tests/test_init.py +7 -24
  1178. vellum_cli/tests/test_move.py +154 -0
  1179. vellum_cli/tests/test_ping.py +15 -0
  1180. vellum_cli/tests/test_pull.py +42 -61
  1181. vellum_cli/tests/test_push.py +443 -11
  1182. vellum_ee/assets/node-definitions.json +1135 -0
  1183. vellum_ee/scripts/generate_node_definitions.py +89 -0
  1184. vellum_ee/workflows/display/base.py +29 -55
  1185. vellum_ee/workflows/display/editor/types.py +3 -0
  1186. vellum_ee/workflows/display/exceptions.py +3 -0
  1187. vellum_ee/workflows/display/nodes/base_node_display.py +164 -56
  1188. vellum_ee/workflows/display/nodes/tests/test_base_node_display.py +149 -3
  1189. vellum_ee/workflows/display/nodes/vellum/__init__.py +2 -0
  1190. vellum_ee/workflows/display/nodes/vellum/api_node.py +26 -13
  1191. vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py +3 -3
  1192. vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +23 -7
  1193. vellum_ee/workflows/display/nodes/vellum/conditional_node.py +18 -7
  1194. vellum_ee/workflows/display/nodes/vellum/error_node.py +2 -4
  1195. vellum_ee/workflows/display/nodes/vellum/final_output_node.py +3 -14
  1196. vellum_ee/workflows/display/nodes/vellum/function_node.py +14 -0
  1197. vellum_ee/workflows/display/nodes/vellum/guardrail_node.py +2 -5
  1198. vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +77 -44
  1199. vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py +33 -10
  1200. vellum_ee/workflows/display/nodes/vellum/map_node.py +29 -15
  1201. vellum_ee/workflows/display/nodes/vellum/merge_node.py +2 -5
  1202. vellum_ee/workflows/display/nodes/vellum/note_node.py +2 -3
  1203. vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py +13 -9
  1204. vellum_ee/workflows/display/nodes/vellum/retry_node.py +5 -6
  1205. vellum_ee/workflows/display/nodes/vellum/search_node.py +76 -19
  1206. vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +21 -10
  1207. vellum_ee/workflows/display/nodes/vellum/templating_node.py +3 -6
  1208. vellum_ee/workflows/display/nodes/vellum/tests/test_api_node.py +65 -0
  1209. vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py +176 -3
  1210. vellum_ee/workflows/display/nodes/vellum/tests/test_final_output_node.py +80 -0
  1211. vellum_ee/workflows/display/nodes/vellum/tests/test_inline_subworkflow_node.py +88 -0
  1212. vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_deployment_node.py +71 -1
  1213. vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_node.py +115 -13
  1214. vellum_ee/workflows/display/nodes/vellum/tests/test_retry_node.py +1 -1
  1215. vellum_ee/workflows/display/nodes/vellum/tests/test_search_node.py +104 -0
  1216. vellum_ee/workflows/display/nodes/vellum/tests/test_subworkflow_deployment_node.py +1 -1
  1217. vellum_ee/workflows/display/nodes/vellum/tests/test_templating_node.py +2 -2
  1218. vellum_ee/workflows/display/nodes/vellum/tests/test_tool_calling_node.py +526 -49
  1219. vellum_ee/workflows/display/nodes/vellum/tests/test_try_node.py +2 -2
  1220. vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py +8 -9
  1221. vellum_ee/workflows/display/nodes/vellum/try_node.py +5 -6
  1222. vellum_ee/workflows/display/tests/test_base_workflow_display.py +383 -9
  1223. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/conftest.py +2 -2
  1224. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py +102 -39
  1225. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py +233 -90
  1226. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_outputs_serialization.py +21 -17
  1227. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_ports_serialization.py +76 -64
  1228. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_trigger_serialization.py +69 -12
  1229. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +68 -46
  1230. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +92 -80
  1231. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +193 -177
  1232. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py +14 -14
  1233. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py +14 -9
  1234. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py +28 -17
  1235. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +20 -16
  1236. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py +386 -31
  1237. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +59 -46
  1238. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +41 -32
  1239. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +37 -33
  1240. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +73 -61
  1241. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py +40 -36
  1242. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_set_state_node_serialization.py +86 -0
  1243. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +25 -21
  1244. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py +22 -18
  1245. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +13 -8
  1246. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_composio_serialization.py +87 -0
  1247. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py +313 -0
  1248. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_mcp_serialization.py +65 -0
  1249. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_parent_input.py +89 -0
  1250. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py +57 -23
  1251. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_vellum_integration_serialization.py +68 -0
  1252. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_workflow_deployment_serialization.py +107 -0
  1253. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +2 -2
  1254. vellum_ee/workflows/display/tests/workflow_serialization/test_chat_message_dict_reference_serialization.py +108 -0
  1255. vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +15 -10
  1256. vellum_ee/workflows/display/tests/workflow_serialization/test_final_output_node_map_reference_serialization.py +88 -0
  1257. vellum_ee/workflows/display/tests/workflow_serialization/test_integration_trigger_serialization.py +306 -0
  1258. vellum_ee/workflows/display/tests/workflow_serialization/test_integration_trigger_with_entrypoint_node_id.py +88 -0
  1259. vellum_ee/workflows/display/tests/workflow_serialization/test_list_vellum_document_serialization.py +65 -0
  1260. vellum_ee/workflows/display/tests/workflow_serialization/test_manual_trigger_serialization.py +110 -0
  1261. vellum_ee/workflows/display/tests/workflow_serialization/test_map_node_with_terminal_nodes_serialization.py +62 -0
  1262. vellum_ee/workflows/display/tests/workflow_serialization/test_multi_trigger_same_node_serialization.py +99 -0
  1263. vellum_ee/workflows/display/tests/workflow_serialization/test_scheduled_trigger_serialization.py +267 -0
  1264. vellum_ee/workflows/display/tests/workflow_serialization/test_terminal_node_any_serialization.py +49 -0
  1265. vellum_ee/workflows/display/tests/workflow_serialization/test_trigger_display_from_display_class.py +153 -0
  1266. vellum_ee/workflows/display/tests/workflow_serialization/test_web_search_node_serialization.py +72 -0
  1267. vellum_ee/workflows/display/tests/workflow_serialization/test_workflow_input_parameterization_error.py +37 -0
  1268. vellum_ee/workflows/display/types.py +29 -2
  1269. vellum_ee/workflows/display/utils/auto_layout.py +130 -0
  1270. vellum_ee/workflows/display/utils/events.py +57 -0
  1271. vellum_ee/workflows/display/utils/exceptions.py +19 -0
  1272. vellum_ee/workflows/display/utils/expressions.py +231 -28
  1273. vellum_ee/workflows/display/utils/metadata.py +146 -0
  1274. vellum_ee/workflows/display/utils/registry.py +46 -0
  1275. vellum_ee/workflows/display/utils/tests/__init__.py +0 -0
  1276. vellum_ee/workflows/display/utils/tests/test_auto_layout.py +56 -0
  1277. vellum_ee/workflows/display/utils/tests/test_events.py +185 -0
  1278. vellum_ee/workflows/display/utils/tests/test_expressions.py +92 -0
  1279. vellum_ee/workflows/display/utils/vellum.py +39 -4
  1280. vellum_ee/workflows/display/vellum.py +2 -128
  1281. vellum_ee/workflows/display/workflows/__init__.py +0 -1
  1282. vellum_ee/workflows/display/workflows/base_workflow_display.py +727 -95
  1283. vellum_ee/workflows/display/workflows/tests/test_workflow_display.py +318 -28
  1284. vellum_ee/workflows/server/virtual_file_loader.py +131 -6
  1285. vellum_ee/workflows/tests/local_workflow/display/nodes/final_output.py +1 -1
  1286. vellum_ee/workflows/tests/local_workflow/display/nodes/templating_node.py +1 -1
  1287. vellum_ee/workflows/tests/local_workflow/display/workflow.py +11 -14
  1288. vellum_ee/workflows/tests/test_display_meta.py +41 -0
  1289. vellum_ee/workflows/tests/test_registry.py +169 -0
  1290. vellum_ee/workflows/tests/test_serialize_module.py +265 -0
  1291. vellum_ee/workflows/tests/test_server.py +619 -44
  1292. vellum_ee/workflows/tests/test_virtual_files.py +48 -0
  1293. vellum/client/resources/release_reviews/client.py +0 -137
  1294. vellum/workflows/nodes/experimental/openai_chat_completion_node/__init__.py +0 -5
  1295. vellum/workflows/nodes/experimental/openai_chat_completion_node/node.py +0 -266
  1296. vellum/workflows/nodes/experimental/tool_calling_node/__init__.py +0 -3
  1297. vellum/workflows/nodes/experimental/tool_calling_node/node.py +0 -135
  1298. vellum/workflows/nodes/experimental/tool_calling_node/tests/test_node.py +0 -53
  1299. vellum/workflows/nodes/experimental/tool_calling_node/utils.py +0 -259
  1300. vellum_ai-0.14.63.dist-info/RECORD +0 -1719
  1301. vellum_ai-0.14.63.dist-info/entry_points.txt +0 -3
  1302. vellum_ee/workflows/display/workflows/vellum_workflow_display.py +0 -9
  1303. /vellum/{workflows/nodes/displayable/bases/inline_prompt_node → prompts}/constants.py +0 -0
  1304. {vellum_ai-0.14.63.dist-info → vellum_ai-1.11.2.dist-info}/LICENSE +0 -0
  1305. {vellum_ai-0.14.63.dist-info → vellum_ai-1.11.2.dist-info}/WHEEL +0 -0
@@ -0,0 +1,2725 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import contextlib
4
+ import json
5
+ import typing
6
+ from json.decoder import JSONDecodeError
7
+
8
+ from .core.api_error import ApiError
9
+ from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
10
+ from .core.http_response import AsyncHttpResponse, HttpResponse
11
+ from .core.pydantic_utilities import parse_obj_as
12
+ from .core.request_options import RequestOptions
13
+ from .core.serialization import convert_and_respect_annotation_metadata
14
+ from .errors.bad_request_error import BadRequestError
15
+ from .errors.forbidden_error import ForbiddenError
16
+ from .errors.internal_server_error import InternalServerError
17
+ from .errors.not_found_error import NotFoundError
18
+ from .types.code_execution_package import CodeExecutionPackage
19
+ from .types.code_execution_runtime import CodeExecutionRuntime
20
+ from .types.code_executor_input import CodeExecutorInput
21
+ from .types.code_executor_response import CodeExecutorResponse
22
+ from .types.execute_api_request_bearer_token import ExecuteApiRequestBearerToken
23
+ from .types.execute_api_request_body import ExecuteApiRequestBody
24
+ from .types.execute_api_request_headers_value import ExecuteApiRequestHeadersValue
25
+ from .types.execute_api_response import ExecuteApiResponse
26
+ from .types.execute_prompt_event import ExecutePromptEvent
27
+ from .types.execute_prompt_response import ExecutePromptResponse
28
+ from .types.execute_workflow_async_response import ExecuteWorkflowAsyncResponse
29
+ from .types.execute_workflow_response import ExecuteWorkflowResponse
30
+ from .types.generate_options_request import GenerateOptionsRequest
31
+ from .types.generate_request import GenerateRequest
32
+ from .types.generate_response import GenerateResponse
33
+ from .types.generate_stream_response import GenerateStreamResponse
34
+ from .types.method_enum import MethodEnum
35
+ from .types.prompt_deployment_expand_meta_request import PromptDeploymentExpandMetaRequest
36
+ from .types.prompt_deployment_input_request import PromptDeploymentInputRequest
37
+ from .types.raw_prompt_execution_overrides_request import RawPromptExecutionOverridesRequest
38
+ from .types.search_request_options_request import SearchRequestOptionsRequest
39
+ from .types.search_response import SearchResponse
40
+ from .types.submit_completion_actual_request import SubmitCompletionActualRequest
41
+ from .types.submit_workflow_execution_actual_request import SubmitWorkflowExecutionActualRequest
42
+ from .types.vellum_variable_type import VellumVariableType
43
+ from .types.workflow_execution_event_type import WorkflowExecutionEventType
44
+ from .types.workflow_expand_meta_request import WorkflowExpandMetaRequest
45
+ from .types.workflow_request_input_request import WorkflowRequestInputRequest
46
+ from .types.workflow_stream_event import WorkflowStreamEvent
47
+
48
+ # this is used as the default value for optional parameters
49
+ OMIT = typing.cast(typing.Any, ...)
50
+
51
+
52
+ class RawVellum:
53
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
54
+ self._client_wrapper = client_wrapper
55
+
56
+ def execute_api(
57
+ self,
58
+ *,
59
+ url: str,
60
+ method: typing.Optional[MethodEnum] = OMIT,
61
+ body: typing.Optional[ExecuteApiRequestBody] = OMIT,
62
+ headers: typing.Optional[typing.Dict[str, ExecuteApiRequestHeadersValue]] = OMIT,
63
+ bearer_token: typing.Optional[ExecuteApiRequestBearerToken] = OMIT,
64
+ request_options: typing.Optional[RequestOptions] = None,
65
+ ) -> HttpResponse[ExecuteApiResponse]:
66
+ """
67
+ Parameters
68
+ ----------
69
+ url : str
70
+
71
+ method : typing.Optional[MethodEnum]
72
+
73
+ body : typing.Optional[ExecuteApiRequestBody]
74
+
75
+ headers : typing.Optional[typing.Dict[str, ExecuteApiRequestHeadersValue]]
76
+
77
+ bearer_token : typing.Optional[ExecuteApiRequestBearerToken]
78
+
79
+ request_options : typing.Optional[RequestOptions]
80
+ Request-specific configuration.
81
+
82
+ Returns
83
+ -------
84
+ HttpResponse[ExecuteApiResponse]
85
+
86
+ """
87
+ _response = self._client_wrapper.httpx_client.request(
88
+ "v1/execute-api",
89
+ base_url=self._client_wrapper.get_environment().default,
90
+ method="POST",
91
+ json={
92
+ "url": url,
93
+ "method": method,
94
+ "body": convert_and_respect_annotation_metadata(
95
+ object_=body, annotation=typing.Optional[ExecuteApiRequestBody], direction="write"
96
+ ),
97
+ "headers": convert_and_respect_annotation_metadata(
98
+ object_=headers, annotation=typing.Dict[str, ExecuteApiRequestHeadersValue], direction="write"
99
+ ),
100
+ "bearer_token": convert_and_respect_annotation_metadata(
101
+ object_=bearer_token, annotation=typing.Optional[ExecuteApiRequestBearerToken], direction="write"
102
+ ),
103
+ },
104
+ headers={
105
+ "content-type": "application/json",
106
+ },
107
+ request_options=request_options,
108
+ omit=OMIT,
109
+ )
110
+ try:
111
+ if 200 <= _response.status_code < 300:
112
+ _data = typing.cast(
113
+ ExecuteApiResponse,
114
+ parse_obj_as(
115
+ type_=ExecuteApiResponse, # type: ignore
116
+ object_=_response.json(),
117
+ ),
118
+ )
119
+ return HttpResponse(response=_response, data=_data)
120
+ _response_json = _response.json()
121
+ except JSONDecodeError:
122
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
123
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
124
+
125
+ def execute_code(
126
+ self,
127
+ *,
128
+ code: str,
129
+ runtime: CodeExecutionRuntime,
130
+ input_values: typing.Sequence[CodeExecutorInput],
131
+ packages: typing.Sequence[CodeExecutionPackage],
132
+ output_type: VellumVariableType,
133
+ request_options: typing.Optional[RequestOptions] = None,
134
+ ) -> HttpResponse[CodeExecutorResponse]:
135
+ """
136
+ Parameters
137
+ ----------
138
+ code : str
139
+
140
+ runtime : CodeExecutionRuntime
141
+
142
+ input_values : typing.Sequence[CodeExecutorInput]
143
+
144
+ packages : typing.Sequence[CodeExecutionPackage]
145
+
146
+ output_type : VellumVariableType
147
+
148
+ request_options : typing.Optional[RequestOptions]
149
+ Request-specific configuration.
150
+
151
+ Returns
152
+ -------
153
+ HttpResponse[CodeExecutorResponse]
154
+
155
+ """
156
+ _response = self._client_wrapper.httpx_client.request(
157
+ "v1/execute-code",
158
+ base_url=self._client_wrapper.get_environment().predict,
159
+ method="POST",
160
+ json={
161
+ "code": code,
162
+ "runtime": runtime,
163
+ "input_values": convert_and_respect_annotation_metadata(
164
+ object_=input_values, annotation=typing.Sequence[CodeExecutorInput], direction="write"
165
+ ),
166
+ "packages": convert_and_respect_annotation_metadata(
167
+ object_=packages, annotation=typing.Sequence[CodeExecutionPackage], direction="write"
168
+ ),
169
+ "output_type": output_type,
170
+ },
171
+ headers={
172
+ "content-type": "application/json",
173
+ },
174
+ request_options=request_options,
175
+ omit=OMIT,
176
+ )
177
+ try:
178
+ if 200 <= _response.status_code < 300:
179
+ _data = typing.cast(
180
+ CodeExecutorResponse,
181
+ parse_obj_as(
182
+ type_=CodeExecutorResponse, # type: ignore
183
+ object_=_response.json(),
184
+ ),
185
+ )
186
+ return HttpResponse(response=_response, data=_data)
187
+ if _response.status_code == 400:
188
+ raise BadRequestError(
189
+ headers=dict(_response.headers),
190
+ body=typing.cast(
191
+ typing.Optional[typing.Any],
192
+ parse_obj_as(
193
+ type_=typing.Optional[typing.Any], # type: ignore
194
+ object_=_response.json(),
195
+ ),
196
+ ),
197
+ )
198
+ _response_json = _response.json()
199
+ except JSONDecodeError:
200
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
201
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
202
+
203
+ def execute_prompt(
204
+ self,
205
+ *,
206
+ inputs: typing.Sequence[PromptDeploymentInputRequest],
207
+ prompt_deployment_id: typing.Optional[str] = OMIT,
208
+ prompt_deployment_name: typing.Optional[str] = OMIT,
209
+ release_tag: typing.Optional[str] = OMIT,
210
+ external_id: typing.Optional[str] = OMIT,
211
+ expand_meta: typing.Optional[PromptDeploymentExpandMetaRequest] = OMIT,
212
+ raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest] = OMIT,
213
+ expand_raw: typing.Optional[typing.Sequence[str]] = OMIT,
214
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
215
+ request_options: typing.Optional[RequestOptions] = None,
216
+ ) -> HttpResponse[ExecutePromptResponse]:
217
+ """
218
+ Executes a deployed Prompt and returns the result.
219
+
220
+ Parameters
221
+ ----------
222
+ inputs : typing.Sequence[PromptDeploymentInputRequest]
223
+ A list consisting of the Prompt Deployment's input variables and their values.
224
+
225
+ prompt_deployment_id : typing.Optional[str]
226
+ The ID of the Prompt Deployment. Must provide either this or prompt_deployment_name.
227
+
228
+ prompt_deployment_name : typing.Optional[str]
229
+ The unique name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
230
+
231
+ release_tag : typing.Optional[str]
232
+ Optionally specify a release tag if you want to pin to a specific release of the Prompt Deployment
233
+
234
+ external_id : typing.Optional[str]
235
+ Optionally include a unique identifier for tracking purposes. Must be unique within a given Workspace.
236
+
237
+ expand_meta : typing.Optional[PromptDeploymentExpandMetaRequest]
238
+ An optionally specified configuration used to opt in to including additional metadata about this prompt execution in the API response. Corresponding values will be returned under the `meta` key of the API response.
239
+
240
+ raw_overrides : typing.Optional[RawPromptExecutionOverridesRequest]
241
+ Overrides for the raw API request sent to the model host. Combined with `expand_raw`, it can be used to access new features from models.
242
+
243
+ expand_raw : typing.Optional[typing.Sequence[str]]
244
+ A list of keys whose values you'd like to directly return from the JSON response of the model provider. Useful if you need lower-level info returned by model providers that Vellum would otherwise omit. Corresponding key/value pairs will be returned under the `raw` key of the API response.
245
+
246
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
247
+ Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
248
+
249
+ request_options : typing.Optional[RequestOptions]
250
+ Request-specific configuration.
251
+
252
+ Returns
253
+ -------
254
+ HttpResponse[ExecutePromptResponse]
255
+
256
+ """
257
+ _response = self._client_wrapper.httpx_client.request(
258
+ "v1/execute-prompt",
259
+ base_url=self._client_wrapper.get_environment().predict,
260
+ method="POST",
261
+ json={
262
+ "inputs": convert_and_respect_annotation_metadata(
263
+ object_=inputs, annotation=typing.Sequence[PromptDeploymentInputRequest], direction="write"
264
+ ),
265
+ "prompt_deployment_id": prompt_deployment_id,
266
+ "prompt_deployment_name": prompt_deployment_name,
267
+ "release_tag": release_tag,
268
+ "external_id": external_id,
269
+ "expand_meta": convert_and_respect_annotation_metadata(
270
+ object_=expand_meta,
271
+ annotation=typing.Optional[PromptDeploymentExpandMetaRequest],
272
+ direction="write",
273
+ ),
274
+ "raw_overrides": convert_and_respect_annotation_metadata(
275
+ object_=raw_overrides,
276
+ annotation=typing.Optional[RawPromptExecutionOverridesRequest],
277
+ direction="write",
278
+ ),
279
+ "expand_raw": expand_raw,
280
+ "metadata": metadata,
281
+ },
282
+ headers={
283
+ "content-type": "application/json",
284
+ },
285
+ request_options=request_options,
286
+ omit=OMIT,
287
+ )
288
+ try:
289
+ if 200 <= _response.status_code < 300:
290
+ _data = typing.cast(
291
+ ExecutePromptResponse,
292
+ parse_obj_as(
293
+ type_=ExecutePromptResponse, # type: ignore
294
+ object_=_response.json(),
295
+ ),
296
+ )
297
+ return HttpResponse(response=_response, data=_data)
298
+ if _response.status_code == 400:
299
+ raise BadRequestError(
300
+ headers=dict(_response.headers),
301
+ body=typing.cast(
302
+ typing.Optional[typing.Any],
303
+ parse_obj_as(
304
+ type_=typing.Optional[typing.Any], # type: ignore
305
+ object_=_response.json(),
306
+ ),
307
+ ),
308
+ )
309
+ if _response.status_code == 403:
310
+ raise ForbiddenError(
311
+ headers=dict(_response.headers),
312
+ body=typing.cast(
313
+ typing.Optional[typing.Any],
314
+ parse_obj_as(
315
+ type_=typing.Optional[typing.Any], # type: ignore
316
+ object_=_response.json(),
317
+ ),
318
+ ),
319
+ )
320
+ if _response.status_code == 404:
321
+ raise NotFoundError(
322
+ headers=dict(_response.headers),
323
+ body=typing.cast(
324
+ typing.Optional[typing.Any],
325
+ parse_obj_as(
326
+ type_=typing.Optional[typing.Any], # type: ignore
327
+ object_=_response.json(),
328
+ ),
329
+ ),
330
+ )
331
+ if _response.status_code == 500:
332
+ raise InternalServerError(
333
+ headers=dict(_response.headers),
334
+ body=typing.cast(
335
+ typing.Optional[typing.Any],
336
+ parse_obj_as(
337
+ type_=typing.Optional[typing.Any], # type: ignore
338
+ object_=_response.json(),
339
+ ),
340
+ ),
341
+ )
342
+ _response_json = _response.json()
343
+ except JSONDecodeError:
344
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
345
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
346
+
347
+ @contextlib.contextmanager
348
+ def execute_prompt_stream(
349
+ self,
350
+ *,
351
+ inputs: typing.Sequence[PromptDeploymentInputRequest],
352
+ prompt_deployment_id: typing.Optional[str] = OMIT,
353
+ prompt_deployment_name: typing.Optional[str] = OMIT,
354
+ release_tag: typing.Optional[str] = OMIT,
355
+ external_id: typing.Optional[str] = OMIT,
356
+ expand_meta: typing.Optional[PromptDeploymentExpandMetaRequest] = OMIT,
357
+ raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest] = OMIT,
358
+ expand_raw: typing.Optional[typing.Sequence[str]] = OMIT,
359
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
360
+ request_options: typing.Optional[RequestOptions] = None,
361
+ ) -> typing.Iterator[HttpResponse[typing.Iterator[ExecutePromptEvent]]]:
362
+ """
363
+ Executes a deployed Prompt and streams back the results.
364
+
365
+ Parameters
366
+ ----------
367
+ inputs : typing.Sequence[PromptDeploymentInputRequest]
368
+ A list consisting of the Prompt Deployment's input variables and their values.
369
+
370
+ prompt_deployment_id : typing.Optional[str]
371
+ The ID of the Prompt Deployment. Must provide either this or prompt_deployment_name.
372
+
373
+ prompt_deployment_name : typing.Optional[str]
374
+ The unique name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
375
+
376
+ release_tag : typing.Optional[str]
377
+ Optionally specify a release tag if you want to pin to a specific release of the Prompt Deployment
378
+
379
+ external_id : typing.Optional[str]
380
+ Optionally include a unique identifier for tracking purposes. Must be unique within a given Workspace.
381
+
382
+ expand_meta : typing.Optional[PromptDeploymentExpandMetaRequest]
383
+ An optionally specified configuration used to opt in to including additional metadata about this prompt execution in the API response. Corresponding values will be returned under the `meta` key of the API response.
384
+
385
+ raw_overrides : typing.Optional[RawPromptExecutionOverridesRequest]
386
+ Overrides for the raw API request sent to the model host. Combined with `expand_raw`, it can be used to access new features from models.
387
+
388
+ expand_raw : typing.Optional[typing.Sequence[str]]
389
+ A list of keys whose values you'd like to directly return from the JSON response of the model provider. Useful if you need lower-level info returned by model providers that Vellum would otherwise omit. Corresponding key/value pairs will be returned under the `raw` key of the API response.
390
+
391
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
392
+ Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
393
+
394
+ request_options : typing.Optional[RequestOptions]
395
+ Request-specific configuration.
396
+
397
+ Yields
398
+ ------
399
+ typing.Iterator[HttpResponse[typing.Iterator[ExecutePromptEvent]]]
400
+
401
+ """
402
+ with self._client_wrapper.httpx_client.stream(
403
+ "v1/execute-prompt-stream",
404
+ base_url=self._client_wrapper.get_environment().predict,
405
+ method="POST",
406
+ json={
407
+ "inputs": convert_and_respect_annotation_metadata(
408
+ object_=inputs, annotation=typing.Sequence[PromptDeploymentInputRequest], direction="write"
409
+ ),
410
+ "prompt_deployment_id": prompt_deployment_id,
411
+ "prompt_deployment_name": prompt_deployment_name,
412
+ "release_tag": release_tag,
413
+ "external_id": external_id,
414
+ "expand_meta": convert_and_respect_annotation_metadata(
415
+ object_=expand_meta,
416
+ annotation=typing.Optional[PromptDeploymentExpandMetaRequest],
417
+ direction="write",
418
+ ),
419
+ "raw_overrides": convert_and_respect_annotation_metadata(
420
+ object_=raw_overrides,
421
+ annotation=typing.Optional[RawPromptExecutionOverridesRequest],
422
+ direction="write",
423
+ ),
424
+ "expand_raw": expand_raw,
425
+ "metadata": metadata,
426
+ },
427
+ headers={
428
+ "content-type": "application/json",
429
+ },
430
+ request_options=request_options,
431
+ omit=OMIT,
432
+ ) as _response:
433
+
434
+ def _stream() -> HttpResponse[typing.Iterator[ExecutePromptEvent]]:
435
+ try:
436
+ if 200 <= _response.status_code < 300:
437
+
438
+ def _iter():
439
+ for _text in _response.iter_lines():
440
+ try:
441
+ if len(_text) == 0:
442
+ continue
443
+ yield typing.cast(
444
+ ExecutePromptEvent,
445
+ parse_obj_as(
446
+ type_=ExecutePromptEvent, # type: ignore
447
+ object_=json.loads(_text),
448
+ ),
449
+ )
450
+ except Exception:
451
+ pass
452
+ return
453
+
454
+ return HttpResponse(response=_response, data=_iter())
455
+ _response.read()
456
+ if _response.status_code == 400:
457
+ raise BadRequestError(
458
+ headers=dict(_response.headers),
459
+ body=typing.cast(
460
+ typing.Optional[typing.Any],
461
+ parse_obj_as(
462
+ type_=typing.Optional[typing.Any], # type: ignore
463
+ object_=_response.json(),
464
+ ),
465
+ ),
466
+ )
467
+ if _response.status_code == 403:
468
+ raise ForbiddenError(
469
+ headers=dict(_response.headers),
470
+ body=typing.cast(
471
+ typing.Optional[typing.Any],
472
+ parse_obj_as(
473
+ type_=typing.Optional[typing.Any], # type: ignore
474
+ object_=_response.json(),
475
+ ),
476
+ ),
477
+ )
478
+ if _response.status_code == 404:
479
+ raise NotFoundError(
480
+ headers=dict(_response.headers),
481
+ body=typing.cast(
482
+ typing.Optional[typing.Any],
483
+ parse_obj_as(
484
+ type_=typing.Optional[typing.Any], # type: ignore
485
+ object_=_response.json(),
486
+ ),
487
+ ),
488
+ )
489
+ if _response.status_code == 500:
490
+ raise InternalServerError(
491
+ headers=dict(_response.headers),
492
+ body=typing.cast(
493
+ typing.Optional[typing.Any],
494
+ parse_obj_as(
495
+ type_=typing.Optional[typing.Any], # type: ignore
496
+ object_=_response.json(),
497
+ ),
498
+ ),
499
+ )
500
+ _response_json = _response.json()
501
+ except JSONDecodeError:
502
+ raise ApiError(
503
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.text
504
+ )
505
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
506
+
507
+ yield _stream()
508
+
509
+ def execute_workflow(
510
+ self,
511
+ *,
512
+ inputs: typing.Sequence[WorkflowRequestInputRequest],
513
+ expand_meta: typing.Optional[WorkflowExpandMetaRequest] = OMIT,
514
+ workflow_deployment_id: typing.Optional[str] = OMIT,
515
+ workflow_deployment_name: typing.Optional[str] = OMIT,
516
+ release_tag: typing.Optional[str] = OMIT,
517
+ external_id: typing.Optional[str] = OMIT,
518
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
519
+ previous_execution_id: typing.Optional[str] = OMIT,
520
+ request_options: typing.Optional[RequestOptions] = None,
521
+ ) -> HttpResponse[ExecuteWorkflowResponse]:
522
+ """
523
+ Executes a deployed Workflow and returns its outputs.
524
+
525
+ Parameters
526
+ ----------
527
+ inputs : typing.Sequence[WorkflowRequestInputRequest]
528
+ The list of inputs defined in the Workflow's Deployment with their corresponding values.
529
+
530
+ expand_meta : typing.Optional[WorkflowExpandMetaRequest]
531
+ An optionally specified configuration used to opt in to including additional metadata about this workflow execution in the API response. Corresponding values will be returned under the `execution_meta` key within NODE events in the response stream.
532
+
533
+ workflow_deployment_id : typing.Optional[str]
534
+ The ID of the Workflow Deployment. Must provide either this or workflow_deployment_name.
535
+
536
+ workflow_deployment_name : typing.Optional[str]
537
+ The name of the Workflow Deployment. Must provide either this or workflow_deployment_id.
538
+
539
+ release_tag : typing.Optional[str]
540
+ Optionally specify a release tag if you want to pin to a specific release of the Workflow Deployment
541
+
542
+ external_id : typing.Optional[str]
543
+ Optionally include a unique identifier for tracking purposes. Must be unique within a given Workspace.
544
+
545
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
546
+ Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
547
+
548
+ previous_execution_id : typing.Optional[str]
549
+ The ID of a previous Workflow Execution to reference for initial State loading.
550
+
551
+ request_options : typing.Optional[RequestOptions]
552
+ Request-specific configuration.
553
+
554
+ Returns
555
+ -------
556
+ HttpResponse[ExecuteWorkflowResponse]
557
+
558
+ """
559
+ _response = self._client_wrapper.httpx_client.request(
560
+ "v1/execute-workflow",
561
+ base_url=self._client_wrapper.get_environment().predict,
562
+ method="POST",
563
+ json={
564
+ "inputs": convert_and_respect_annotation_metadata(
565
+ object_=inputs, annotation=typing.Sequence[WorkflowRequestInputRequest], direction="write"
566
+ ),
567
+ "expand_meta": convert_and_respect_annotation_metadata(
568
+ object_=expand_meta, annotation=typing.Optional[WorkflowExpandMetaRequest], direction="write"
569
+ ),
570
+ "workflow_deployment_id": workflow_deployment_id,
571
+ "workflow_deployment_name": workflow_deployment_name,
572
+ "release_tag": release_tag,
573
+ "external_id": external_id,
574
+ "metadata": metadata,
575
+ "previous_execution_id": previous_execution_id,
576
+ },
577
+ headers={
578
+ "content-type": "application/json",
579
+ },
580
+ request_options=request_options,
581
+ omit=OMIT,
582
+ )
583
+ try:
584
+ if 200 <= _response.status_code < 300:
585
+ _data = typing.cast(
586
+ ExecuteWorkflowResponse,
587
+ parse_obj_as(
588
+ type_=ExecuteWorkflowResponse, # type: ignore
589
+ object_=_response.json(),
590
+ ),
591
+ )
592
+ return HttpResponse(response=_response, data=_data)
593
+ if _response.status_code == 400:
594
+ raise BadRequestError(
595
+ headers=dict(_response.headers),
596
+ body=typing.cast(
597
+ typing.Optional[typing.Any],
598
+ parse_obj_as(
599
+ type_=typing.Optional[typing.Any], # type: ignore
600
+ object_=_response.json(),
601
+ ),
602
+ ),
603
+ )
604
+ if _response.status_code == 404:
605
+ raise NotFoundError(
606
+ headers=dict(_response.headers),
607
+ body=typing.cast(
608
+ typing.Optional[typing.Any],
609
+ parse_obj_as(
610
+ type_=typing.Optional[typing.Any], # type: ignore
611
+ object_=_response.json(),
612
+ ),
613
+ ),
614
+ )
615
+ if _response.status_code == 500:
616
+ raise InternalServerError(
617
+ headers=dict(_response.headers),
618
+ body=typing.cast(
619
+ typing.Optional[typing.Any],
620
+ parse_obj_as(
621
+ type_=typing.Optional[typing.Any], # type: ignore
622
+ object_=_response.json(),
623
+ ),
624
+ ),
625
+ )
626
+ _response_json = _response.json()
627
+ except JSONDecodeError:
628
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
629
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
630
+
631
+ def execute_workflow_async(
632
+ self,
633
+ *,
634
+ inputs: typing.Sequence[WorkflowRequestInputRequest],
635
+ workflow_deployment_id: typing.Optional[str] = OMIT,
636
+ workflow_deployment_name: typing.Optional[str] = OMIT,
637
+ release_tag: typing.Optional[str] = OMIT,
638
+ external_id: typing.Optional[str] = OMIT,
639
+ previous_execution_id: typing.Optional[str] = OMIT,
640
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
641
+ request_options: typing.Optional[RequestOptions] = None,
642
+ ) -> HttpResponse[ExecuteWorkflowAsyncResponse]:
643
+ """
644
+ Executes a deployed Workflow asynchronously and returns the execution ID.
645
+
646
+ Parameters
647
+ ----------
648
+ inputs : typing.Sequence[WorkflowRequestInputRequest]
649
+ The list of inputs defined in the Workflow's Deployment with their corresponding values.
650
+
651
+ workflow_deployment_id : typing.Optional[str]
652
+ The ID of the Workflow Deployment. Must provide either this or workflow_deployment_name.
653
+
654
+ workflow_deployment_name : typing.Optional[str]
655
+ The name of the Workflow Deployment. Must provide either this or workflow_deployment_id.
656
+
657
+ release_tag : typing.Optional[str]
658
+ Optionally specify a release tag if you want to pin to a specific release of the Workflow Deployment
659
+
660
+ external_id : typing.Optional[str]
661
+ Optionally include a unique identifier for tracking purposes. Must be unique within a given Workspace.
662
+
663
+ previous_execution_id : typing.Optional[str]
664
+ The ID of a previous Workflow Execution to reference for initial State loading.
665
+
666
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
667
+ Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
668
+
669
+ request_options : typing.Optional[RequestOptions]
670
+ Request-specific configuration.
671
+
672
+ Returns
673
+ -------
674
+ HttpResponse[ExecuteWorkflowAsyncResponse]
675
+
676
+ """
677
+ _response = self._client_wrapper.httpx_client.request(
678
+ "v1/execute-workflow-async",
679
+ base_url=self._client_wrapper.get_environment().predict,
680
+ method="POST",
681
+ json={
682
+ "inputs": convert_and_respect_annotation_metadata(
683
+ object_=inputs, annotation=typing.Sequence[WorkflowRequestInputRequest], direction="write"
684
+ ),
685
+ "workflow_deployment_id": workflow_deployment_id,
686
+ "workflow_deployment_name": workflow_deployment_name,
687
+ "release_tag": release_tag,
688
+ "external_id": external_id,
689
+ "previous_execution_id": previous_execution_id,
690
+ "metadata": metadata,
691
+ },
692
+ headers={
693
+ "content-type": "application/json",
694
+ },
695
+ request_options=request_options,
696
+ omit=OMIT,
697
+ )
698
+ try:
699
+ if 200 <= _response.status_code < 300:
700
+ _data = typing.cast(
701
+ ExecuteWorkflowAsyncResponse,
702
+ parse_obj_as(
703
+ type_=ExecuteWorkflowAsyncResponse, # type: ignore
704
+ object_=_response.json(),
705
+ ),
706
+ )
707
+ return HttpResponse(response=_response, data=_data)
708
+ if _response.status_code == 400:
709
+ raise BadRequestError(
710
+ headers=dict(_response.headers),
711
+ body=typing.cast(
712
+ typing.Optional[typing.Any],
713
+ parse_obj_as(
714
+ type_=typing.Optional[typing.Any], # type: ignore
715
+ object_=_response.json(),
716
+ ),
717
+ ),
718
+ )
719
+ if _response.status_code == 404:
720
+ raise NotFoundError(
721
+ headers=dict(_response.headers),
722
+ body=typing.cast(
723
+ typing.Optional[typing.Any],
724
+ parse_obj_as(
725
+ type_=typing.Optional[typing.Any], # type: ignore
726
+ object_=_response.json(),
727
+ ),
728
+ ),
729
+ )
730
+ if _response.status_code == 500:
731
+ raise InternalServerError(
732
+ headers=dict(_response.headers),
733
+ body=typing.cast(
734
+ typing.Optional[typing.Any],
735
+ parse_obj_as(
736
+ type_=typing.Optional[typing.Any], # type: ignore
737
+ object_=_response.json(),
738
+ ),
739
+ ),
740
+ )
741
+ _response_json = _response.json()
742
+ except JSONDecodeError:
743
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
744
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
745
+
746
+ @contextlib.contextmanager
747
+ def execute_workflow_stream(
748
+ self,
749
+ *,
750
+ inputs: typing.Sequence[WorkflowRequestInputRequest],
751
+ expand_meta: typing.Optional[WorkflowExpandMetaRequest] = OMIT,
752
+ workflow_deployment_id: typing.Optional[str] = OMIT,
753
+ workflow_deployment_name: typing.Optional[str] = OMIT,
754
+ release_tag: typing.Optional[str] = OMIT,
755
+ external_id: typing.Optional[str] = OMIT,
756
+ event_types: typing.Optional[typing.Sequence[WorkflowExecutionEventType]] = OMIT,
757
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
758
+ previous_execution_id: typing.Optional[str] = OMIT,
759
+ request_options: typing.Optional[RequestOptions] = None,
760
+ ) -> typing.Iterator[HttpResponse[typing.Iterator[WorkflowStreamEvent]]]:
761
+ """
762
+ Executes a deployed Workflow and streams back its results.
763
+
764
+ Parameters
765
+ ----------
766
+ inputs : typing.Sequence[WorkflowRequestInputRequest]
767
+ The list of inputs defined in the Workflow's Deployment with their corresponding values.
768
+
769
+ expand_meta : typing.Optional[WorkflowExpandMetaRequest]
770
+ An optionally specified configuration used to opt in to including additional metadata about this workflow execution in the API response. Corresponding values will be returned under the `execution_meta` key within NODE events in the response stream.
771
+
772
+ workflow_deployment_id : typing.Optional[str]
773
+ The ID of the Workflow Deployment. Must provide either this or workflow_deployment_name.
774
+
775
+ workflow_deployment_name : typing.Optional[str]
776
+ The name of the Workflow Deployment. Must provide either this or workflow_deployment_id.
777
+
778
+ release_tag : typing.Optional[str]
779
+ Optionally specify a release tag if you want to pin to a specific release of the Workflow Deployment
780
+
781
+ external_id : typing.Optional[str]
782
+ Optionally include a unique identifier for tracking purposes. Must be unique within a given Workspace.
783
+
784
+ event_types : typing.Optional[typing.Sequence[WorkflowExecutionEventType]]
785
+ Optionally specify which events you want to receive. Defaults to only WORKFLOW events. Note that the schema of non-WORKFLOW events is unstable and should be used with caution.
786
+
787
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
788
+ Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
789
+
790
+ previous_execution_id : typing.Optional[str]
791
+ The ID of a previous Workflow Execution to reference for initial State loading.
792
+
793
+ request_options : typing.Optional[RequestOptions]
794
+ Request-specific configuration.
795
+
796
+ Yields
797
+ ------
798
+ typing.Iterator[HttpResponse[typing.Iterator[WorkflowStreamEvent]]]
799
+
800
+ """
801
+ with self._client_wrapper.httpx_client.stream(
802
+ "v1/execute-workflow-stream",
803
+ base_url=self._client_wrapper.get_environment().predict,
804
+ method="POST",
805
+ json={
806
+ "inputs": convert_and_respect_annotation_metadata(
807
+ object_=inputs, annotation=typing.Sequence[WorkflowRequestInputRequest], direction="write"
808
+ ),
809
+ "expand_meta": convert_and_respect_annotation_metadata(
810
+ object_=expand_meta, annotation=typing.Optional[WorkflowExpandMetaRequest], direction="write"
811
+ ),
812
+ "workflow_deployment_id": workflow_deployment_id,
813
+ "workflow_deployment_name": workflow_deployment_name,
814
+ "release_tag": release_tag,
815
+ "external_id": external_id,
816
+ "event_types": event_types,
817
+ "metadata": metadata,
818
+ "previous_execution_id": previous_execution_id,
819
+ },
820
+ headers={
821
+ "content-type": "application/json",
822
+ },
823
+ request_options=request_options,
824
+ omit=OMIT,
825
+ ) as _response:
826
+
827
+ def _stream() -> HttpResponse[typing.Iterator[WorkflowStreamEvent]]:
828
+ try:
829
+ if 200 <= _response.status_code < 300:
830
+
831
+ def _iter():
832
+ for _text in _response.iter_lines():
833
+ try:
834
+ if len(_text) == 0:
835
+ continue
836
+ yield typing.cast(
837
+ WorkflowStreamEvent,
838
+ parse_obj_as(
839
+ type_=WorkflowStreamEvent, # type: ignore
840
+ object_=json.loads(_text),
841
+ ),
842
+ )
843
+ except Exception:
844
+ pass
845
+ return
846
+
847
+ return HttpResponse(response=_response, data=_iter())
848
+ _response.read()
849
+ if _response.status_code == 400:
850
+ raise BadRequestError(
851
+ headers=dict(_response.headers),
852
+ body=typing.cast(
853
+ typing.Optional[typing.Any],
854
+ parse_obj_as(
855
+ type_=typing.Optional[typing.Any], # type: ignore
856
+ object_=_response.json(),
857
+ ),
858
+ ),
859
+ )
860
+ if _response.status_code == 404:
861
+ raise NotFoundError(
862
+ headers=dict(_response.headers),
863
+ body=typing.cast(
864
+ typing.Optional[typing.Any],
865
+ parse_obj_as(
866
+ type_=typing.Optional[typing.Any], # type: ignore
867
+ object_=_response.json(),
868
+ ),
869
+ ),
870
+ )
871
+ if _response.status_code == 500:
872
+ raise InternalServerError(
873
+ headers=dict(_response.headers),
874
+ body=typing.cast(
875
+ typing.Optional[typing.Any],
876
+ parse_obj_as(
877
+ type_=typing.Optional[typing.Any], # type: ignore
878
+ object_=_response.json(),
879
+ ),
880
+ ),
881
+ )
882
+ _response_json = _response.json()
883
+ except JSONDecodeError:
884
+ raise ApiError(
885
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.text
886
+ )
887
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
888
+
889
+ yield _stream()
890
+
891
+ def generate(
892
+ self,
893
+ *,
894
+ requests: typing.Sequence[GenerateRequest],
895
+ deployment_id: typing.Optional[str] = OMIT,
896
+ deployment_name: typing.Optional[str] = OMIT,
897
+ options: typing.Optional[GenerateOptionsRequest] = OMIT,
898
+ request_options: typing.Optional[RequestOptions] = None,
899
+ ) -> HttpResponse[GenerateResponse]:
900
+ """
901
+ Generate a completion using a previously defined deployment.
902
+
903
+ Important: This endpoint is DEPRECATED and has been superseded by
904
+ [execute-prompt](/api-reference/api-reference/execute-prompt).
905
+
906
+ Parameters
907
+ ----------
908
+ requests : typing.Sequence[GenerateRequest]
909
+ The generation request to make. Bulk requests are no longer supported, this field must be an array of length 1.
910
+
911
+ deployment_id : typing.Optional[str]
912
+ The ID of the deployment. Must provide either this or deployment_name.
913
+
914
+ deployment_name : typing.Optional[str]
915
+ The name of the deployment. Must provide either this or deployment_id.
916
+
917
+ options : typing.Optional[GenerateOptionsRequest]
918
+ Additional configuration that can be used to control what's included in the response.
919
+
920
+ request_options : typing.Optional[RequestOptions]
921
+ Request-specific configuration.
922
+
923
+ Returns
924
+ -------
925
+ HttpResponse[GenerateResponse]
926
+
927
+ """
928
+ _response = self._client_wrapper.httpx_client.request(
929
+ "v1/generate",
930
+ base_url=self._client_wrapper.get_environment().predict,
931
+ method="POST",
932
+ json={
933
+ "deployment_id": deployment_id,
934
+ "deployment_name": deployment_name,
935
+ "requests": convert_and_respect_annotation_metadata(
936
+ object_=requests, annotation=typing.Sequence[GenerateRequest], direction="write"
937
+ ),
938
+ "options": convert_and_respect_annotation_metadata(
939
+ object_=options, annotation=typing.Optional[GenerateOptionsRequest], direction="write"
940
+ ),
941
+ },
942
+ headers={
943
+ "content-type": "application/json",
944
+ },
945
+ request_options=request_options,
946
+ omit=OMIT,
947
+ )
948
+ try:
949
+ if 200 <= _response.status_code < 300:
950
+ _data = typing.cast(
951
+ GenerateResponse,
952
+ parse_obj_as(
953
+ type_=GenerateResponse, # type: ignore
954
+ object_=_response.json(),
955
+ ),
956
+ )
957
+ return HttpResponse(response=_response, data=_data)
958
+ if _response.status_code == 400:
959
+ raise BadRequestError(
960
+ headers=dict(_response.headers),
961
+ body=typing.cast(
962
+ typing.Optional[typing.Any],
963
+ parse_obj_as(
964
+ type_=typing.Optional[typing.Any], # type: ignore
965
+ object_=_response.json(),
966
+ ),
967
+ ),
968
+ )
969
+ if _response.status_code == 403:
970
+ raise ForbiddenError(
971
+ headers=dict(_response.headers),
972
+ body=typing.cast(
973
+ typing.Optional[typing.Any],
974
+ parse_obj_as(
975
+ type_=typing.Optional[typing.Any], # type: ignore
976
+ object_=_response.json(),
977
+ ),
978
+ ),
979
+ )
980
+ if _response.status_code == 404:
981
+ raise NotFoundError(
982
+ headers=dict(_response.headers),
983
+ body=typing.cast(
984
+ typing.Optional[typing.Any],
985
+ parse_obj_as(
986
+ type_=typing.Optional[typing.Any], # type: ignore
987
+ object_=_response.json(),
988
+ ),
989
+ ),
990
+ )
991
+ if _response.status_code == 500:
992
+ raise InternalServerError(
993
+ headers=dict(_response.headers),
994
+ body=typing.cast(
995
+ typing.Optional[typing.Any],
996
+ parse_obj_as(
997
+ type_=typing.Optional[typing.Any], # type: ignore
998
+ object_=_response.json(),
999
+ ),
1000
+ ),
1001
+ )
1002
+ _response_json = _response.json()
1003
+ except JSONDecodeError:
1004
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1005
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1006
+
1007
+ @contextlib.contextmanager
1008
+ def generate_stream(
1009
+ self,
1010
+ *,
1011
+ requests: typing.Sequence[GenerateRequest],
1012
+ deployment_id: typing.Optional[str] = OMIT,
1013
+ deployment_name: typing.Optional[str] = OMIT,
1014
+ options: typing.Optional[GenerateOptionsRequest] = OMIT,
1015
+ request_options: typing.Optional[RequestOptions] = None,
1016
+ ) -> typing.Iterator[HttpResponse[typing.Iterator[GenerateStreamResponse]]]:
1017
+ """
1018
+ Generate a stream of completions using a previously defined deployment.
1019
+
1020
+ Important: This endpoint is DEPRECATED and has been superseded by
1021
+ [execute-prompt-stream](/api-reference/api-reference/execute-prompt-stream).
1022
+
1023
+ Parameters
1024
+ ----------
1025
+ requests : typing.Sequence[GenerateRequest]
1026
+ The generation request to make. Bulk requests are no longer supported, this field must be an array of length 1.
1027
+
1028
+ deployment_id : typing.Optional[str]
1029
+ The ID of the deployment. Must provide either this or deployment_name.
1030
+
1031
+ deployment_name : typing.Optional[str]
1032
+ The name of the deployment. Must provide either this or deployment_id.
1033
+
1034
+ options : typing.Optional[GenerateOptionsRequest]
1035
+ Additional configuration that can be used to control what's included in the response.
1036
+
1037
+ request_options : typing.Optional[RequestOptions]
1038
+ Request-specific configuration.
1039
+
1040
+ Yields
1041
+ ------
1042
+ typing.Iterator[HttpResponse[typing.Iterator[GenerateStreamResponse]]]
1043
+
1044
+ """
1045
+ with self._client_wrapper.httpx_client.stream(
1046
+ "v1/generate-stream",
1047
+ base_url=self._client_wrapper.get_environment().predict,
1048
+ method="POST",
1049
+ json={
1050
+ "deployment_id": deployment_id,
1051
+ "deployment_name": deployment_name,
1052
+ "requests": convert_and_respect_annotation_metadata(
1053
+ object_=requests, annotation=typing.Sequence[GenerateRequest], direction="write"
1054
+ ),
1055
+ "options": convert_and_respect_annotation_metadata(
1056
+ object_=options, annotation=typing.Optional[GenerateOptionsRequest], direction="write"
1057
+ ),
1058
+ },
1059
+ headers={
1060
+ "content-type": "application/json",
1061
+ },
1062
+ request_options=request_options,
1063
+ omit=OMIT,
1064
+ ) as _response:
1065
+
1066
+ def _stream() -> HttpResponse[typing.Iterator[GenerateStreamResponse]]:
1067
+ try:
1068
+ if 200 <= _response.status_code < 300:
1069
+
1070
+ def _iter():
1071
+ for _text in _response.iter_lines():
1072
+ try:
1073
+ if len(_text) == 0:
1074
+ continue
1075
+ yield typing.cast(
1076
+ GenerateStreamResponse,
1077
+ parse_obj_as(
1078
+ type_=GenerateStreamResponse, # type: ignore
1079
+ object_=json.loads(_text),
1080
+ ),
1081
+ )
1082
+ except Exception:
1083
+ pass
1084
+ return
1085
+
1086
+ return HttpResponse(response=_response, data=_iter())
1087
+ _response.read()
1088
+ if _response.status_code == 400:
1089
+ raise BadRequestError(
1090
+ headers=dict(_response.headers),
1091
+ body=typing.cast(
1092
+ typing.Optional[typing.Any],
1093
+ parse_obj_as(
1094
+ type_=typing.Optional[typing.Any], # type: ignore
1095
+ object_=_response.json(),
1096
+ ),
1097
+ ),
1098
+ )
1099
+ if _response.status_code == 403:
1100
+ raise ForbiddenError(
1101
+ headers=dict(_response.headers),
1102
+ body=typing.cast(
1103
+ typing.Optional[typing.Any],
1104
+ parse_obj_as(
1105
+ type_=typing.Optional[typing.Any], # type: ignore
1106
+ object_=_response.json(),
1107
+ ),
1108
+ ),
1109
+ )
1110
+ if _response.status_code == 404:
1111
+ raise NotFoundError(
1112
+ headers=dict(_response.headers),
1113
+ body=typing.cast(
1114
+ typing.Optional[typing.Any],
1115
+ parse_obj_as(
1116
+ type_=typing.Optional[typing.Any], # type: ignore
1117
+ object_=_response.json(),
1118
+ ),
1119
+ ),
1120
+ )
1121
+ if _response.status_code == 500:
1122
+ raise InternalServerError(
1123
+ headers=dict(_response.headers),
1124
+ body=typing.cast(
1125
+ typing.Optional[typing.Any],
1126
+ parse_obj_as(
1127
+ type_=typing.Optional[typing.Any], # type: ignore
1128
+ object_=_response.json(),
1129
+ ),
1130
+ ),
1131
+ )
1132
+ _response_json = _response.json()
1133
+ except JSONDecodeError:
1134
+ raise ApiError(
1135
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.text
1136
+ )
1137
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1138
+
1139
+ yield _stream()
1140
+
1141
+ def search(
1142
+ self,
1143
+ *,
1144
+ query: str,
1145
+ index_id: typing.Optional[str] = OMIT,
1146
+ index_name: typing.Optional[str] = OMIT,
1147
+ options: typing.Optional[SearchRequestOptionsRequest] = OMIT,
1148
+ document_index: typing.Optional[str] = OMIT,
1149
+ request_options: typing.Optional[RequestOptions] = None,
1150
+ ) -> HttpResponse[SearchResponse]:
1151
+ """
1152
+ Perform a search against a document index.
1153
+
1154
+ Parameters
1155
+ ----------
1156
+ query : str
1157
+ The query to search for.
1158
+
1159
+ index_id : typing.Optional[str]
1160
+ The ID of the index to search against. Must provide either this, index_name or document_index.
1161
+
1162
+ index_name : typing.Optional[str]
1163
+ The name of the index to search against. Must provide either this, index_id or document_index.
1164
+
1165
+ options : typing.Optional[SearchRequestOptionsRequest]
1166
+ Configuration options for the search.
1167
+
1168
+ document_index : typing.Optional[str]
1169
+ Either the index name or index ID to search against. Must provide either this, index_id or index_name.
1170
+
1171
+ request_options : typing.Optional[RequestOptions]
1172
+ Request-specific configuration.
1173
+
1174
+ Returns
1175
+ -------
1176
+ HttpResponse[SearchResponse]
1177
+
1178
+ """
1179
+ _response = self._client_wrapper.httpx_client.request(
1180
+ "v1/search",
1181
+ base_url=self._client_wrapper.get_environment().predict,
1182
+ method="POST",
1183
+ json={
1184
+ "index_id": index_id,
1185
+ "index_name": index_name,
1186
+ "query": query,
1187
+ "options": convert_and_respect_annotation_metadata(
1188
+ object_=options, annotation=typing.Optional[SearchRequestOptionsRequest], direction="write"
1189
+ ),
1190
+ "document_index": document_index,
1191
+ },
1192
+ headers={
1193
+ "content-type": "application/json",
1194
+ },
1195
+ request_options=request_options,
1196
+ omit=OMIT,
1197
+ )
1198
+ try:
1199
+ if 200 <= _response.status_code < 300:
1200
+ _data = typing.cast(
1201
+ SearchResponse,
1202
+ parse_obj_as(
1203
+ type_=SearchResponse, # type: ignore
1204
+ object_=_response.json(),
1205
+ ),
1206
+ )
1207
+ return HttpResponse(response=_response, data=_data)
1208
+ if _response.status_code == 400:
1209
+ raise BadRequestError(
1210
+ headers=dict(_response.headers),
1211
+ body=typing.cast(
1212
+ typing.Optional[typing.Any],
1213
+ parse_obj_as(
1214
+ type_=typing.Optional[typing.Any], # type: ignore
1215
+ object_=_response.json(),
1216
+ ),
1217
+ ),
1218
+ )
1219
+ if _response.status_code == 404:
1220
+ raise NotFoundError(
1221
+ headers=dict(_response.headers),
1222
+ body=typing.cast(
1223
+ typing.Optional[typing.Any],
1224
+ parse_obj_as(
1225
+ type_=typing.Optional[typing.Any], # type: ignore
1226
+ object_=_response.json(),
1227
+ ),
1228
+ ),
1229
+ )
1230
+ if _response.status_code == 500:
1231
+ raise InternalServerError(
1232
+ headers=dict(_response.headers),
1233
+ body=typing.cast(
1234
+ typing.Optional[typing.Any],
1235
+ parse_obj_as(
1236
+ type_=typing.Optional[typing.Any], # type: ignore
1237
+ object_=_response.json(),
1238
+ ),
1239
+ ),
1240
+ )
1241
+ _response_json = _response.json()
1242
+ except JSONDecodeError:
1243
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1244
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1245
+
1246
+ def submit_completion_actuals(
1247
+ self,
1248
+ *,
1249
+ actuals: typing.Sequence[SubmitCompletionActualRequest],
1250
+ deployment_id: typing.Optional[str] = OMIT,
1251
+ deployment_name: typing.Optional[str] = OMIT,
1252
+ request_options: typing.Optional[RequestOptions] = None,
1253
+ ) -> HttpResponse[None]:
1254
+ """
1255
+ Used to submit feedback regarding the quality of previously generated completions.
1256
+
1257
+ Parameters
1258
+ ----------
1259
+ actuals : typing.Sequence[SubmitCompletionActualRequest]
1260
+ Feedback regarding the quality of previously generated completions
1261
+
1262
+ deployment_id : typing.Optional[str]
1263
+ The ID of the deployment. Must provide either this or deployment_name.
1264
+
1265
+ deployment_name : typing.Optional[str]
1266
+ The name of the deployment. Must provide either this or deployment_id.
1267
+
1268
+ request_options : typing.Optional[RequestOptions]
1269
+ Request-specific configuration.
1270
+
1271
+ Returns
1272
+ -------
1273
+ HttpResponse[None]
1274
+ """
1275
+ _response = self._client_wrapper.httpx_client.request(
1276
+ "v1/submit-completion-actuals",
1277
+ base_url=self._client_wrapper.get_environment().predict,
1278
+ method="POST",
1279
+ json={
1280
+ "deployment_id": deployment_id,
1281
+ "deployment_name": deployment_name,
1282
+ "actuals": convert_and_respect_annotation_metadata(
1283
+ object_=actuals, annotation=typing.Sequence[SubmitCompletionActualRequest], direction="write"
1284
+ ),
1285
+ },
1286
+ headers={
1287
+ "content-type": "application/json",
1288
+ },
1289
+ request_options=request_options,
1290
+ omit=OMIT,
1291
+ )
1292
+ try:
1293
+ if 200 <= _response.status_code < 300:
1294
+ return HttpResponse(response=_response, data=None)
1295
+ if _response.status_code == 400:
1296
+ raise BadRequestError(
1297
+ headers=dict(_response.headers),
1298
+ body=typing.cast(
1299
+ typing.Optional[typing.Any],
1300
+ parse_obj_as(
1301
+ type_=typing.Optional[typing.Any], # type: ignore
1302
+ object_=_response.json(),
1303
+ ),
1304
+ ),
1305
+ )
1306
+ if _response.status_code == 404:
1307
+ raise NotFoundError(
1308
+ headers=dict(_response.headers),
1309
+ body=typing.cast(
1310
+ typing.Optional[typing.Any],
1311
+ parse_obj_as(
1312
+ type_=typing.Optional[typing.Any], # type: ignore
1313
+ object_=_response.json(),
1314
+ ),
1315
+ ),
1316
+ )
1317
+ if _response.status_code == 500:
1318
+ raise InternalServerError(
1319
+ headers=dict(_response.headers),
1320
+ body=typing.cast(
1321
+ typing.Optional[typing.Any],
1322
+ parse_obj_as(
1323
+ type_=typing.Optional[typing.Any], # type: ignore
1324
+ object_=_response.json(),
1325
+ ),
1326
+ ),
1327
+ )
1328
+ _response_json = _response.json()
1329
+ except JSONDecodeError:
1330
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1331
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1332
+
1333
+ def submit_workflow_execution_actuals(
1334
+ self,
1335
+ *,
1336
+ actuals: typing.Sequence[SubmitWorkflowExecutionActualRequest],
1337
+ execution_id: typing.Optional[str] = OMIT,
1338
+ external_id: typing.Optional[str] = OMIT,
1339
+ request_options: typing.Optional[RequestOptions] = None,
1340
+ ) -> HttpResponse[None]:
1341
+ """
1342
+ Used to submit feedback regarding the quality of previous workflow execution and its outputs.
1343
+
1344
+ **Note:** Uses a base url of `https://predict.vellum.ai`.
1345
+
1346
+ Parameters
1347
+ ----------
1348
+ actuals : typing.Sequence[SubmitWorkflowExecutionActualRequest]
1349
+ Feedback regarding the quality of an output on a previously executed workflow.
1350
+
1351
+ execution_id : typing.Optional[str]
1352
+ The Vellum-generated ID of a previously executed workflow. Must provide either this or external_id.
1353
+
1354
+ external_id : typing.Optional[str]
1355
+ The external ID that was originally provided by when executing the workflow, if applicable, that you'd now like to submit actuals for. Must provide either this or execution_id.
1356
+
1357
+ request_options : typing.Optional[RequestOptions]
1358
+ Request-specific configuration.
1359
+
1360
+ Returns
1361
+ -------
1362
+ HttpResponse[None]
1363
+ """
1364
+ _response = self._client_wrapper.httpx_client.request(
1365
+ "v1/submit-workflow-execution-actuals",
1366
+ base_url=self._client_wrapper.get_environment().predict,
1367
+ method="POST",
1368
+ json={
1369
+ "actuals": convert_and_respect_annotation_metadata(
1370
+ object_=actuals, annotation=typing.Sequence[SubmitWorkflowExecutionActualRequest], direction="write"
1371
+ ),
1372
+ "execution_id": execution_id,
1373
+ "external_id": external_id,
1374
+ },
1375
+ headers={
1376
+ "content-type": "application/json",
1377
+ },
1378
+ request_options=request_options,
1379
+ omit=OMIT,
1380
+ )
1381
+ try:
1382
+ if 200 <= _response.status_code < 300:
1383
+ return HttpResponse(response=_response, data=None)
1384
+ _response_json = _response.json()
1385
+ except JSONDecodeError:
1386
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1387
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1388
+
1389
+
1390
+ class AsyncRawVellum:
1391
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
1392
+ self._client_wrapper = client_wrapper
1393
+
1394
+ async def execute_api(
1395
+ self,
1396
+ *,
1397
+ url: str,
1398
+ method: typing.Optional[MethodEnum] = OMIT,
1399
+ body: typing.Optional[ExecuteApiRequestBody] = OMIT,
1400
+ headers: typing.Optional[typing.Dict[str, ExecuteApiRequestHeadersValue]] = OMIT,
1401
+ bearer_token: typing.Optional[ExecuteApiRequestBearerToken] = OMIT,
1402
+ request_options: typing.Optional[RequestOptions] = None,
1403
+ ) -> AsyncHttpResponse[ExecuteApiResponse]:
1404
+ """
1405
+ Parameters
1406
+ ----------
1407
+ url : str
1408
+
1409
+ method : typing.Optional[MethodEnum]
1410
+
1411
+ body : typing.Optional[ExecuteApiRequestBody]
1412
+
1413
+ headers : typing.Optional[typing.Dict[str, ExecuteApiRequestHeadersValue]]
1414
+
1415
+ bearer_token : typing.Optional[ExecuteApiRequestBearerToken]
1416
+
1417
+ request_options : typing.Optional[RequestOptions]
1418
+ Request-specific configuration.
1419
+
1420
+ Returns
1421
+ -------
1422
+ AsyncHttpResponse[ExecuteApiResponse]
1423
+
1424
+ """
1425
+ _response = await self._client_wrapper.httpx_client.request(
1426
+ "v1/execute-api",
1427
+ base_url=self._client_wrapper.get_environment().default,
1428
+ method="POST",
1429
+ json={
1430
+ "url": url,
1431
+ "method": method,
1432
+ "body": convert_and_respect_annotation_metadata(
1433
+ object_=body, annotation=typing.Optional[ExecuteApiRequestBody], direction="write"
1434
+ ),
1435
+ "headers": convert_and_respect_annotation_metadata(
1436
+ object_=headers, annotation=typing.Dict[str, ExecuteApiRequestHeadersValue], direction="write"
1437
+ ),
1438
+ "bearer_token": convert_and_respect_annotation_metadata(
1439
+ object_=bearer_token, annotation=typing.Optional[ExecuteApiRequestBearerToken], direction="write"
1440
+ ),
1441
+ },
1442
+ headers={
1443
+ "content-type": "application/json",
1444
+ },
1445
+ request_options=request_options,
1446
+ omit=OMIT,
1447
+ )
1448
+ try:
1449
+ if 200 <= _response.status_code < 300:
1450
+ _data = typing.cast(
1451
+ ExecuteApiResponse,
1452
+ parse_obj_as(
1453
+ type_=ExecuteApiResponse, # type: ignore
1454
+ object_=_response.json(),
1455
+ ),
1456
+ )
1457
+ return AsyncHttpResponse(response=_response, data=_data)
1458
+ _response_json = _response.json()
1459
+ except JSONDecodeError:
1460
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1461
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1462
+
1463
+ async def execute_code(
1464
+ self,
1465
+ *,
1466
+ code: str,
1467
+ runtime: CodeExecutionRuntime,
1468
+ input_values: typing.Sequence[CodeExecutorInput],
1469
+ packages: typing.Sequence[CodeExecutionPackage],
1470
+ output_type: VellumVariableType,
1471
+ request_options: typing.Optional[RequestOptions] = None,
1472
+ ) -> AsyncHttpResponse[CodeExecutorResponse]:
1473
+ """
1474
+ Parameters
1475
+ ----------
1476
+ code : str
1477
+
1478
+ runtime : CodeExecutionRuntime
1479
+
1480
+ input_values : typing.Sequence[CodeExecutorInput]
1481
+
1482
+ packages : typing.Sequence[CodeExecutionPackage]
1483
+
1484
+ output_type : VellumVariableType
1485
+
1486
+ request_options : typing.Optional[RequestOptions]
1487
+ Request-specific configuration.
1488
+
1489
+ Returns
1490
+ -------
1491
+ AsyncHttpResponse[CodeExecutorResponse]
1492
+
1493
+ """
1494
+ _response = await self._client_wrapper.httpx_client.request(
1495
+ "v1/execute-code",
1496
+ base_url=self._client_wrapper.get_environment().predict,
1497
+ method="POST",
1498
+ json={
1499
+ "code": code,
1500
+ "runtime": runtime,
1501
+ "input_values": convert_and_respect_annotation_metadata(
1502
+ object_=input_values, annotation=typing.Sequence[CodeExecutorInput], direction="write"
1503
+ ),
1504
+ "packages": convert_and_respect_annotation_metadata(
1505
+ object_=packages, annotation=typing.Sequence[CodeExecutionPackage], direction="write"
1506
+ ),
1507
+ "output_type": output_type,
1508
+ },
1509
+ headers={
1510
+ "content-type": "application/json",
1511
+ },
1512
+ request_options=request_options,
1513
+ omit=OMIT,
1514
+ )
1515
+ try:
1516
+ if 200 <= _response.status_code < 300:
1517
+ _data = typing.cast(
1518
+ CodeExecutorResponse,
1519
+ parse_obj_as(
1520
+ type_=CodeExecutorResponse, # type: ignore
1521
+ object_=_response.json(),
1522
+ ),
1523
+ )
1524
+ return AsyncHttpResponse(response=_response, data=_data)
1525
+ if _response.status_code == 400:
1526
+ raise BadRequestError(
1527
+ headers=dict(_response.headers),
1528
+ body=typing.cast(
1529
+ typing.Optional[typing.Any],
1530
+ parse_obj_as(
1531
+ type_=typing.Optional[typing.Any], # type: ignore
1532
+ object_=_response.json(),
1533
+ ),
1534
+ ),
1535
+ )
1536
+ _response_json = _response.json()
1537
+ except JSONDecodeError:
1538
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1539
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1540
+
1541
+ async def execute_prompt(
1542
+ self,
1543
+ *,
1544
+ inputs: typing.Sequence[PromptDeploymentInputRequest],
1545
+ prompt_deployment_id: typing.Optional[str] = OMIT,
1546
+ prompt_deployment_name: typing.Optional[str] = OMIT,
1547
+ release_tag: typing.Optional[str] = OMIT,
1548
+ external_id: typing.Optional[str] = OMIT,
1549
+ expand_meta: typing.Optional[PromptDeploymentExpandMetaRequest] = OMIT,
1550
+ raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest] = OMIT,
1551
+ expand_raw: typing.Optional[typing.Sequence[str]] = OMIT,
1552
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
1553
+ request_options: typing.Optional[RequestOptions] = None,
1554
+ ) -> AsyncHttpResponse[ExecutePromptResponse]:
1555
+ """
1556
+ Executes a deployed Prompt and returns the result.
1557
+
1558
+ Parameters
1559
+ ----------
1560
+ inputs : typing.Sequence[PromptDeploymentInputRequest]
1561
+ A list consisting of the Prompt Deployment's input variables and their values.
1562
+
1563
+ prompt_deployment_id : typing.Optional[str]
1564
+ The ID of the Prompt Deployment. Must provide either this or prompt_deployment_name.
1565
+
1566
+ prompt_deployment_name : typing.Optional[str]
1567
+ The unique name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
1568
+
1569
+ release_tag : typing.Optional[str]
1570
+ Optionally specify a release tag if you want to pin to a specific release of the Prompt Deployment
1571
+
1572
+ external_id : typing.Optional[str]
1573
+ Optionally include a unique identifier for tracking purposes. Must be unique within a given Workspace.
1574
+
1575
+ expand_meta : typing.Optional[PromptDeploymentExpandMetaRequest]
1576
+ An optionally specified configuration used to opt in to including additional metadata about this prompt execution in the API response. Corresponding values will be returned under the `meta` key of the API response.
1577
+
1578
+ raw_overrides : typing.Optional[RawPromptExecutionOverridesRequest]
1579
+ Overrides for the raw API request sent to the model host. Combined with `expand_raw`, it can be used to access new features from models.
1580
+
1581
+ expand_raw : typing.Optional[typing.Sequence[str]]
1582
+ A list of keys whose values you'd like to directly return from the JSON response of the model provider. Useful if you need lower-level info returned by model providers that Vellum would otherwise omit. Corresponding key/value pairs will be returned under the `raw` key of the API response.
1583
+
1584
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
1585
+ Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
1586
+
1587
+ request_options : typing.Optional[RequestOptions]
1588
+ Request-specific configuration.
1589
+
1590
+ Returns
1591
+ -------
1592
+ AsyncHttpResponse[ExecutePromptResponse]
1593
+
1594
+ """
1595
+ _response = await self._client_wrapper.httpx_client.request(
1596
+ "v1/execute-prompt",
1597
+ base_url=self._client_wrapper.get_environment().predict,
1598
+ method="POST",
1599
+ json={
1600
+ "inputs": convert_and_respect_annotation_metadata(
1601
+ object_=inputs, annotation=typing.Sequence[PromptDeploymentInputRequest], direction="write"
1602
+ ),
1603
+ "prompt_deployment_id": prompt_deployment_id,
1604
+ "prompt_deployment_name": prompt_deployment_name,
1605
+ "release_tag": release_tag,
1606
+ "external_id": external_id,
1607
+ "expand_meta": convert_and_respect_annotation_metadata(
1608
+ object_=expand_meta,
1609
+ annotation=typing.Optional[PromptDeploymentExpandMetaRequest],
1610
+ direction="write",
1611
+ ),
1612
+ "raw_overrides": convert_and_respect_annotation_metadata(
1613
+ object_=raw_overrides,
1614
+ annotation=typing.Optional[RawPromptExecutionOverridesRequest],
1615
+ direction="write",
1616
+ ),
1617
+ "expand_raw": expand_raw,
1618
+ "metadata": metadata,
1619
+ },
1620
+ headers={
1621
+ "content-type": "application/json",
1622
+ },
1623
+ request_options=request_options,
1624
+ omit=OMIT,
1625
+ )
1626
+ try:
1627
+ if 200 <= _response.status_code < 300:
1628
+ _data = typing.cast(
1629
+ ExecutePromptResponse,
1630
+ parse_obj_as(
1631
+ type_=ExecutePromptResponse, # type: ignore
1632
+ object_=_response.json(),
1633
+ ),
1634
+ )
1635
+ return AsyncHttpResponse(response=_response, data=_data)
1636
+ if _response.status_code == 400:
1637
+ raise BadRequestError(
1638
+ headers=dict(_response.headers),
1639
+ body=typing.cast(
1640
+ typing.Optional[typing.Any],
1641
+ parse_obj_as(
1642
+ type_=typing.Optional[typing.Any], # type: ignore
1643
+ object_=_response.json(),
1644
+ ),
1645
+ ),
1646
+ )
1647
+ if _response.status_code == 403:
1648
+ raise ForbiddenError(
1649
+ headers=dict(_response.headers),
1650
+ body=typing.cast(
1651
+ typing.Optional[typing.Any],
1652
+ parse_obj_as(
1653
+ type_=typing.Optional[typing.Any], # type: ignore
1654
+ object_=_response.json(),
1655
+ ),
1656
+ ),
1657
+ )
1658
+ if _response.status_code == 404:
1659
+ raise NotFoundError(
1660
+ headers=dict(_response.headers),
1661
+ body=typing.cast(
1662
+ typing.Optional[typing.Any],
1663
+ parse_obj_as(
1664
+ type_=typing.Optional[typing.Any], # type: ignore
1665
+ object_=_response.json(),
1666
+ ),
1667
+ ),
1668
+ )
1669
+ if _response.status_code == 500:
1670
+ raise InternalServerError(
1671
+ headers=dict(_response.headers),
1672
+ body=typing.cast(
1673
+ typing.Optional[typing.Any],
1674
+ parse_obj_as(
1675
+ type_=typing.Optional[typing.Any], # type: ignore
1676
+ object_=_response.json(),
1677
+ ),
1678
+ ),
1679
+ )
1680
+ _response_json = _response.json()
1681
+ except JSONDecodeError:
1682
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1683
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1684
+
1685
+ @contextlib.asynccontextmanager
1686
+ async def execute_prompt_stream(
1687
+ self,
1688
+ *,
1689
+ inputs: typing.Sequence[PromptDeploymentInputRequest],
1690
+ prompt_deployment_id: typing.Optional[str] = OMIT,
1691
+ prompt_deployment_name: typing.Optional[str] = OMIT,
1692
+ release_tag: typing.Optional[str] = OMIT,
1693
+ external_id: typing.Optional[str] = OMIT,
1694
+ expand_meta: typing.Optional[PromptDeploymentExpandMetaRequest] = OMIT,
1695
+ raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest] = OMIT,
1696
+ expand_raw: typing.Optional[typing.Sequence[str]] = OMIT,
1697
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
1698
+ request_options: typing.Optional[RequestOptions] = None,
1699
+ ) -> typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[ExecutePromptEvent]]]:
1700
+ """
1701
+ Executes a deployed Prompt and streams back the results.
1702
+
1703
+ Parameters
1704
+ ----------
1705
+ inputs : typing.Sequence[PromptDeploymentInputRequest]
1706
+ A list consisting of the Prompt Deployment's input variables and their values.
1707
+
1708
+ prompt_deployment_id : typing.Optional[str]
1709
+ The ID of the Prompt Deployment. Must provide either this or prompt_deployment_name.
1710
+
1711
+ prompt_deployment_name : typing.Optional[str]
1712
+ The unique name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
1713
+
1714
+ release_tag : typing.Optional[str]
1715
+ Optionally specify a release tag if you want to pin to a specific release of the Prompt Deployment
1716
+
1717
+ external_id : typing.Optional[str]
1718
+ Optionally include a unique identifier for tracking purposes. Must be unique within a given Workspace.
1719
+
1720
+ expand_meta : typing.Optional[PromptDeploymentExpandMetaRequest]
1721
+ An optionally specified configuration used to opt in to including additional metadata about this prompt execution in the API response. Corresponding values will be returned under the `meta` key of the API response.
1722
+
1723
+ raw_overrides : typing.Optional[RawPromptExecutionOverridesRequest]
1724
+ Overrides for the raw API request sent to the model host. Combined with `expand_raw`, it can be used to access new features from models.
1725
+
1726
+ expand_raw : typing.Optional[typing.Sequence[str]]
1727
+ A list of keys whose values you'd like to directly return from the JSON response of the model provider. Useful if you need lower-level info returned by model providers that Vellum would otherwise omit. Corresponding key/value pairs will be returned under the `raw` key of the API response.
1728
+
1729
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
1730
+ Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
1731
+
1732
+ request_options : typing.Optional[RequestOptions]
1733
+ Request-specific configuration.
1734
+
1735
+ Yields
1736
+ ------
1737
+ typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[ExecutePromptEvent]]]
1738
+
1739
+ """
1740
+ async with self._client_wrapper.httpx_client.stream(
1741
+ "v1/execute-prompt-stream",
1742
+ base_url=self._client_wrapper.get_environment().predict,
1743
+ method="POST",
1744
+ json={
1745
+ "inputs": convert_and_respect_annotation_metadata(
1746
+ object_=inputs, annotation=typing.Sequence[PromptDeploymentInputRequest], direction="write"
1747
+ ),
1748
+ "prompt_deployment_id": prompt_deployment_id,
1749
+ "prompt_deployment_name": prompt_deployment_name,
1750
+ "release_tag": release_tag,
1751
+ "external_id": external_id,
1752
+ "expand_meta": convert_and_respect_annotation_metadata(
1753
+ object_=expand_meta,
1754
+ annotation=typing.Optional[PromptDeploymentExpandMetaRequest],
1755
+ direction="write",
1756
+ ),
1757
+ "raw_overrides": convert_and_respect_annotation_metadata(
1758
+ object_=raw_overrides,
1759
+ annotation=typing.Optional[RawPromptExecutionOverridesRequest],
1760
+ direction="write",
1761
+ ),
1762
+ "expand_raw": expand_raw,
1763
+ "metadata": metadata,
1764
+ },
1765
+ headers={
1766
+ "content-type": "application/json",
1767
+ },
1768
+ request_options=request_options,
1769
+ omit=OMIT,
1770
+ ) as _response:
1771
+
1772
+ async def _stream() -> AsyncHttpResponse[typing.AsyncIterator[ExecutePromptEvent]]:
1773
+ try:
1774
+ if 200 <= _response.status_code < 300:
1775
+
1776
+ async def _iter():
1777
+ async for _text in _response.aiter_lines():
1778
+ try:
1779
+ if len(_text) == 0:
1780
+ continue
1781
+ yield typing.cast(
1782
+ ExecutePromptEvent,
1783
+ parse_obj_as(
1784
+ type_=ExecutePromptEvent, # type: ignore
1785
+ object_=json.loads(_text),
1786
+ ),
1787
+ )
1788
+ except Exception:
1789
+ pass
1790
+ return
1791
+
1792
+ return AsyncHttpResponse(response=_response, data=_iter())
1793
+ await _response.aread()
1794
+ if _response.status_code == 400:
1795
+ raise BadRequestError(
1796
+ headers=dict(_response.headers),
1797
+ body=typing.cast(
1798
+ typing.Optional[typing.Any],
1799
+ parse_obj_as(
1800
+ type_=typing.Optional[typing.Any], # type: ignore
1801
+ object_=_response.json(),
1802
+ ),
1803
+ ),
1804
+ )
1805
+ if _response.status_code == 403:
1806
+ raise ForbiddenError(
1807
+ headers=dict(_response.headers),
1808
+ body=typing.cast(
1809
+ typing.Optional[typing.Any],
1810
+ parse_obj_as(
1811
+ type_=typing.Optional[typing.Any], # type: ignore
1812
+ object_=_response.json(),
1813
+ ),
1814
+ ),
1815
+ )
1816
+ if _response.status_code == 404:
1817
+ raise NotFoundError(
1818
+ headers=dict(_response.headers),
1819
+ body=typing.cast(
1820
+ typing.Optional[typing.Any],
1821
+ parse_obj_as(
1822
+ type_=typing.Optional[typing.Any], # type: ignore
1823
+ object_=_response.json(),
1824
+ ),
1825
+ ),
1826
+ )
1827
+ if _response.status_code == 500:
1828
+ raise InternalServerError(
1829
+ headers=dict(_response.headers),
1830
+ body=typing.cast(
1831
+ typing.Optional[typing.Any],
1832
+ parse_obj_as(
1833
+ type_=typing.Optional[typing.Any], # type: ignore
1834
+ object_=_response.json(),
1835
+ ),
1836
+ ),
1837
+ )
1838
+ _response_json = _response.json()
1839
+ except JSONDecodeError:
1840
+ raise ApiError(
1841
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.text
1842
+ )
1843
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1844
+
1845
+ yield await _stream()
1846
+
1847
+ async def execute_workflow(
1848
+ self,
1849
+ *,
1850
+ inputs: typing.Sequence[WorkflowRequestInputRequest],
1851
+ expand_meta: typing.Optional[WorkflowExpandMetaRequest] = OMIT,
1852
+ workflow_deployment_id: typing.Optional[str] = OMIT,
1853
+ workflow_deployment_name: typing.Optional[str] = OMIT,
1854
+ release_tag: typing.Optional[str] = OMIT,
1855
+ external_id: typing.Optional[str] = OMIT,
1856
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
1857
+ previous_execution_id: typing.Optional[str] = OMIT,
1858
+ request_options: typing.Optional[RequestOptions] = None,
1859
+ ) -> AsyncHttpResponse[ExecuteWorkflowResponse]:
1860
+ """
1861
+ Executes a deployed Workflow and returns its outputs.
1862
+
1863
+ Parameters
1864
+ ----------
1865
+ inputs : typing.Sequence[WorkflowRequestInputRequest]
1866
+ The list of inputs defined in the Workflow's Deployment with their corresponding values.
1867
+
1868
+ expand_meta : typing.Optional[WorkflowExpandMetaRequest]
1869
+ An optionally specified configuration used to opt in to including additional metadata about this workflow execution in the API response. Corresponding values will be returned under the `execution_meta` key within NODE events in the response stream.
1870
+
1871
+ workflow_deployment_id : typing.Optional[str]
1872
+ The ID of the Workflow Deployment. Must provide either this or workflow_deployment_name.
1873
+
1874
+ workflow_deployment_name : typing.Optional[str]
1875
+ The name of the Workflow Deployment. Must provide either this or workflow_deployment_id.
1876
+
1877
+ release_tag : typing.Optional[str]
1878
+ Optionally specify a release tag if you want to pin to a specific release of the Workflow Deployment
1879
+
1880
+ external_id : typing.Optional[str]
1881
+ Optionally include a unique identifier for tracking purposes. Must be unique within a given Workspace.
1882
+
1883
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
1884
+ Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
1885
+
1886
+ previous_execution_id : typing.Optional[str]
1887
+ The ID of a previous Workflow Execution to reference for initial State loading.
1888
+
1889
+ request_options : typing.Optional[RequestOptions]
1890
+ Request-specific configuration.
1891
+
1892
+ Returns
1893
+ -------
1894
+ AsyncHttpResponse[ExecuteWorkflowResponse]
1895
+
1896
+ """
1897
+ _response = await self._client_wrapper.httpx_client.request(
1898
+ "v1/execute-workflow",
1899
+ base_url=self._client_wrapper.get_environment().predict,
1900
+ method="POST",
1901
+ json={
1902
+ "inputs": convert_and_respect_annotation_metadata(
1903
+ object_=inputs, annotation=typing.Sequence[WorkflowRequestInputRequest], direction="write"
1904
+ ),
1905
+ "expand_meta": convert_and_respect_annotation_metadata(
1906
+ object_=expand_meta, annotation=typing.Optional[WorkflowExpandMetaRequest], direction="write"
1907
+ ),
1908
+ "workflow_deployment_id": workflow_deployment_id,
1909
+ "workflow_deployment_name": workflow_deployment_name,
1910
+ "release_tag": release_tag,
1911
+ "external_id": external_id,
1912
+ "metadata": metadata,
1913
+ "previous_execution_id": previous_execution_id,
1914
+ },
1915
+ headers={
1916
+ "content-type": "application/json",
1917
+ },
1918
+ request_options=request_options,
1919
+ omit=OMIT,
1920
+ )
1921
+ try:
1922
+ if 200 <= _response.status_code < 300:
1923
+ _data = typing.cast(
1924
+ ExecuteWorkflowResponse,
1925
+ parse_obj_as(
1926
+ type_=ExecuteWorkflowResponse, # type: ignore
1927
+ object_=_response.json(),
1928
+ ),
1929
+ )
1930
+ return AsyncHttpResponse(response=_response, data=_data)
1931
+ if _response.status_code == 400:
1932
+ raise BadRequestError(
1933
+ headers=dict(_response.headers),
1934
+ body=typing.cast(
1935
+ typing.Optional[typing.Any],
1936
+ parse_obj_as(
1937
+ type_=typing.Optional[typing.Any], # type: ignore
1938
+ object_=_response.json(),
1939
+ ),
1940
+ ),
1941
+ )
1942
+ if _response.status_code == 404:
1943
+ raise NotFoundError(
1944
+ headers=dict(_response.headers),
1945
+ body=typing.cast(
1946
+ typing.Optional[typing.Any],
1947
+ parse_obj_as(
1948
+ type_=typing.Optional[typing.Any], # type: ignore
1949
+ object_=_response.json(),
1950
+ ),
1951
+ ),
1952
+ )
1953
+ if _response.status_code == 500:
1954
+ raise InternalServerError(
1955
+ headers=dict(_response.headers),
1956
+ body=typing.cast(
1957
+ typing.Optional[typing.Any],
1958
+ parse_obj_as(
1959
+ type_=typing.Optional[typing.Any], # type: ignore
1960
+ object_=_response.json(),
1961
+ ),
1962
+ ),
1963
+ )
1964
+ _response_json = _response.json()
1965
+ except JSONDecodeError:
1966
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1967
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1968
+
1969
+ async def execute_workflow_async(
1970
+ self,
1971
+ *,
1972
+ inputs: typing.Sequence[WorkflowRequestInputRequest],
1973
+ workflow_deployment_id: typing.Optional[str] = OMIT,
1974
+ workflow_deployment_name: typing.Optional[str] = OMIT,
1975
+ release_tag: typing.Optional[str] = OMIT,
1976
+ external_id: typing.Optional[str] = OMIT,
1977
+ previous_execution_id: typing.Optional[str] = OMIT,
1978
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
1979
+ request_options: typing.Optional[RequestOptions] = None,
1980
+ ) -> AsyncHttpResponse[ExecuteWorkflowAsyncResponse]:
1981
+ """
1982
+ Executes a deployed Workflow asynchronously and returns the execution ID.
1983
+
1984
+ Parameters
1985
+ ----------
1986
+ inputs : typing.Sequence[WorkflowRequestInputRequest]
1987
+ The list of inputs defined in the Workflow's Deployment with their corresponding values.
1988
+
1989
+ workflow_deployment_id : typing.Optional[str]
1990
+ The ID of the Workflow Deployment. Must provide either this or workflow_deployment_name.
1991
+
1992
+ workflow_deployment_name : typing.Optional[str]
1993
+ The name of the Workflow Deployment. Must provide either this or workflow_deployment_id.
1994
+
1995
+ release_tag : typing.Optional[str]
1996
+ Optionally specify a release tag if you want to pin to a specific release of the Workflow Deployment
1997
+
1998
+ external_id : typing.Optional[str]
1999
+ Optionally include a unique identifier for tracking purposes. Must be unique within a given Workspace.
2000
+
2001
+ previous_execution_id : typing.Optional[str]
2002
+ The ID of a previous Workflow Execution to reference for initial State loading.
2003
+
2004
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
2005
+ Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
2006
+
2007
+ request_options : typing.Optional[RequestOptions]
2008
+ Request-specific configuration.
2009
+
2010
+ Returns
2011
+ -------
2012
+ AsyncHttpResponse[ExecuteWorkflowAsyncResponse]
2013
+
2014
+ """
2015
+ _response = await self._client_wrapper.httpx_client.request(
2016
+ "v1/execute-workflow-async",
2017
+ base_url=self._client_wrapper.get_environment().predict,
2018
+ method="POST",
2019
+ json={
2020
+ "inputs": convert_and_respect_annotation_metadata(
2021
+ object_=inputs, annotation=typing.Sequence[WorkflowRequestInputRequest], direction="write"
2022
+ ),
2023
+ "workflow_deployment_id": workflow_deployment_id,
2024
+ "workflow_deployment_name": workflow_deployment_name,
2025
+ "release_tag": release_tag,
2026
+ "external_id": external_id,
2027
+ "previous_execution_id": previous_execution_id,
2028
+ "metadata": metadata,
2029
+ },
2030
+ headers={
2031
+ "content-type": "application/json",
2032
+ },
2033
+ request_options=request_options,
2034
+ omit=OMIT,
2035
+ )
2036
+ try:
2037
+ if 200 <= _response.status_code < 300:
2038
+ _data = typing.cast(
2039
+ ExecuteWorkflowAsyncResponse,
2040
+ parse_obj_as(
2041
+ type_=ExecuteWorkflowAsyncResponse, # type: ignore
2042
+ object_=_response.json(),
2043
+ ),
2044
+ )
2045
+ return AsyncHttpResponse(response=_response, data=_data)
2046
+ if _response.status_code == 400:
2047
+ raise BadRequestError(
2048
+ headers=dict(_response.headers),
2049
+ body=typing.cast(
2050
+ typing.Optional[typing.Any],
2051
+ parse_obj_as(
2052
+ type_=typing.Optional[typing.Any], # type: ignore
2053
+ object_=_response.json(),
2054
+ ),
2055
+ ),
2056
+ )
2057
+ if _response.status_code == 404:
2058
+ raise NotFoundError(
2059
+ headers=dict(_response.headers),
2060
+ body=typing.cast(
2061
+ typing.Optional[typing.Any],
2062
+ parse_obj_as(
2063
+ type_=typing.Optional[typing.Any], # type: ignore
2064
+ object_=_response.json(),
2065
+ ),
2066
+ ),
2067
+ )
2068
+ if _response.status_code == 500:
2069
+ raise InternalServerError(
2070
+ headers=dict(_response.headers),
2071
+ body=typing.cast(
2072
+ typing.Optional[typing.Any],
2073
+ parse_obj_as(
2074
+ type_=typing.Optional[typing.Any], # type: ignore
2075
+ object_=_response.json(),
2076
+ ),
2077
+ ),
2078
+ )
2079
+ _response_json = _response.json()
2080
+ except JSONDecodeError:
2081
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2082
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2083
+
2084
+ @contextlib.asynccontextmanager
2085
+ async def execute_workflow_stream(
2086
+ self,
2087
+ *,
2088
+ inputs: typing.Sequence[WorkflowRequestInputRequest],
2089
+ expand_meta: typing.Optional[WorkflowExpandMetaRequest] = OMIT,
2090
+ workflow_deployment_id: typing.Optional[str] = OMIT,
2091
+ workflow_deployment_name: typing.Optional[str] = OMIT,
2092
+ release_tag: typing.Optional[str] = OMIT,
2093
+ external_id: typing.Optional[str] = OMIT,
2094
+ event_types: typing.Optional[typing.Sequence[WorkflowExecutionEventType]] = OMIT,
2095
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
2096
+ previous_execution_id: typing.Optional[str] = OMIT,
2097
+ request_options: typing.Optional[RequestOptions] = None,
2098
+ ) -> typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[WorkflowStreamEvent]]]:
2099
+ """
2100
+ Executes a deployed Workflow and streams back its results.
2101
+
2102
+ Parameters
2103
+ ----------
2104
+ inputs : typing.Sequence[WorkflowRequestInputRequest]
2105
+ The list of inputs defined in the Workflow's Deployment with their corresponding values.
2106
+
2107
+ expand_meta : typing.Optional[WorkflowExpandMetaRequest]
2108
+ An optionally specified configuration used to opt in to including additional metadata about this workflow execution in the API response. Corresponding values will be returned under the `execution_meta` key within NODE events in the response stream.
2109
+
2110
+ workflow_deployment_id : typing.Optional[str]
2111
+ The ID of the Workflow Deployment. Must provide either this or workflow_deployment_name.
2112
+
2113
+ workflow_deployment_name : typing.Optional[str]
2114
+ The name of the Workflow Deployment. Must provide either this or workflow_deployment_id.
2115
+
2116
+ release_tag : typing.Optional[str]
2117
+ Optionally specify a release tag if you want to pin to a specific release of the Workflow Deployment
2118
+
2119
+ external_id : typing.Optional[str]
2120
+ Optionally include a unique identifier for tracking purposes. Must be unique within a given Workspace.
2121
+
2122
+ event_types : typing.Optional[typing.Sequence[WorkflowExecutionEventType]]
2123
+ Optionally specify which events you want to receive. Defaults to only WORKFLOW events. Note that the schema of non-WORKFLOW events is unstable and should be used with caution.
2124
+
2125
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
2126
+ Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
2127
+
2128
+ previous_execution_id : typing.Optional[str]
2129
+ The ID of a previous Workflow Execution to reference for initial State loading.
2130
+
2131
+ request_options : typing.Optional[RequestOptions]
2132
+ Request-specific configuration.
2133
+
2134
+ Yields
2135
+ ------
2136
+ typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[WorkflowStreamEvent]]]
2137
+
2138
+ """
2139
+ async with self._client_wrapper.httpx_client.stream(
2140
+ "v1/execute-workflow-stream",
2141
+ base_url=self._client_wrapper.get_environment().predict,
2142
+ method="POST",
2143
+ json={
2144
+ "inputs": convert_and_respect_annotation_metadata(
2145
+ object_=inputs, annotation=typing.Sequence[WorkflowRequestInputRequest], direction="write"
2146
+ ),
2147
+ "expand_meta": convert_and_respect_annotation_metadata(
2148
+ object_=expand_meta, annotation=typing.Optional[WorkflowExpandMetaRequest], direction="write"
2149
+ ),
2150
+ "workflow_deployment_id": workflow_deployment_id,
2151
+ "workflow_deployment_name": workflow_deployment_name,
2152
+ "release_tag": release_tag,
2153
+ "external_id": external_id,
2154
+ "event_types": event_types,
2155
+ "metadata": metadata,
2156
+ "previous_execution_id": previous_execution_id,
2157
+ },
2158
+ headers={
2159
+ "content-type": "application/json",
2160
+ },
2161
+ request_options=request_options,
2162
+ omit=OMIT,
2163
+ ) as _response:
2164
+
2165
+ async def _stream() -> AsyncHttpResponse[typing.AsyncIterator[WorkflowStreamEvent]]:
2166
+ try:
2167
+ if 200 <= _response.status_code < 300:
2168
+
2169
+ async def _iter():
2170
+ async for _text in _response.aiter_lines():
2171
+ try:
2172
+ if len(_text) == 0:
2173
+ continue
2174
+ yield typing.cast(
2175
+ WorkflowStreamEvent,
2176
+ parse_obj_as(
2177
+ type_=WorkflowStreamEvent, # type: ignore
2178
+ object_=json.loads(_text),
2179
+ ),
2180
+ )
2181
+ except Exception:
2182
+ pass
2183
+ return
2184
+
2185
+ return AsyncHttpResponse(response=_response, data=_iter())
2186
+ await _response.aread()
2187
+ if _response.status_code == 400:
2188
+ raise BadRequestError(
2189
+ headers=dict(_response.headers),
2190
+ body=typing.cast(
2191
+ typing.Optional[typing.Any],
2192
+ parse_obj_as(
2193
+ type_=typing.Optional[typing.Any], # type: ignore
2194
+ object_=_response.json(),
2195
+ ),
2196
+ ),
2197
+ )
2198
+ if _response.status_code == 404:
2199
+ raise NotFoundError(
2200
+ headers=dict(_response.headers),
2201
+ body=typing.cast(
2202
+ typing.Optional[typing.Any],
2203
+ parse_obj_as(
2204
+ type_=typing.Optional[typing.Any], # type: ignore
2205
+ object_=_response.json(),
2206
+ ),
2207
+ ),
2208
+ )
2209
+ if _response.status_code == 500:
2210
+ raise InternalServerError(
2211
+ headers=dict(_response.headers),
2212
+ body=typing.cast(
2213
+ typing.Optional[typing.Any],
2214
+ parse_obj_as(
2215
+ type_=typing.Optional[typing.Any], # type: ignore
2216
+ object_=_response.json(),
2217
+ ),
2218
+ ),
2219
+ )
2220
+ _response_json = _response.json()
2221
+ except JSONDecodeError:
2222
+ raise ApiError(
2223
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.text
2224
+ )
2225
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2226
+
2227
+ yield await _stream()
2228
+
2229
+ async def generate(
2230
+ self,
2231
+ *,
2232
+ requests: typing.Sequence[GenerateRequest],
2233
+ deployment_id: typing.Optional[str] = OMIT,
2234
+ deployment_name: typing.Optional[str] = OMIT,
2235
+ options: typing.Optional[GenerateOptionsRequest] = OMIT,
2236
+ request_options: typing.Optional[RequestOptions] = None,
2237
+ ) -> AsyncHttpResponse[GenerateResponse]:
2238
+ """
2239
+ Generate a completion using a previously defined deployment.
2240
+
2241
+ Important: This endpoint is DEPRECATED and has been superseded by
2242
+ [execute-prompt](/api-reference/api-reference/execute-prompt).
2243
+
2244
+ Parameters
2245
+ ----------
2246
+ requests : typing.Sequence[GenerateRequest]
2247
+ The generation request to make. Bulk requests are no longer supported, this field must be an array of length 1.
2248
+
2249
+ deployment_id : typing.Optional[str]
2250
+ The ID of the deployment. Must provide either this or deployment_name.
2251
+
2252
+ deployment_name : typing.Optional[str]
2253
+ The name of the deployment. Must provide either this or deployment_id.
2254
+
2255
+ options : typing.Optional[GenerateOptionsRequest]
2256
+ Additional configuration that can be used to control what's included in the response.
2257
+
2258
+ request_options : typing.Optional[RequestOptions]
2259
+ Request-specific configuration.
2260
+
2261
+ Returns
2262
+ -------
2263
+ AsyncHttpResponse[GenerateResponse]
2264
+
2265
+ """
2266
+ _response = await self._client_wrapper.httpx_client.request(
2267
+ "v1/generate",
2268
+ base_url=self._client_wrapper.get_environment().predict,
2269
+ method="POST",
2270
+ json={
2271
+ "deployment_id": deployment_id,
2272
+ "deployment_name": deployment_name,
2273
+ "requests": convert_and_respect_annotation_metadata(
2274
+ object_=requests, annotation=typing.Sequence[GenerateRequest], direction="write"
2275
+ ),
2276
+ "options": convert_and_respect_annotation_metadata(
2277
+ object_=options, annotation=typing.Optional[GenerateOptionsRequest], direction="write"
2278
+ ),
2279
+ },
2280
+ headers={
2281
+ "content-type": "application/json",
2282
+ },
2283
+ request_options=request_options,
2284
+ omit=OMIT,
2285
+ )
2286
+ try:
2287
+ if 200 <= _response.status_code < 300:
2288
+ _data = typing.cast(
2289
+ GenerateResponse,
2290
+ parse_obj_as(
2291
+ type_=GenerateResponse, # type: ignore
2292
+ object_=_response.json(),
2293
+ ),
2294
+ )
2295
+ return AsyncHttpResponse(response=_response, data=_data)
2296
+ if _response.status_code == 400:
2297
+ raise BadRequestError(
2298
+ headers=dict(_response.headers),
2299
+ body=typing.cast(
2300
+ typing.Optional[typing.Any],
2301
+ parse_obj_as(
2302
+ type_=typing.Optional[typing.Any], # type: ignore
2303
+ object_=_response.json(),
2304
+ ),
2305
+ ),
2306
+ )
2307
+ if _response.status_code == 403:
2308
+ raise ForbiddenError(
2309
+ headers=dict(_response.headers),
2310
+ body=typing.cast(
2311
+ typing.Optional[typing.Any],
2312
+ parse_obj_as(
2313
+ type_=typing.Optional[typing.Any], # type: ignore
2314
+ object_=_response.json(),
2315
+ ),
2316
+ ),
2317
+ )
2318
+ if _response.status_code == 404:
2319
+ raise NotFoundError(
2320
+ headers=dict(_response.headers),
2321
+ body=typing.cast(
2322
+ typing.Optional[typing.Any],
2323
+ parse_obj_as(
2324
+ type_=typing.Optional[typing.Any], # type: ignore
2325
+ object_=_response.json(),
2326
+ ),
2327
+ ),
2328
+ )
2329
+ if _response.status_code == 500:
2330
+ raise InternalServerError(
2331
+ headers=dict(_response.headers),
2332
+ body=typing.cast(
2333
+ typing.Optional[typing.Any],
2334
+ parse_obj_as(
2335
+ type_=typing.Optional[typing.Any], # type: ignore
2336
+ object_=_response.json(),
2337
+ ),
2338
+ ),
2339
+ )
2340
+ _response_json = _response.json()
2341
+ except JSONDecodeError:
2342
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2343
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2344
+
2345
+ @contextlib.asynccontextmanager
2346
+ async def generate_stream(
2347
+ self,
2348
+ *,
2349
+ requests: typing.Sequence[GenerateRequest],
2350
+ deployment_id: typing.Optional[str] = OMIT,
2351
+ deployment_name: typing.Optional[str] = OMIT,
2352
+ options: typing.Optional[GenerateOptionsRequest] = OMIT,
2353
+ request_options: typing.Optional[RequestOptions] = None,
2354
+ ) -> typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[GenerateStreamResponse]]]:
2355
+ """
2356
+ Generate a stream of completions using a previously defined deployment.
2357
+
2358
+ Important: This endpoint is DEPRECATED and has been superseded by
2359
+ [execute-prompt-stream](/api-reference/api-reference/execute-prompt-stream).
2360
+
2361
+ Parameters
2362
+ ----------
2363
+ requests : typing.Sequence[GenerateRequest]
2364
+ The generation request to make. Bulk requests are no longer supported, this field must be an array of length 1.
2365
+
2366
+ deployment_id : typing.Optional[str]
2367
+ The ID of the deployment. Must provide either this or deployment_name.
2368
+
2369
+ deployment_name : typing.Optional[str]
2370
+ The name of the deployment. Must provide either this or deployment_id.
2371
+
2372
+ options : typing.Optional[GenerateOptionsRequest]
2373
+ Additional configuration that can be used to control what's included in the response.
2374
+
2375
+ request_options : typing.Optional[RequestOptions]
2376
+ Request-specific configuration.
2377
+
2378
+ Yields
2379
+ ------
2380
+ typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[GenerateStreamResponse]]]
2381
+
2382
+ """
2383
+ async with self._client_wrapper.httpx_client.stream(
2384
+ "v1/generate-stream",
2385
+ base_url=self._client_wrapper.get_environment().predict,
2386
+ method="POST",
2387
+ json={
2388
+ "deployment_id": deployment_id,
2389
+ "deployment_name": deployment_name,
2390
+ "requests": convert_and_respect_annotation_metadata(
2391
+ object_=requests, annotation=typing.Sequence[GenerateRequest], direction="write"
2392
+ ),
2393
+ "options": convert_and_respect_annotation_metadata(
2394
+ object_=options, annotation=typing.Optional[GenerateOptionsRequest], direction="write"
2395
+ ),
2396
+ },
2397
+ headers={
2398
+ "content-type": "application/json",
2399
+ },
2400
+ request_options=request_options,
2401
+ omit=OMIT,
2402
+ ) as _response:
2403
+
2404
+ async def _stream() -> AsyncHttpResponse[typing.AsyncIterator[GenerateStreamResponse]]:
2405
+ try:
2406
+ if 200 <= _response.status_code < 300:
2407
+
2408
+ async def _iter():
2409
+ async for _text in _response.aiter_lines():
2410
+ try:
2411
+ if len(_text) == 0:
2412
+ continue
2413
+ yield typing.cast(
2414
+ GenerateStreamResponse,
2415
+ parse_obj_as(
2416
+ type_=GenerateStreamResponse, # type: ignore
2417
+ object_=json.loads(_text),
2418
+ ),
2419
+ )
2420
+ except Exception:
2421
+ pass
2422
+ return
2423
+
2424
+ return AsyncHttpResponse(response=_response, data=_iter())
2425
+ await _response.aread()
2426
+ if _response.status_code == 400:
2427
+ raise BadRequestError(
2428
+ headers=dict(_response.headers),
2429
+ body=typing.cast(
2430
+ typing.Optional[typing.Any],
2431
+ parse_obj_as(
2432
+ type_=typing.Optional[typing.Any], # type: ignore
2433
+ object_=_response.json(),
2434
+ ),
2435
+ ),
2436
+ )
2437
+ if _response.status_code == 403:
2438
+ raise ForbiddenError(
2439
+ headers=dict(_response.headers),
2440
+ body=typing.cast(
2441
+ typing.Optional[typing.Any],
2442
+ parse_obj_as(
2443
+ type_=typing.Optional[typing.Any], # type: ignore
2444
+ object_=_response.json(),
2445
+ ),
2446
+ ),
2447
+ )
2448
+ if _response.status_code == 404:
2449
+ raise NotFoundError(
2450
+ headers=dict(_response.headers),
2451
+ body=typing.cast(
2452
+ typing.Optional[typing.Any],
2453
+ parse_obj_as(
2454
+ type_=typing.Optional[typing.Any], # type: ignore
2455
+ object_=_response.json(),
2456
+ ),
2457
+ ),
2458
+ )
2459
+ if _response.status_code == 500:
2460
+ raise InternalServerError(
2461
+ headers=dict(_response.headers),
2462
+ body=typing.cast(
2463
+ typing.Optional[typing.Any],
2464
+ parse_obj_as(
2465
+ type_=typing.Optional[typing.Any], # type: ignore
2466
+ object_=_response.json(),
2467
+ ),
2468
+ ),
2469
+ )
2470
+ _response_json = _response.json()
2471
+ except JSONDecodeError:
2472
+ raise ApiError(
2473
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.text
2474
+ )
2475
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2476
+
2477
+ yield await _stream()
2478
+
2479
+ async def search(
2480
+ self,
2481
+ *,
2482
+ query: str,
2483
+ index_id: typing.Optional[str] = OMIT,
2484
+ index_name: typing.Optional[str] = OMIT,
2485
+ options: typing.Optional[SearchRequestOptionsRequest] = OMIT,
2486
+ document_index: typing.Optional[str] = OMIT,
2487
+ request_options: typing.Optional[RequestOptions] = None,
2488
+ ) -> AsyncHttpResponse[SearchResponse]:
2489
+ """
2490
+ Perform a search against a document index.
2491
+
2492
+ Parameters
2493
+ ----------
2494
+ query : str
2495
+ The query to search for.
2496
+
2497
+ index_id : typing.Optional[str]
2498
+ The ID of the index to search against. Must provide either this, index_name or document_index.
2499
+
2500
+ index_name : typing.Optional[str]
2501
+ The name of the index to search against. Must provide either this, index_id or document_index.
2502
+
2503
+ options : typing.Optional[SearchRequestOptionsRequest]
2504
+ Configuration options for the search.
2505
+
2506
+ document_index : typing.Optional[str]
2507
+ Either the index name or index ID to search against. Must provide either this, index_id or index_name.
2508
+
2509
+ request_options : typing.Optional[RequestOptions]
2510
+ Request-specific configuration.
2511
+
2512
+ Returns
2513
+ -------
2514
+ AsyncHttpResponse[SearchResponse]
2515
+
2516
+ """
2517
+ _response = await self._client_wrapper.httpx_client.request(
2518
+ "v1/search",
2519
+ base_url=self._client_wrapper.get_environment().predict,
2520
+ method="POST",
2521
+ json={
2522
+ "index_id": index_id,
2523
+ "index_name": index_name,
2524
+ "query": query,
2525
+ "options": convert_and_respect_annotation_metadata(
2526
+ object_=options, annotation=typing.Optional[SearchRequestOptionsRequest], direction="write"
2527
+ ),
2528
+ "document_index": document_index,
2529
+ },
2530
+ headers={
2531
+ "content-type": "application/json",
2532
+ },
2533
+ request_options=request_options,
2534
+ omit=OMIT,
2535
+ )
2536
+ try:
2537
+ if 200 <= _response.status_code < 300:
2538
+ _data = typing.cast(
2539
+ SearchResponse,
2540
+ parse_obj_as(
2541
+ type_=SearchResponse, # type: ignore
2542
+ object_=_response.json(),
2543
+ ),
2544
+ )
2545
+ return AsyncHttpResponse(response=_response, data=_data)
2546
+ if _response.status_code == 400:
2547
+ raise BadRequestError(
2548
+ headers=dict(_response.headers),
2549
+ body=typing.cast(
2550
+ typing.Optional[typing.Any],
2551
+ parse_obj_as(
2552
+ type_=typing.Optional[typing.Any], # type: ignore
2553
+ object_=_response.json(),
2554
+ ),
2555
+ ),
2556
+ )
2557
+ if _response.status_code == 404:
2558
+ raise NotFoundError(
2559
+ headers=dict(_response.headers),
2560
+ body=typing.cast(
2561
+ typing.Optional[typing.Any],
2562
+ parse_obj_as(
2563
+ type_=typing.Optional[typing.Any], # type: ignore
2564
+ object_=_response.json(),
2565
+ ),
2566
+ ),
2567
+ )
2568
+ if _response.status_code == 500:
2569
+ raise InternalServerError(
2570
+ headers=dict(_response.headers),
2571
+ body=typing.cast(
2572
+ typing.Optional[typing.Any],
2573
+ parse_obj_as(
2574
+ type_=typing.Optional[typing.Any], # type: ignore
2575
+ object_=_response.json(),
2576
+ ),
2577
+ ),
2578
+ )
2579
+ _response_json = _response.json()
2580
+ except JSONDecodeError:
2581
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2582
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2583
+
2584
+ async def submit_completion_actuals(
2585
+ self,
2586
+ *,
2587
+ actuals: typing.Sequence[SubmitCompletionActualRequest],
2588
+ deployment_id: typing.Optional[str] = OMIT,
2589
+ deployment_name: typing.Optional[str] = OMIT,
2590
+ request_options: typing.Optional[RequestOptions] = None,
2591
+ ) -> AsyncHttpResponse[None]:
2592
+ """
2593
+ Used to submit feedback regarding the quality of previously generated completions.
2594
+
2595
+ Parameters
2596
+ ----------
2597
+ actuals : typing.Sequence[SubmitCompletionActualRequest]
2598
+ Feedback regarding the quality of previously generated completions
2599
+
2600
+ deployment_id : typing.Optional[str]
2601
+ The ID of the deployment. Must provide either this or deployment_name.
2602
+
2603
+ deployment_name : typing.Optional[str]
2604
+ The name of the deployment. Must provide either this or deployment_id.
2605
+
2606
+ request_options : typing.Optional[RequestOptions]
2607
+ Request-specific configuration.
2608
+
2609
+ Returns
2610
+ -------
2611
+ AsyncHttpResponse[None]
2612
+ """
2613
+ _response = await self._client_wrapper.httpx_client.request(
2614
+ "v1/submit-completion-actuals",
2615
+ base_url=self._client_wrapper.get_environment().predict,
2616
+ method="POST",
2617
+ json={
2618
+ "deployment_id": deployment_id,
2619
+ "deployment_name": deployment_name,
2620
+ "actuals": convert_and_respect_annotation_metadata(
2621
+ object_=actuals, annotation=typing.Sequence[SubmitCompletionActualRequest], direction="write"
2622
+ ),
2623
+ },
2624
+ headers={
2625
+ "content-type": "application/json",
2626
+ },
2627
+ request_options=request_options,
2628
+ omit=OMIT,
2629
+ )
2630
+ try:
2631
+ if 200 <= _response.status_code < 300:
2632
+ return AsyncHttpResponse(response=_response, data=None)
2633
+ if _response.status_code == 400:
2634
+ raise BadRequestError(
2635
+ headers=dict(_response.headers),
2636
+ body=typing.cast(
2637
+ typing.Optional[typing.Any],
2638
+ parse_obj_as(
2639
+ type_=typing.Optional[typing.Any], # type: ignore
2640
+ object_=_response.json(),
2641
+ ),
2642
+ ),
2643
+ )
2644
+ if _response.status_code == 404:
2645
+ raise NotFoundError(
2646
+ headers=dict(_response.headers),
2647
+ body=typing.cast(
2648
+ typing.Optional[typing.Any],
2649
+ parse_obj_as(
2650
+ type_=typing.Optional[typing.Any], # type: ignore
2651
+ object_=_response.json(),
2652
+ ),
2653
+ ),
2654
+ )
2655
+ if _response.status_code == 500:
2656
+ raise InternalServerError(
2657
+ headers=dict(_response.headers),
2658
+ body=typing.cast(
2659
+ typing.Optional[typing.Any],
2660
+ parse_obj_as(
2661
+ type_=typing.Optional[typing.Any], # type: ignore
2662
+ object_=_response.json(),
2663
+ ),
2664
+ ),
2665
+ )
2666
+ _response_json = _response.json()
2667
+ except JSONDecodeError:
2668
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2669
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2670
+
2671
+ async def submit_workflow_execution_actuals(
2672
+ self,
2673
+ *,
2674
+ actuals: typing.Sequence[SubmitWorkflowExecutionActualRequest],
2675
+ execution_id: typing.Optional[str] = OMIT,
2676
+ external_id: typing.Optional[str] = OMIT,
2677
+ request_options: typing.Optional[RequestOptions] = None,
2678
+ ) -> AsyncHttpResponse[None]:
2679
+ """
2680
+ Used to submit feedback regarding the quality of previous workflow execution and its outputs.
2681
+
2682
+ **Note:** Uses a base url of `https://predict.vellum.ai`.
2683
+
2684
+ Parameters
2685
+ ----------
2686
+ actuals : typing.Sequence[SubmitWorkflowExecutionActualRequest]
2687
+ Feedback regarding the quality of an output on a previously executed workflow.
2688
+
2689
+ execution_id : typing.Optional[str]
2690
+ The Vellum-generated ID of a previously executed workflow. Must provide either this or external_id.
2691
+
2692
+ external_id : typing.Optional[str]
2693
+ The external ID that was originally provided by when executing the workflow, if applicable, that you'd now like to submit actuals for. Must provide either this or execution_id.
2694
+
2695
+ request_options : typing.Optional[RequestOptions]
2696
+ Request-specific configuration.
2697
+
2698
+ Returns
2699
+ -------
2700
+ AsyncHttpResponse[None]
2701
+ """
2702
+ _response = await self._client_wrapper.httpx_client.request(
2703
+ "v1/submit-workflow-execution-actuals",
2704
+ base_url=self._client_wrapper.get_environment().predict,
2705
+ method="POST",
2706
+ json={
2707
+ "actuals": convert_and_respect_annotation_metadata(
2708
+ object_=actuals, annotation=typing.Sequence[SubmitWorkflowExecutionActualRequest], direction="write"
2709
+ ),
2710
+ "execution_id": execution_id,
2711
+ "external_id": external_id,
2712
+ },
2713
+ headers={
2714
+ "content-type": "application/json",
2715
+ },
2716
+ request_options=request_options,
2717
+ omit=OMIT,
2718
+ )
2719
+ try:
2720
+ if 200 <= _response.status_code < 300:
2721
+ return AsyncHttpResponse(response=_response, data=None)
2722
+ _response_json = _response.json()
2723
+ except JSONDecodeError:
2724
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2725
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)