async-openai

Async Rust library for OpenAI

Overview

async-openai is an unofficial Rust library for OpenAI REST API.

Being a young project there are rough edges

Usage

The library reads API key from the environment variable OPENAI_API_KEY.

```bash

On macOS/Linux

export OPENAIAPIKEY='sk-...' ```

```powershell

On Windows Powershell

$Env:OPENAIAPIKEY='sk-...' ```

Image Generation Example

```rust use std::error::Error;

use async_openai as openai; use openai::{ types::{CreateImageRequest, ImageSize, ResponseFormat}, Client, Image, };

[tokio::main]

async fn main() -> Result<(), Box> { // create client, reads OPENAIAPIKEY environment variable for API key. let client = Client::new();

let request = CreateImageRequest {
    prompt: "cats on sofa and carpet in living room".to_owned(),
    n: Some(2),
    response_format: Some(ResponseFormat::Url),
    size: Some(ImageSize::S256x256),
    user: Some("async-openai".to_owned()),
};

let response = Image::create(&client, request).await?;

// Download and save images to ./data directory
// Each url download and save happens in dedicated Tokio task
// (creates directory when it doesn't exist)
response.save("./data").await?;

Ok(())

} ```


Scaled up for README, actual size 256x256

Contributing

Thank you for your time to contribute and improve the project, I'd be happy to have you!

License

This project is licensed under MIT license.