ModelConfig::fromArray( $array )

In this article

{@inheritDoc}

Source

public static function fromArray(array $array): self
{
    $config = new self();
    if (isset($array[self::KEY_OUTPUT_MODALITIES])) {
        $config->setOutputModalities(array_map(static fn(string $modality): ModalityEnum => ModalityEnum::from($modality), $array[self::KEY_OUTPUT_MODALITIES]));
    }
    if (isset($array[self::KEY_SYSTEM_INSTRUCTION])) {
        $config->setSystemInstruction($array[self::KEY_SYSTEM_INSTRUCTION]);
    }
    if (isset($array[self::KEY_CANDIDATE_COUNT])) {
        $config->setCandidateCount($array[self::KEY_CANDIDATE_COUNT]);
    }
    if (isset($array[self::KEY_MAX_TOKENS])) {
        $config->setMaxTokens($array[self::KEY_MAX_TOKENS]);
    }
    if (isset($array[self::KEY_TEMPERATURE])) {
        $config->setTemperature($array[self::KEY_TEMPERATURE]);
    }
    if (isset($array[self::KEY_TOP_P])) {
        $config->setTopP($array[self::KEY_TOP_P]);
    }
    if (isset($array[self::KEY_TOP_K])) {
        $config->setTopK($array[self::KEY_TOP_K]);
    }
    if (isset($array[self::KEY_STOP_SEQUENCES])) {
        $config->setStopSequences($array[self::KEY_STOP_SEQUENCES]);
    }
    if (isset($array[self::KEY_PRESENCE_PENALTY])) {
        $config->setPresencePenalty($array[self::KEY_PRESENCE_PENALTY]);
    }
    if (isset($array[self::KEY_FREQUENCY_PENALTY])) {
        $config->setFrequencyPenalty($array[self::KEY_FREQUENCY_PENALTY]);
    }
    if (isset($array[self::KEY_LOGPROBS])) {
        $config->setLogprobs($array[self::KEY_LOGPROBS]);
    }
    if (isset($array[self::KEY_TOP_LOGPROBS])) {
        $config->setTopLogprobs($array[self::KEY_TOP_LOGPROBS]);
    }
    if (isset($array[self::KEY_FUNCTION_DECLARATIONS])) {
        $config->setFunctionDeclarations(array_map(static function (array $functionDeclarationData): FunctionDeclaration {
            return FunctionDeclaration::fromArray($functionDeclarationData);
        }, $array[self::KEY_FUNCTION_DECLARATIONS]));
    }
    if (isset($array[self::KEY_WEB_SEARCH])) {
        $config->setWebSearch(WebSearch::fromArray($array[self::KEY_WEB_SEARCH]));
    }
    if (isset($array[self::KEY_OUTPUT_FILE_TYPE])) {
        $config->setOutputFileType(FileTypeEnum::from($array[self::KEY_OUTPUT_FILE_TYPE]));
    }
    if (isset($array[self::KEY_OUTPUT_MIME_TYPE])) {
        $config->setOutputMimeType($array[self::KEY_OUTPUT_MIME_TYPE]);
    }
    if (isset($array[self::KEY_OUTPUT_SCHEMA])) {
        $config->setOutputSchema($array[self::KEY_OUTPUT_SCHEMA]);
    }
    if (isset($array[self::KEY_OUTPUT_MEDIA_ORIENTATION])) {
        $config->setOutputMediaOrientation(MediaOrientationEnum::from($array[self::KEY_OUTPUT_MEDIA_ORIENTATION]));
    }
    if (isset($array[self::KEY_OUTPUT_MEDIA_ASPECT_RATIO])) {
        $config->setOutputMediaAspectRatio($array[self::KEY_OUTPUT_MEDIA_ASPECT_RATIO]);
    }
    if (isset($array[self::KEY_OUTPUT_SPEECH_VOICE])) {
        $config->setOutputSpeechVoice($array[self::KEY_OUTPUT_SPEECH_VOICE]);
    }
    if (isset($array[self::KEY_CUSTOM_OPTIONS])) {
        $config->setCustomOptions($array[self::KEY_CUSTOM_OPTIONS]);
    }
    return $config;
}

Changelog

VersionDescription
0.1.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.