diff --git a/src/ProviderImplementations/OpenAi/OpenAiModelMetadataDirectory.php b/src/ProviderImplementations/OpenAi/OpenAiModelMetadataDirectory.php index b8544eb9..3ffb2d96 100644 --- a/src/ProviderImplementations/OpenAi/OpenAiModelMetadataDirectory.php +++ b/src/ProviderImplementations/OpenAi/OpenAiModelMetadataDirectory.php @@ -109,6 +109,14 @@ protected function parseResponseToModelMetadataList(Response $response): array ] ), ]); + $gptSearchOptions = [ + new SupportedOption(OptionEnum::systemInstruction()), + new SupportedOption(OptionEnum::outputMimeType(), ['text/plain', 'application/json']), + new SupportedOption(OptionEnum::outputSchema()), + new SupportedOption(OptionEnum::customOptions()), + new SupportedOption(OptionEnum::inputModalities(), [[ModalityEnum::text()]]), + new SupportedOption(OptionEnum::outputModalities(), [[ModalityEnum::text()]]), + ]; $imageCapabilities = [ CapabilityEnum::imageGeneration(), ]; @@ -166,6 +174,7 @@ static function (array $modelData) use ( $gptOptions, $gptMultimodalInputOptions, $gptMultimodalSpeechOutputOptions, + $gptSearchOptions, $imageCapabilities, $dalleImageOptions, $gptImageOptions, @@ -200,6 +209,8 @@ static function (array $modelData) use ( // New multimodal output model for audio generation. if (str_contains($modelId, '-audio')) { $modelOptions = $gptMultimodalSpeechOutputOptions; + } elseif (str_contains($modelId, '-search')) { + $modelOptions = $gptSearchOptions; } } elseif (!str_contains($modelId, '-audio')) { $modelCaps = $gptCapabilities;