Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

OpenAI API client library for Rust (unofficial)

License

NotificationsYou must be signed in to change notification settings

dongri/openai-api-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Check out thedocs.rs.

Installation:

Cargo.toml

[dependencies]openai-api-rs ="6.0.3"

Usage

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:

Set OPENAI_API_KEY or OPENROUTER_API_KEY to environment variable

$export OPENAI_API_KEY=sk-xxxxxxxor$export OPENROUTER_API_KEY=sk-xxxxxxx

Create OpenAI client

let api_key = env::var("OPENAI_API_KEY").unwrap().to_string();letmut client =OpenAIClient::builder().with_api_key(api_key).build()?;

Create OpenRouter client

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()?;

Create request

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,}],);

Send request

let result = client.chat_completion(req)?;println!("Content: {:?}", result.choices[0].message.content);for(key, value)in client.headers.unwrap().iter(){println!("{}: {:?}", key, value);}

Set OPENAI_API_BASE to environment variable (optional)

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

Example of chat completion

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(())}

Example for OpenRouter

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.

Supported APIs

License

This project is licensed underMIT license.


[8]ページ先頭

©2009-2025 Movatter.jp