output_items.py 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
  2. from __future__ import annotations
  3. from typing_extensions import Literal
  4. import httpx
  5. from .... import _legacy_response
  6. from ...._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
  7. from ...._utils import maybe_transform
  8. from ...._compat import cached_property
  9. from ...._resource import SyncAPIResource, AsyncAPIResource
  10. from ...._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
  11. from ....pagination import SyncCursorPage, AsyncCursorPage
  12. from ...._base_client import AsyncPaginator, make_request_options
  13. from ....types.evals.runs import output_item_list_params
  14. from ....types.evals.runs.output_item_list_response import OutputItemListResponse
  15. from ....types.evals.runs.output_item_retrieve_response import OutputItemRetrieveResponse
  16. __all__ = ["OutputItems", "AsyncOutputItems"]
  17. class OutputItems(SyncAPIResource):
  18. @cached_property
  19. def with_raw_response(self) -> OutputItemsWithRawResponse:
  20. """
  21. This property can be used as a prefix for any HTTP method call to return
  22. the raw response object instead of the parsed content.
  23. For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
  24. """
  25. return OutputItemsWithRawResponse(self)
  26. @cached_property
  27. def with_streaming_response(self) -> OutputItemsWithStreamingResponse:
  28. """
  29. An alternative to `.with_raw_response` that doesn't eagerly read the response body.
  30. For more information, see https://www.github.com/openai/openai-python#with_streaming_response
  31. """
  32. return OutputItemsWithStreamingResponse(self)
  33. def retrieve(
  34. self,
  35. output_item_id: str,
  36. *,
  37. eval_id: str,
  38. run_id: str,
  39. # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
  40. # The extra values given here take precedence over values defined on the client or passed to this method.
  41. extra_headers: Headers | None = None,
  42. extra_query: Query | None = None,
  43. extra_body: Body | None = None,
  44. timeout: float | httpx.Timeout | None | NotGiven = not_given,
  45. ) -> OutputItemRetrieveResponse:
  46. """
  47. Get an evaluation run output item by ID.
  48. Args:
  49. extra_headers: Send extra headers
  50. extra_query: Add additional query parameters to the request
  51. extra_body: Add additional JSON properties to the request
  52. timeout: Override the client-level default timeout for this request, in seconds
  53. """
  54. if not eval_id:
  55. raise ValueError(f"Expected a non-empty value for `eval_id` but received {eval_id!r}")
  56. if not run_id:
  57. raise ValueError(f"Expected a non-empty value for `run_id` but received {run_id!r}")
  58. if not output_item_id:
  59. raise ValueError(f"Expected a non-empty value for `output_item_id` but received {output_item_id!r}")
  60. return self._get(
  61. f"/evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}",
  62. options=make_request_options(
  63. extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
  64. ),
  65. cast_to=OutputItemRetrieveResponse,
  66. )
  67. def list(
  68. self,
  69. run_id: str,
  70. *,
  71. eval_id: str,
  72. after: str | Omit = omit,
  73. limit: int | Omit = omit,
  74. order: Literal["asc", "desc"] | Omit = omit,
  75. status: Literal["fail", "pass"] | Omit = omit,
  76. # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
  77. # The extra values given here take precedence over values defined on the client or passed to this method.
  78. extra_headers: Headers | None = None,
  79. extra_query: Query | None = None,
  80. extra_body: Body | None = None,
  81. timeout: float | httpx.Timeout | None | NotGiven = not_given,
  82. ) -> SyncCursorPage[OutputItemListResponse]:
  83. """
  84. Get a list of output items for an evaluation run.
  85. Args:
  86. after: Identifier for the last output item from the previous pagination request.
  87. limit: Number of output items to retrieve.
  88. order: Sort order for output items by timestamp. Use `asc` for ascending order or
  89. `desc` for descending order. Defaults to `asc`.
  90. status: Filter output items by status. Use `failed` to filter by failed output items or
  91. `pass` to filter by passed output items.
  92. extra_headers: Send extra headers
  93. extra_query: Add additional query parameters to the request
  94. extra_body: Add additional JSON properties to the request
  95. timeout: Override the client-level default timeout for this request, in seconds
  96. """
  97. if not eval_id:
  98. raise ValueError(f"Expected a non-empty value for `eval_id` but received {eval_id!r}")
  99. if not run_id:
  100. raise ValueError(f"Expected a non-empty value for `run_id` but received {run_id!r}")
  101. return self._get_api_list(
  102. f"/evals/{eval_id}/runs/{run_id}/output_items",
  103. page=SyncCursorPage[OutputItemListResponse],
  104. options=make_request_options(
  105. extra_headers=extra_headers,
  106. extra_query=extra_query,
  107. extra_body=extra_body,
  108. timeout=timeout,
  109. query=maybe_transform(
  110. {
  111. "after": after,
  112. "limit": limit,
  113. "order": order,
  114. "status": status,
  115. },
  116. output_item_list_params.OutputItemListParams,
  117. ),
  118. ),
  119. model=OutputItemListResponse,
  120. )
  121. class AsyncOutputItems(AsyncAPIResource):
  122. @cached_property
  123. def with_raw_response(self) -> AsyncOutputItemsWithRawResponse:
  124. """
  125. This property can be used as a prefix for any HTTP method call to return
  126. the raw response object instead of the parsed content.
  127. For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
  128. """
  129. return AsyncOutputItemsWithRawResponse(self)
  130. @cached_property
  131. def with_streaming_response(self) -> AsyncOutputItemsWithStreamingResponse:
  132. """
  133. An alternative to `.with_raw_response` that doesn't eagerly read the response body.
  134. For more information, see https://www.github.com/openai/openai-python#with_streaming_response
  135. """
  136. return AsyncOutputItemsWithStreamingResponse(self)
  137. async def retrieve(
  138. self,
  139. output_item_id: str,
  140. *,
  141. eval_id: str,
  142. run_id: str,
  143. # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
  144. # The extra values given here take precedence over values defined on the client or passed to this method.
  145. extra_headers: Headers | None = None,
  146. extra_query: Query | None = None,
  147. extra_body: Body | None = None,
  148. timeout: float | httpx.Timeout | None | NotGiven = not_given,
  149. ) -> OutputItemRetrieveResponse:
  150. """
  151. Get an evaluation run output item by ID.
  152. Args:
  153. extra_headers: Send extra headers
  154. extra_query: Add additional query parameters to the request
  155. extra_body: Add additional JSON properties to the request
  156. timeout: Override the client-level default timeout for this request, in seconds
  157. """
  158. if not eval_id:
  159. raise ValueError(f"Expected a non-empty value for `eval_id` but received {eval_id!r}")
  160. if not run_id:
  161. raise ValueError(f"Expected a non-empty value for `run_id` but received {run_id!r}")
  162. if not output_item_id:
  163. raise ValueError(f"Expected a non-empty value for `output_item_id` but received {output_item_id!r}")
  164. return await self._get(
  165. f"/evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}",
  166. options=make_request_options(
  167. extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
  168. ),
  169. cast_to=OutputItemRetrieveResponse,
  170. )
  171. def list(
  172. self,
  173. run_id: str,
  174. *,
  175. eval_id: str,
  176. after: str | Omit = omit,
  177. limit: int | Omit = omit,
  178. order: Literal["asc", "desc"] | Omit = omit,
  179. status: Literal["fail", "pass"] | Omit = omit,
  180. # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
  181. # The extra values given here take precedence over values defined on the client or passed to this method.
  182. extra_headers: Headers | None = None,
  183. extra_query: Query | None = None,
  184. extra_body: Body | None = None,
  185. timeout: float | httpx.Timeout | None | NotGiven = not_given,
  186. ) -> AsyncPaginator[OutputItemListResponse, AsyncCursorPage[OutputItemListResponse]]:
  187. """
  188. Get a list of output items for an evaluation run.
  189. Args:
  190. after: Identifier for the last output item from the previous pagination request.
  191. limit: Number of output items to retrieve.
  192. order: Sort order for output items by timestamp. Use `asc` for ascending order or
  193. `desc` for descending order. Defaults to `asc`.
  194. status: Filter output items by status. Use `failed` to filter by failed output items or
  195. `pass` to filter by passed output items.
  196. extra_headers: Send extra headers
  197. extra_query: Add additional query parameters to the request
  198. extra_body: Add additional JSON properties to the request
  199. timeout: Override the client-level default timeout for this request, in seconds
  200. """
  201. if not eval_id:
  202. raise ValueError(f"Expected a non-empty value for `eval_id` but received {eval_id!r}")
  203. if not run_id:
  204. raise ValueError(f"Expected a non-empty value for `run_id` but received {run_id!r}")
  205. return self._get_api_list(
  206. f"/evals/{eval_id}/runs/{run_id}/output_items",
  207. page=AsyncCursorPage[OutputItemListResponse],
  208. options=make_request_options(
  209. extra_headers=extra_headers,
  210. extra_query=extra_query,
  211. extra_body=extra_body,
  212. timeout=timeout,
  213. query=maybe_transform(
  214. {
  215. "after": after,
  216. "limit": limit,
  217. "order": order,
  218. "status": status,
  219. },
  220. output_item_list_params.OutputItemListParams,
  221. ),
  222. ),
  223. model=OutputItemListResponse,
  224. )
  225. class OutputItemsWithRawResponse:
  226. def __init__(self, output_items: OutputItems) -> None:
  227. self._output_items = output_items
  228. self.retrieve = _legacy_response.to_raw_response_wrapper(
  229. output_items.retrieve,
  230. )
  231. self.list = _legacy_response.to_raw_response_wrapper(
  232. output_items.list,
  233. )
  234. class AsyncOutputItemsWithRawResponse:
  235. def __init__(self, output_items: AsyncOutputItems) -> None:
  236. self._output_items = output_items
  237. self.retrieve = _legacy_response.async_to_raw_response_wrapper(
  238. output_items.retrieve,
  239. )
  240. self.list = _legacy_response.async_to_raw_response_wrapper(
  241. output_items.list,
  242. )
  243. class OutputItemsWithStreamingResponse:
  244. def __init__(self, output_items: OutputItems) -> None:
  245. self._output_items = output_items
  246. self.retrieve = to_streamed_response_wrapper(
  247. output_items.retrieve,
  248. )
  249. self.list = to_streamed_response_wrapper(
  250. output_items.list,
  251. )
  252. class AsyncOutputItemsWithStreamingResponse:
  253. def __init__(self, output_items: AsyncOutputItems) -> None:
  254. self._output_items = output_items
  255. self.retrieve = async_to_streamed_response_wrapper(
  256. output_items.retrieve,
  257. )
  258. self.list = async_to_streamed_response_wrapper(
  259. output_items.list,
  260. )