libopenai - Rust client to interact with OpenAI's API
Unofficial Rust client for OpenAI's API, writen with tokio and reqwest
How to use
To add libopenai to your project, you just need to run the following command on your project's main foler:
cargo add libopenaiExample
use libopenai::prelude::*;
#[tokio::main]
async fn main() -> Result<()> {
// OPTIONAL: Load variables in a `.env` file into the enviroment
dotenv::dotenv().unwrap();
let client = Client::new(
None, // Gets api key from `OPENAI_API_KEY` enviroment variable
None, // No organization specified
)?;
// Send basic completion request
let basic = Completion::new(
"text-davinci-003",
"Whats the best way to calculate a factorial?",
&client,
)
.await?;
// Print the result
println!("{:#?}", basic);
return Ok(());
}Features
- Text generation
- Embeddings
- Moderations
- Files and fine-tuning
- Image generation with automatic conversion to desired formats
- Audio-to-text conversions
- Support for streaming
Cargo features
Currently, the only feature available is tracing, which enables some minor logging
On this page
Languages
Rust99.9%Makefile0.1%
Contributors
Latest Release
v0.1.0March 28, 2023Apache License 2.0
Created March 25, 2023
Updated January 13, 2026