pub struct RecommendRequest {
    pub serving_config: String,
    pub user_event: Option<UserEvent>,
    pub page_size: i32,
    pub filter: String,
    pub validate_only: bool,
    pub params: BTreeMap<String, Value>,
    pub user_labels: BTreeMap<String, String>,
}
Expand description

Request message for Recommend method.

Fields§

§serving_config: String

Required. Full resource name of a [ServingConfig][]: projects/*/locations/global/collections/*/engines/*/servingConfigs/*, or projects/*/locations/global/collections/*/dataStores/*/servingConfigs/*

One default serving config is created along with your recommendation engine creation. The engine ID will be used as the ID of the default serving config. For example, for Engine projects/*/locations/global/collections/*/engines/my-engine, you can use projects/*/locations/global/collections/*/engines/my-engine/servingConfigs/my-engine for your [RecommendationService.Recommend][google.cloud.discoveryengine.v1.RecommendationService.Recommend] requests.

§user_event: Option<UserEvent>

Required. Context about the user, what they are looking at and what action they took to trigger the Recommend request. Note that this user event detail won’t be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging.

Don’t set [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1.UserEvent.user_pseudo_id] or [UserEvent.user_info.user_id][google.cloud.discoveryengine.v1.UserInfo.user_id] to the same fixed ID for different users. If you are trying to receive non-personalized recommendations (not recommended; this can negatively impact model performance), instead set [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1.UserEvent.user_pseudo_id] to a random unique ID and leave [UserEvent.user_info.user_id][google.cloud.discoveryengine.v1.UserInfo.user_id] unset.

§page_size: i32

Maximum number of results to return. Set this property to the number of recommendation results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.

§filter: String

Filter for restricting recommendation results with a length limit of 5,000 characters. Currently, only filter expressions on the filter_tags attribute is supported.

Examples:

  • (filter_tags: ANY("Red", "Blue") OR filter_tags: ANY("Hot", "Cold"))
  • (filter_tags: ANY("Red", "Blue")) AND NOT (filter_tags: ANY("Green"))

If attributeFilteringSyntax is set to true under the params field, then attribute-based expressions are expected instead of the above described tag-based syntax. Examples:

  • (launguage: ANY(“en”, “es”)) AND NOT (categories: ANY(“Movie”))
  • (available: true) AND (launguage: ANY(“en”, “es”)) OR (categories: ANY(“Movie”))

If your filter blocks all results, the API will return generic (unfiltered) popular Documents. If you only want results strictly matching the filters, set strictFiltering to True in [RecommendRequest.params][google.cloud.discoveryengine.v1.RecommendRequest.params] to receive empty results instead.

Note that the API will never return [Document][google.cloud.discoveryengine.v1.Document]s with storageStatus of EXPIRED or DELETED regardless of filter choices.

§validate_only: bool

Use validate only mode for this recommendation query. If set to true, a fake model will be used that returns arbitrary Document IDs. Note that the validate only mode should only be used for testing the API, or if the model is not ready.

§params: BTreeMap<String, Value>

Additional domain specific parameters for the recommendations.

Allowed values:

  • returnDocument: Boolean. If set to true, the associated Document object will be returned in [RecommendResponse.RecommendationResult.document][google.cloud.discoveryengine.v1.RecommendResponse.RecommendationResult.document].
  • returnScore: Boolean. If set to true, the recommendation ‘score’ corresponding to each returned Document will be set in [RecommendResponse.RecommendationResult.metadata][google.cloud.discoveryengine.v1.RecommendResponse.RecommendationResult.metadata]. The given ‘score’ indicates the probability of a Document conversion given the user’s context and history.
  • strictFiltering: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular Documents instead of empty if your filter blocks all recommendation results.
  • diversityLevel: String. Default empty. If set to be non-empty, then it needs to be one of:
    • no-diversity
    • low-diversity
    • medium-diversity
    • high-diversity
    • auto-diversity This gives request-level control and adjusts recommendation results based on Document category.
  • attributeFilteringSyntax: Boolean. False by default. If set to true, the filter field is interpreted according to the new, attribute-based syntax.
§user_labels: BTreeMap<String, String>

The user labels applied to a resource must meet the following requirements:

  • Each resource can have multiple labels, up to a maximum of 64.
  • Each label must be a key-value pair.
  • Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters.
  • Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed.
  • The key portion of a label must be unique. However, you can use the same key with multiple resources.
  • Keys must start with a lowercase letter or international character.

See Requirements for labels for more details.

Trait Implementations§

source§

impl Clone for RecommendRequest

source§

fn clone(&self) -> RecommendRequest

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RecommendRequest

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for RecommendRequest

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Message for RecommendRequest

source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
source§

fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
where B: BufMut, Self: Sized,

Encodes the message to a buffer. Read more
source§

fn encode_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message to a newly allocated buffer.
source§

fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
where B: BufMut, Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
source§

fn decode<B>(buf: B) -> Result<Self, DecodeError>
where B: Buf, Self: Default,

Decodes an instance of the message from a buffer. Read more
source§

fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
where B: Buf, Self: Default,

Decodes a length-delimited instance of the message from the buffer.
source§

fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
where B: Buf, Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
source§

fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
where B: Buf, Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
source§

impl PartialEq for RecommendRequest

source§

fn eq(&self, other: &RecommendRequest) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for RecommendRequest

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more