Skip to content

Commit

Permalink
feat: promote recommendation service to v1
Browse files Browse the repository at this point in the history
feat: promote blending search to v1
feat: promote healthcare search to v1
feat: promote online chunking search to v1
feat: support import data from Cloud Spanner, BigTable, SQL and Firestore
feat: support boost/bury on multi-turn search
docs: keep the API doc up-to-date with recent changes

PiperOrigin-RevId: 623947579
  • Loading branch information
Google APIs authored and Copybara-Service committed Apr 11, 2024
1 parent da99580 commit 83d7bf4
Show file tree
Hide file tree
Showing 14 changed files with 742 additions and 64 deletions.
33 changes: 27 additions & 6 deletions google/cloud/discoveryengine/v1/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,17 @@
# * extra_protoc_file_parameters
# The complete list of preserved parameters can be found in the source code.

# buildifier: disable=load-on-top

# This is an API workspace, having public visibility by default makes perfect sense.
package(default_visibility = ["//visibility:public"])

##############################################################################
# Common
##############################################################################
load("@rules_proto//proto:defs.bzl", "proto_library")
# buildifier: disable=same-origin-load
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
load("@rules_proto//proto:defs.bzl", "proto_library")

proto_library(
name = "discoveryengine_proto",
Expand All @@ -34,6 +37,7 @@ proto_library(
"engine_service.proto",
"import_config.proto",
"purge_config.proto",
"recommendation_service.proto",
"schema.proto",
"schema_service.proto",
"search_service.proto",
Expand Down Expand Up @@ -64,12 +68,14 @@ proto_library_with_info(
deps = [
":discoveryengine_proto",
"//google/cloud:common_resources_proto",
"//google/cloud/location:location_proto",
],
)

##############################################################################
# Java
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"java_gapic_assembly_gradle_pkg",
Expand Down Expand Up @@ -99,11 +105,13 @@ java_gapic_library(
service_yaml = "discoveryengine_v1.yaml",
test_deps = [
":discoveryengine_java_grpc",
"//google/cloud/location:location_java_grpc",
],
transport = "grpc+rest",
deps = [
":discoveryengine_java_proto",
"//google/api:api_java_proto",
"//google/cloud/location:location_java_proto",
],
)

Expand All @@ -120,6 +128,8 @@ java_gapic_test(
"com.google.cloud.discoveryengine.v1.DocumentServiceClientTest",
"com.google.cloud.discoveryengine.v1.EngineServiceClientHttpJsonTest",
"com.google.cloud.discoveryengine.v1.EngineServiceClientTest",
"com.google.cloud.discoveryengine.v1.RecommendationServiceClientHttpJsonTest",
"com.google.cloud.discoveryengine.v1.RecommendationServiceClientTest",
"com.google.cloud.discoveryengine.v1.SchemaServiceClientHttpJsonTest",
"com.google.cloud.discoveryengine.v1.SchemaServiceClientTest",
"com.google.cloud.discoveryengine.v1.SearchServiceClientHttpJsonTest",
Expand Down Expand Up @@ -148,6 +158,7 @@ java_gapic_assembly_gradle_pkg(
##############################################################################
# Go
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"go_gapic_assembly_pkg",
Expand Down Expand Up @@ -182,6 +193,7 @@ go_gapic_library(
deps = [
":discoveryengine_go_proto",
"//google/api:httpbody_go_proto",
"//google/cloud/location:location_go_proto",
"//google/longrunning:longrunning_go_proto",
"@com_google_cloud_go_longrunning//:go_default_library",
"@com_google_cloud_go_longrunning//autogen:go_default_library",
Expand All @@ -205,6 +217,7 @@ go_gapic_assembly_pkg(
##############################################################################
# Python
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"py_gapic_assembly_pkg",
Expand All @@ -219,7 +232,8 @@ py_gapic_library(
rest_numeric_enums = True,
service_yaml = "discoveryengine_v1.yaml",
transport = "grpc+rest",
deps = [],
deps = [
],
)

py_test(
Expand All @@ -243,6 +257,7 @@ py_gapic_assembly_pkg(
##############################################################################
# PHP
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"php_gapic_assembly_pkg",
Expand All @@ -263,7 +278,9 @@ php_gapic_library(
rest_numeric_enums = True,
service_yaml = "discoveryengine_v1.yaml",
transport = "grpc+rest",
deps = [":discoveryengine_php_proto"],
deps = [
":discoveryengine_php_proto",
],
)

# Open Source Packages
Expand All @@ -278,6 +295,7 @@ php_gapic_assembly_pkg(
##############################################################################
# Node.js
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"nodejs_gapic_assembly_pkg",
Expand Down Expand Up @@ -308,6 +326,7 @@ nodejs_gapic_assembly_pkg(
##############################################################################
# Ruby
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"ruby_cloud_gapic_library",
Expand All @@ -330,9 +349,7 @@ ruby_grpc_library(
ruby_cloud_gapic_library(
name = "discoveryengine_ruby_gapic",
srcs = [":discoveryengine_proto_with_info"],
extra_protoc_parameters = [
"ruby-cloud-gem-name=google-cloud-discovery_engine-v1",
],
extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-discovery_engine-v1"],
grpc_service_config = "discoveryengine_grpc_service_config.json",
rest_numeric_enums = True,
service_yaml = "discoveryengine_v1.yaml",
Expand All @@ -356,6 +373,7 @@ ruby_gapic_assembly_pkg(
##############################################################################
# C#
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"csharp_gapic_assembly_pkg",
Expand All @@ -366,6 +384,7 @@ load(

csharp_proto_library(
name = "discoveryengine_csharp_proto",
extra_opts = [],
deps = [":discoveryengine_proto"],
)

Expand All @@ -382,6 +401,7 @@ csharp_gapic_library(
grpc_service_config = "discoveryengine_grpc_service_config.json",
rest_numeric_enums = True,
service_yaml = "discoveryengine_v1.yaml",
transport = "grpc+rest",
deps = [
":discoveryengine_csharp_grpc",
":discoveryengine_csharp_proto",
Expand All @@ -401,6 +421,7 @@ csharp_gapic_assembly_pkg(
##############################################################################
# C++
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"cc_grpc_library",
Expand Down
14 changes: 13 additions & 1 deletion google/cloud/discoveryengine/v1/common.proto
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ option (google.api.resource_definition) = {
pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}"
pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}"
};
option (google.api.resource_definition) = {
type: "healthcare.googleapis.com/FhirStore"
pattern: "projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}"
};

// The industry vertical associated with the
// [DataStore][google.cloud.discoveryengine.v1.DataStore].
Expand All @@ -54,6 +58,9 @@ enum IndustryVertical {

// The media industry vertical.
MEDIA = 2;

// The healthcare FHIR vertical.
HEALTHCARE_FHIR = 7;
}

// The type of solution.
Expand All @@ -69,10 +76,15 @@ enum SolutionType {

// Used for use cases related to the Generative AI agent.
SOLUTION_TYPE_CHAT = 3;

// Used for use cases related to the Generative Chat agent.
// It's used for Generative chat engine only, the associated data stores
// must enrolled with `SOLUTION_TYPE_CHAT` solution.
SOLUTION_TYPE_GENERATIVE_CHAT = 4;
}

// Tiers of search features. Different tiers might have different
// pricing. To learn more, please check the pricing documentation.
// pricing. To learn more, check the pricing documentation.
enum SearchTier {
// Default value when the enum is unspecified. This is invalid to use.
SEARCH_TIER_UNSPECIFIED = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,11 @@ message ConverseConversationRequest {
// operators, see
// [Filter](https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata)
string filter = 9;

// Boost specification to boost certain documents in search results which may
// affect the converse response. For more information on boosting, see
// [Boosting](https://cloud.google.com/retail/docs/boosting#boost)
SearchRequest.BoostSpec boost_spec = 10;
}

// Response message for
Expand Down
17 changes: 17 additions & 0 deletions google/cloud/discoveryengine/v1/data_store.proto
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package google.cloud.discoveryengine.v1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/discoveryengine/v1/common.proto";
import "google/cloud/discoveryengine/v1/schema.proto";
import "google/protobuf/timestamp.proto";

option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1";
Expand Down Expand Up @@ -95,4 +96,20 @@ message DataStore {
// [DataStore][google.cloud.discoveryengine.v1.DataStore] was created at.
google.protobuf.Timestamp create_time = 4
[(google.api.field_behavior) = OUTPUT_ONLY];

// The start schema to use for this
// [DataStore][google.cloud.discoveryengine.v1.DataStore] when provisioning
// it. If unset, a default vertical specialized schema will be used.
//
// This field is only used by [CreateDataStore][] API, and will be ignored if
// used in other APIs. This field will be omitted from all API responses
// including [CreateDataStore][] API. To retrieve a schema of a
// [DataStore][google.cloud.discoveryengine.v1.DataStore], use
// [SchemaService.GetSchema][google.cloud.discoveryengine.v1.SchemaService.GetSchema]
// API instead.
//
// The provided schema will be validated against certain rules on schema.
// Learn more from [this
// doc](https://cloud.google.com/generative-ai-app-builder/docs/provide-schema).
Schema starting_schema = 28;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
{
"name": [
{ "service": "google.cloud.discoveryengine.v1.CompletionService" },
{ "service": "google.cloud.discoveryengine.v1.SearchService" }
{ "service": "google.cloud.discoveryengine.v1.RecommendationService" }
],
"timeout": "5s",
"retryPolicy": {
Expand All @@ -18,6 +18,7 @@
{ "service": "google.cloud.discoveryengine.v1.ConversationalSearchService" },
{ "service": "google.cloud.discoveryengine.v1.DocumentService" },
{ "service": "google.cloud.discoveryengine.v1.SchemaService" },
{ "service": "google.cloud.discoveryengine.v1.SearchService" },
{ "service": "google.cloud.discoveryengine.v1.UserEventService" },
{ "service": "google.longrunning.Operations"}
],
Expand Down
5 changes: 5 additions & 0 deletions google/cloud/discoveryengine/v1/discoveryengine_v1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ apis:
- name: google.cloud.discoveryengine.v1.DataStoreService
- name: google.cloud.discoveryengine.v1.DocumentService
- name: google.cloud.discoveryengine.v1.EngineService
- name: google.cloud.discoveryengine.v1.RecommendationService
- name: google.cloud.discoveryengine.v1.SchemaService
- name: google.cloud.discoveryengine.v1.SearchService
- name: google.cloud.discoveryengine.v1.SiteSearchEngineService
Expand Down Expand Up @@ -111,6 +112,10 @@ authentication:
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.discoveryengine.v1.RecommendationService.Recommend
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.cloud.discoveryengine.v1.SchemaService.*'
oauth:
canonical_scopes: |-
Expand Down
9 changes: 9 additions & 0 deletions google/cloud/discoveryengine/v1/document.proto
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package google.cloud.discoveryengine.v1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";

option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1";
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb";
Expand Down Expand Up @@ -118,4 +119,12 @@ message Document {
// It contains derived data that are not in the original input document.
google.protobuf.Struct derived_struct_data = 6
[(google.api.field_behavior) = OUTPUT_ONLY];

// Output only. The last time the document was indexed. If this field is set,
// the document could be returned in search results.
//
// This field is OUTPUT_ONLY. If this field is not populated, it means the
// document has never been indexed.
google.protobuf.Timestamp index_time = 13
[(google.api.field_behavior) = OUTPUT_ONLY];
}
6 changes: 6 additions & 0 deletions google/cloud/discoveryengine/v1/document_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import "google/cloud/discoveryengine/v1/import_config.proto";
import "google/cloud/discoveryengine/v1/purge_config.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";

option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1";
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb";
Expand Down Expand Up @@ -87,6 +88,7 @@ service DocumentService {
body: "document"
}
};
option (google.api.method_signature) = "document,update_mask";
}

// Deletes a [Document][google.cloud.discoveryengine.v1.Document].
Expand Down Expand Up @@ -289,6 +291,10 @@ message UpdateDocumentRequest {
// [Document][google.cloud.discoveryengine.v1.Document] is not found, a new
// [Document][google.cloud.discoveryengine.v1.Document] will be created.
bool allow_missing = 2;

// Indicates which fields in the provided imported 'document' to update. If
// not set, will by default update all fields.
google.protobuf.FieldMask update_mask = 3;
}

// Request message for
Expand Down
4 changes: 2 additions & 2 deletions google/cloud/discoveryengine/v1/engine.proto
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ message Engine {
// The search feature tier of this engine.
//
// Different tiers might have different
// pricing. To learn more, please check the pricing documentation.
// pricing. To learn more, check the pricing documentation.
//
// Defaults to
// [SearchTier.SEARCH_TIER_STANDARD][google.cloud.discoveryengine.v1.SearchTier.SEARCH_TIER_STANDARD]
Expand Down Expand Up @@ -110,7 +110,7 @@ message Engine {
// [EngineService.GetEngine][google.cloud.discoveryengine.v1.EngineService.GetEngine]
// or
// [EngineService.ListEngines][google.cloud.discoveryengine.v1.EngineService.ListEngines]
// API after engine creation. Please use
// API after engine creation. Use
// [ChatEngineMetadata.dialogflow_agent][google.cloud.discoveryengine.v1.Engine.ChatEngineMetadata.dialogflow_agent]
// for actual agent association after Engine is created.
string dialogflow_agent_to_link = 2;
Expand Down

0 comments on commit 83d7bf4

Please sign in to comment.