- Resource: ServingConfig
- Methods
Resource: ServingConfig
Configures metadata that is used to generate serving time results (e.g. search results or recommendation predictions). The ServingConfig is passed in the search and predict request and generates results.
| JSON representation | 
|---|
| { "name": string, "displayName": string, "solutionType": enum ( | 
| Fields | |
|---|---|
| name | 
 Immutable. Fully qualified name  | 
| displayName | 
 Required. The human readable serving config display name. Used in Discovery UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. | 
| solutionType | 
 Required. Immutable. Specifies the solution type that a serving config can be associated with. | 
| modelId | 
 The ID of the model to use at serving time. Currently only RecommendationModels are supported. Can be changed but only to a compatible model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when  | 
| diversityLevel | 
 How much diversity to use in recommendation model results e.g.  
 If not specified, we choose default based on recommendation model type. Default value:  Can only be set if  | 
| rankingExpression | 
 The ranking expression controls the customized ranking on retrieval documents. To leverage this, document embedding is required. The ranking expression setting in ServingConfig applies to all search requests served by the serving config. However, if  The ranking expression is a single function or multiple functions that are joined by "+". 
 Supported functions: 
 Function variables: 
 Example ranking expression: If document has an embedding field doc_embedding, the ranking expression  could be  | 
| createTime | 
 Output only. ServingConfig created timestamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples:  | 
| updateTime | 
 Output only. ServingConfig updated timestamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples:  | 
| filterControlIds[] | 
 Filter controls to use in serving path. All triggered filter controls will be applied. Filter controls must be in the same data store as the serving config. Maximum of 20 filter controls. | 
| boostControlIds[] | 
 Boost controls to use in serving path. All triggered boost controls will be applied. Boost controls must be in the same data store as the serving config. Maximum of 20 boost controls. | 
| redirectControlIds[] | 
 IDs of the redirect controls. Only the first triggered redirect action is applied, even if multiple apply. Maximum number of specifications is 100. Can only be set if  | 
| synonymsControlIds[] | 
 Condition synonyms specifications. If multiple synonyms conditions match, all matching synonyms controls in the list will execute. Maximum number of specifications is 100. Can only be set if  | 
| onewaySynonymsControlIds[] | 
 Condition oneway synonyms specifications. If multiple oneway synonyms conditions match, all matching oneway synonyms controls in the list will execute. Maximum number of specifications is 100. Can only be set if  | 
| dissociateControlIds[] | 
 Condition do not associate specifications. If multiple do not associate conditions match, all matching do not associate controls in the list will execute. Order does not matter. Maximum number of specifications is 100. Can only be set if  | 
| replacementControlIds[] | 
 Condition replacement specifications. Applied according to the order in the list. A previously replaced term can not be re-replaced. Maximum number of specifications is 100. Can only be set if  | 
| ignoreControlIds[] | 
 Condition ignore specifications. If multiple ignore conditions match, all matching ignore controls in the list will execute. Order does not matter. Maximum number of specifications is 100. | 
| promoteControlIds[] | 
 Condition promote specifications. Maximum number of specifications is 100. | 
| answerGenerationSpec | 
 Optional. The specification for answer generation. | 
| Union field vertical_config. Industry vertical specific config.vertical_configcan be only one of the following: | |
| mediaConfig | 
 The MediaConfig of the serving configuration. | 
| genericConfig | 
 The GenericConfig of the serving configuration. | 
MediaConfig
Specifies the configurations needed for Media Discovery. Currently we support:
- demote_content_watched: Threshold for watched content demotion. Customers can specify if using watched content demotion or use viewed detail page. Using the content watched demotion, customers need to specify the watched minutes or percentage exceeds the threshold, the content will be demoted in the recommendation result.
- promote_fresh_content: cutoff days for fresh content promotion. Customers can specify if using content freshness promotion. If the content was published within the cutoff days, the content will be promoted in the recommendation result. Can only be set if- SolutionTypeis- SOLUTION_TYPE_RECOMMENDATION.
| JSON representation | 
|---|
| { "demotionEventType": string, "demoteContentWatchedPastDays": integer, "contentFreshnessCutoffDays": integer, // Union field | 
| Fields | |
|---|---|
| demotionEventType | 
 Specifies the event type used for demoting recommendation result. Currently supported values: 
 If unset, watch history demotion will not be applied. Content freshness demotion will still be applied. | 
| demoteContentWatchedPastDays | 
 Optional. Specifies the number of days to look back for demoting watched content. If set to zero or unset, defaults to the maximum of 365 days. | 
| contentFreshnessCutoffDays | 
 Specifies the content freshness used for recommendation result. Contents will be demoted if contents were published for more than content freshness cutoff days. | 
| Union field demote_content_watched. Specify the threshold for demoting watched content, the threshold can be either percentage or minutes value. This must be set formedia-completeevent type.demote_content_watchedcan be only one of the following: | |
| contentWatchedPercentageThreshold | 
 Specifies the content watched percentage threshold for demotion. Threshold value must be between [0, 1.0] inclusive. | 
| contentWatchedSecondsThreshold | 
 Specifies the content watched minutes threshold for demotion. | 
GenericConfig
Specifies the configurations needed for Generic Discovery.Currently we support:
- contentSearchSpec: configuration for generic content search.
| JSON representation | 
|---|
| {
  "contentSearchSpec": {
    object ( | 
| Fields | |
|---|---|
| contentSearchSpec | 
 Specifies the expected behavior of content search. Only valid for content-search enabled data store. | 
ContentSearchSpec
A specification for configuring the behavior of content search.
| JSON representation | 
|---|
| { "snippetSpec": { object ( | 
| Fields | |
|---|---|
| snippetSpec | 
 If  | 
| summarySpec | 
 If  | 
| extractiveContentSpec | 
 If there is no extractiveContentSpec provided, there will be no extractive answer in the search response. | 
| searchResultMode | 
 Specifies the search result mode. If unspecified, the search result mode defaults to  | 
| chunkSpec | 
 Specifies the chunk spec to be returned from the search response. Only available if the  | 
SnippetSpec
A specification for configuring snippets in a search response.
| JSON representation | 
|---|
| { "maxSnippetCount": integer, "referenceOnly": boolean, "returnSnippet": boolean } | 
| Fields | |
|---|---|
| maxSnippetCount | 
 [DEPRECATED] This field is deprecated. To control snippet return, use  | 
| referenceOnly | 
 [DEPRECATED] This field is deprecated and will have no affect on the snippet. | 
| returnSnippet | 
 If  | 
SummarySpec
A specification for configuring a summary returned in a search response.
| JSON representation | 
|---|
| { "summaryResultCount": integer, "includeCitations": boolean, "ignoreAdversarialQuery": boolean, "ignoreNonSummarySeekingQuery": boolean, "ignoreLowRelevantContent": boolean, "ignoreJailBreakingQuery": boolean, "modelPromptSpec": { object ( | 
| Fields | |
|---|---|
| summaryResultCount | 
 The number of top results to generate the summary from. If the number of results returned is less than  At most 10 results for documents mode, or 50 for chunks mode, can be used to generate a summary. The chunks mode is used when  | 
| includeCitations | 
 Specifies whether to include citations in the summary. The default value is  When this field is set to  Example summary including citations: BigQuery is Google Cloud's fully managed and completely serverless enterprise data warehouse [1]. BigQuery supports all data types, works across clouds, and has built-in machine learning and business intelligence, all within a unified platform [2, 3]. The citation numbers refer to the returned search results and are 1-indexed. For example, [1] means that the sentence is attributed to the first search result. [2, 3] means that the sentence is attributed to both the second and third search results. | 
| ignoreAdversarialQuery | 
 Specifies whether to filter out adversarial queries. The default value is  Google employs search-query classification to detect adversarial queries. No summary is returned if the search query is classified as an adversarial query. For example, a user might ask a question regarding negative comments about the company or submit a query designed to generate unsafe, policy-violating output. If this field is set to  | 
| ignoreNonSummarySeekingQuery | 
 Specifies whether to filter out queries that are not summary-seeking. The default value is  Google employs search-query classification to detect summary-seeking queries. No summary is returned if the search query is classified as a non-summary seeking query. For example,  | 
| ignoreLowRelevantContent | 
 Specifies whether to filter out queries that have low relevance. The default value is  If this field is set to  | 
| ignoreJailBreakingQuery | 
 Optional. Specifies whether to filter out jail-breaking queries. The default value is  Google employs search-query classification to detect jail-breaking queries. No summary is returned if the search query is classified as a jail-breaking query. A user might add instructions to the query to change the tone, style, language, content of the answer, or ask the model to act as a different entity, e.g. "Reply in the tone of a competing company's CEO". If this field is set to  | 
| modelPromptSpec | 
 If specified, the spec will be used to modify the prompt provided to the LLM. | 
| languageCode | 
 Language code for Summary. Use language tags defined by BCP47. Note: This is an experimental feature. | 
| modelSpec | 
 If specified, the spec will be used to modify the model specification provided to the LLM. | 
| useSemanticChunks | 
 If true, answer will be generated from most relevant chunks from top search results. This feature will improve summary quality. Note that with this feature enabled, not all top search results will be referenced and included in the reference list, so the citation source index only points to the search results listed in the reference list. | 
ModelPromptSpec
Specification of the prompt to use with the model.
| JSON representation | 
|---|
| { "preamble": string } | 
| Fields | |
|---|---|
| preamble | 
 Text at the beginning of the prompt that instructs the assistant. Examples are available in the user guide. | 
ModelSpec
Specification of the model.
| JSON representation | 
|---|
| { "version": string } | 
| Fields | |
|---|---|
| version | 
 The model version used to generate the summary. Supported values are: 
 | 
ExtractiveContentSpec
A specification for configuring the extractive content in a search response.
| JSON representation | 
|---|
| { "maxExtractiveAnswerCount": integer, "maxExtractiveSegmentCount": integer, "returnExtractiveSegmentScore": boolean, "numPreviousSegments": integer, "numNextSegments": integer } | 
| Fields | |
|---|---|
| maxExtractiveAnswerCount | 
 The maximum number of extractive answers returned in each search result. An extractive answer is a verbatim answer extracted from the original document, which provides a precise and contextually relevant answer to the search query. If the number of matching answers is less than the  At most five answers are returned for each  | 
| maxExtractiveSegmentCount | 
 The max number of extractive segments returned in each search result. Only applied if the  An extractive segment is a text segment extracted from the original document that is relevant to the search query, and, in general, more verbose than an extractive answer. The segment could then be used as input for LLMs to generate summaries and answers. If the number of matching segments is less than  | 
| returnExtractiveSegmentScore | 
 Specifies whether to return the confidence score from the extractive segments in each search result. This feature is available only for new or allowlisted data stores. To allowlist your data store, contact your Customer Engineer. The default value is  | 
| numPreviousSegments | 
 Specifies whether to also include the adjacent from each selected segments. Return at most  | 
| numNextSegments | 
 Return at most  | 
SearchResultMode
Specifies the search result mode. If unspecified, the search result mode defaults to DOCUMENTS.
| Enums | |
|---|---|
| SEARCH_RESULT_MODE_UNSPECIFIED | Default value. | 
| DOCUMENTS | Returns documents in the search result. | 
| CHUNKS | Returns chunks in the search result. Only available if the DocumentProcessingConfig.chunking_configis specified. | 
ChunkSpec
Specifies the chunk spec to be returned from the search response. Only available if the SearchRequest.ContentSearchSpec.search_result_mode is set to CHUNKS
| JSON representation | 
|---|
| { "numPreviousChunks": integer, "numNextChunks": integer } | 
| Fields | |
|---|---|
| numPreviousChunks | 
 The number of previous chunks to be returned of the current chunk. The maximum allowed value is 3. If not specified, no previous chunks will be returned. | 
| numNextChunks | 
 The number of next chunks to be returned of the current chunk. The maximum allowed value is 3. If not specified, no next chunks will be returned. | 
AnswerGenerationSpec
The specification for answer generation.
| JSON representation | 
|---|
| {
  "userDefinedClassifierSpec": {
    object ( | 
| Fields | |
|---|---|
| userDefinedClassifierSpec | 
 Optional. The specification for user specified classifier spec. | 
UserDefinedClassifierSpec
The specification for user defined classifier.
| JSON representation | 
|---|
| { "enableUserDefinedClassifier": boolean, "preamble": string, "modelId": string, "taskMarker": string, "topP": number, "topK": string, "temperature": number, "seed": integer } | 
| Fields | |
|---|---|
| enableUserDefinedClassifier | 
 Optional. Whether or not to enable and include user defined classifier. | 
| preamble | 
 Optional. The preamble to be used for the user defined classifier. | 
| modelId | 
 Optional. The model id to be used for the user defined classifier. | 
| taskMarker | 
 Optional. The task marker to be used for the user defined classifier. | 
| topP | 
 Optional. The top-p value to be used for the user defined classifier. | 
| topK | 
 Optional. The top-k value to be used for the user defined classifier. | 
| temperature | 
 Optional. The temperature value to be used for the user defined classifier. | 
| seed | 
 Optional. The seed value to be used for the user defined classifier. | 
| Methods | |
|---|---|
| 
 | Answer query method. | 
| 
 | Gets a ServingConfig. | 
| 
 | Lists all ServingConfigs linked to this dataStore. | 
| 
 | Updates a ServingConfig. | 
| 
 | Makes a recommendation, which requires a contextual user event. | 
| 
 | Performs a search. | 
| 
 | Performs a search. | 
| 
 | Answer query method (streaming). |