diff --git a/.vstags b/.vstags index 6c27946..8d275b7 100644 --- a/.vstags +++ b/.vstags @@ -8,6 +8,14 @@ OpenAIAsync .build/0T4wbFlmwf/blib/lib/OpenAIAsync.pm 1;" p OpenAIAsync .build/0T4wbFlmwf/lib/OpenAIAsync.pm 1;" p OpenAIAsync .build/AcmKa2ZbCJ/blib/lib/OpenAIAsync.pm 1;" p OpenAIAsync .build/AcmKa2ZbCJ/lib/OpenAIAsync.pm 1;" p +OpenAIAsync .build/Xz72xzB4iA/blib/lib/OpenAIAsync.pm 1;" p +OpenAIAsync .build/Xz72xzB4iA/lib/OpenAIAsync.pm 1;" p +OpenAIAsync .build/bgXXjrPaza/blib/lib/OpenAIAsync.pm 1;" p +OpenAIAsync .build/bgXXjrPaza/lib/OpenAIAsync.pm 1;" p +OpenAIAsync .build/latest/blib/lib/OpenAIAsync.pm 1;" p +OpenAIAsync .build/latest/lib/OpenAIAsync.pm 1;" p +OpenAIAsync .build/mKmyAW37h1/blib/lib/OpenAIAsync.pm 1;" p +OpenAIAsync .build/mKmyAW37h1/lib/OpenAIAsync.pm 1;" p OpenAIAsync .build/previous/blib/lib/OpenAIAsync.pm 1;" p OpenAIAsync .build/previous/lib/OpenAIAsync.pm 1;" p OpenAIAsync .build/trQp7H7Uyl/blib/lib/OpenAIAsync.pm 1;" p @@ -15,11 +23,29 @@ OpenAIAsync .build/trQp7H7Uyl/lib/OpenAIAsync.pm 1;" p OpenAIAsync .build/wX6DkQhw6E/blib/lib/OpenAIAsync.pm 1;" p OpenAIAsync .build/wX6DkQhw6E/lib/OpenAIAsync.pm 1;" p OpenAIAsync lib/OpenAIAsync.pm 1;" p +OpenAIAsync::Client .build/Xz72xzB4iA/blib/lib/OpenAIAsync/Client.pm 1;" p +OpenAIAsync::Client .build/Xz72xzB4iA/lib/OpenAIAsync/Client.pm 1;" p +OpenAIAsync::Client .build/bgXXjrPaza/blib/lib/OpenAIAsync/Client.pm 1;" p +OpenAIAsync::Client .build/bgXXjrPaza/lib/OpenAIAsync/Client.pm 1;" p +OpenAIAsync::Client .build/latest/blib/lib/OpenAIAsync/Client.pm 1;" p +OpenAIAsync::Client .build/latest/lib/OpenAIAsync/Client.pm 1;" p +OpenAIAsync::Client .build/mKmyAW37h1/blib/lib/OpenAIAsync/Client.pm 1;" p +OpenAIAsync::Client .build/mKmyAW37h1/lib/OpenAIAsync/Client.pm 1;" p +OpenAIAsync::Client .build/previous/blib/lib/OpenAIAsync/Client.pm 1;" p +OpenAIAsync::Client .build/previous/lib/OpenAIAsync/Client.pm 1;" p OpenAIAsync::Client lib/OpenAIAsync/Client.pm 1;" p OpenAIAsync::Types .build/0T4wbFlmwf/blib/lib/OpenAIAsync/Types.pm 1;" p OpenAIAsync::Types .build/0T4wbFlmwf/lib/OpenAIAsync/Types.pm 1;" p OpenAIAsync::Types .build/AcmKa2ZbCJ/blib/lib/OpenAIAsync/Types.pm 1;" p OpenAIAsync::Types .build/AcmKa2ZbCJ/lib/OpenAIAsync/Types.pm 1;" p +OpenAIAsync::Types .build/Xz72xzB4iA/blib/lib/OpenAIAsync/Types.pm 1;" p +OpenAIAsync::Types .build/Xz72xzB4iA/lib/OpenAIAsync/Types.pm 1;" p +OpenAIAsync::Types .build/bgXXjrPaza/blib/lib/OpenAIAsync/Types.pm 1;" p +OpenAIAsync::Types .build/bgXXjrPaza/lib/OpenAIAsync/Types.pm 1;" p +OpenAIAsync::Types .build/latest/blib/lib/OpenAIAsync/Types.pm 1;" p +OpenAIAsync::Types .build/latest/lib/OpenAIAsync/Types.pm 1;" p +OpenAIAsync::Types .build/mKmyAW37h1/blib/lib/OpenAIAsync/Types.pm 1;" p +OpenAIAsync::Types .build/mKmyAW37h1/lib/OpenAIAsync/Types.pm 1;" p OpenAIAsync::Types .build/previous/blib/lib/OpenAIAsync/Types.pm 1;" p OpenAIAsync::Types .build/previous/lib/OpenAIAsync/Types.pm 1;" p OpenAIAsync::Types .build/trQp7H7Uyl/blib/lib/OpenAIAsync/Types.pm 1;" p @@ -33,10 +59,18 @@ OpenAIAsync::Types::Requests .build/4DgDOdekNW/blib/lib/OpenAIAsync/Types/Reques OpenAIAsync::Types::Requests .build/4DgDOdekNW/lib/OpenAIAsync/Types/Requests.pm 1;" p OpenAIAsync::Types::Requests .build/AcmKa2ZbCJ/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p OpenAIAsync::Types::Requests .build/AcmKa2ZbCJ/lib/OpenAIAsync/Types/Requests.pm 1;" p +OpenAIAsync::Types::Requests .build/Xz72xzB4iA/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p +OpenAIAsync::Types::Requests .build/Xz72xzB4iA/lib/OpenAIAsync/Types/Requests.pm 1;" p OpenAIAsync::Types::Requests .build/_pSCu227xy/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p OpenAIAsync::Types::Requests .build/_pSCu227xy/lib/OpenAIAsync/Types/Requests.pm 1;" p +OpenAIAsync::Types::Requests .build/bgXXjrPaza/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p +OpenAIAsync::Types::Requests .build/bgXXjrPaza/lib/OpenAIAsync/Types/Requests.pm 1;" p OpenAIAsync::Types::Requests .build/cD5KaBDsj2/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p OpenAIAsync::Types::Requests .build/cD5KaBDsj2/lib/OpenAIAsync/Types/Requests.pm 1;" p +OpenAIAsync::Types::Requests .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p +OpenAIAsync::Types::Requests .build/latest/lib/OpenAIAsync/Types/Requests.pm 1;" p +OpenAIAsync::Types::Requests .build/mKmyAW37h1/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p +OpenAIAsync::Types::Requests .build/mKmyAW37h1/lib/OpenAIAsync/Types/Requests.pm 1;" p OpenAIAsync::Types::Requests .build/nb3podVIwj/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p OpenAIAsync::Types::Requests .build/nb3podVIwj/lib/OpenAIAsync/Types/Requests.pm 1;" p OpenAIAsync::Types::Requests .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p @@ -54,10 +88,18 @@ OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/4DgDOdekNW/ OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/AcmKa2ZbCJ/blib/lib/OpenAIAsync/Types/Requests.pm 170;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/AcmKa2ZbCJ/lib/OpenAIAsync/Types/Requests.pm 170;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/NfFNPyy4iR/lib/OpenAIAsync/Types/Requests.pm 169;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/Xz72xzB4iA/blib/lib/OpenAIAsync/Types/Requests.pm 170;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/Xz72xzB4iA/lib/OpenAIAsync/Types/Requests.pm 170;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/_pSCu227xy/blib/lib/OpenAIAsync/Types/Requests.pm 169;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/_pSCu227xy/lib/OpenAIAsync/Types/Requests.pm 169;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/bgXXjrPaza/blib/lib/OpenAIAsync/Types/Requests.pm 170;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/bgXXjrPaza/lib/OpenAIAsync/Types/Requests.pm 170;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/cD5KaBDsj2/blib/lib/OpenAIAsync/Types/Requests.pm 170;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/cD5KaBDsj2/lib/OpenAIAsync/Types/Requests.pm 170;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 170;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/latest/lib/OpenAIAsync/Types/Requests.pm 170;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/mKmyAW37h1/blib/lib/OpenAIAsync/Types/Requests.pm 170;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/mKmyAW37h1/lib/OpenAIAsync/Types/Requests.pm 170;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/nb3podVIwj/blib/lib/OpenAIAsync/Types/Requests.pm 170;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/nb3podVIwj/lib/OpenAIAsync/Types/Requests.pm 170;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 170;" p @@ -74,10 +116,18 @@ OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .buil OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/AcmKa2ZbCJ/blib/lib/OpenAIAsync/Types/Requests.pm 94;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/AcmKa2ZbCJ/lib/OpenAIAsync/Types/Requests.pm 94;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/NfFNPyy4iR/lib/OpenAIAsync/Types/Requests.pm 93;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/Xz72xzB4iA/blib/lib/OpenAIAsync/Types/Requests.pm 94;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/Xz72xzB4iA/lib/OpenAIAsync/Types/Requests.pm 94;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/_pSCu227xy/blib/lib/OpenAIAsync/Types/Requests.pm 93;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/_pSCu227xy/lib/OpenAIAsync/Types/Requests.pm 93;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/bgXXjrPaza/blib/lib/OpenAIAsync/Types/Requests.pm 94;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/bgXXjrPaza/lib/OpenAIAsync/Types/Requests.pm 94;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/cD5KaBDsj2/blib/lib/OpenAIAsync/Types/Requests.pm 94;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/cD5KaBDsj2/lib/OpenAIAsync/Types/Requests.pm 94;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 94;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/latest/lib/OpenAIAsync/Types/Requests.pm 94;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/mKmyAW37h1/blib/lib/OpenAIAsync/Types/Requests.pm 94;" p +OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/mKmyAW37h1/lib/OpenAIAsync/Types/Requests.pm 94;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/nb3podVIwj/blib/lib/OpenAIAsync/Types/Requests.pm 94;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/nb3podVIwj/lib/OpenAIAsync/Types/Requests.pm 94;" p OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 94;" p @@ -94,10 +144,18 @@ OpenAIAsync::Types::Results .build/4DgDOdekNW/lib/OpenAIAsync/Types/Results.pm 1 OpenAIAsync::Types::Results .build/AcmKa2ZbCJ/blib/lib/OpenAIAsync/Types/Results.pm 1;" p OpenAIAsync::Types::Results .build/AcmKa2ZbCJ/lib/OpenAIAsync/Types/Results.pm 1;" p OpenAIAsync::Types::Results .build/NfFNPyy4iR/lib/OpenAIAsync/Types/Results.pm 1;" p +OpenAIAsync::Types::Results .build/Xz72xzB4iA/blib/lib/OpenAIAsync/Types/Results.pm 1;" p +OpenAIAsync::Types::Results .build/Xz72xzB4iA/lib/OpenAIAsync/Types/Results.pm 1;" p OpenAIAsync::Types::Results .build/_pSCu227xy/blib/lib/OpenAIAsync/Types/Results.pm 1;" p OpenAIAsync::Types::Results .build/_pSCu227xy/lib/OpenAIAsync/Types/Results.pm 1;" p +OpenAIAsync::Types::Results .build/bgXXjrPaza/blib/lib/OpenAIAsync/Types/Results.pm 1;" p +OpenAIAsync::Types::Results .build/bgXXjrPaza/lib/OpenAIAsync/Types/Results.pm 1;" p OpenAIAsync::Types::Results .build/cD5KaBDsj2/blib/lib/OpenAIAsync/Types/Results.pm 1;" p OpenAIAsync::Types::Results .build/cD5KaBDsj2/lib/OpenAIAsync/Types/Results.pm 1;" p +OpenAIAsync::Types::Results .build/latest/blib/lib/OpenAIAsync/Types/Results.pm 1;" p +OpenAIAsync::Types::Results .build/latest/lib/OpenAIAsync/Types/Results.pm 1;" p +OpenAIAsync::Types::Results .build/mKmyAW37h1/blib/lib/OpenAIAsync/Types/Results.pm 1;" p +OpenAIAsync::Types::Results .build/mKmyAW37h1/lib/OpenAIAsync/Types/Results.pm 1;" p OpenAIAsync::Types::Results .build/nb3podVIwj/blib/lib/OpenAIAsync/Types/Results.pm 1;" p OpenAIAsync::Types::Results .build/nb3podVIwj/lib/OpenAIAsync/Types/Results.pm 1;" p OpenAIAsync::Types::Results .build/previous/blib/lib/OpenAIAsync/Types/Results.pm 1;" p @@ -121,14 +179,30 @@ new .build/AcmKa2ZbCJ/lib/OpenAIAsync/Types/Requests.pm 173;" s new .build/AcmKa2ZbCJ/lib/OpenAIAsync/Types/Requests.pm 97;" s new .build/NfFNPyy4iR/lib/OpenAIAsync/Types/Requests.pm 172;" s new .build/NfFNPyy4iR/lib/OpenAIAsync/Types/Requests.pm 96;" s +new .build/Xz72xzB4iA/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s +new .build/Xz72xzB4iA/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s +new .build/Xz72xzB4iA/lib/OpenAIAsync/Types/Requests.pm 173;" s +new .build/Xz72xzB4iA/lib/OpenAIAsync/Types/Requests.pm 97;" s new .build/_pSCu227xy/blib/lib/OpenAIAsync/Types/Requests.pm 172;" s new .build/_pSCu227xy/blib/lib/OpenAIAsync/Types/Requests.pm 96;" s new .build/_pSCu227xy/lib/OpenAIAsync/Types/Requests.pm 172;" s new .build/_pSCu227xy/lib/OpenAIAsync/Types/Requests.pm 96;" s +new .build/bgXXjrPaza/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s +new .build/bgXXjrPaza/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s +new .build/bgXXjrPaza/lib/OpenAIAsync/Types/Requests.pm 173;" s +new .build/bgXXjrPaza/lib/OpenAIAsync/Types/Requests.pm 97;" s new .build/cD5KaBDsj2/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s new .build/cD5KaBDsj2/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s new .build/cD5KaBDsj2/lib/OpenAIAsync/Types/Requests.pm 173;" s new .build/cD5KaBDsj2/lib/OpenAIAsync/Types/Requests.pm 97;" s +new .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s +new .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s +new .build/latest/lib/OpenAIAsync/Types/Requests.pm 173;" s +new .build/latest/lib/OpenAIAsync/Types/Requests.pm 97;" s +new .build/mKmyAW37h1/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s +new .build/mKmyAW37h1/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s +new .build/mKmyAW37h1/lib/OpenAIAsync/Types/Requests.pm 173;" s +new .build/mKmyAW37h1/lib/OpenAIAsync/Types/Requests.pm 97;" s new .build/nb3podVIwj/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s new .build/nb3podVIwj/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s new .build/nb3podVIwj/lib/OpenAIAsync/Types/Requests.pm 173;" s @@ -154,10 +228,18 @@ ontent::new .build/4DgDOdekNW/lib/OpenAIAsync/Types/Requests.pm 172;" s ontent::new .build/AcmKa2ZbCJ/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s ontent::new .build/AcmKa2ZbCJ/lib/OpenAIAsync/Types/Requests.pm 173;" s ontent::new .build/NfFNPyy4iR/lib/OpenAIAsync/Types/Requests.pm 172;" s +ontent::new .build/Xz72xzB4iA/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s +ontent::new .build/Xz72xzB4iA/lib/OpenAIAsync/Types/Requests.pm 173;" s ontent::new .build/_pSCu227xy/blib/lib/OpenAIAsync/Types/Requests.pm 172;" s ontent::new .build/_pSCu227xy/lib/OpenAIAsync/Types/Requests.pm 172;" s +ontent::new .build/bgXXjrPaza/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s +ontent::new .build/bgXXjrPaza/lib/OpenAIAsync/Types/Requests.pm 173;" s ontent::new .build/cD5KaBDsj2/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s ontent::new .build/cD5KaBDsj2/lib/OpenAIAsync/Types/Requests.pm 173;" s +ontent::new .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s +ontent::new .build/latest/lib/OpenAIAsync/Types/Requests.pm 173;" s +ontent::new .build/mKmyAW37h1/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s +ontent::new .build/mKmyAW37h1/lib/OpenAIAsync/Types/Requests.pm 173;" s ontent::new .build/nb3podVIwj/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s ontent::new .build/nb3podVIwj/lib/OpenAIAsync/Types/Requests.pm 173;" s ontent::new .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 173;" s @@ -174,10 +256,18 @@ y::new .build/4DgDOdekNW/lib/OpenAIAsync/Types/Requests.pm 96;" s y::new .build/AcmKa2ZbCJ/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s y::new .build/AcmKa2ZbCJ/lib/OpenAIAsync/Types/Requests.pm 97;" s y::new .build/NfFNPyy4iR/lib/OpenAIAsync/Types/Requests.pm 96;" s +y::new .build/Xz72xzB4iA/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s +y::new .build/Xz72xzB4iA/lib/OpenAIAsync/Types/Requests.pm 97;" s y::new .build/_pSCu227xy/blib/lib/OpenAIAsync/Types/Requests.pm 96;" s y::new .build/_pSCu227xy/lib/OpenAIAsync/Types/Requests.pm 96;" s +y::new .build/bgXXjrPaza/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s +y::new .build/bgXXjrPaza/lib/OpenAIAsync/Types/Requests.pm 97;" s y::new .build/cD5KaBDsj2/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s y::new .build/cD5KaBDsj2/lib/OpenAIAsync/Types/Requests.pm 97;" s +y::new .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s +y::new .build/latest/lib/OpenAIAsync/Types/Requests.pm 97;" s +y::new .build/mKmyAW37h1/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s +y::new .build/mKmyAW37h1/lib/OpenAIAsync/Types/Requests.pm 97;" s y::new .build/nb3podVIwj/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s y::new .build/nb3podVIwj/lib/OpenAIAsync/Types/Requests.pm 97;" s y::new .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 97;" s diff --git a/lib/OpenAIAsync/Client.pm b/lib/OpenAIAsync/Client.pm index 9d5fa1b..4a5ac13 100644 --- a/lib/OpenAIAsync/Client.pm +++ b/lib/OpenAIAsync/Client.pm @@ -4,6 +4,7 @@ use v5.38.0; use Object::Pad; use IO::Async::SSL; # We're not directly using it but I want to enforce that we pull it in when detecting dependencies, since openai itself is always https use Future::AsyncAwait; +use IO::Async; use OpenAIAsync::Types::Results; use OpenAIAsync::Types::Requests; @@ -12,7 +13,7 @@ our $VERSION="v0.1.0"; # ABSTRACT: Async client for OpenAI style REST API for various AI systems (LLMs, Images, Video, etc.) -class OpenAIAsync::Client :repr(HASH) :isa(IO::Async::Notifier) { +class OpenAIAsync::Client :repr(HASH) :isa(IO::Async::Notifier) :strict(params) { use JSON::MaybeXS qw//; use Net::Async::HTTP; use Feature::Compat::Try; @@ -35,6 +36,8 @@ class OpenAIAsync::Client :repr(HASH) :isa(IO::Async::Notifier) { field $api_org_name :param(api_org_name) = undef; + field $io_async_notifier_params :param = undef; + method configure(%params) { # We require them to go this way, so that there is no conflicts # TODO document this diff --git a/t/02-create-client.t b/t/02-create-client.t index 396df2e..3766418 100644 --- a/t/02-create-client.t +++ b/t/02-create-client.t @@ -5,22 +5,36 @@ use Test2::V0; use OpenAIAsync::Client; -lives { +BEGIN { + $ENV{OPENAI_API_KEY}="12345" unless $ENV{OPENAI_API_KEY}="12345"; +} + +ok(lives { my $client = OpenAIAsync::Client->new(); isa_ok($client, "OpenAIAsync::Client"); -}, "basic client creation"; +}, "basic client creation"); -dies { +my $exp = dies { my $client = OpenAIAsync::Client->new(bad_option_doesnt_exist => 1); +}; -}, "Unknown options not working"; +ok($exp, "Unknown option kills creation"); -lives { - my $client = OpenAIAsync::Client->new(); +like($exp, qr/Unrecognised parameters for OpenAIAsync::Client constructor: 'bad_option_doesnt_exist' at/, "exception text for unknonwn option"); + +ok lives { + my $client = OpenAIAsync::Client->new(http_other_options => {}); isa_ok($client, "OpenAIAsync::Client"); -}, "basic client creation"; +}, "set http options"; + +ok lives { + my $client = OpenAIAsync::Client->new(io_async_notifier_params=>{}); + + isa_ok($client, "OpenAIAsync::Client"); +}, "Can give io async notifier options"; + done_testing(); \ No newline at end of file