async-openai

Async Rust library for OpenAI

Logo created by this repo itself

Overview

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

Being a young project there could be 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 async_openai::{ types::{CreateImageRequestArgs, ImageSize, ResponseFormat}, Client, }; use std::error::Error;

[tokio::main]

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

let request = CreateImageRequestArgs::default()
    .prompt("cats on sofa and carpet in living room")
    .n(2)
    .response_format(ResponseFormat::Url)
    .size(ImageSize::S256x256)
    .user("async-openai")
    .build()?;

let response = client.images().create(request).await?;

// Download and save images to ./data directory.
// Each url is downloaded and saved in dedicated Tokio task.
// Directory is created if it doesn't exist.
let paths = response.save("./data").await?;

paths
    .iter()
    .for_each(|path| println!("Image file path: {}", path.display()));

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!

A good starting point would be an open issue.

License

This project is licensed under MIT license.