setTimeout( 120.0 ); $model->setRequestOptions( $request_options ); return $model; } /** * {@inheritDoc} * * @since 1.0.0 */ protected static function createProviderMetadata(): ProviderMetadata { $provider_metadata_args = array( 'kimi', 'Kimi', ProviderTypeEnum::cloud(), 'https://platform.kimi.ai', RequestAuthenticationMethod::apiKey(), ); // Provider description support was added in 1.2.0. if ( version_compare( AiClient::VERSION, '1.2.0', '>=' ) ) { // For WordPress, we should translate the description. if ( function_exists( '__' ) ) { $provider_metadata_args[] = __( 'Text generation with Moonshot AI models.', 'ai-provider-for-kimi' ); } else { $provider_metadata_args[] = 'Text generation with Moonshot AI models.'; } } // Provider logoPath support was added in 1.3.0. if ( version_compare( AiClient::VERSION, '1.3.0', '>=' ) ) { $provider_metadata_args[] = dirname( __DIR__, 2 ) . '/assets/images/kimi.svg'; } return new ProviderMetadata( ...$provider_metadata_args ); } /** * {@inheritDoc} * * @since 1.0.0 */ protected static function createProviderAvailability(): ProviderAvailabilityInterface { // Check valid API access by attempting to list models. return new ListModelsApiBasedProviderAvailability( static::modelMetadataDirectory() ); } /** * {@inheritDoc} * * @since 1.0.0 */ protected static function createModelMetadataDirectory(): ModelMetadataDirectoryInterface { return new KimiModelMetadataDirectory(); } }