use crate::client::macros::http_client;
use crate::driver::Model;
use crate::error::ProviderError;
use crate::model::ModelList;
use crate::providers::anthropic::wire::{AnthropicConfig, Messages};
http_client!(
Anthropic,
AnthropicConfig
);
impl Anthropic {
#[cfg(feature = "reqwest")]
#[cfg_attr(docsrs, doc(cfg(feature = "reqwest")))]
pub fn new(api_key: impl Into<crate::wire::Secret>) -> Self {
AnthropicConfig::new(api_key).client()
}
#[cfg(feature = "reqwest")]
#[cfg_attr(docsrs, doc(cfg(feature = "reqwest")))]
pub fn from_env() -> Result<Self, crate::client::env::EnvError> {
Ok(AnthropicConfig::from_env()?.client())
}
pub fn completion(&self, model: impl Into<String>) -> Model<Messages> {
self.model(self.config.completion(model))
}
pub async fn list_models(&self) -> Result<ModelList, ProviderError> {
self.model(self.config.models()).list().await
}
pub async fn verify(&self) -> Result<(), ProviderError> {
self.model(self.config.verify()).verify().await
}
}