graders.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
  2. from __future__ import annotations
  3. import httpx
  4. from .... import _legacy_response
  5. from ...._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
  6. from ...._utils import maybe_transform, async_maybe_transform
  7. from ...._compat import cached_property
  8. from ...._resource import SyncAPIResource, AsyncAPIResource
  9. from ...._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
  10. from ...._base_client import make_request_options
  11. from ....types.fine_tuning.alpha import grader_run_params, grader_validate_params
  12. from ....types.fine_tuning.alpha.grader_run_response import GraderRunResponse
  13. from ....types.fine_tuning.alpha.grader_validate_response import GraderValidateResponse
  14. __all__ = ["Graders", "AsyncGraders"]
  15. class Graders(SyncAPIResource):
  16. @cached_property
  17. def with_raw_response(self) -> GradersWithRawResponse:
  18. """
  19. This property can be used as a prefix for any HTTP method call to return
  20. the raw response object instead of the parsed content.
  21. For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
  22. """
  23. return GradersWithRawResponse(self)
  24. @cached_property
  25. def with_streaming_response(self) -> GradersWithStreamingResponse:
  26. """
  27. An alternative to `.with_raw_response` that doesn't eagerly read the response body.
  28. For more information, see https://www.github.com/openai/openai-python#with_streaming_response
  29. """
  30. return GradersWithStreamingResponse(self)
  31. def run(
  32. self,
  33. *,
  34. grader: grader_run_params.Grader,
  35. model_sample: str,
  36. item: object | Omit = omit,
  37. # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
  38. # The extra values given here take precedence over values defined on the client or passed to this method.
  39. extra_headers: Headers | None = None,
  40. extra_query: Query | None = None,
  41. extra_body: Body | None = None,
  42. timeout: float | httpx.Timeout | None | NotGiven = not_given,
  43. ) -> GraderRunResponse:
  44. """
  45. Run a grader.
  46. Args:
  47. grader: The grader used for the fine-tuning job.
  48. model_sample: The model sample to be evaluated. This value will be used to populate the
  49. `sample` namespace. See
  50. [the guide](https://platform.openai.com/docs/guides/graders) for more details.
  51. The `output_json` variable will be populated if the model sample is a valid JSON
  52. string.
  53. item: The dataset item provided to the grader. This will be used to populate the
  54. `item` namespace. See
  55. [the guide](https://platform.openai.com/docs/guides/graders) for more details.
  56. extra_headers: Send extra headers
  57. extra_query: Add additional query parameters to the request
  58. extra_body: Add additional JSON properties to the request
  59. timeout: Override the client-level default timeout for this request, in seconds
  60. """
  61. return self._post(
  62. "/fine_tuning/alpha/graders/run",
  63. body=maybe_transform(
  64. {
  65. "grader": grader,
  66. "model_sample": model_sample,
  67. "item": item,
  68. },
  69. grader_run_params.GraderRunParams,
  70. ),
  71. options=make_request_options(
  72. extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
  73. ),
  74. cast_to=GraderRunResponse,
  75. )
  76. def validate(
  77. self,
  78. *,
  79. grader: grader_validate_params.Grader,
  80. # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
  81. # The extra values given here take precedence over values defined on the client or passed to this method.
  82. extra_headers: Headers | None = None,
  83. extra_query: Query | None = None,
  84. extra_body: Body | None = None,
  85. timeout: float | httpx.Timeout | None | NotGiven = not_given,
  86. ) -> GraderValidateResponse:
  87. """
  88. Validate a grader.
  89. Args:
  90. grader: The grader used for the fine-tuning job.
  91. extra_headers: Send extra headers
  92. extra_query: Add additional query parameters to the request
  93. extra_body: Add additional JSON properties to the request
  94. timeout: Override the client-level default timeout for this request, in seconds
  95. """
  96. return self._post(
  97. "/fine_tuning/alpha/graders/validate",
  98. body=maybe_transform({"grader": grader}, grader_validate_params.GraderValidateParams),
  99. options=make_request_options(
  100. extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
  101. ),
  102. cast_to=GraderValidateResponse,
  103. )
  104. class AsyncGraders(AsyncAPIResource):
  105. @cached_property
  106. def with_raw_response(self) -> AsyncGradersWithRawResponse:
  107. """
  108. This property can be used as a prefix for any HTTP method call to return
  109. the raw response object instead of the parsed content.
  110. For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
  111. """
  112. return AsyncGradersWithRawResponse(self)
  113. @cached_property
  114. def with_streaming_response(self) -> AsyncGradersWithStreamingResponse:
  115. """
  116. An alternative to `.with_raw_response` that doesn't eagerly read the response body.
  117. For more information, see https://www.github.com/openai/openai-python#with_streaming_response
  118. """
  119. return AsyncGradersWithStreamingResponse(self)
  120. async def run(
  121. self,
  122. *,
  123. grader: grader_run_params.Grader,
  124. model_sample: str,
  125. item: object | Omit = omit,
  126. # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
  127. # The extra values given here take precedence over values defined on the client or passed to this method.
  128. extra_headers: Headers | None = None,
  129. extra_query: Query | None = None,
  130. extra_body: Body | None = None,
  131. timeout: float | httpx.Timeout | None | NotGiven = not_given,
  132. ) -> GraderRunResponse:
  133. """
  134. Run a grader.
  135. Args:
  136. grader: The grader used for the fine-tuning job.
  137. model_sample: The model sample to be evaluated. This value will be used to populate the
  138. `sample` namespace. See
  139. [the guide](https://platform.openai.com/docs/guides/graders) for more details.
  140. The `output_json` variable will be populated if the model sample is a valid JSON
  141. string.
  142. item: The dataset item provided to the grader. This will be used to populate the
  143. `item` namespace. See
  144. [the guide](https://platform.openai.com/docs/guides/graders) for more details.
  145. extra_headers: Send extra headers
  146. extra_query: Add additional query parameters to the request
  147. extra_body: Add additional JSON properties to the request
  148. timeout: Override the client-level default timeout for this request, in seconds
  149. """
  150. return await self._post(
  151. "/fine_tuning/alpha/graders/run",
  152. body=await async_maybe_transform(
  153. {
  154. "grader": grader,
  155. "model_sample": model_sample,
  156. "item": item,
  157. },
  158. grader_run_params.GraderRunParams,
  159. ),
  160. options=make_request_options(
  161. extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
  162. ),
  163. cast_to=GraderRunResponse,
  164. )
  165. async def validate(
  166. self,
  167. *,
  168. grader: grader_validate_params.Grader,
  169. # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
  170. # The extra values given here take precedence over values defined on the client or passed to this method.
  171. extra_headers: Headers | None = None,
  172. extra_query: Query | None = None,
  173. extra_body: Body | None = None,
  174. timeout: float | httpx.Timeout | None | NotGiven = not_given,
  175. ) -> GraderValidateResponse:
  176. """
  177. Validate a grader.
  178. Args:
  179. grader: The grader used for the fine-tuning job.
  180. extra_headers: Send extra headers
  181. extra_query: Add additional query parameters to the request
  182. extra_body: Add additional JSON properties to the request
  183. timeout: Override the client-level default timeout for this request, in seconds
  184. """
  185. return await self._post(
  186. "/fine_tuning/alpha/graders/validate",
  187. body=await async_maybe_transform({"grader": grader}, grader_validate_params.GraderValidateParams),
  188. options=make_request_options(
  189. extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
  190. ),
  191. cast_to=GraderValidateResponse,
  192. )
  193. class GradersWithRawResponse:
  194. def __init__(self, graders: Graders) -> None:
  195. self._graders = graders
  196. self.run = _legacy_response.to_raw_response_wrapper(
  197. graders.run,
  198. )
  199. self.validate = _legacy_response.to_raw_response_wrapper(
  200. graders.validate,
  201. )
  202. class AsyncGradersWithRawResponse:
  203. def __init__(self, graders: AsyncGraders) -> None:
  204. self._graders = graders
  205. self.run = _legacy_response.async_to_raw_response_wrapper(
  206. graders.run,
  207. )
  208. self.validate = _legacy_response.async_to_raw_response_wrapper(
  209. graders.validate,
  210. )
  211. class GradersWithStreamingResponse:
  212. def __init__(self, graders: Graders) -> None:
  213. self._graders = graders
  214. self.run = to_streamed_response_wrapper(
  215. graders.run,
  216. )
  217. self.validate = to_streamed_response_wrapper(
  218. graders.validate,
  219. )
  220. class AsyncGradersWithStreamingResponse:
  221. def __init__(self, graders: AsyncGraders) -> None:
  222. self._graders = graders
  223. self.run = async_to_streamed_response_wrapper(
  224. graders.run,
  225. )
  226. self.validate = async_to_streamed_response_wrapper(
  227. graders.validate,
  228. )