From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#!perl
use strict;
if ( !$ENV{OPENAI_API_KEY} ) {
plan skip_all => 'This test requires an OPENAI_API_KEY environment variable';
}
my $openai = OpenAI::API->new();
my @test_cases = (
{
method => 'chat',
params => {
model => 'gpt-3.5-turbo',
messages => [ { "role" => "user", "content" => "Hello!" }, ],
max_tokens => 100,
temperature => 0,
},
expected_message => re('\b(?:Hello|Hi|Hey)\b'),
},
{
method => 'chat',
params => {
model => 'gpt-3.5-turbo',
messages => [ { "role" => "user", "content" => "Hello!" }, ],
max_tokens => 100,
temperature => 0,
stop => [ 'Hello', 'Hi', 'Hey' ],
},
expected_message => re('^\s*$'),
},
);
for my $test (@test_cases) {
my ( $method, $params, $expected_message ) = @{$test}{qw/method params expected_message/};
my $response = $openai->$method( %{$params} );
cmp_deeply( $response, $expected_message );
}
done_testing();