c63a5cfe-b235-4fbe-8bbb-82a9e02a482a-python 0.1.0a4__py3-none-any.whl → 0.1.0a5__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.
Files changed (244) hide show
  1. {c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a4.dist-info → c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a5.dist-info}/METADATA +63 -38
  2. c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a5.dist-info/RECORD +230 -0
  3. {gradientai → do_gradientai}/__init__.py +2 -2
  4. {gradientai → do_gradientai}/_base_client.py +1 -1
  5. {gradientai → do_gradientai}/_client.py +73 -71
  6. {gradientai → do_gradientai}/_response.py +4 -4
  7. {gradientai → do_gradientai}/_types.py +1 -1
  8. {gradientai → do_gradientai}/_utils/_logs.py +2 -2
  9. {gradientai → do_gradientai}/_utils/_resources_proxy.py +4 -4
  10. do_gradientai/_version.py +4 -0
  11. {gradientai → do_gradientai}/resources/__init__.py +14 -28
  12. do_gradientai/resources/agents/__init__.py +145 -0
  13. {gradientai → do_gradientai}/resources/agents/agents.py +148 -20
  14. {gradientai/resources/regions → do_gradientai/resources/agents}/evaluation_datasets.py +3 -3
  15. do_gradientai/resources/agents/evaluation_metrics/__init__.py +33 -0
  16. do_gradientai/resources/agents/evaluation_metrics/evaluation_metrics.py +177 -0
  17. do_gradientai/resources/agents/evaluation_metrics/workspaces/__init__.py +33 -0
  18. do_gradientai/resources/agents/evaluation_metrics/workspaces/agents.py +324 -0
  19. do_gradientai/resources/agents/evaluation_metrics/workspaces/workspaces.py +654 -0
  20. {gradientai/resources/regions/evaluation_runs → do_gradientai/resources/agents}/evaluation_runs.py +197 -47
  21. {gradientai/resources/regions → do_gradientai/resources/agents}/evaluation_test_cases.py +30 -9
  22. gradientai/resources/agents/child_agents.py → do_gradientai/resources/agents/routes.py +64 -64
  23. {gradientai → do_gradientai}/resources/chat/completions.py +20 -2
  24. {gradientai → do_gradientai}/resources/inference/__init__.py +0 -14
  25. {gradientai → do_gradientai}/resources/inference/inference.py +0 -32
  26. {gradientai → do_gradientai}/resources/knowledge_bases/__init__.py +14 -0
  27. {gradientai/resources → do_gradientai/resources/knowledge_bases}/indexing_jobs.py +16 -12
  28. {gradientai → do_gradientai}/resources/knowledge_bases/knowledge_bases.py +32 -0
  29. {gradientai/resources/providers → do_gradientai/resources/model_providers}/__init__.py +13 -13
  30. {gradientai/resources/providers → do_gradientai/resources/model_providers}/anthropic/keys.py +12 -7
  31. gradientai/resources/providers/providers.py → do_gradientai/resources/model_providers/model_providers.py +31 -31
  32. {gradientai/resources/providers → do_gradientai/resources/model_providers}/openai/keys.py +12 -7
  33. {gradientai/resources/inference → do_gradientai/resources}/models.py +7 -7
  34. do_gradientai/resources/regions.py +195 -0
  35. {gradientai → do_gradientai}/types/__init__.py +2 -17
  36. {gradientai → do_gradientai}/types/agent_list_response.py +2 -2
  37. do_gradientai/types/agents/__init__.py +67 -0
  38. {gradientai/types → do_gradientai/types/agents}/api_evaluation_metric.py +1 -1
  39. {gradientai/types/regions/evaluation_runs → do_gradientai/types/agents}/api_evaluation_metric_result.py +1 -1
  40. gradientai/types/regions/evaluation_runs/api_prompt.py → do_gradientai/types/agents/api_evaluation_prompt.py +3 -3
  41. {gradientai/types/regions/evaluation_runs → do_gradientai/types/agents}/api_evaluation_run.py +13 -1
  42. {gradientai/types/regions → do_gradientai/types/agents}/api_evaluation_test_case.py +1 -1
  43. {gradientai → do_gradientai}/types/agents/api_key_list_response.py +2 -2
  44. gradientai/types/region_list_evaluation_metrics_response.py → do_gradientai/types/agents/evaluation_metric_list_response.py +3 -3
  45. do_gradientai/types/agents/evaluation_metrics/__init__.py +14 -0
  46. do_gradientai/types/agents/evaluation_metrics/workspace_create_params.py +16 -0
  47. do_gradientai/types/agents/evaluation_metrics/workspace_create_response.py +16 -0
  48. do_gradientai/types/agents/evaluation_metrics/workspace_delete_response.py +11 -0
  49. do_gradientai/types/agents/evaluation_metrics/workspace_list_evaluation_test_cases_response.py +12 -0
  50. do_gradientai/types/agents/evaluation_metrics/workspace_list_response.py +16 -0
  51. do_gradientai/types/agents/evaluation_metrics/workspace_retrieve_response.py +16 -0
  52. do_gradientai/types/agents/evaluation_metrics/workspace_update_params.py +18 -0
  53. do_gradientai/types/agents/evaluation_metrics/workspace_update_response.py +16 -0
  54. do_gradientai/types/agents/evaluation_metrics/workspaces/__init__.py +8 -0
  55. do_gradientai/types/agents/evaluation_metrics/workspaces/agent_list_params.py +26 -0
  56. do_gradientai/types/agents/evaluation_metrics/workspaces/agent_list_response.py +22 -0
  57. do_gradientai/types/agents/evaluation_metrics/workspaces/agent_move_params.py +16 -0
  58. do_gradientai/types/agents/evaluation_metrics/workspaces/agent_move_response.py +16 -0
  59. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_run_create_params.py +3 -2
  60. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_run_create_response.py +2 -2
  61. gradientai/types/regions/evaluation_runs/result_retrieve_response.py → do_gradientai/types/agents/evaluation_run_list_results_response.py +5 -5
  62. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_run_retrieve_response.py +1 -1
  63. do_gradientai/types/agents/evaluation_run_retrieve_results_response.py +12 -0
  64. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_test_case_list_evaluation_runs_response.py +1 -1
  65. do_gradientai/types/agents/evaluation_test_case_retrieve_params.py +12 -0
  66. gradientai/types/agents/child_agent_add_params.py → do_gradientai/types/agents/route_add_params.py +2 -2
  67. gradientai/types/agents/child_agent_add_response.py → do_gradientai/types/agents/route_add_response.py +2 -2
  68. gradientai/types/agents/child_agent_delete_response.py → do_gradientai/types/agents/route_delete_response.py +2 -2
  69. gradientai/types/agents/child_agent_update_params.py → do_gradientai/types/agents/route_update_params.py +2 -2
  70. gradientai/types/agents/child_agent_update_response.py → do_gradientai/types/agents/route_update_response.py +2 -2
  71. gradientai/types/agents/child_agent_view_response.py → do_gradientai/types/agents/route_view_response.py +2 -2
  72. {gradientai → do_gradientai}/types/agents/version_list_response.py +2 -2
  73. {gradientai → do_gradientai}/types/api_knowledge_base.py +1 -1
  74. {gradientai → do_gradientai}/types/api_workspace.py +1 -1
  75. {gradientai → do_gradientai}/types/inference/__init__.py +0 -2
  76. {gradientai → do_gradientai}/types/inference/api_key_list_response.py +2 -2
  77. {gradientai → do_gradientai}/types/knowledge_base_list_response.py +2 -2
  78. {gradientai → do_gradientai}/types/knowledge_bases/__init__.py +12 -0
  79. gradientai/types/indexing_job_retrieve_data_sources_response.py → do_gradientai/types/knowledge_bases/api_indexed_data_source.py +4 -8
  80. {gradientai/types → do_gradientai/types/knowledge_bases}/api_indexing_job.py +13 -1
  81. {gradientai → do_gradientai}/types/knowledge_bases/api_knowledge_base_data_source.py +4 -1
  82. {gradientai → do_gradientai}/types/knowledge_bases/data_source_list_response.py +2 -2
  83. {gradientai/types → do_gradientai/types/knowledge_bases}/indexing_job_create_response.py +1 -1
  84. {gradientai/types → do_gradientai/types/knowledge_bases}/indexing_job_list_response.py +3 -3
  85. do_gradientai/types/knowledge_bases/indexing_job_retrieve_data_sources_response.py +12 -0
  86. {gradientai/types → do_gradientai/types/knowledge_bases}/indexing_job_retrieve_response.py +1 -1
  87. {gradientai/types → do_gradientai/types/knowledge_bases}/indexing_job_update_cancel_params.py +1 -1
  88. {gradientai/types → do_gradientai/types/knowledge_bases}/indexing_job_update_cancel_response.py +1 -1
  89. {gradientai/types/inference → do_gradientai/types}/model.py +1 -1
  90. {gradientai/types/inference → do_gradientai/types}/model_list_response.py +1 -1
  91. {gradientai/types/providers → do_gradientai/types/model_providers}/anthropic/key_list_agents_response.py +2 -2
  92. {gradientai/types/providers → do_gradientai/types/model_providers}/anthropic/key_list_response.py +2 -2
  93. {gradientai/types/providers → do_gradientai/types/model_providers}/openai/key_list_response.py +2 -2
  94. {gradientai/types/providers → do_gradientai/types/model_providers}/openai/key_retrieve_agents_response.py +2 -2
  95. gradientai/_version.py → do_gradientai/types/shared/__init__.py +2 -2
  96. c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a4.dist-info/RECORD +0 -217
  97. gradientai/resources/agents/__init__.py +0 -89
  98. gradientai/resources/models.py +0 -254
  99. gradientai/resources/regions/__init__.py +0 -61
  100. gradientai/resources/regions/evaluation_runs/__init__.py +0 -33
  101. gradientai/resources/regions/evaluation_runs/results.py +0 -264
  102. gradientai/resources/regions/regions.py +0 -352
  103. gradientai/types/agents/__init__.py +0 -31
  104. gradientai/types/api_model.py +0 -32
  105. gradientai/types/model_list_params.py +0 -42
  106. gradientai/types/model_list_response.py +0 -18
  107. gradientai/types/regions/__init__.py +0 -32
  108. gradientai/types/regions/evaluation_runs/__init__.py +0 -9
  109. gradientai/types/regions/evaluation_runs/result_retrieve_prompt_response.py +0 -12
  110. {c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a4.dist-info → c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a5.dist-info}/WHEEL +0 -0
  111. {c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a4.dist-info → c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a5.dist-info}/licenses/LICENSE +0 -0
  112. {gradientai → do_gradientai}/_compat.py +0 -0
  113. {gradientai → do_gradientai}/_constants.py +0 -0
  114. {gradientai → do_gradientai}/_exceptions.py +0 -0
  115. {gradientai → do_gradientai}/_files.py +0 -0
  116. {gradientai → do_gradientai}/_models.py +0 -0
  117. {gradientai → do_gradientai}/_qs.py +0 -0
  118. {gradientai → do_gradientai}/_resource.py +0 -0
  119. {gradientai → do_gradientai}/_streaming.py +0 -0
  120. {gradientai → do_gradientai}/_utils/__init__.py +0 -0
  121. {gradientai → do_gradientai}/_utils/_proxy.py +0 -0
  122. {gradientai → do_gradientai}/_utils/_reflection.py +0 -0
  123. {gradientai → do_gradientai}/_utils/_streams.py +0 -0
  124. {gradientai → do_gradientai}/_utils/_sync.py +0 -0
  125. {gradientai → do_gradientai}/_utils/_transform.py +0 -0
  126. {gradientai → do_gradientai}/_utils/_typing.py +0 -0
  127. {gradientai → do_gradientai}/_utils/_utils.py +0 -0
  128. {gradientai → do_gradientai}/lib/.keep +0 -0
  129. {gradientai → do_gradientai}/py.typed +0 -0
  130. {gradientai → do_gradientai}/resources/agents/api_keys.py +0 -0
  131. {gradientai → do_gradientai}/resources/agents/functions.py +0 -0
  132. {gradientai → do_gradientai}/resources/agents/knowledge_bases.py +0 -0
  133. {gradientai → do_gradientai}/resources/agents/versions.py +0 -0
  134. {gradientai → do_gradientai}/resources/chat/__init__.py +0 -0
  135. {gradientai → do_gradientai}/resources/chat/chat.py +0 -0
  136. {gradientai → do_gradientai}/resources/inference/api_keys.py +0 -0
  137. {gradientai → do_gradientai}/resources/knowledge_bases/data_sources.py +0 -0
  138. {gradientai/resources/providers → do_gradientai/resources/model_providers}/anthropic/__init__.py +0 -0
  139. {gradientai/resources/providers → do_gradientai/resources/model_providers}/anthropic/anthropic.py +0 -0
  140. {gradientai/resources/providers → do_gradientai/resources/model_providers}/openai/__init__.py +0 -0
  141. {gradientai/resources/providers → do_gradientai/resources/model_providers}/openai/openai.py +0 -0
  142. {gradientai → do_gradientai}/types/agent_create_params.py +0 -0
  143. {gradientai → do_gradientai}/types/agent_create_response.py +0 -0
  144. {gradientai → do_gradientai}/types/agent_delete_response.py +0 -0
  145. {gradientai → do_gradientai}/types/agent_list_params.py +0 -0
  146. {gradientai → do_gradientai}/types/agent_retrieve_response.py +0 -0
  147. {gradientai → do_gradientai}/types/agent_update_params.py +0 -0
  148. {gradientai → do_gradientai}/types/agent_update_response.py +0 -0
  149. {gradientai → do_gradientai}/types/agent_update_status_params.py +0 -0
  150. {gradientai → do_gradientai}/types/agent_update_status_response.py +0 -0
  151. {gradientai → do_gradientai}/types/agents/api_key_create_params.py +0 -0
  152. {gradientai → do_gradientai}/types/agents/api_key_create_response.py +0 -0
  153. {gradientai → do_gradientai}/types/agents/api_key_delete_response.py +0 -0
  154. {gradientai → do_gradientai}/types/agents/api_key_list_params.py +0 -0
  155. {gradientai → do_gradientai}/types/agents/api_key_regenerate_response.py +0 -0
  156. {gradientai → do_gradientai}/types/agents/api_key_update_params.py +0 -0
  157. {gradientai → do_gradientai}/types/agents/api_key_update_response.py +0 -0
  158. {gradientai → do_gradientai}/types/agents/api_link_knowledge_base_output.py +0 -0
  159. {gradientai/types/regions → do_gradientai/types/agents}/api_star_metric.py +0 -0
  160. {gradientai/types/regions → do_gradientai/types/agents}/api_star_metric_param.py +0 -0
  161. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_dataset_create_file_upload_presigned_urls_params.py +0 -0
  162. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_dataset_create_file_upload_presigned_urls_response.py +0 -0
  163. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_dataset_create_params.py +0 -0
  164. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_dataset_create_response.py +0 -0
  165. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_test_case_create_params.py +0 -0
  166. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_test_case_create_response.py +0 -0
  167. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_test_case_list_evaluation_runs_params.py +0 -0
  168. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_test_case_list_response.py +0 -0
  169. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_test_case_retrieve_response.py +0 -0
  170. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_test_case_update_params.py +0 -0
  171. {gradientai/types/regions → do_gradientai/types/agents}/evaluation_test_case_update_response.py +0 -0
  172. {gradientai → do_gradientai}/types/agents/function_create_params.py +0 -0
  173. {gradientai → do_gradientai}/types/agents/function_create_response.py +0 -0
  174. {gradientai → do_gradientai}/types/agents/function_delete_response.py +0 -0
  175. {gradientai → do_gradientai}/types/agents/function_update_params.py +0 -0
  176. {gradientai → do_gradientai}/types/agents/function_update_response.py +0 -0
  177. {gradientai → do_gradientai}/types/agents/knowledge_base_detach_response.py +0 -0
  178. {gradientai → do_gradientai}/types/agents/version_list_params.py +0 -0
  179. {gradientai → do_gradientai}/types/agents/version_update_params.py +0 -0
  180. {gradientai → do_gradientai}/types/agents/version_update_response.py +0 -0
  181. {gradientai → do_gradientai}/types/api_agent.py +0 -0
  182. {gradientai → do_gradientai}/types/api_agent_api_key_info.py +0 -0
  183. {gradientai → do_gradientai}/types/api_agent_model.py +0 -0
  184. {gradientai → do_gradientai}/types/api_agreement.py +0 -0
  185. {gradientai → do_gradientai}/types/api_anthropic_api_key_info.py +0 -0
  186. {gradientai → do_gradientai}/types/api_deployment_visibility.py +0 -0
  187. {gradientai → do_gradientai}/types/api_model_version.py +0 -0
  188. {gradientai → do_gradientai}/types/api_openai_api_key_info.py +0 -0
  189. {gradientai → do_gradientai}/types/api_retrieval_method.py +0 -0
  190. {gradientai → do_gradientai}/types/chat/__init__.py +0 -0
  191. {gradientai → do_gradientai}/types/chat/chat_completion_token_logprob.py +0 -0
  192. {gradientai → do_gradientai}/types/chat/completion_create_params.py +0 -0
  193. {gradientai → do_gradientai}/types/chat/completion_create_response.py +0 -0
  194. {gradientai → do_gradientai}/types/inference/api_key_create_params.py +0 -0
  195. {gradientai → do_gradientai}/types/inference/api_key_create_response.py +0 -0
  196. {gradientai → do_gradientai}/types/inference/api_key_delete_response.py +0 -0
  197. {gradientai → do_gradientai}/types/inference/api_key_list_params.py +0 -0
  198. {gradientai → do_gradientai}/types/inference/api_key_update_params.py +0 -0
  199. {gradientai → do_gradientai}/types/inference/api_key_update_regenerate_response.py +0 -0
  200. {gradientai → do_gradientai}/types/inference/api_key_update_response.py +0 -0
  201. {gradientai → do_gradientai}/types/inference/api_model_api_key_info.py +0 -0
  202. {gradientai → do_gradientai}/types/knowledge_base_create_params.py +0 -0
  203. {gradientai → do_gradientai}/types/knowledge_base_create_response.py +0 -0
  204. {gradientai → do_gradientai}/types/knowledge_base_delete_response.py +0 -0
  205. {gradientai → do_gradientai}/types/knowledge_base_list_params.py +0 -0
  206. {gradientai → do_gradientai}/types/knowledge_base_retrieve_response.py +0 -0
  207. {gradientai → do_gradientai}/types/knowledge_base_update_params.py +0 -0
  208. {gradientai → do_gradientai}/types/knowledge_base_update_response.py +0 -0
  209. {gradientai → do_gradientai}/types/knowledge_bases/api_file_upload_data_source.py +0 -0
  210. {gradientai → do_gradientai}/types/knowledge_bases/api_file_upload_data_source_param.py +0 -0
  211. {gradientai → do_gradientai}/types/knowledge_bases/api_spaces_data_source.py +0 -0
  212. {gradientai → do_gradientai}/types/knowledge_bases/api_spaces_data_source_param.py +0 -0
  213. {gradientai → do_gradientai}/types/knowledge_bases/api_web_crawler_data_source.py +0 -0
  214. {gradientai → do_gradientai}/types/knowledge_bases/api_web_crawler_data_source_param.py +0 -0
  215. {gradientai → do_gradientai}/types/knowledge_bases/aws_data_source_param.py +0 -0
  216. {gradientai → do_gradientai}/types/knowledge_bases/data_source_create_params.py +0 -0
  217. {gradientai → do_gradientai}/types/knowledge_bases/data_source_create_response.py +0 -0
  218. {gradientai → do_gradientai}/types/knowledge_bases/data_source_delete_response.py +0 -0
  219. {gradientai → do_gradientai}/types/knowledge_bases/data_source_list_params.py +0 -0
  220. {gradientai/types → do_gradientai/types/knowledge_bases}/indexing_job_create_params.py +0 -0
  221. {gradientai/types → do_gradientai/types/knowledge_bases}/indexing_job_list_params.py +0 -0
  222. {gradientai/types/providers → do_gradientai/types/model_providers}/__init__.py +0 -0
  223. {gradientai/types/providers → do_gradientai/types/model_providers}/anthropic/__init__.py +0 -0
  224. {gradientai/types/providers → do_gradientai/types/model_providers}/anthropic/key_create_params.py +0 -0
  225. {gradientai/types/providers → do_gradientai/types/model_providers}/anthropic/key_create_response.py +0 -0
  226. {gradientai/types/providers → do_gradientai/types/model_providers}/anthropic/key_delete_response.py +0 -0
  227. {gradientai/types/providers → do_gradientai/types/model_providers}/anthropic/key_list_agents_params.py +0 -0
  228. {gradientai/types/providers → do_gradientai/types/model_providers}/anthropic/key_list_params.py +0 -0
  229. {gradientai/types/providers → do_gradientai/types/model_providers}/anthropic/key_retrieve_response.py +0 -0
  230. {gradientai/types/providers → do_gradientai/types/model_providers}/anthropic/key_update_params.py +0 -0
  231. {gradientai/types/providers → do_gradientai/types/model_providers}/anthropic/key_update_response.py +0 -0
  232. {gradientai/types/providers → do_gradientai/types/model_providers}/openai/__init__.py +0 -0
  233. {gradientai/types/providers → do_gradientai/types/model_providers}/openai/key_create_params.py +0 -0
  234. {gradientai/types/providers → do_gradientai/types/model_providers}/openai/key_create_response.py +0 -0
  235. {gradientai/types/providers → do_gradientai/types/model_providers}/openai/key_delete_response.py +0 -0
  236. {gradientai/types/providers → do_gradientai/types/model_providers}/openai/key_list_params.py +0 -0
  237. {gradientai/types/providers → do_gradientai/types/model_providers}/openai/key_retrieve_agents_params.py +0 -0
  238. {gradientai/types/providers → do_gradientai/types/model_providers}/openai/key_retrieve_response.py +0 -0
  239. {gradientai/types/providers → do_gradientai/types/model_providers}/openai/key_update_params.py +0 -0
  240. {gradientai/types/providers → do_gradientai/types/model_providers}/openai/key_update_response.py +0 -0
  241. {gradientai → do_gradientai}/types/region_list_params.py +0 -0
  242. {gradientai → do_gradientai}/types/region_list_response.py +0 -0
  243. {gradientai/types/agents → do_gradientai/types/shared}/api_links.py +0 -0
  244. {gradientai/types/agents → do_gradientai/types/shared}/api_meta.py +0 -0
