Crate openai4rs

Source
Expand description

§openai4rs

一个非官方的 Rust crate,用于与兼容 OpenAI 的 API 进行交互,提供流畅且强大的异步体验。

该库设计旨在易于使用、线程安全且高度可配置,适用于从简单脚本到复杂、高性能服务的广泛应用。

§主要特性

  • 异步优先: 基于 tokioreqwest 构建,实现非阻塞 I/O。
  • 聊天补全: 完全支持聊天补全 API,包括流式传输和工具调用。
  • 文本补全: 支持旧版的文本补全模型。
  • 模型管理: 列出和检索可用模型的信息。
  • 可配置的 HTTP 客户端: 自定义超时、重试、代理和用户代理。
  • 线程安全: 可在多个线程之间安全地共享客户端。
  • 推理模式: 对基于推理的模型提供特别支持。

§快速入门

首先,将 openai4rs 添加到您的 Cargo.toml 中:

[dependencies]
openai4rs = "0.1.3"
tokio = { version = "1", features = ["full"] }
dotenvy = "0.15"

然后,使用环境变量配置客户端并进行您的第一次 API 调用。

use openai4rs::{OpenAI, chat_request, user};
use dotenvy::dotenv;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 加载 .env 文件
    dotenv().ok();

    // 从环境变量创建客户端
    let client = OpenAI::from_env()?;

    // 创建聊天请求
    let messages = vec![user!("法国的首都是哪里?")];
    let request = chat_request("deepseek/deepseek-chat-v3-0324:free", &messages);

    // 获取响应
    let response = client.chat().create(request).await?;
    println!("响应: {:#?}", response);

    Ok(())
}

更多示例和详细用法,请参阅每个模块的文档。

Re-exports§

pub use client::Config;
pub use client::OpenAI;
pub use completions::completions_request;
pub use models::models_request;
pub use utils::Apply;
pub use serde_json;
pub use chat::*;

Modules§

chat
处理聊天补全,包括流式传输和工具调用。
client
核心客户端实现、配置和入口点。
common
库中共享的通用类型和实用程序。
completions
旧版文本补全功能。
error
错误处理和自定义错误类型。
macros
用于创建请求和消息的便捷宏。
models
用于列出和检索模型信息的模型管理。
utils
实用函数和特征。

Macros§

content
system
tool
user