/** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * @since 3.2.0 */ public function register(Container $container) { $container->alias(Chat::class, 'Openai.Chat') ->share('Openai.Chat', [$this, 'getChat'], true); $container->alias(Completions::class, 'Openai.Completions') ->share('Openai.Completions', [$this, 'getCompletions'], true); $container->alias(Models::class, 'Openai.Models') ->share('Openai.Models', [$this, 'getModels'], true); $container->alias(Moderate::class, 'Openai.Moderate') ->share('Openai.Moderate', [$this, 'getModerate'], true); } /** * Get the Chat class * * @param Container $container The DI container. * * @return Chat * @since 3.2.0 */ public function getChat(Container $container): Chat { return new Chat( $container->get('Openai.Utilities.Http'), $container->get('Openai.Utilities.Uri'), $container->get('Openai.Utilities.Response') ); } /** * Get the Completions class * * @param Container $container The DI container. * * @return Completions * @since 3.2.0 */ public function getCompletions(Container $container): Completions { return new Completions( $container->get('Openai.Utilities.Http'), $container->get('Openai.Utilities.Uri'), $container->get('Openai.Utilities.Response') ); } /** * Get the Models class * * @param Container $container The DI container. * * @return Models * @since 3.2.0 */ public function getModels(Container $container): Models { return new Models( $container->get('Openai.Utilities.Http'), $container->get('Openai.Utilities.Uri'), $container->get('Openai.Utilities.Response') ); } /** * Get the Moderate class * * @param Container $container The DI container. * * @return Moderate * @since 3.2.0 */ public function getModerate(Container $container): Moderate { return new Moderate( $container->get('Openai.Utilities.Http'), $container->get('Openai.Utilities.Uri'), $container->get('Openai.Utilities.Response') ); }