Skip to content

empower-ai/openai-api-rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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-api-rs = "4.0.7"

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

Set OPENAI_API_BASE to environment variable (optional)

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

Create client

use openai_api_rs::v1::api::Client;
use std::env;
let client = Client::new(env::var("OPENAI_API_KEY").unwrap().to_string());

Create request

use openai_api_rs::v1::chat_completion::{self, ChatCompletionRequest};
use openai_api_rs::v1::common::GPT4;
let req = ChatCompletionRequest::new(
    GPT4.to_string(),
    vec![chat_completion::ChatCompletionMessage {
        role: chat_completion::MessageRole::user,
        content: chat_completion::Content::Text(String::from("Hello OpenAI!")),
        name: None,
    }],
);

Send request

let result = client.completion(req)?;
println!("{:?}", result.choices[0].text);

Example of chat completion

use openai_api_rs::v1::api::Client;
use openai_api_rs::v1::chat_completion::{self, ChatCompletionRequest};
use openai_api_rs::v1::common::GPT4;
use std::env;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new(env::var("OPENAI_API_KEY").unwrap().to_string());
    let req = ChatCompletionRequest::new(
        GPT4.to_string(),
        vec![chat_completion::ChatCompletionMessage {
            role: chat_completion::MessageRole::user,
            content: chat_completion::Content::Text(String::from("What is Bitcoin?")),
            name: None,
        }],
    );
    let result = client.chat_completion(req)?;
    println!("{:?}", result.choices[0].message.content);
    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.

About

OpenAI API client library for Rust (unofficial)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%