12 个版本
新增 0.1.12 | 2024 年 8 月 21 日 |
---|---|
0.1.11 | 2024 年 8 月 21 日 |
#1694 in 网页编程
每月 247 次下载
21KB
472 代码行
Kind OpenAI
这是一个用于 Rust 的实验性、高度定制的 OpenAI API 封装,主要设计用于使结构化输出易于处理。
示例
//! Run this example with `OPENAI_API_KEY=`
use kind_openai::{
endpoints::chat::{ChatCompletionModel, ChatCompletionRequest, ChatCompletionRequestMessage},
EnvironmentAuthTokenProvider, OpenAI, OpenAISchema,
};
use serde::Deserialize;
#[derive(Deserialize, OpenAISchema, Debug)]
pub struct Name {
pub first_name: Option<String>,
pub last_name: Option<String>,
}
#[tokio::main]
async fn main() {
let client = OpenAI::new(EnvironmentAuthTokenProvider);
let chat_completion: ChatCompletionRequest<Name> =
ChatCompletionRequest::new_structured(ChatCompletionModel::Gpt4oMini)
.message(ChatCompletionRequestMessage::system(
"Extract the first and last name from the provided message.",
))
.message(ChatCompletionRequestMessage::user(
"Hello, my name is John Doe.",
))
.temperature(0.1);
let name = client
.create_chat_completion(&chat_completion)
.await
.unwrap()
.take_first_choice()
.expect("No choices")
.message()
.expect("Model generated a refusal");
println!("{:?}", name);
}
依赖项
~4–15MB
~212K SLoC