| [ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 <?php 2 3 declare (strict_types=1); 4 namespace WordPress\AiClient\Providers\ApiBasedImplementation; 5 6 use WordPress\AiClient\Providers\ApiBasedImplementation\Contracts\ApiBasedModelInterface; 7 use WordPress\AiClient\Providers\DTO\ProviderMetadata; 8 use WordPress\AiClient\Providers\Http\Contracts\WithHttpTransporterInterface; 9 use WordPress\AiClient\Providers\Http\Contracts\WithRequestAuthenticationInterface; 10 use WordPress\AiClient\Providers\Http\DTO\RequestOptions; 11 use WordPress\AiClient\Providers\Http\Traits\WithHttpTransporterTrait; 12 use WordPress\AiClient\Providers\Http\Traits\WithRequestAuthenticationTrait; 13 use WordPress\AiClient\Providers\Models\DTO\ModelConfig; 14 use WordPress\AiClient\Providers\Models\DTO\ModelMetadata; 15 /** 16 * Base class for an API-based model for a provider. 17 * 18 * While this class contains no abstract methods, it is still abstract to ensure that each model class can actually 19 * perform generative AI tasks by implementing the corresponding interfaces. 20 * 21 * @since 0.1.0 22 */ 23 abstract class AbstractApiBasedModel implements ApiBasedModelInterface, WithHttpTransporterInterface, WithRequestAuthenticationInterface 24 { 25 use WithHttpTransporterTrait; 26 use WithRequestAuthenticationTrait; 27 /** 28 * @var ModelMetadata The metadata for the model. 29 */ 30 private ModelMetadata $metadata; 31 /** 32 * @var ProviderMetadata The metadata for the model's provider. 33 */ 34 private ProviderMetadata $providerMetadata; 35 /** 36 * @var ModelConfig The configuration for the model. 37 */ 38 private ModelConfig $config; 39 /** 40 * @var RequestOptions|null The request options for HTTP transport. 41 */ 42 private ?RequestOptions $requestOptions = null; 43 /** 44 * Constructor. 45 * 46 * @since 0.1.0 47 * 48 * @param ModelMetadata $metadata The metadata for the model. 49 * @param ProviderMetadata $providerMetadata The metadata for the model's provider. 50 */ 51 public function __construct(ModelMetadata $metadata, ProviderMetadata $providerMetadata) 52 { 53 $this->metadata = $metadata; 54 $this->providerMetadata = $providerMetadata; 55 $this->config = ModelConfig::fromArray([]); 56 } 57 /** 58 * {@inheritDoc} 59 * 60 * @since 0.1.0 61 */ 62 final public function metadata(): ModelMetadata 63 { 64 return $this->metadata; 65 } 66 /** 67 * {@inheritDoc} 68 * 69 * @since 0.1.0 70 */ 71 final public function providerMetadata(): ProviderMetadata 72 { 73 return $this->providerMetadata; 74 } 75 /** 76 * {@inheritDoc} 77 * 78 * @since 0.1.0 79 */ 80 final public function setConfig(ModelConfig $config): void 81 { 82 $this->config = $config; 83 } 84 /** 85 * {@inheritDoc} 86 * 87 * @since 0.1.0 88 */ 89 final public function getConfig(): ModelConfig 90 { 91 return $this->config; 92 } 93 /** 94 * {@inheritDoc} 95 * 96 * @since 0.3.0 97 */ 98 final public function setRequestOptions(RequestOptions $requestOptions): void 99 { 100 $this->requestOptions = $requestOptions; 101 } 102 /** 103 * {@inheritDoc} 104 * 105 * @since 0.3.0 106 */ 107 final public function getRequestOptions(): ?RequestOptions 108 { 109 return $this->requestOptions; 110 } 111 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated : Sat Jun 13 09:38:55 2026 | Cross-referenced by PHPXref |