openai-rst

Crates.ioopenai-rst
lib.rsopenai-rst
version0.2.0
sourcesrc
created_at2024-05-01 23:02:52.311543
updated_at2024-07-16 23:44:24.069364
descriptionOpenAI API Rust client
homepagehttps://github.com/ra0x3/openai-rst
repositoryhttps://github.com/ra0x3/openai-rst
max_upload_size
id1227307
size192,831
rashad (ra0x3)

documentation

README

⚠️ Forked from openai-rs-api.

OpenAI API client library for Rust (unofficial)

The OpenAI API client Rust library provides convenient access to the OpenAI API from Rust applications.

Check out the docs.rs.

Installation:

Cargo.toml

[dependencies]
openai-rst = "0.1.0"

Usage

The library needs to be configured with your account's secret key, which is available on the website. We recommend setting it as an environment variable. Here's an example of initializing the library with the API key loaded from an environment variable and creating a completion:

Set OPENAI_API_KEY to environment variable

$ export OPENAI_API_KEY=sk-xxxxxxx

Create client

let client = Client::from_env().unwrap();

Create request

// Single request
let req = ChatCompletionRequest::new(
    Model::GPT4(GPT4::GPT4),
    ChatCompletionMessage {
        role: MessageRole::User,
        content: Content::Text(String::from("What is bitcoin?")),
        name: None,
    },
);

// Multiple requests
let req = ChatCompletionRequest::new_multi(
    Model::GPT4(GPT4::GPT4),
    vec![ChatCompletionMessage {
        role: MessageRole::User,
        content: Content::Text(String::from("What is bitcoin?")),
        name: None,
    }],
);

Send request

let result = client.chat_completion(req)?;
println!("Content: {:?}", result.get_choice());

Set OPENAI_API_BASE to environment variable (optional)

$ export OPENAI_API_BASE=https://api.openai.com/v1

Example of chat completion

use openai_rst::{chat_completion::ChatCompletionRequest, client::Client, models::{Model, GPT4}};
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::from_env().unwrap();
    let req = "What is bitcoin?".into();
    let result = client.chat_completion(req).await?;
    
    println!("Content: {:?}", result.get_choice());
    println!("Response Headers: {:?}", result.headers);

    Ok(())
}

More Examples: examples

Check out the full API documentation for examples of all the available functions.

Supported APIs

License

This project is licensed under MIT license.

Commit count: 186

cargo fmt