diff --git a/google/genai/_live_converters.py b/google/genai/_live_converters.py index d1bb8df03..82a127fcd 100644 --- a/google/genai/_live_converters.py +++ b/google/genai/_live_converters.py @@ -252,6 +252,26 @@ def _GoogleSearchRetrieval_to_vertex( return to_object +def _EnterpriseWebSearch_to_mldev( + api_client: BaseApiClient, + from_object: Union[dict[str, Any], object], + parent_object: Optional[dict[str, Any]] = None, +) -> dict[str, Any]: + to_object: dict[str, Any] = {} + + return to_object + + +def _EnterpriseWebSearch_to_vertex( + api_client: BaseApiClient, + from_object: Union[dict[str, Any], object], + parent_object: Optional[dict[str, Any]] = None, +) -> dict[str, Any]: + to_object: dict[str, Any] = {} + + return to_object + + def _Tool_to_mldev( api_client: BaseApiClient, from_object: Union[dict[str, Any], object], @@ -281,6 +301,11 @@ def _Tool_to_mldev( ), ) + if getv(from_object, ['enterprise_web_search']) is not None: + raise ValueError( + 'enterprise_web_search parameter is not supported in Gemini API.' + ) + if getv(from_object, ['code_execution']) is not None: setv(to_object, ['codeExecution'], getv(from_object, ['code_execution'])) @@ -323,6 +348,15 @@ def _Tool_to_vertex( ), ) + if getv(from_object, ['enterprise_web_search']) is not None: + setv( + to_object, + ['enterpriseWebSearch'], + _EnterpriseWebSearch_to_vertex( + api_client, getv(from_object, ['enterprise_web_search']), to_object + ), + ) + if getv(from_object, ['code_execution']) is not None: setv(to_object, ['codeExecution'], getv(from_object, ['code_execution'])) diff --git a/google/genai/caches.py b/google/genai/caches.py index ddb564f6a..2336c698d 100644 --- a/google/genai/caches.py +++ b/google/genai/caches.py @@ -145,6 +145,16 @@ def _GoogleSearchRetrieval_to_mldev( return to_object +def _EnterpriseWebSearch_to_mldev( + api_client: BaseApiClient, + from_object: Union[dict[str, Any], object], + parent_object: Optional[dict[str, Any]] = None, +) -> dict[str, Any]: + to_object: dict[str, Any] = {} + + return to_object + + def _Tool_to_mldev( api_client: BaseApiClient, from_object: Union[dict[str, Any], object], @@ -174,6 +184,11 @@ def _Tool_to_mldev( ), ) + if getv(from_object, ['enterprise_web_search']) is not None: + raise ValueError( + 'enterprise_web_search parameter is not supported in Gemini API.' + ) + if getv(from_object, ['code_execution']) is not None: setv(to_object, ['codeExecution'], getv(from_object, ['code_execution'])) @@ -546,6 +561,16 @@ def _GoogleSearchRetrieval_to_vertex( return to_object +def _EnterpriseWebSearch_to_vertex( + api_client: BaseApiClient, + from_object: Union[dict[str, Any], object], + parent_object: Optional[dict[str, Any]] = None, +) -> dict[str, Any]: + to_object: dict[str, Any] = {} + + return to_object + + def _Tool_to_vertex( api_client: BaseApiClient, from_object: Union[dict[str, Any], object], @@ -575,6 +600,15 @@ def _Tool_to_vertex( ), ) + if getv(from_object, ['enterprise_web_search']) is not None: + setv( + to_object, + ['enterpriseWebSearch'], + _EnterpriseWebSearch_to_vertex( + api_client, getv(from_object, ['enterprise_web_search']), to_object + ), + ) + if getv(from_object, ['code_execution']) is not None: setv(to_object, ['codeExecution'], getv(from_object, ['code_execution'])) diff --git a/google/genai/models.py b/google/genai/models.py index 575ad8e2d..b72dca772 100644 --- a/google/genai/models.py +++ b/google/genai/models.py @@ -178,6 +178,16 @@ def _GoogleSearchRetrieval_to_mldev( return to_object +def _EnterpriseWebSearch_to_mldev( + api_client: BaseApiClient, + from_object: Union[dict[str, Any], object], + parent_object: Optional[dict[str, Any]] = None, +) -> dict[str, Any]: + to_object: dict[str, Any] = {} + + return to_object + + def _Tool_to_mldev( api_client: BaseApiClient, from_object: Union[dict[str, Any], object], @@ -207,6 +217,11 @@ def _Tool_to_mldev( ), ) + if getv(from_object, ['enterprise_web_search']) is not None: + raise ValueError( + 'enterprise_web_search parameter is not supported in Gemini API.' + ) + if getv(from_object, ['code_execution']) is not None: setv(to_object, ['codeExecution'], getv(from_object, ['code_execution'])) @@ -1189,6 +1204,16 @@ def _GoogleSearchRetrieval_to_vertex( return to_object +def _EnterpriseWebSearch_to_vertex( + api_client: BaseApiClient, + from_object: Union[dict[str, Any], object], + parent_object: Optional[dict[str, Any]] = None, +) -> dict[str, Any]: + to_object: dict[str, Any] = {} + + return to_object + + def _Tool_to_vertex( api_client: BaseApiClient, from_object: Union[dict[str, Any], object], @@ -1218,6 +1243,15 @@ def _Tool_to_vertex( ), ) + if getv(from_object, ['enterprise_web_search']) is not None: + setv( + to_object, + ['enterpriseWebSearch'], + _EnterpriseWebSearch_to_vertex( + api_client, getv(from_object, ['enterprise_web_search']), to_object + ), + ) + if getv(from_object, ['code_execution']) is not None: setv(to_object, ['codeExecution'], getv(from_object, ['code_execution'])) diff --git a/google/genai/types.py b/google/genai/types.py index 5cff033b3..5070ca960 100644 --- a/google/genai/types.py +++ b/google/genai/types.py @@ -998,6 +998,21 @@ class GoogleSearchRetrievalDict(TypedDict, total=False): ] +class EnterpriseWebSearch(_common.BaseModel): + """Tool to search public web data, powered by Vertex AI Search and Sec4 compliance.""" + + pass + + +class EnterpriseWebSearchDict(TypedDict, total=False): + """Tool to search public web data, powered by Vertex AI Search and Sec4 compliance.""" + + pass + + +EnterpriseWebSearchOrDict = Union[EnterpriseWebSearch, EnterpriseWebSearchDict] + + class VertexAISearch(_common.BaseModel): """Retrieve from Vertex AI Search datastore or engine for grounding. @@ -2120,6 +2135,11 @@ class Tool(_common.BaseModel): default=None, description="""Optional. GoogleSearchRetrieval tool type. Specialized retrieval tool that is powered by Google search.""", ) + enterprise_web_search: Optional[EnterpriseWebSearch] = Field( + default=None, + description="""Optional. Enterprise web search tool type. Specialized retrieval + tool that is powered by Vertex AI Search and Sec4 compliance.""", + ) code_execution: Optional[ToolCodeExecution] = Field( default=None, description="""Optional. CodeExecution tool type. Enables the model to execute code as part of generation. This field is only used by the Gemini Developer API services.""", @@ -2143,6 +2163,10 @@ class ToolDict(TypedDict, total=False): google_search_retrieval: Optional[GoogleSearchRetrievalDict] """Optional. GoogleSearchRetrieval tool type. Specialized retrieval tool that is powered by Google search.""" + enterprise_web_search: Optional[EnterpriseWebSearchDict] + """Optional. Enterprise web search tool type. Specialized retrieval + tool that is powered by Vertex AI Search and Sec4 compliance.""" + code_execution: Optional[ToolCodeExecutionDict] """Optional. CodeExecution tool type. Enables the model to execute code as part of generation. This field is only used by the Gemini Developer API services."""