ai-provider-sdk 0.0.2

Async-first Rust SDK for OpenAI APIs
Documentation
# Moderations

## 如何使用

```rust
use ai_provider_sdk::{ModerationCreateParams, OpenAI};

# async fn demo() -> Result<(), ai_provider_sdk::Error> {
let client = OpenAI::from_env()?;

let resp = client
    .moderations()
    .create(ModerationCreateParams::new("hello").model("omni-moderation-latest"))
    .await?;

println!("{}", resp.id);
# Ok(())
# }
```

## 已实现方法

- `create(params)`
- `create_with_options(params, options)`

## 入参结构(全量)

`ModerationCreateParams`

- `input: ModerationInput`(必填)待审核输入。
- `model: Option<String>`(可选)审核模型 ID。
- `extra: HashMap<String, Value>`(可选)扩展字段。

`ModerationInput`(联合类型)

- `Text(String)`:单条文本。
- `Texts(Vec<String>)`:批量文本。
- `Items(Vec<ModerationInputItem>)`:多模态输入项。

`ModerationInputItem`(tagged enum)

- `Text { text: String }`
- `ImageUrl { image_url: ModerationImageUrl }`

`ModerationImageUrl`

- `url: String`

便捷构造:

- `ModerationCreateParams::new(input)`
- `.model(model)`
- `ModerationInputItem::text(text)`
- `ModerationInputItem::image_url(url)`

## 响应结构(全量)

`CreateModerationResponse`

- `id: String`
- `model: String`
- `results: Vec<ModerationResult>`
- `extra: HashMap<String, Value>`

`ModerationResult`

- `flagged: bool`
- `categories: ModerationCategories`
- `category_scores: ModerationCategoryScores`
- `category_applied_input_types: Option<ModerationCategoryAppliedInputTypes>`
- `extra: HashMap<String, Value>`

`ModerationCategories`(所有字段均为 `Option<bool>`)

- `sexual`
- `hate`
- `harassment`
- `self_harm`(wire: `self-harm`- `sexual_minors`(wire: `sexual/minors`- `hate_threatening`(wire: `hate/threatening`- `violence_graphic`(wire: `violence/graphic`- `self_harm_intent`(wire: `self-harm/intent`- `self_harm_instructions`(wire: `self-harm/instructions`- `harassment_threatening`(wire: `harassment/threatening`- `violence`
- `illicit`
- `illicit_violent`(wire: `illicit/violent`- `extra: HashMap<String, Value>`

`ModerationCategoryScores`(所有字段均为 `Option<f64>`,字段集合同上)

- `sexual` / `hate` / `harassment` / `self_harm` / `sexual_minors`
- `hate_threatening` / `violence_graphic` / `self_harm_intent` / `self_harm_instructions`
- `harassment_threatening` / `violence` / `illicit` / `illicit_violent`
- `extra: HashMap<String, Value>`

`ModerationCategoryAppliedInputTypes`(所有字段均为 `Option<Vec<ModerationAppliedInputType>>`,字段集合同上)

- `sexual` / `hate` / `harassment` / `self_harm` / `sexual_minors`
- `hate_threatening` / `violence_graphic` / `self_harm_intent` / `self_harm_instructions`
- `harassment_threatening` / `violence` / `illicit` / `illicit_violent`
- `extra: HashMap<String, Value>`

`ModerationAppliedInputType` 枚举值:

- `Text`
- `Image`

## 兼容性说明

- `extra` 为前向兼容容器,不保证稳定结构。
- 文档只覆盖当前仓库已实现能力。