AI-Anthropic
view release on metacpan or search on metacpan
lib/AI/Anthropic.pm view on Meta::CPAN
);
}
=head2 chat
Full chat interface:
my $response = $claude->chat(
messages => \@messages, # required
system => $system_prompt, # optional
model => $model, # optional, overrides default
max_tokens => $max_tokens, # optional
temperature => 0.7, # optional, 0.0-1.0
stream => \&callback, # optional, for streaming
tools => \@tools, # optional, for function calling
);
=cut
sub chat {
my ($self, %args) = @_;
lib/AI/Anthropic.pm view on Meta::CPAN
sub _handle_response {
my ($self, $response) = @_;
my $data;
eval {
$data = $self->{_json}->decode($response->{content});
};
unless ($response->{success}) {
my $error_msg = $data->{error}{message} // $response->{content} // 'Unknown error';
croak "Anthropic API error: $error_msg (status: $response->{status})";
}
return AI::Anthropic::Response->new(
text => $data->{content}[0]{text} // '',
role => $data->{role},
model => $data->{model},
stop_reason => $data->{stop_reason},
usage => $data->{usage},
raw_response => $data,
);
( run in 0.302 second using v1.01-cache-2.11-cpan-0ffa90cfd1c )