#openai #openai-api #chat-completion #api-wrapper #kind #opinionated #highly

kind-openai

高度定制的 OpenAI API 封装包。由 Kindness Inc. 提供。

12 个版本

新增 0.1.12 2024 年 8 月 21 日
0.1.11 2024 年 8 月 21 日

#1694 in 网页编程

Download history 247/week @ 2024-08-14

每月 247 次下载

MIT 许可证

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