use claudius::{Anthropic, ModelListParams};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Anthropic::new(None)?;
println!("Listing all available models:");
let models_response = client.list_models(None).await?;
for model in models_response.models() {
println!("- {} ({})", model.display_name, model.id);
}
println!("\nListing first 5 models:");
let params = ModelListParams::new().with_limit(5);
let models_response = client.list_models(Some(params)).await?;
for model in models_response.models() {
println!("- {} ({})", model.display_name, model.id);
}
if models_response.has_more() {
println!("There are more models available. Use pagination to fetch them.");
if let Some(last_id) = models_response.last_id() {
println!("To get the next page, use after_id: {last_id}");
}
}
if let Some(model) = models_response.models().first() {
println!("\nRetrieving details for model: {}", model.id);
let model_info = client.get_model(&model.id).await?;
println!("Model ID: {}", model_info.id);
println!("Display Name: {}", model_info.display_name);
println!("Created At: {}", model_info.created_at);
println!("Type: {:?}", model_info.r#type);
}
Ok(())
}