- Notifications
You must be signed in to change notification settings - Fork69
OpenAI API client library for Rust (unofficial)
License
NotificationsYou must be signed in to change notification settings
dongri/openai-api-rs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The OpenAI API client Rust library provides convenient access to the OpenAI API from Rust applications.
Check out thedocs.rs.
Cargo.toml
[dependencies]openai-api-rs ="6.0.3"
The library needs to be configured with your account's secret key, which is available on thewebsite. 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:
$export OPENAI_API_KEY=sk-xxxxxxxor$export OPENROUTER_API_KEY=sk-xxxxxxx
let api_key = env::var("OPENAI_API_KEY").unwrap().to_string();letmut client =OpenAIClient::builder().with_api_key(api_key).build()?;
let api_key = env::var("OPENROUTER_API_KEY").unwrap().to_string();letmut client =OpenAIClient::builder().with_endpoint("https://openrouter.ai/api/v1").with_api_key(api_key).build()?;
let req =ChatCompletionRequest::new(GPT4_O.to_string(),vec![chat_completion::ChatCompletionMessage{ role: chat_completion::MessageRole::user, content: chat_completion::Content::Text(String::from("What is bitcoin?")), name:None, tool_calls:None, tool_call_id:None,}],);
let result = client.chat_completion(req)?;println!("Content: {:?}", result.choices[0].message.content);for(key, value)in client.headers.unwrap().iter(){println!("{}: {:?}", key, value);}
$export OPENAI_API_BASE=https://api.openai.com/v1
use openai_api_rs::v1::api::OpenAIClient;use openai_api_rs::v1::chat_completion::{self,ChatCompletionRequest};use openai_api_rs::v1::common::GPT4_O;use std::env;#[tokio::main]asyncfnmain() ->Result<(),Box<dyn std::error::Error>>{let api_key = env::var("OPENAI_API_KEY").unwrap().to_string();letmut client =OpenAIClient::builder().with_api_key(api_key).build()?;let req =ChatCompletionRequest::new(GPT4_O.to_string(),vec![chat_completion::ChatCompletionMessage{ role: chat_completion::MessageRole::user, content: chat_completion::Content::Text(String::from("What is bitcoin?")), name:None, tool_calls:None, tool_call_id:None,}],);let result = client.chat_completion(req).await?;println!("Content: {:?}", result.choices[0].message.content);for(key, value)in client.headers.unwrap().iter(){println!("{}: {:?}", key, value);}Ok(())}
use openai_api_rs::v1::api::OpenAIClient;use openai_api_rs::v1::chat_completion::{self,ChatCompletionRequest};use openai_api_rs::v1::common::GPT4_O_MINI;use std::env;#[tokio::main]asyncfnmain() ->Result<(),Box<dyn std::error::Error>>{let api_key = env::var("OPENROUTER_API_KEY").unwrap().to_string();letmut client =OpenAIClient::builder().with_endpoint("https://openrouter.ai/api/v1").with_api_key(api_key).build()?;let req =ChatCompletionRequest::new(GPT4_O_MINI.to_string(),vec![chat_completion::ChatCompletionMessage{ role: chat_completion::MessageRole::user, content: chat_completion::Content::Text(String::from("What is bitcoin?")), name:None, tool_calls:None, tool_call_id:None,}],);let result = client.chat_completion(req).await?;println!("Content: {:?}", result.choices[0].message.content);for(key, value)in client.headers.unwrap().iter(){println!("{}: {:?}", key, value);}Ok(())}
More Examples:examples
Check out thefull API documentation for examples of all the available functions.
- Completions
- Chat
- Edits
- Images
- Embeddings
- Audio
- Files
- Fine-tuning
- Moderations
- Function calling
- Assistants
- Batch
- Realtime
This project is licensed underMIT license.
About
OpenAI API client library for Rust (unofficial)
Topics
Resources
License
Stars
Watchers
Forks
Packages0
No packages published