anthropik 0.1.3

Anthropic client for Rust.
Documentation
use anthropik::{
    AnthropicClient, Content, InputMessage, InputSchema, MessagesRequest, MessagesRequestBody,
    Role, Tool,
};

#[tokio::main]
pub async fn main() -> anyhow::Result<()> {
    let client = AnthropicClient::default();

    let response = client
        .messages(&MessagesRequest {
            x_api_key: std::env::var("ANTHROPIC_API_KEY").unwrap().into(),
            body: MessagesRequestBody {
                messages: vec![InputMessage {
                    role: Role::User,
                    content: Content::String(
                        "Hello, Anthropic! Call the example_tool.".to_string(),
                    ),
                    ..Default::default()
                }],
                tools: Some(vec![Tool {
                    name: "example_tool".into(),
                    input_schema: InputSchema::default(),
                    description: Some("An example tool".into()),
                    cache_control: None,
                    ..Default::default()
                }]),
                ..Default::default()
            },
            ..Default::default()
        })
        .await?;

    eprintln!("Response: {:?}", response);

    Ok(())
}