From 3161c83bf6b520ff6e3d6d13f14b52807312115f Mon Sep 17 00:00:00 2001 From: Deeka Wong Date: Thu, 15 Jun 2023 08:20:37 +0800 Subject: [PATCH] [3.0]Bumps openai (#242) * Bumps `openai-php/client` to `0.6.0` * Bumps `openai-php/client` to `0.6.0` --------- Co-authored-by: Deeka Wong <8337659+huangdijia@users.noreply.github.com> --- composer.json | 2 +- publish/openai.php | 2 ++ src/ClientFactory.php | 12 ++++++++---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/composer.json b/composer.json index 47fd6d3..d0e331d 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ "hyperf/config": "~3.0.0", "hyperf/di": "~3.0.0", "hyperf/guzzle": "~3.0.0", - "openai-php/client": "^0.5.1" + "openai-php/client": "^0.6.0" }, "autoload": { "psr-4": { diff --git a/publish/openai.php b/publish/openai.php index a1ab56d..493ffec 100644 --- a/publish/openai.php +++ b/publish/openai.php @@ -11,6 +11,8 @@ use function Hyperf\Support\env; return [ + 'base_uri' => env('OPENAI_BASE_URI', 'api.openai.com/v1'), 'api_key' => env('OPENAI_API_KEY', ''), 'organization' => env('OPENAI_ORGANIZATION'), + 'request_timeout' => (int) env('OPENAI_REQUEST_TIMEOUT', 30), ]; diff --git a/src/ClientFactory.php b/src/ClientFactory.php index 8d5843f..4576fc5 100644 --- a/src/ClientFactory.php +++ b/src/ClientFactory.php @@ -21,20 +21,24 @@ final class ClientFactory { public function __invoke(ContainerInterface $container) { + $baseUri = config('openai.base_uri', 'api.openai.com/v1'); $apiKey = config('openai.api_key'); $organization = config('openai.organization'); + $timeout = config('openai.request_timeout', 30); if (! is_string($apiKey) || ($organization !== null && ! is_string($organization))) { throw ApiKeyIsMissing::create(); } + $httpClient = $container->get(GuzzleClientFactory::class)->create([ + 'timeout' => $timeout, + ]); + return OpenAI::factory() + ->withBaseUri($baseUri) ->withApiKey($apiKey) ->withOrganization($organization) - ->withBaseUri('api.openai.com/v1') - ->withHttpClient( - $container->get(GuzzleClientFactory::class)->create() - ) + ->withHttpClient($httpClient) ->make(); } }