Skip to content

Commit 3eb9d24

Browse files
feat: [google-cloud-retail] add a user_attributes field in SearchRequest that can be used for personalization (#13950)
BEGIN_COMMIT_OVERRIDE feat: add a user_attributes field in SearchRequest that can be used for personalization feat: add a model_scores field in SearchResponse.results to expose model quality signals feat: data_source_id replaces primary_feed_id in MerchantCenterFeedFilter END_COMMIT_OVERRIDE - [ ] Regenerate this pull request now. feat: add a model_scores field in SearchResponse.results to expose model quality signals feat: data_source_id replaces primary_feed_id in MerchantCenterFeedFilter PiperOrigin-RevId: 763884353 Source-Link: googleapis/googleapis@6d09280 Source-Link: googleapis/googleapis-gen@6190015 Copy-Tag: eyJwIjoicGFja2FnZXMvZ29vZ2xlLWNsb3VkLXJldGFpbC8uT3dsQm90LnlhbWwiLCJoIjoiNjE5MDAxNTkwMzI0ODhmYzMwOWJmNzQxYTdiZTFkY2Q2YTI0NzM4MyJ9 --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent f92f4eb commit 3eb9d24

File tree

10 files changed

+89
-4
lines changed

10 files changed

+89
-4
lines changed

packages/google-cloud-retail/google/cloud/retail_v2alpha/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
ColorInfo,
9797
Condition,
9898
CustomAttribute,
99+
DoubleList,
99100
FulfillmentInfo,
100101
Image,
101102
Interval,
@@ -107,6 +108,7 @@
107108
Rule,
108109
SearchSolutionUseCase,
109110
SolutionType,
111+
StringList,
110112
UserInfo,
111113
)
112114
from .types.completion_service import CompleteQueryRequest, CompleteQueryResponse
@@ -344,6 +346,7 @@
344346
"DeleteModelRequest",
345347
"DeleteProductRequest",
346348
"DeleteServingConfigRequest",
349+
"DoubleList",
347350
"EnrollSolutionMetadata",
348351
"EnrollSolutionRequest",
349352
"EnrollSolutionResponse",
@@ -465,6 +468,7 @@
465468
"SetInventoryRequest",
466469
"SetInventoryResponse",
467470
"SolutionType",
471+
"StringList",
468472
"Tile",
469473
"TransformedUserEventsMetadata",
470474
"TuneModelMetadata",

packages/google-cloud-retail/google/cloud/retail_v2alpha/types/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
ColorInfo,
4949
Condition,
5050
CustomAttribute,
51+
DoubleList,
5152
FulfillmentInfo,
5253
Image,
5354
Interval,
@@ -59,6 +60,7 @@
5960
Rule,
6061
SearchSolutionUseCase,
6162
SolutionType,
63+
StringList,
6264
UserInfo,
6365
)
6466
from .completion_service import CompleteQueryRequest, CompleteQueryResponse
@@ -255,6 +257,7 @@
255257
"ColorInfo",
256258
"Condition",
257259
"CustomAttribute",
260+
"DoubleList",
258261
"FulfillmentInfo",
259262
"Image",
260263
"Interval",
@@ -263,6 +266,7 @@
263266
"PriceInfo",
264267
"Rating",
265268
"Rule",
269+
"StringList",
266270
"UserInfo",
267271
"AttributeConfigLevel",
268272
"RecommendationsFilteringOption",

packages/google-cloud-retail/google/cloud/retail_v2alpha/types/catalog.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -831,7 +831,10 @@ class MerchantCenterFeedFilter(proto.Message):
831831
832832
Attributes:
833833
primary_feed_id (int):
834-
Merchant Center primary feed ID.
834+
Merchant Center primary feed ID. Deprecated: use
835+
data_source_id instead.
836+
data_source_id (int):
837+
AFM data source ID.
835838
primary_feed_name (str):
836839
Merchant Center primary feed name. The name
837840
is used for the display purposes only.
@@ -841,6 +844,10 @@ class MerchantCenterFeedFilter(proto.Message):
841844
proto.INT64,
842845
number=1,
843846
)
847+
data_source_id: int = proto.Field(
848+
proto.INT64,
849+
number=3,
850+
)
844851
primary_feed_name: str = proto.Field(
845852
proto.STRING,
846853
number=2,

packages/google-cloud-retail/google/cloud/retail_v2alpha/types/common.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
"UserInfo",
4141
"LocalInventory",
4242
"PinControlMetadata",
43+
"StringList",
44+
"DoubleList",
4345
},
4446
)
4547

