wppaste
WordPress

AbstractApiBasedModelMetadataDirectory

Since
0.1.0
Source
wp-includes/php-ai-client/src/Providers/ApiBasedImplementation/AbstractApiBasedModelMetadataDirectory.php:21
Base class for an API-based model metadata directory for a provider.

Compatibility

WordPress
since 0.1.0
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in 2 of the 5 tracked releases, added in 0.1.0.

Methods · 7

Source code

abstract class AbstractApiBasedModelMetadataDirectory implements ModelMetadataDirectoryInterface, WithHttpTransporterInterface, WithRequestAuthenticationInterface, CachesDataInterface{    use WithHttpTransporterTrait;    use WithRequestAuthenticationTrait;    use WithDataCachingTrait;    /**     * The cache key suffix for the models list.     *     * @since 0.4.0     *     * @var string     */    private const MODELS_CACHE_KEY = 'models';    /**     * {@inheritDoc}     *     * @since 0.1.0     */    final public function listModelMetadata(): array    {        $modelsMetadata = $this->getModelMetadataMap();        return array_values($modelsMetadata);    }    /**     * {@inheritDoc}     *     * @since 0.1.0     */    final public function hasModelMetadata(string $modelId): bool    {        $modelsMetadata = $this->getModelMetadataMap();        return isset($modelsMetadata[$modelId]);    }    /**     * {@inheritDoc}     *     * @since 0.1.0     */    final public function getModelMetadata(string $modelId): ModelMetadata    {        $modelsMetadata = $this->getModelMetadataMap();        if (!isset($modelsMetadata[$modelId])) {            throw new InvalidArgumentException(sprintf('No model with ID %s was found in the provider', $modelId));        }        return $modelsMetadata[$modelId];    }    /**     * Returns the map of model ID to model metadata for all models from the provider.     *     * @since 0.1.0     *     * @return array<string, ModelMetadata> Map of model ID to model metadata.     */    private function getModelMetadataMap(): array    {        /** @var array<string, ModelMetadata> */        return $this->cached(self::MODELS_CACHE_KEY, fn() => $this->sendListModelsRequest(), 86400);    }    /**     * {@inheritDoc}     *     * @since 0.4.0     */    protected function getCachedKeys(): array    {        return [self::MODELS_CACHE_KEY];    }    /**     * {@inheritDoc}     *     * @since 0.4.0     */    protected function getBaseCacheKey(): string    {        return 'ai_client_' . AiClient::VERSION . '_' . md5(static::class);    }    /**     * Sends the API request to list models from the provider and returns the map of model ID to model metadata.     *     * @since 0.1.0

Changelog

Introduced in 0.1.0. Unchanged from 7.0.4 through 7.1.0.

  1. 7.0.4
  2. 7.1.0

Signature, return type and hooks compared across 2 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 7.1.0 tag, from src/wp-includes/php-ai-client/src/Providers/ApiBasedImplementation/AbstractApiBasedModelMetadataDirectory.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.