2 个版本

0.1.1 2023 年 3 月 8 日
0.1.0 2023 年 3 月 8 日

#89 in #ChatGPT

MIT 许可证

19KB
395

cordyceps

https://docs.rs/cordyceps_api/0.1.1/cordyceps_api/


lib.rs:

openai

cordyceps crate 是一个 快速可靠 的 OpenAi 各类 AI 模型的 API

支持的功能

计划的功能

示例

如何使用 openai crate 的小例子

use cordyceps_api::client::{ChatClient, Error, StreamExt};
use cordyceps_api::chat::{Payload, Response};
use tokio::io::AsyncWriteExt;

#[tokio::main]
async fn main() -> Result<(), Error> {
    let mut stdout = tokio::io::stdout();
    let api_key = std::env::var("OPENAI_API_KEY")?;
    let payload = Payload::builder()
        .system_message("Implement the Rust programming language into your responses")
        .user_message("Tell me a joke")
        .build()?;

    let client = ChatClient::new(&api_key);
    let mut response = client.send(&payload).await?;

    while let Some(chunk) = response.next().await {
        let body = chunk.unwrap();
        match serde_jsonrc::from_slice::<Response>(&body) {
            Ok(r) => {
                let text = r.text(0).unwrap();
                stdout.write_all(text.as_bytes()).await.unwrap();
                stdout.flush().await.unwrap();
            },
            Err(_) => continue,
        };
    }

    Ok(())
}

重新导出

pub use futures_util::stream::StreamExt; pub use futures_util::stream::Stream; pub use reqwest::Result as ReqwestResult;

依赖关系

~6–21MB
~292K SLoC