Skip to main content

openai_compat/resources/
moderations.rs

1//! `POST /moderations` resource, mirroring `resources/moderations.py`.
2
3use reqwest::Method;
4
5use crate::client::Client;
6use crate::error::OpenAIError;
7use crate::request::RequestOptions;
8use crate::types::moderations::{ModerationRequest, ModerationResponse};
9
10/// The moderations resource.
11#[derive(Debug, Clone)]
12pub struct Moderations {
13    client: Client,
14}
15
16impl Moderations {
17    pub(crate) fn new(client: Client) -> Self {
18        Self { client }
19    }
20
21    /// Classify whether the input violates the provider's content policy.
22    pub async fn create(
23        &self,
24        request: ModerationRequest,
25    ) -> Result<ModerationResponse, OpenAIError> {
26        let body = serde_json::to_value(&request)?;
27        self.client
28            .execute(Method::POST, "/moderations", RequestOptions::json(body))
29            .await
30    }
31}