2 个版本
0.1.1 | 2023 年 3 月 8 日 |
---|---|
0.1.0 | 2023 年 3 月 8 日 |
#89 in #ChatGPT
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