@@ -0,0 +1,654 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List
6
+
7
+ import httpx
8
+
9
+ from .agents import (
10
+ AgentsResource,
11
+ AsyncAgentsResource,
12
+ AgentsResourceWithRawResponse,
13
+ AsyncAgentsResourceWithRawResponse,
14
+ AgentsResourceWithStreamingResponse,
15
+ AsyncAgentsResourceWithStreamingResponse,
16
+ )
17
+ from ....._types import NOT_GIVEN, Body, Query, Headers, NotGiven
18
+ from ....._utils import maybe_transform, async_maybe_transform
19
+ from ....._compat import cached_property
20
+ from ....._resource import SyncAPIResource, AsyncAPIResource
21
+ from ....._response import (
22
+ to_raw_response_wrapper,
23
+ to_streamed_response_wrapper,
24
+ async_to_raw_response_wrapper,
25
+ async_to_streamed_response_wrapper,
26
+ )
27
+ from ....._base_client import make_request_options
28
+ from .....types.agents.evaluation_metrics import workspace_create_params, workspace_update_params
29
+ from .....types.agents.evaluation_metrics.workspace_list_response import WorkspaceListResponse
30
+ from .....types.agents.evaluation_metrics.workspace_create_response import WorkspaceCreateResponse
31
+ from .....types.agents.evaluation_metrics.workspace_delete_response import WorkspaceDeleteResponse
32
+ from .....types.agents.evaluation_metrics.workspace_update_response import WorkspaceUpdateResponse
33
+ from .....types.agents.evaluation_metrics.workspace_retrieve_response import WorkspaceRetrieveResponse
34
+ from .....types.agents.evaluation_metrics.workspace_list_evaluation_test_cases_response import (
35
+ WorkspaceListEvaluationTestCasesResponse,
36
+ )
37
+
38
+ __all__ = ["WorkspacesResource", "AsyncWorkspacesResource"]
39
+
40
+
41
+ class WorkspacesResource(SyncAPIResource):
42
+ @cached_property
43
+ def agents(self) -> AgentsResource:
44
+ return AgentsResource(self._client)
45
+
46
+ @cached_property
47
+ def with_raw_response(self) -> WorkspacesResourceWithRawResponse:
48
+ """
49
+ This property can be used as a prefix for any HTTP method call to return
50
+ the raw response object instead of the parsed content.
51
+
52
+ For more information, see https://www.github.com/digitalocean/gradientai-python#accessing-raw-response-data-eg-headers
53
+ """
54
+ return WorkspacesResourceWithRawResponse(self)
55
+
56
+ @cached_property
57
+ def with_streaming_response(self) -> WorkspacesResourceWithStreamingResponse:
58
+ """
59
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
60
+
61
+ For more information, see https://www.github.com/digitalocean/gradientai-python#with_streaming_response
62
+ """
63
+ return WorkspacesResourceWithStreamingResponse(self)
64
+
65
+ def create(
66
+ self,
67
+ *,
68
+ agent_uuids: List[str] | NotGiven = NOT_GIVEN,
69
+ description: str | NotGiven = NOT_GIVEN,
70
+ name: str | NotGiven = NOT_GIVEN,
71
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
72
+ # The extra values given here take precedence over values defined on the client or passed to this method.
73
+ extra_headers: Headers | None = None,
74
+ extra_query: Query | None = None,
75
+ extra_body: Body | None = None,
76
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
77
+ ) -> WorkspaceCreateResponse:
78
+ """To create a new workspace, send a POST request to `/v2/gen-ai/workspaces`.
79
+
80
+ The
81
+ response body contains a JSON object with the newly created workspace object.
82
+
83
+ Args:
84
+ extra_headers: Send extra headers
85
+
86
+ extra_query: Add additional query parameters to the request
87
+
88
+ extra_body: Add additional JSON properties to the request
89
+
90
+ timeout: Override the client-level default timeout for this request, in seconds
91
+ """
92
+ return self._post(
93
+ "/v2/gen-ai/workspaces"
94
+ if self._client._base_url_overridden
95
+ else "https://api.digitalocean.com/v2/gen-ai/workspaces",
96
+ body=maybe_transform(
97
+ {
98
+ "agent_uuids": agent_uuids,
99
+ "description": description,
100
+ "name": name,
101
+ },
102
+ workspace_create_params.WorkspaceCreateParams,
103
+ ),
104
+ options=make_request_options(
105
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
106
+ ),
107
+ cast_to=WorkspaceCreateResponse,
108
+ )
109
+
110
+ def retrieve(
111
+ self,
112
+ workspace_uuid: str,
113
+ *,
114
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
115
+ # The extra values given here take precedence over values defined on the client or passed to this method.
116
+ extra_headers: Headers | None = None,
117
+ extra_query: Query | None = None,
118
+ extra_body: Body | None = None,
119
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
120
+ ) -> WorkspaceRetrieveResponse:
121
+ """
122
+ To retrieve details of a workspace, GET request to
123
+ `/v2/gen-ai/workspaces/{workspace_uuid}`. The response body is a JSON object
124
+ containing the workspace.
125
+
126
+ Args:
127
+ extra_headers: Send extra headers
128
+
129
+ extra_query: Add additional query parameters to the request
130
+
131
+ extra_body: Add additional JSON properties to the request
132
+
133
+ timeout: Override the client-level default timeout for this request, in seconds
134
+ """
135
+ if not workspace_uuid:
136
+ raise ValueError(f"Expected a non-empty value for `workspace_uuid` but received {workspace_uuid!r}")
137
+ return self._get(
138
+ f"/v2/gen-ai/workspaces/{workspace_uuid}"
139
+ if self._client._base_url_overridden
140
+ else f"https://api.digitalocean.com/v2/gen-ai/workspaces/{workspace_uuid}",
141
+ options=make_request_options(
142
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
143
+ ),
144
+ cast_to=WorkspaceRetrieveResponse,
145
+ )
146
+
147
+ def update(
148
+ self,
149
+ path_workspace_uuid: str,
150
+ *,
151
+ description: str | NotGiven = NOT_GIVEN,
152
+ name: str | NotGiven = NOT_GIVEN,
153
+ body_workspace_uuid: str | NotGiven = NOT_GIVEN,
154
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
155
+ # The extra values given here take precedence over values defined on the client or passed to this method.
156
+ extra_headers: Headers | None = None,
157
+ extra_query: Query | None = None,
158
+ extra_body: Body | None = None,
159
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
160
+ ) -> WorkspaceUpdateResponse:
161
+ """
162
+ To update a workspace, send a PUT request to
163
+ `/v2/gen-ai/workspaces/{workspace_uuid}`. The response body is a JSON object
164
+ containing the workspace.
165
+
166
+ Args:
167
+ body_workspace_uuid: Workspace UUID.
168
+
169
+ extra_headers: Send extra headers
170
+
171
+ extra_query: Add additional query parameters to the request
172
+
173
+ extra_body: Add additional JSON properties to the request
174
+
175
+ timeout: Override the client-level default timeout for this request, in seconds
176
+ """
177
+ if not path_workspace_uuid:
178
+ raise ValueError(
179
+ f"Expected a non-empty value for `path_workspace_uuid` but received {path_workspace_uuid!r}"
180
+ )
181
+ return self._put(
182
+ f"/v2/gen-ai/workspaces/{path_workspace_uuid}"
183
+ if self._client._base_url_overridden
184
+ else f"https://api.digitalocean.com/v2/gen-ai/workspaces/{path_workspace_uuid}",
185
+ body=maybe_transform(
186
+ {
187
+ "description": description,
188
+ "name": name,
189
+ "body_workspace_uuid": body_workspace_uuid,
190
+ },
191
+ workspace_update_params.WorkspaceUpdateParams,
192
+ ),
193
+ options=make_request_options(
194
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
195
+ ),
196
+ cast_to=WorkspaceUpdateResponse,
197
+ )
198
+
199
+ def list(
200
+ self,
201
+ *,
202
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
203
+ # The extra values given here take precedence over values defined on the client or passed to this method.
204
+ extra_headers: Headers | None = None,
205
+ extra_query: Query | None = None,
206
+ extra_body: Body | None = None,
207
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
208
+ ) -> WorkspaceListResponse:
209
+ """To list all workspaces, send a GET request to `/v2/gen-ai/workspaces`."""
210
+ return self._get(
211
+ "/v2/gen-ai/workspaces"
212
+ if self._client._base_url_overridden
213
+ else "https://api.digitalocean.com/v2/gen-ai/workspaces",
214
+ options=make_request_options(
215
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
216
+ ),
217
+ cast_to=WorkspaceListResponse,
218
+ )
219
+
220
+ def delete(
221
+ self,
222
+ workspace_uuid: str,
223
+ *,
224
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
225
+ # The extra values given here take precedence over values defined on the client or passed to this method.
226
+ extra_headers: Headers | None = None,
227
+ extra_query: Query | None = None,
228
+ extra_body: Body | None = None,
229
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
230
+ ) -> WorkspaceDeleteResponse:
231
+ """
232
+ To delete a workspace, send a DELETE request to
233
+ `/v2/gen-ai/workspace/{workspace_uuid}`.
234
+
235
+ Args:
236
+ extra_headers: Send extra headers
237
+
238
+ extra_query: Add additional query parameters to the request
239
+
240
+ extra_body: Add additional JSON properties to the request
241
+
242
+ timeout: Override the client-level default timeout for this request, in seconds
243
+ """
244
+ if not workspace_uuid:
245
+ raise ValueError(f"Expected a non-empty value for `workspace_uuid` but received {workspace_uuid!r}")
246
+ return self._delete(
247
+ f"/v2/gen-ai/workspaces/{workspace_uuid}"
248
+ if self._client._base_url_overridden
249
+ else f"https://api.digitalocean.com/v2/gen-ai/workspaces/{workspace_uuid}",
250
+ options=make_request_options(
251
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
252
+ ),
253
+ cast_to=WorkspaceDeleteResponse,
254
+ )
255
+
256
+ def list_evaluation_test_cases(
257
+ self,
258
+ workspace_uuid: str,
259
+ *,
260
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
261
+ # The extra values given here take precedence over values defined on the client or passed to this method.
262
+ extra_headers: Headers | None = None,
263
+ extra_query: Query | None = None,
264
+ extra_body: Body | None = None,
265
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
266
+ ) -> WorkspaceListEvaluationTestCasesResponse:
267
+ """
268
+ To list all evaluation test cases by a workspace, send a GET request to
269
+ `/v2/gen-ai/workspaces/{workspace_uuid}/evaluation_test_cases`.
270
+
271
+ Args:
272
+ extra_headers: Send extra headers
273
+
274
+ extra_query: Add additional query parameters to the request
275
+
276
+ extra_body: Add additional JSON properties to the request
277
+
278
+ timeout: Override the client-level default timeout for this request, in seconds
279
+ """
280
+ if not workspace_uuid:
281
+ raise ValueError(f"Expected a non-empty value for `workspace_uuid` but received {workspace_uuid!r}")
282
+ return self._get(
283
+ f"/v2/gen-ai/workspaces/{workspace_uuid}/evaluation_test_cases"
284
+ if self._client._base_url_overridden
285
+ else f"https://api.digitalocean.com/v2/gen-ai/workspaces/{workspace_uuid}/evaluation_test_cases",
286
+ options=make_request_options(
287
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
288
+ ),
289
+ cast_to=WorkspaceListEvaluationTestCasesResponse,
290
+ )
291
+
292
+
293
+ class AsyncWorkspacesResource(AsyncAPIResource):
294
+ @cached_property
295
+ def agents(self) -> AsyncAgentsResource:
296
+ return AsyncAgentsResource(self._client)
297
+
298
+ @cached_property
299
+ def with_raw_response(self) -> AsyncWorkspacesResourceWithRawResponse:
300
+ """
301
+ This property can be used as a prefix for any HTTP method call to return
302
+ the raw response object instead of the parsed content.
303
+
304
+ For more information, see https://www.github.com/digitalocean/gradientai-python#accessing-raw-response-data-eg-headers
305
+ """
306
+ return AsyncWorkspacesResourceWithRawResponse(self)
307
+
308
+ @cached_property
309
+ def with_streaming_response(self) -> AsyncWorkspacesResourceWithStreamingResponse:
310
+ """
311
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
312
+
313
+ For more information, see https://www.github.com/digitalocean/gradientai-python#with_streaming_response
314
+ """
315
+ return AsyncWorkspacesResourceWithStreamingResponse(self)
316
+
317
+ async def create(
318
+ self,
319
+ *,
320
+ agent_uuids: List[str] | NotGiven = NOT_GIVEN,
321
+ description: str | NotGiven = NOT_GIVEN,
322
+ name: str | NotGiven = NOT_GIVEN,
323
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
324
+ # The extra values given here take precedence over values defined on the client or passed to this method.
325
+ extra_headers: Headers | None = None,
326
+ extra_query: Query | None = None,
327
+ extra_body: Body | None = None,
328
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
329
+ ) -> WorkspaceCreateResponse:
330
+ """To create a new workspace, send a POST request to `/v2/gen-ai/workspaces`.
331
+
332
+ The
333
+ response body contains a JSON object with the newly created workspace object.
334
+
335
+ Args:
336
+ extra_headers: Send extra headers
337
+
338
+ extra_query: Add additional query parameters to the request
339
+
340
+ extra_body: Add additional JSON properties to the request
341
+
342
+ timeout: Override the client-level default timeout for this request, in seconds
343
+ """
344
+ return await self._post(
345
+ "/v2/gen-ai/workspaces"
346
+ if self._client._base_url_overridden
347
+ else "https://api.digitalocean.com/v2/gen-ai/workspaces",
348
+ body=await async_maybe_transform(
349
+ {
350
+ "agent_uuids": agent_uuids,
351
+ "description": description,
352
+ "name": name,
353
+ },
354
+ workspace_create_params.WorkspaceCreateParams,
355
+ ),
356
+ options=make_request_options(
357
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
358
+ ),
359
+ cast_to=WorkspaceCreateResponse,
360
+ )
361
+
362
+ async def retrieve(
363
+ self,
364
+ workspace_uuid: str,
365
+ *,
366
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
367
+ # The extra values given here take precedence over values defined on the client or passed to this method.
368
+ extra_headers: Headers | None = None,
369
+ extra_query: Query | None = None,
370
+ extra_body: Body | None = None,
371
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
372
+ ) -> WorkspaceRetrieveResponse:
373
+ """
374
+ To retrieve details of a workspace, GET request to
375
+ `/v2/gen-ai/workspaces/{workspace_uuid}`. The response body is a JSON object
376
+ containing the workspace.
377
+
378
+ Args:
379
+ extra_headers: Send extra headers
380
+
381
+ extra_query: Add additional query parameters to the request
382
+
383
+ extra_body: Add additional JSON properties to the request
384
+
385
+ timeout: Override the client-level default timeout for this request, in seconds
386
+ """
387
+ if not workspace_uuid:
388
+ raise ValueError(f"Expected a non-empty value for `workspace_uuid` but received {workspace_uuid!r}")
389
+ return await self._get(
390
+ f"/v2/gen-ai/workspaces/{workspace_uuid}"
391
+ if self._client._base_url_overridden
392
+ else f"https://api.digitalocean.com/v2/gen-ai/workspaces/{workspace_uuid}",
393
+ options=make_request_options(
394
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
395
+ ),
396
+ cast_to=WorkspaceRetrieveResponse,
397
+ )
398
+
399
+ async def update(
400
+ self,
401
+ path_workspace_uuid: str,
402
+ *,
403
+ description: str | NotGiven = NOT_GIVEN,
404
+ name: str | NotGiven = NOT_GIVEN,
405
+ body_workspace_uuid: str | NotGiven = NOT_GIVEN,
406
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
407
+ # The extra values given here take precedence over values defined on the client or passed to this method.
408
+ extra_headers: Headers | None = None,
409
+ extra_query: Query | None = None,
410
+ extra_body: Body | None = None,
411
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
412
+ ) -> WorkspaceUpdateResponse:
413
+ """
414
+ To update a workspace, send a PUT request to
415
+ `/v2/gen-ai/workspaces/{workspace_uuid}`. The response body is a JSON object
416
+ containing the workspace.
417
+
418
+ Args:
419
+ body_workspace_uuid: Workspace UUID.
420
+
421
+ extra_headers: Send extra headers
422
+
423
+ extra_query: Add additional query parameters to the request
424
+
425
+ extra_body: Add additional JSON properties to the request
426
+
427
+ timeout: Override the client-level default timeout for this request, in seconds
428
+ """
429
+ if not path_workspace_uuid:
430
+ raise ValueError(
431
+ f"Expected a non-empty value for `path_workspace_uuid` but received {path_workspace_uuid!r}"
432
+ )
433
+ return await self._put(
434
+ f"/v2/gen-ai/workspaces/{path_workspace_uuid}"
435
+ if self._client._base_url_overridden
436
+ else f"https://api.digitalocean.com/v2/gen-ai/workspaces/{path_workspace_uuid}",
437
+ body=await async_maybe_transform(
438
+ {
439
+ "description": description,
440
+ "name": name,
441
+ "body_workspace_uuid": body_workspace_uuid,
442
+ },
443
+ workspace_update_params.WorkspaceUpdateParams,
444
+ ),
445
+ options=make_request_options(
446
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
447
+ ),
448
+ cast_to=WorkspaceUpdateResponse,
449
+ )
450
+
451
+ async def list(
452
+ self,
453
+ *,
454
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
455
+ # The extra values given here take precedence over values defined on the client or passed to this method.
456
+ extra_headers: Headers | None = None,
457
+ extra_query: Query | None = None,
458
+ extra_body: Body | None = None,
459
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
460
+ ) -> WorkspaceListResponse:
461
+ """To list all workspaces, send a GET request to `/v2/gen-ai/workspaces`."""
462
+ return await self._get(
463
+ "/v2/gen-ai/workspaces"
464
+ if self._client._base_url_overridden
465
+ else "https://api.digitalocean.com/v2/gen-ai/workspaces",
466
+ options=make_request_options(
467
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
468
+ ),
469
+ cast_to=WorkspaceListResponse,
470
+ )
471
+
472
+ async def delete(
473
+ self,
474
+ workspace_uuid: str,
475
+ *,
476
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
477
+ # The extra values given here take precedence over values defined on the client or passed to this method.
478
+ extra_headers: Headers | None = None,
479
+ extra_query: Query | None = None,
480
+ extra_body: Body | None = None,
481
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
482
+ ) -> WorkspaceDeleteResponse:
483
+ """
484
+ To delete a workspace, send a DELETE request to
485
+ `/v2/gen-ai/workspace/{workspace_uuid}`.
486
+
487
+ Args:
488
+ extra_headers: Send extra headers
489
+
490
+ extra_query: Add additional query parameters to the request
491
+
492
+ extra_body: Add additional JSON properties to the request
493
+
494
+ timeout: Override the client-level default timeout for this request, in seconds
495
+ """
496
+ if not workspace_uuid:
497
+ raise ValueError(f"Expected a non-empty value for `workspace_uuid` but received {workspace_uuid!r}")
498
+ return await self._delete(
499
+ f"/v2/gen-ai/workspaces/{workspace_uuid}"
500
+ if self._client._base_url_overridden
501
+ else f"https://api.digitalocean.com/v2/gen-ai/workspaces/{workspace_uuid}",
502
+ options=make_request_options(
503
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
504
+ ),
505
+ cast_to=WorkspaceDeleteResponse,
506
+ )
507
+
508
+ async def list_evaluation_test_cases(
509
+ self,
510
+ workspace_uuid: str,
511
+ *,
512
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
513
+ # The extra values given here take precedence over values defined on the client or passed to this method.
514
+ extra_headers: Headers | None = None,
515
+ extra_query: Query | None = None,
516
+ extra_body: Body | None = None,
517
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
518
+ ) -> WorkspaceListEvaluationTestCasesResponse:
519
+ """
520
+ To list all evaluation test cases by a workspace, send a GET request to
521
+ `/v2/gen-ai/workspaces/{workspace_uuid}/evaluation_test_cases`.
522
+
523
+ Args:
524
+ extra_headers: Send extra headers
525
+
526
+ extra_query: Add additional query parameters to the request
527
+
528
+ extra_body: Add additional JSON properties to the request
529
+
530
+ timeout: Override the client-level default timeout for this request, in seconds
531
+ """
532
+ if not workspace_uuid:
533
+ raise ValueError(f"Expected a non-empty value for `workspace_uuid` but received {workspace_uuid!r}")
534
+ return await self._get(
535
+ f"/v2/gen-ai/workspaces/{workspace_uuid}/evaluation_test_cases"
536
+ if self._client._base_url_overridden
537
+ else f"https://api.digitalocean.com/v2/gen-ai/workspaces/{workspace_uuid}/evaluation_test_cases",
538
+ options=make_request_options(
539
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
540
+ ),
541
+ cast_to=WorkspaceListEvaluationTestCasesResponse,
542
+ )
543
+
544
+
545
+ class WorkspacesResourceWithRawResponse:
546
+ def __init__(self, workspaces: WorkspacesResource) -> None:
547
+ self._workspaces = workspaces
548
+
549
+ self.create = to_raw_response_wrapper(
550
+ workspaces.create,
551
+ )
552
+ self.retrieve = to_raw_response_wrapper(
553
+ workspaces.retrieve,
554
+ )
555
+ self.update = to_raw_response_wrapper(
556
+ workspaces.update,
557
+ )
558
+ self.list = to_raw_response_wrapper(
559
+ workspaces.list,
560
+ )
561
+ self.delete = to_raw_response_wrapper(
562
+ workspaces.delete,
563
+ )
564
+ self.list_evaluation_test_cases = to_raw_response_wrapper(
565
+ workspaces.list_evaluation_test_cases,
566
+ )
567
+
568
+ @cached_property
569
+ def agents(self) -> AgentsResourceWithRawResponse:
570
+ return AgentsResourceWithRawResponse(self._workspaces.agents)
571
+
572
+
573
+ class AsyncWorkspacesResourceWithRawResponse:
574
+ def __init__(self, workspaces: AsyncWorkspacesResource) -> None:
575
+ self._workspaces = workspaces
576
+
577
+ self.create = async_to_raw_response_wrapper(
578
+ workspaces.create,
579
+ )
580
+ self.retrieve = async_to_raw_response_wrapper(
581
+ workspaces.retrieve,
582
+ )
583
+ self.update = async_to_raw_response_wrapper(
584
+ workspaces.update,
585
+ )
586
+ self.list = async_to_raw_response_wrapper(
587
+ workspaces.list,
588
+ )
589
+ self.delete = async_to_raw_response_wrapper(
590
+ workspaces.delete,
591
+ )
592
+ self.list_evaluation_test_cases = async_to_raw_response_wrapper(
593
+ workspaces.list_evaluation_test_cases,
594
+ )
595
+
596
+ @cached_property
597
+ def agents(self) -> AsyncAgentsResourceWithRawResponse:
598
+ return AsyncAgentsResourceWithRawResponse(self._workspaces.agents)
599
+
600
+
601
+ class WorkspacesResourceWithStreamingResponse:
602
+ def __init__(self, workspaces: WorkspacesResource) -> None:
603
+ self._workspaces = workspaces
604
+
605
+ self.create = to_streamed_response_wrapper(
606
+ workspaces.create,
607
+ )
608
+ self.retrieve = to_streamed_response_wrapper(
609
+ workspaces.retrieve,
610
+ )
611
+ self.update = to_streamed_response_wrapper(
612
+ workspaces.update,
613
+ )
614
+ self.list = to_streamed_response_wrapper(
615
+ workspaces.list,
616
+ )
617
+ self.delete = to_streamed_response_wrapper(
618
+ workspaces.delete,
619
+ )
620
+ self.list_evaluation_test_cases = to_streamed_response_wrapper(
621
+ workspaces.list_evaluation_test_cases,
622
+ )
623
+
624
+ @cached_property
625
+ def agents(self) -> AgentsResourceWithStreamingResponse:
626
+ return AgentsResourceWithStreamingResponse(self._workspaces.agents)
627
+
628
+
629
+ class AsyncWorkspacesResourceWithStreamingResponse:
630
+ def __init__(self, workspaces: AsyncWorkspacesResource) -> None:
631
+ self._workspaces = workspaces
632
+
633
+ self.create = async_to_streamed_response_wrapper(
634
+ workspaces.create,
635
+ )
636
+ self.retrieve = async_to_streamed_response_wrapper(
637
+ workspaces.retrieve,
638
+ )
639
+ self.update = async_to_streamed_response_wrapper(
640
+ workspaces.update,
641
+ )
642
+ self.list = async_to_streamed_response_wrapper(
643
+ workspaces.list,
644
+ )
645
+ self.delete = async_to_streamed_response_wrapper(
646
+ workspaces.delete,
647
+ )
648
+ self.list_evaluation_test_cases = async_to_streamed_response_wrapper(
649
+ workspaces.list_evaluation_test_cases,
650
+ )
651
+
652
+ @cached_property
653
+ def agents(self) -> AsyncAgentsResourceWithStreamingResponse:
654
+ return AsyncAgentsResourceWithStreamingResponse(self._workspaces.agents)