55 个版本 (稳定)
新 5.0.5 | 2024 年 8 月 15 日 |
---|---|
5.0.4 | 2024 年 7 月 25 日 |
4.1.1 | 2024 年 6 月 25 日 |
4.0.8 | 2024 年 3 月 17 日 |
0.1.1 | 2022 年 12 月 12 日 |
41 in 网页编程
8,144 每月下载量
在 12 个 crates (11 直接)中使用
130KB
2.5K SLoC
OpenAI API 客户端库 for Rust (非官方)
OpenAI API 客户端 Rust 库为 Rust 应用程序提供了对 OpenAI API 的便捷访问。
查看 docs.rs。
安装
Cargo.toml
[dependencies]
openai-api-rs = "5.0.5"
使用方法
该库需要配置您的账户密钥,该密钥可在 网站 上找到。我们建议将其设置为环境变量。以下是一个使用从环境变量加载的 API 密钥初始化库并创建完成的示例
设置 OPENAI_API_KEY 为环境变量
$ export OPENAI_API_KEY=sk-xxxxxxx
创建客户端
let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string());
创建请求
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);
将 OPENAI_API_BASE 设置为环境变量(可选)
$ 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 client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string());
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(())
}
更多示例: 示例
查看 完整 API 文档 以获取所有可用函数的示例。
支持的 API
- completions
- Chat
- Edits
- Images
- Embeddings
- Audio
- Files
- Fine-tuning
- Moderations
- Function calling
- Assistants
许可证
本项目受 MIT 许可证 许可。
依赖关系
~6–18MB
~256K SLoC