#openai #openai-api #chat #gpt #completion #api #api-bindings

rust-gpt

与Completion/Chat OpenAI API交互的库

3个版本

0.0.3 2023年3月10日
0.0.2 2023年3月9日
0.0.1 2023年3月9日

#1347 in 异步

MIT 协议

26KB
493

rust-gpt

此crate提供了访问OpenAI GPT-3 Completion/Chat API的rusty接口。

此crate的目标是提供一种简单且符合惯用的方式与GPT-3 API交互。
API仍处于测试阶段,因此此crate可能会发生变化。

特性

  • Completion端点
  • Chat端点
  • 健壮的错误处理
  • 同步API
  • OpenAI API的其余部分

lib.rs:

OpenAI Completion/Chat Rust API

提供了一种整洁且rusty的方式与OpenAI Completion/Chat API交互。您可以在此处找到API的文档。

示例

use rust_gpt::RequestBuilder;
use rust_gpt::CompletionModel;
use rust_gpt::SendRequest;

#[tokio::main]
async fn main() {
    let req = RequestBuilder::new(CompletionModel::TextDavinci003, "YOUR_API_KEY")
        .prompt("Write a sonnet about a crab named Ferris in the style of Shakespeare.")
        .build_completion();
    let response = req.send().await.unwrap();
    println!("My bot replied with: \"{:?}\"", response);
}

通用用法

您很可能会直接使用RequestBuilder来创建请求。然后您可以使用SendRequest trait来发送请求。目前只支持完成和聊天端点。这两个端点需要不同的参数,因此您需要分别使用build_completionbuild_chat方法。

RequestBuilder可以接受任何实现了ToString的类型作为模型输入,以及任何实现了Display的类型作为API密钥。

Completion

Completion端点需要一个prompt参数。您可以使用prompt方法来设置此参数,该方法接受任何实现了ToString的类型。

Chat

聊天端点稍微复杂一些。它需要一个messages参数,这是一个消息列表。这些消息由ChatMessage结构体表示。您可以使用new方法创建一个ChatMessage

附加说明

API仍在开发中,因此未来可能会有一些重大变更。
API尚未完全测试,因此可能存在一些错误。
有一些错误处理,但不是很健壮。
使用serde_json对响应和消息进行序列化和反序列化。尽管许多是派生的,可能无法与API的确切JSON响应完全匹配。

依赖关系

约5-20MB
约272K SLoC