1个不稳定版本
0.1.0 | 2023年11月27日 |
---|
#15 在 #bedrock
24KB
459 行
stone-mason
stone-mason
是一个Rust库,用于简化使用 Amazon Bedrock Rust SDK aws-sdk-bedrockruntime.
这个库的开发还处于早期阶段,其中大部分尚未经过适当测试。
特性
- 为Bedrock提供的基础模型生成请求体的Builder结构体
- 用于反序列化推理响应的结构体(WIP)
- 对所有模型编码模型ID的枚举
安装
将crate添加到您的 Cargo.toml
[dependencies]
"stone-mason" = "0.1.0"
使用
您可以使用以下命令运行以下示例
cargo run --example anthropic
[!NOTE] 您需要有效的AWS凭证,至少具有
bedrock:InvokeModel
权限的环境,以及已为尝试使用的特定模型配置模型访问。
use aws_sdk_bedrockruntime::primitives::Blob;
use aws_sdk_bedrockruntime::Client;
use stone_mason::{
anthropic::{AnthropicModel::Claude, AnthropicParamsBuilder, AnthropicResponse},
BaseModel, FromModelOutput,
ModelVersion::*,
};
#[tokio::main]
async fn main() {
let shared_config = aws_config::from_env().region("us-west-2").load().await;
let client = Client::new(&shared_config);
let model = BaseModel::Anthropic(Claude(V2));
let prompt = "Outline a README.md file for an open source library called stone-mason, which \
is for working with Amazon Bedrock in Rust.";
let formatted_prompt = format!("\n\nHuman: {}\n\nAssistant:", prompt);
println!("{}", formatted_prompt);
let params = AnthropicParamsBuilder::default()
.prompt(formatted_prompt)
.temperature(0.3)
.max_tokens_to_sample(1000)
.build()
.unwrap();
let body_str = serde_json::to_string(¶ms).unwrap();
let body = Blob::new(body_str);
let res = client
.invoke_model()
.model_id(model.to_string())
.content_type("application/json")
.body(body)
.send()
.await
.unwrap();
let parsed = AnthropicResponse::from_model_output(&res).unwrap();
println!("\n\n{}", parsed.completion)
}
文档
待办事项
贡献
待办事项
许可证
本项目采用MIT许可证。有关详细信息,请参阅LICENSE。
依赖
~14MB
~253K SLoC