@@ -1554,4 +1556,32 @@ class ProductPins(proto.Message):
15541556
)
15551557

15561558

1559+
class StringList(proto.Message):
1560+
r"""A list of string values.
1561+
1562+
Attributes:
1563+
values (MutableSequence[str]):
1564+
String values.
1565+
"""
1566+
1567+
values: MutableSequence[str] = proto.RepeatedField(
1568+
proto.STRING,
1569+
number=1,
1570+
)
1571+
1572+
1573+
class DoubleList(proto.Message):
1574+
r"""A message with a list of double values.
1575+
1576+
Attributes:
1577+
values (MutableSequence[float]):
1578+
The list of double values.
1579+
"""
1580+
1581+
values: MutableSequence[float] = proto.RepeatedField(
1582+
proto.DOUBLE,
1583+
number=1,
1584+
)
1585+
1586+
15571587
__all__ = tuple(sorted(__protobuf__.manifest))

packages/google-cloud-retail/google/cloud/retail_v2alpha/types/conversational_search_service.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,9 @@ class FollowupQuestion(proto.Message):
329329

330330
class SuggestedAnswer(proto.Message):
331331
r"""Suggested answers to the follow-up question.
332+
If it's numerical attribute, only ProductAttributeInterval will
333+
be set. If it's textual attribute, only productAttributeValue
334+
will be set.
332335
333336
Attributes:
334337
product_attribute_value (google.cloud.retail_v2alpha.types.ProductAttributeValue):

packages/google-cloud-retail/google/cloud/retail_v2alpha/types/merchant_center_account_link.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,10 @@ class MerchantCenterFeedFilter(proto.Message):
115115
116116
Attributes:
117117
primary_feed_id (int):
118-
Merchant Center primary feed ID.
118+
Merchant Center primary feed ID. Deprecated: use
119+
data_source_id instead.
120+
data_source_id (int):
121+
AFM data source ID.
119122
primary_feed_name (str):
120123
Merchant Center primary feed name. The name
121124
is used for the display purposes only.
@@ -125,6 +128,10 @@ class MerchantCenterFeedFilter(proto.Message):
125128
proto.INT64,
126129
number=1,
127130
)
131+
data_source_id: int = proto.Field(
132+
proto.INT64,
133+
number=3,
134+
)
128135
primary_feed_name: str = proto.Field(
129136
proto.STRING,
130137
number=2,

packages/google-cloud-retail/google/cloud/retail_v2alpha/types/search_service.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,17 @@ class SearchRequest(proto.Message):
453453
local inventory with the matching product's
454454
[LocalInventory.place_id][google.cloud.retail.v2alpha.LocalInventory.place_id]
455455
for revenue optimization.
456+
user_attributes (MutableMapping[str, google.cloud.retail_v2alpha.types.StringList]):
457+
Optional. The user attributes that could be used for
458+
personalization of search results.
459+
460+
- Populate at most 100 key-value pairs per query.
461+
- Only supports string keys and repeated string values.
462+
- Duplcate keys are not allowed within a single query.
463+
464+
Example: user_attributes: [ { key: "pets" value { values:
465+
"dog" values: "cat" } }, { key: "state" value { values: "CA"
466+
} } ]
456467
"""
457468

458469
class RelevanceThreshold(proto.Enum):
@@ -1319,6 +1330,12 @@ class TileNavigationSpec(proto.Message):
13191330
proto.STRING,
13201331
number=46,
13211332
)
1333+
user_attributes: MutableMapping[str, common.StringList] = proto.MapField(
1334+
proto.STRING,
1335+
proto.MESSAGE,
1336+
number=47,
1337+
message=common.StringList,
1338+
)
13221339

