3个版本
0.0.3 | 2023年3月10日 |
---|---|
0.0.2 | 2023年3月9日 |
0.0.1 | 2023年3月9日 |
#1347 in 异步
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_completion
和build_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