pub struct Moderations { /* private fields */ }Expand description
Client for interacting with the OpenAI Moderations API.
This struct provides methods to classify text content for potential
policy violations. Use Moderations::new() to create a new instance.
§Example
use openai_tools::moderations::request::{Moderations, ModerationModel};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let moderations = Moderations::new()?;
// Check content with a specific model
let response = moderations
.moderate_text("Some text to check", Some(ModerationModel::OmniModerationLatest))
.await?;
for result in &response.results {
println!("Flagged: {}", result.flagged);
}
Ok(())
}Implementations§
Source§impl Moderations
impl Moderations
Sourcepub fn new() -> Result<Self>
pub fn new() -> Result<Self>
Creates a new Moderations client for OpenAI API.
Initializes the client by loading the OpenAI API key from
the environment variable OPENAI_API_KEY. Supports .env file loading
via dotenvy.
§Returns
Ok(Moderations)- A new Moderations client ready for useErr(OpenAIToolError)- If the API key is not found in the environment
§Example
use openai_tools::moderations::request::Moderations;
let moderations = Moderations::new().expect("API key should be set");Sourcepub fn with_auth(auth: AuthProvider) -> Self
pub fn with_auth(auth: AuthProvider) -> Self
Creates a new Moderations client with a custom authentication provider
Sourcepub fn detect_provider() -> Result<Self>
pub fn detect_provider() -> Result<Self>
Creates a new Moderations client by auto-detecting the provider
Sourcepub fn with_url<S: Into<String>>(base_url: S, api_key: S) -> Self
pub fn with_url<S: Into<String>>(base_url: S, api_key: S) -> Self
Creates a new Moderations client with URL-based provider detection
Sourcepub fn from_url<S: Into<String>>(url: S) -> Result<Self>
pub fn from_url<S: Into<String>>(url: S) -> Result<Self>
Creates a new Moderations client from URL using environment variables
Sourcepub fn auth(&self) -> &AuthProvider
pub fn auth(&self) -> &AuthProvider
Returns the authentication provider
Sourcepub async fn moderate_text(
&self,
text: &str,
model: Option<ModerationModel>,
) -> Result<ModerationResponse>
pub async fn moderate_text( &self, text: &str, model: Option<ModerationModel>, ) -> Result<ModerationResponse>
Moderates a single text string.
Classifies the input text to determine if it violates OpenAI’s content policy.
§Arguments
text- The text content to moderatemodel- Optional model to use (defaults toomni-moderation-latest)
§Returns
Ok(ModerationResponse)- The moderation resultsErr(OpenAIToolError)- If the request fails or response parsing fails
§Example
use openai_tools::moderations::request::Moderations;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let moderations = Moderations::new()?;
let response = moderations.moderate_text("Hello, world!", None).await?;
let result = &response.results[0];
if result.flagged {
println!("Content was flagged!");
println!("Hate score: {}", result.category_scores.hate);
}
Ok(())
}Sourcepub async fn moderate_texts(
&self,
texts: Vec<String>,
model: Option<ModerationModel>,
) -> Result<ModerationResponse>
pub async fn moderate_texts( &self, texts: Vec<String>, model: Option<ModerationModel>, ) -> Result<ModerationResponse>
Moderates multiple text strings.
Classifies multiple input texts in a single request.
§Arguments
texts- Vector of text strings to moderatemodel- Optional model to use (defaults toomni-moderation-latest)
§Returns
Ok(ModerationResponse)- The moderation results (one result per input)Err(OpenAIToolError)- If the request fails or response parsing fails
§Example
use openai_tools::moderations::request::Moderations;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let moderations = Moderations::new()?;
let texts = vec![
"First text to check".to_string(),
"Second text to check".to_string(),
];
let response = moderations.moderate_texts(texts, None).await?;
for (i, result) in response.results.iter().enumerate() {
println!("Text {}: flagged = {}", i + 1, result.flagged);
}
Ok(())
}Auto Trait Implementations§
impl Freeze for Moderations
impl RefUnwindSafe for Moderations
impl Send for Moderations
impl Sync for Moderations
impl Unpin for Moderations
impl UnsafeUnpin for Moderations
impl UnwindSafe for Moderations
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more