13231340

13241341
class SearchResponse(proto.Message):
@@ -1492,6 +1509,8 @@ class SearchResult(proto.Message):
14921509
14931510
- ``purchased``: Indicates that this product has been
14941511
purchased before.
1512+
model_scores (MutableMapping[str, google.cloud.retail_v2alpha.types.DoubleList]):
1513+
Google provided available scores.
14951514
"""
14961515

14971516
id: str = proto.Field(
@@ -1525,6 +1544,12 @@ class SearchResult(proto.Message):
15251544
proto.STRING,
15261545
number=7,
15271546
)
1547+
model_scores: MutableMapping[str, common.DoubleList] = proto.MapField(
1548+
proto.STRING,
1549+
proto.MESSAGE,
1550+
number=8,
1551+
message=common.DoubleList,
1552+
)
15281553

15291554
class Facet(proto.Message):
15301555
r"""A facet result.

packages/google-cloud-retail/scripts/fixup_retail_v2alpha_keywords.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ class retailCallTransformer(cst.CSTTransformer):
9898
'remove_local_inventories': ('product', 'place_ids', 'remove_time', 'allow_missing', ),
9999
'replace_catalog_attribute': ('attributes_config', 'catalog_attribute', 'update_mask', ),
100100
'resume_model': ('name', ),
101-
'search': ('placement', 'visitor_id', 'branch', 'query', 'user_info', 'page_size', 'page_token', 'offset', 'filter', 'canonical_filter', 'order_by', 'facet_specs', 'dynamic_facet_spec', 'boost_spec', 'query_expansion_spec', 'relevance_threshold', 'variant_rollup_keys', 'page_categories', 'search_mode', 'personalization_spec', 'labels', 'spell_correction_spec', 'entity', 'conversational_search_spec', 'tile_navigation_spec', 'language_code', 'region_code', 'place_id', ),
101+
'search': ('placement', 'visitor_id', 'branch', 'query', 'user_info', 'page_size', 'page_token', 'offset', 'filter', 'canonical_filter', 'order_by', 'facet_specs', 'dynamic_facet_spec', 'boost_spec', 'query_expansion_spec', 'relevance_threshold', 'variant_rollup_keys', 'page_categories', 'search_mode', 'personalization_spec', 'labels', 'spell_correction_spec', 'entity', 'conversational_search_spec', 'tile_navigation_spec', 'language_code', 'region_code', 'place_id', 'user_attributes', ),
102102
'set_default_branch': ('catalog', 'branch_id', 'note', 'force', ),
103103
'set_inventory': ('inventory', 'set_mask', 'set_time', 'allow_missing', ),
104104
'tune_model': ('name', ),

packages/google-cloud-retail/tests/unit/gapic/retail_v2alpha/test_catalog_service.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8085,6 +8085,7 @@ def test_update_catalog_rest_call_success(request_type):
80858085
"feeds": [
80868086
{
80878087
"primary_feed_id": 1571,
8088+
"data_source_id": 1462,
80888089
"primary_feed_name": "primary_feed_name_value",
80898090
}
80908091
],

packages/google-cloud-retail/tests/unit/gapic/retail_v2alpha/test_merchant_center_account_link_service.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3376,7 +3376,11 @@ def test_create_merchant_center_account_link_rest_call_success(request_type):
33763376
"feed_label": "feed_label_value",
33773377
"language_code": "language_code_value",
33783378
"feed_filters": [
3379-
{"primary_feed_id": 1571, "primary_feed_name": "primary_feed_name_value"}
3379+
{
3380+
"primary_feed_id": 1571,
3381+
"data_source_id": 1462,
3382+
"primary_feed_name": "primary_feed_name_value",
3383+
}
33803384
],
33813385
"state": 1,
33823386
"project_id": "project_id_value",

0 commit comments

Comments
 (0)