OpenAI API 客户端库:Rust 版(非官方)
OpenAI API Rust 客户端库为Rust应用程序提供了访问OpenAI API的便捷方式。这是一个非官方的库,旨在简化在Rust中使用OpenAI功能的过程。
安装
要在您的项目中使用openai-api-rs库,您只需要在Cargo.toml文件中加入以下依赖:
[dependencies]
openai-api-rs = "5.2.2"
用法
在使用此库之前,您需要通过OpenAI官网获取您的账户密钥。为了安全起见,建议将密钥设置为环境变量。
设置环境变量
可以在命令行中执行以下命令来设置环境变量以存储API密钥:
$ export OPENAI_API_KEY=sk-xxxxxxx
创建客户端
有了API密钥后,可以创建一个OpenAI客户端实例:
let api_key = env::var("OPENAI_API_KEY").unwrap().to_string();
let 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)?;
println!("Content: {:?}", result.choices[0].message.content);
设置API基地址(可选)
如果需要自定义API基地址,可以通过以下命令设置:
$ 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]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = env::var("OPENAI_API_KEY").unwrap().to_string();
let 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);
println!("Response Headers: {:?}", result.headers);
Ok(())
}
如果您需要更多的使用示例,可以参考项目的GitHub页面上的示例代码。
支持的API功能
OpenAI API Rust 客户端支持一系列功能,包括:
- Completions
- Chat
- Edits
- Images
- Embeddings
- Audio
- Files
- Fine-tuning
- Moderations
- Function calling
- Assistants
- Batch
- Realtime
许可证
此项目基于MIT许可证发布,您可以在GitHub项目页面查看详细的许可证信息。
通过此Rust库,开发者可以更加轻松地在Rust项目中调用OpenAI的各种API功能,从而提升应用的智能化水平。