WordPress\AiClient\Providers\Models\DTO

ModelRequirements::toRequiredOptionsprivate staticWP 0.2.0

Converts ModelConfig to an array of RequiredOptions.

Метод класса: ModelRequirements{}

Хуков нет.

Возвращает

list. The required options.

Использование

$result = ModelRequirements::toRequiredOptions( $modelConfig ): array;
$modelConfig(ModelConfig) (обязательный)
The model configuration.

Список изменений

С версии 0.2.0 Введена.

Код ModelRequirements::toRequiredOptions() WP 7.0

private static function toRequiredOptions(\WordPress\AiClient\Providers\Models\DTO\ModelConfig $modelConfig): array
{
    $requiredOptions = [];
    // Map properties that have corresponding OptionEnum values
    if ($modelConfig->getOutputModalities() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::outputModalities(), $modelConfig->getOutputModalities());
    }
    if ($modelConfig->getSystemInstruction() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::systemInstruction(), $modelConfig->getSystemInstruction());
    }
    if ($modelConfig->getCandidateCount() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::candidateCount(), $modelConfig->getCandidateCount());
    }
    if ($modelConfig->getMaxTokens() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::maxTokens(), $modelConfig->getMaxTokens());
    }
    if ($modelConfig->getTemperature() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::temperature(), $modelConfig->getTemperature());
    }
    if ($modelConfig->getTopP() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::topP(), $modelConfig->getTopP());
    }
    if ($modelConfig->getTopK() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::topK(), $modelConfig->getTopK());
    }
    if ($modelConfig->getOutputMimeType() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::outputMimeType(), $modelConfig->getOutputMimeType());
    }
    if ($modelConfig->getOutputSchema() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::outputSchema(), $modelConfig->getOutputSchema());
    }
    // Handle properties without OptionEnum values as custom options
    if ($modelConfig->getStopSequences() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::stopSequences(), $modelConfig->getStopSequences());
    }
    if ($modelConfig->getPresencePenalty() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::presencePenalty(), $modelConfig->getPresencePenalty());
    }
    if ($modelConfig->getFrequencyPenalty() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::frequencyPenalty(), $modelConfig->getFrequencyPenalty());
    }
    if ($modelConfig->getLogprobs() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::logprobs(), $modelConfig->getLogprobs());
    }
    if ($modelConfig->getTopLogprobs() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::topLogprobs(), $modelConfig->getTopLogprobs());
    }
    if ($modelConfig->getFunctionDeclarations() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::functionDeclarations(), \true);
    }
    if ($modelConfig->getWebSearch() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::webSearch(), \true);
    }
    if ($modelConfig->getOutputFileType() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::outputFileType(), $modelConfig->getOutputFileType());
    }
    if ($modelConfig->getOutputMediaOrientation() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::outputMediaOrientation(), $modelConfig->getOutputMediaOrientation());
    }
    if ($modelConfig->getOutputMediaAspectRatio() !== null) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::outputMediaAspectRatio(), $modelConfig->getOutputMediaAspectRatio());
    }
    // Add custom options as individual RequiredOptions
    foreach ($modelConfig->getCustomOptions() as $key => $value) {
        $requiredOptions[] = new \WordPress\AiClient\Providers\Models\DTO\RequiredOption(OptionEnum::customOptions(), [$key => $value]);
    }
    return $requiredOptions;
}