{@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
| Version | Description |
|---|---|
| 0.1.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.