22
33from __future__ import annotations
44
5- from typing import Dict , Union , Iterable
5+ from typing import Dict , List , Union , Iterable
66
77import httpx
88
9- from ..types import safety_run_shield_params
9+ from ..types import safety_run_shield_params , safety_openai_moderations_params
1010from .._types import NOT_GIVEN , Body , Query , Headers , NotGiven
1111from .._utils import maybe_transform , async_maybe_transform
1212from .._compat import cached_property
2020from .._base_client import make_request_options
2121from ..types .run_shield_response import RunShieldResponse
2222from ..types .shared_params .message import Message
23+ from ..types .openai_moderations_response import OpenAIModerationsResponse
2324
2425__all__ = ["SafetyResource" , "AsyncSafetyResource" ]
2526
@@ -44,6 +45,50 @@ def with_streaming_response(self) -> SafetyResourceWithStreamingResponse:
4445 """
4546 return SafetyResourceWithStreamingResponse (self )
4647
48+ def openai_moderations (
49+ self ,
50+ * ,
51+ input : Union [str , List [str ]],
52+ model : str | NotGiven = NOT_GIVEN ,
53+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
54+ # The extra values given here take precedence over values defined on the client or passed to this method.
55+ extra_headers : Headers | None = None ,
56+ extra_query : Query | None = None ,
57+ extra_body : Body | None = None ,
58+ timeout : float | httpx .Timeout | None | NotGiven = NOT_GIVEN ,
59+ ) -> OpenAIModerationsResponse :
60+ """
61+ Classifies if text and/or image inputs are potentially harmful.
62+
63+ Args:
64+ input: Input (or inputs) to classify. Can be a single string, an array of strings, or
65+ an array of multi-modal input objects similar to other models.
66+
67+ model: The content moderation model you would like to use.
68+
69+ extra_headers: Send extra headers
70+
71+ extra_query: Add additional query parameters to the request
72+
73+ extra_body: Add additional JSON properties to the request
74+
75+ timeout: Override the client-level default timeout for this request, in seconds
76+ """
77+ return self ._post (
78+ "/v1/openai/v1/moderations" ,
79+ body = maybe_transform (
80+ {
81+ "input" : input ,
82+ "model" : model ,
83+ },
84+ safety_openai_moderations_params .SafetyOpenAIModerationsParams ,
85+ ),
86+ options = make_request_options (
87+ extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
88+ ),
89+ cast_to = OpenAIModerationsResponse ,
90+ )
91+
4792 def run_shield (
4893 self ,
4994 * ,
@@ -112,6 +157,50 @@ def with_streaming_response(self) -> AsyncSafetyResourceWithStreamingResponse:
112157 """
113158 return AsyncSafetyResourceWithStreamingResponse (self )
114159
160+ async def openai_moderations (
161+ self ,
162+ * ,
163+ input : Union [str , List [str ]],
164+ model : str | NotGiven = NOT_GIVEN ,
165+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
166+ # The extra values given here take precedence over values defined on the client or passed to this method.
167+ extra_headers : Headers | None = None ,
168+ extra_query : Query | None = None ,
169+ extra_body : Body | None = None ,
170+ timeout : float | httpx .Timeout | None | NotGiven = NOT_GIVEN ,
171+ ) -> OpenAIModerationsResponse :
172+ """
173+ Classifies if text and/or image inputs are potentially harmful.
174+
175+ Args:
176+ input: Input (or inputs) to classify. Can be a single string, an array of strings, or
177+ an array of multi-modal input objects similar to other models.
178+
179+ model: The content moderation model you would like to use.
180+
181+ extra_headers: Send extra headers
182+
183+ extra_query: Add additional query parameters to the request
184+
185+ extra_body: Add additional JSON properties to the request
186+
187+ timeout: Override the client-level default timeout for this request, in seconds
188+ """
189+ return await self ._post (
190+ "/v1/openai/v1/moderations" ,
191+ body = await async_maybe_transform (
192+ {
193+ "input" : input ,
194+ "model" : model ,
195+ },
196+ safety_openai_moderations_params .SafetyOpenAIModerationsParams ,
197+ ),
198+ options = make_request_options (
199+ extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
200+ ),
201+ cast_to = OpenAIModerationsResponse ,
202+ )
203+
115204 async def run_shield (
116205 self ,
117206 * ,
@@ -164,6 +253,9 @@ class SafetyResourceWithRawResponse:
164253 def __init__ (self , safety : SafetyResource ) -> None :
165254 self ._safety = safety
166255
256+ self .openai_moderations = to_raw_response_wrapper (
257+ safety .openai_moderations ,
258+ )
167259 self .run_shield = to_raw_response_wrapper (
168260 safety .run_shield ,
169261 )
@@ -173,6 +265,9 @@ class AsyncSafetyResourceWithRawResponse:
173265 def __init__ (self , safety : AsyncSafetyResource ) -> None :
174266 self ._safety = safety
175267
268+ self .openai_moderations = async_to_raw_response_wrapper (
269+ safety .openai_moderations ,
270+ )
176271 self .run_shield = async_to_raw_response_wrapper (
177272 safety .run_shield ,
178273 )
@@ -182,6 +277,9 @@ class SafetyResourceWithStreamingResponse:
182277 def __init__ (self , safety : SafetyResource ) -> None :
183278 self ._safety = safety
184279
280+ self .openai_moderations = to_streamed_response_wrapper (
281+ safety .openai_moderations ,
282+ )
185283 self .run_shield = to_streamed_response_wrapper (
186284 safety .run_shield ,
187285 )
@@ -191,6 +289,9 @@ class AsyncSafetyResourceWithStreamingResponse:
191289 def __init__ (self , safety : AsyncSafetyResource ) -> None :
192290 self ._safety = safety
193291
292+ self .openai_moderations = async_to_streamed_response_wrapper (
293+ safety .openai_moderations ,
294+ )
194295 self .run_shield = async_to_streamed_response_wrapper (
195296 safety .run_shield ,
196297 )
0 commit comments