ai-provider-sdk 0.0.2

Async-first Rust SDK for OpenAI APIs
Documentation
# 安装与使用总览

本文档给出从安装到调用的最短路径,并指向每个资源的完整参数与响应结构。

## 1. 安装

```bash
cargo add ai-provider-sdk
```

如果你的项目尚未启用 Tokio 运行时,补充:

```bash
cargo add tokio --features macros,rt-multi-thread
```

## 2. 配置 API Key

```bash
export OPENAI_API_KEY="sk-..."
```

可选环境变量:

- `OPENAI_BASE_URL`(默认 `https://api.openai.com/v1`- `OPENAI_ORG_ID`
- `OPENAI_PROJECT_ID`

## 3. 最小可运行示例(Responses)

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

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

    let response = client
        .responses()
        .create(ResponseCreateParams::new("gpt-4.1-mini").input("hello"))
        .await?;

    println!("response id: {}", response.id);
    Ok(())
}
```

## 4. 如何使用(主线)

### 4.1 非流式请求(create)

- 构造 `*CreateParams`
- 调用 `create(params)`
- 从响应对象读取字段(最少保证存在 `id`
### 4.2 流式请求(create_stream)

```rust
use futures_util::StreamExt;
use ai_provider_sdk::{OpenAI, ResponseCreateParams};

# async fn demo() -> Result<(), ai_provider_sdk::Error> {
let client = OpenAI::from_env()?;
let mut events = client
    .responses()
    .create_stream(ResponseCreateParams::new("gpt-4.1-mini").input("hello"))
    .await?
    .events();

while let Some(event) = events.next().await {
    let event = event?;
    println!("event={:?}, data={}", event.event, event.data);
}
# Ok(())
# }
```

流式结束与错误语义见 [Streaming](/api/streaming)。

### 4.3 单次请求覆盖(RequestOptions)

通过 `RequestOptions` 可为单次请求追加 header、query 或覆盖超时,完整示例见 [/guide/configuration](/guide/configuration)。

## 5. 下一步阅读

- 快速调用:[/guide/getting-started]/guide/getting-started
- 配置细节:[/guide/configuration]/guide/configuration
- 资源与方法矩阵:[/api/resources]/api/resources
- 资源细节:
  - [/api/responses]/api/responses
  - [/api/chat]/api/chat
  - [/api/files]/api/files
  - [/api/models]/api/models
  - [/api/embeddings]/api/embeddings
  - [/api/moderations]/api/moderations

## 6. 边界声明

当前 SDK 只覆盖文档中列出的已实现资源。未列出的 OpenAI 资源在本仓库中未实现。