6 个版本
新版本 0.1.5 | 2024 年 8 月 18 日 |
---|---|
0.1.4 | 2024 年 8 月 16 日 |
1266 在 网页编程 中排名
每月 554 次下载
38KB
924 行
Anthropic Rust SDK
这是 Anthropic API 的非官方 Rust SDK。
安装
将 anthropic-rs
添加为 Cargo.toml
的依赖项
$ cargo add anthropic-rs
用法
流式传输消息的示例。
use anthropic_rs::{
api::{
message::{Content, ContentType, Message, MessageRequest, Role},
stream::StreamEvent,
},
client::Client,
config::Config,
models::model::Model,
};
use futures_util::StreamExt;
use std::io::Write;
#[tokio::main]
async fn main() {
let api_key = std::env::var("ANTHROPIC_API_KEY")
.expect("environment variable ANTHROPIC_API_KEY should be defined");
let config = Config::new(api_key);
let client = Client::new(config).unwrap();
let message = MessageRequest {
model: Model::Claude35Sonnet,
stream: Some(true),
max_tokens: 1024,
messages: vec![Message {
role: Role::User,
content: vec![Content {
content_type: ContentType::Text,
text: "Explain the theory of relativity".to_string(),
}],
}],
..Default::default()
};
let mut stream = client.stream_message(message.clone()).await.unwrap();
while let Some(event) = stream.next().await {
let event = event.unwrap();
match event {
StreamEvent::ContentBlockDelta(content) => {
print!("{}", content.delta.text);
std::io::stdout().flush().unwrap();
}
StreamEvent::MessageStop => break,
_ => {}
}
}
}
许可证
此项目采用 MIT 许可证 和 Apache-2.0 许可证。
依赖项
~6–17MB
~251K SLoC