1 个不稳定版本

0.1.0 2023 年 9 月 3 日

#15#policies

MIT/Apache

25KB
527

OpenAI API 的并发 Rust 客户端。

概述

openai-orch 设计用于提供向 OpenAI 发送批量请求的简单接口,同时在全局层面管理并发。它还提供了可配置的策略来控制并发、超时和重试的处理方式。

用法

要使用此库,请使用所需策略和密钥创建一个 Orchestrator。要允许一个线程使用 Orchestrator,只需克隆它。要发送请求,请在 Orchestrator 上调用 add_request,然后使用 add_request 返回的请求 ID 在 Orchestrator 上调用 get_response。Orchestrator 将自动处理并发。

示例

use openai_orch::prelude::*;

#[tokio::main]
async fn main() {
  let policies = Policies::default();
  let keys = Keys::from_env().unwrap();
  let orchestrator = Orchestrator::new(policies, keys);

  let request = ChatSisoRequest::new(
    "You are a helpful assistant.".to_string(),
    "What are you?".to_string(),
    Default::default(),
  );
  let request_id = orchestrator.add_request(request).await;

  let response = orchestrator
    .get_response::<ChatSisoResponse>(request_id)
    .await;
  println!("{}", response.unwrap());
}

如果您愿意,可以为您自己的请求类型实现 OrchRequest。有关更多信息,请参阅 OrchRequest 特性。目前唯一实现的请求类型是 ChatSisoRequestSISO 代表 "单输入单输出"。

依赖项

~9–21MB
~326K SLoC