#bedrock #amazon #sdk #model #aws-sdk #response #inference

stone-mason

stone-mason是一个简化使用Amazon Bedrock Rust SDK aws-sdk-bedrockruntime的库

1个不稳定版本

0.1.0 2023年11月27日

#15#bedrock

MIT 许可证

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(&params).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