Skip to content

Commit cd7b6d8

Browse files
vertex-sdk-botcopybara-github
authored andcommitted
feat: Add retrieve profiles
PiperOrigin-RevId: 893649750
1 parent 3cc6907 commit cd7b6d8

File tree

3 files changed

+360
-0
lines changed

3 files changed

+360
-0
lines changed

vertexai/_genai/memories.py

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,9 @@ def _RetrieveAgentEngineMemoriesConfig_to_vertex(
329329
[item for item in getv(from_object, ["filter_groups"])],
330330
)
331331

332+
if getv(from_object, ["memory_types"]) is not None:
333+
setv(parent_object, ["memoryTypes"], getv(from_object, ["memory_types"]))
334+
332335
return to_object
333336

334337

@@ -365,6 +368,20 @@ def _RetrieveAgentEngineMemoriesRequestParameters_to_vertex(
365368
return to_object
366369

367370

371+
def _RetrieveMemoryProfilesRequestParameters_to_vertex(
372+
from_object: Union[dict[str, Any], object],
373+
parent_object: Optional[dict[str, Any]] = None,
374+
) -> dict[str, Any]:
375+
to_object: dict[str, Any] = {}
376+
if getv(from_object, ["name"]) is not None:
377+
setv(to_object, ["_url", "name"], getv(from_object, ["name"]))
378+
379+
if getv(from_object, ["scope"]) is not None:
380+
setv(to_object, ["scope"], getv(from_object, ["scope"]))
381+
382+
return to_object
383+
384+
368385
def _RollbackAgentEngineMemoryRequestParameters_to_vertex(
369386
from_object: Union[dict[str, Any], object],
370387
parent_object: Optional[dict[str, Any]] = None,
@@ -935,6 +952,72 @@ def _retrieve(
935952
self._api_client._verify_response(return_value)
936953
return return_value
937954

955+
def retrieve_profiles(
956+
self,
957+
*,
958+
name: str,
959+
scope: dict[str, str],
960+
config: Optional[types.RetrieveMemoryProfilesConfigOrDict] = None,
961+
) -> types.RetrieveProfilesResponse:
962+
"""
963+
Retrieves memory profiles for an Agent Engine.
964+
965+
Args:
966+
name (str): Required. A fully-qualified resource name or ID such as
967+
"projects/123/locations/us-central1/reasoningEngines/456".
968+
scope (dict[str, str]): Required. The scope of the memories to retrieve.
969+
A memory must have exactly the same scope as the scope provided here
970+
to be retrieved (i.e. same keys and values). Order does not matter,
971+
but it is case-sensitive.
972+
973+
"""
974+
975+
parameter_model = types._RetrieveMemoryProfilesRequestParameters(
976+
name=name,
977+
scope=scope,
978+
config=config,
979+
)
980+
981+
request_url_dict: Optional[dict[str, str]]
982+
if not self._api_client.vertexai:
983+
raise ValueError("This method is only supported in the Vertex AI client.")
984+
else:
985+
request_dict = _RetrieveMemoryProfilesRequestParameters_to_vertex(
986+
parameter_model
987+
)
988+
request_url_dict = request_dict.get("_url")
989+
if request_url_dict:
990+
path = "{name}/memories:retrieveProfiles".format_map(request_url_dict)
991+
else:
992+
path = "{name}/memories:retrieveProfiles"
993+
994+
query_params = request_dict.get("_query")
995+
if query_params:
996+
path = f"{path}?{urlencode(query_params)}"
997+
# TODO: remove the hack that pops config.
998+
request_dict.pop("config", None)
999+
1000+
http_options: Optional[types.HttpOptions] = None
1001+
if (
1002+
parameter_model.config is not None
1003+
and parameter_model.config.http_options is not None
1004+
):
1005+
http_options = parameter_model.config.http_options
1006+
1007+
request_dict = _common.convert_to_dict(request_dict)
1008+
request_dict = _common.encode_unserializable_types(request_dict)
1009+
1010+
response = self._api_client.request("post", path, request_dict, http_options)
1011+
1012+
response_dict = {} if not response.body else json.loads(response.body)
1013+
1014+
return_value = types.RetrieveProfilesResponse._from_response(
1015+
response=response_dict, kwargs=parameter_model.model_dump()
1016+
)
1017+
1018+
self._api_client._verify_response(return_value)
1019+
return return_value
1020+
9381021
def _rollback(
9391022
self,
9401023
*,
@@ -1909,6 +1992,74 @@ async def _retrieve(
19091992
self._api_client._verify_response(return_value)
19101993
return return_value
19111994

1995+
async def retrieve_profiles(
1996+
self,
1997+
*,
1998+
name: str,
1999+
scope: dict[str, str],
2000+
config: Optional[types.RetrieveMemoryProfilesConfigOrDict] = None,
2001+
) -> types.RetrieveProfilesResponse:
2002+
"""
2003+
Retrieves memory profiles for an Agent Engine.
2004+
2005+
Args:
2006+
name (str): Required. A fully-qualified resource name or ID such as
2007+
"projects/123/locations/us-central1/reasoningEngines/456".
2008+
scope (dict[str, str]): Required. The scope of the memories to retrieve.
2009+
A memory must have exactly the same scope as the scope provided here
2010+
to be retrieved (i.e. same keys and values). Order does not matter,
2011+
but it is case-sensitive.
2012+
2013+
"""
2014+
2015+
parameter_model = types._RetrieveMemoryProfilesRequestParameters(
2016+
name=name,
2017+
scope=scope,
2018+
config=config,
2019+
)
2020+
2021+
request_url_dict: Optional[dict[str, str]]
2022+
if not self._api_client.vertexai:
2023+
raise ValueError("This method is only supported in the Vertex AI client.")
2024+
else:
2025+
request_dict = _RetrieveMemoryProfilesRequestParameters_to_vertex(
2026+
parameter_model
2027+
)
2028+
request_url_dict = request_dict.get("_url")
2029+
if request_url_dict:
2030+
path = "{name}/memories:retrieveProfiles".format_map(request_url_dict)
2031+
else:
2032+
path = "{name}/memories:retrieveProfiles"
2033+
2034+
query_params = request_dict.get("_query")
2035+
if query_params:
2036+
path = f"{path}?{urlencode(query_params)}"
2037+
# TODO: remove the hack that pops config.
2038+
request_dict.pop("config", None)
2039+
2040+
http_options: Optional[types.HttpOptions] = None
2041+
if (
2042+
parameter_model.config is not None
2043+
and parameter_model.config.http_options is not None
2044+
):
2045+
http_options = parameter_model.config.http_options
2046+
2047+
request_dict = _common.convert_to_dict(request_dict)
2048+
request_dict = _common.encode_unserializable_types(request_dict)
2049+
2050+
response = await self._api_client.async_request(
2051+
"post", path, request_dict, http_options
2052+
)
2053+
2054+
response_dict = {} if not response.body else json.loads(response.body)
2055+
2056+
return_value = types.RetrieveProfilesResponse._from_response(
2057+
response=response_dict, kwargs=parameter_model.model_dump()
2058+
)
2059+
2060+
self._api_client._verify_response(return_value)
2061+
return return_value
2062+
19122063
async def _rollback(
19132064
self,
19142065
*,

vertexai/_genai/types/__init__.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
from .common import _QueryAgentEngineRequestParameters
9494
from .common import _RestoreVersionRequestParameters
9595
from .common import _RetrieveAgentEngineMemoriesRequestParameters
96+
from .common import _RetrieveMemoryProfilesRequestParameters
9697
from .common import _RollbackAgentEngineMemoryRequestParameters
9798
from .common import _RunQueryJobAgentEngineConfig
9899
from .common import _RunQueryJobAgentEngineConfigDict
@@ -658,12 +659,19 @@
658659
from .common import MemoryMetadataValueDict
659660
from .common import MemoryMetadataValueOrDict
660661
from .common import MemoryOrDict
662+
from .common import MemoryProfile
663+
from .common import MemoryProfileDict
664+
from .common import MemoryProfileOrDict
661665
from .common import MemoryRevision
662666
from .common import MemoryRevisionDict
663667
from .common import MemoryRevisionOrDict
668+
from .common import MemoryStructuredContent
669+
from .common import MemoryStructuredContentDict
670+
from .common import MemoryStructuredContentOrDict
664671
from .common import MemoryTopicId
665672
from .common import MemoryTopicIdDict
666673
from .common import MemoryTopicIdOrDict
674+
from .common import MemoryType
667675
from .common import Message
668676
from .common import MessageDict
669677
from .common import Metadata
@@ -855,6 +863,12 @@
855863
from .common import RetrieveMemoriesResponseRetrievedMemory
856864
from .common import RetrieveMemoriesResponseRetrievedMemoryDict
857865
from .common import RetrieveMemoriesResponseRetrievedMemoryOrDict
866+
from .common import RetrieveMemoryProfilesConfig
867+
from .common import RetrieveMemoryProfilesConfigDict
868+
from .common import RetrieveMemoryProfilesConfigOrDict
869+
from .common import RetrieveProfilesResponse
870+
from .common import RetrieveProfilesResponseDict
871+
from .common import RetrieveProfilesResponseOrDict
858872
from .common import RollbackAgentEngineMemoryConfig
859873
from .common import RollbackAgentEngineMemoryConfigDict
860874
from .common import RollbackAgentEngineMemoryConfigOrDict
@@ -1682,6 +1696,9 @@
16821696
"AgentEngineMemoryConfig",
16831697
"AgentEngineMemoryConfigDict",
16841698
"AgentEngineMemoryConfigOrDict",
1699+
"MemoryStructuredContent",
1700+
"MemoryStructuredContentDict",
1701+
"MemoryStructuredContentOrDict",
16851702
"Memory",
16861703
"MemoryDict",
16871704
"MemoryOrDict",
@@ -1751,6 +1768,15 @@
17511768
"RetrieveMemoriesResponse",
17521769
"RetrieveMemoriesResponseDict",
17531770
"RetrieveMemoriesResponseOrDict",
1771+
"RetrieveMemoryProfilesConfig",
1772+
"RetrieveMemoryProfilesConfigDict",
1773+
"RetrieveMemoryProfilesConfigOrDict",
1774+
"MemoryProfile",
1775+
"MemoryProfileDict",
1776+
"MemoryProfileOrDict",
1777+
"RetrieveProfilesResponse",
1778+
"RetrieveProfilesResponseDict",
1779+
"RetrieveProfilesResponseOrDict",
17541780
"RollbackAgentEngineMemoryConfig",
17551781
"RollbackAgentEngineMemoryConfigDict",
17561782
"RollbackAgentEngineMemoryConfigOrDict",
@@ -2138,6 +2164,7 @@
21382164
"ManagedTopicEnum",
21392165
"IdentityType",
21402166
"AgentServerMode",
2167+
"MemoryType",
21412168
"Operator",
21422169
"Language",
21432170
"MachineConfig",
@@ -2209,6 +2236,7 @@
22092236
"_GetAgentEngineMemoryOperationParameters",
22102237
"_GetAgentEngineGenerateMemoriesOperationParameters",
22112238
"_RetrieveAgentEngineMemoriesRequestParameters",
2239+
"_RetrieveMemoryProfilesRequestParameters",
22122240
"_RollbackAgentEngineMemoryRequestParameters",
22132241
"_UpdateAgentEngineMemoryRequestParameters",
22142242
"_PurgeAgentEngineMemoriesRequestParameters",

0 commit comments

Comments
 (0)