Skip to content

Commit

Permalink
feat: [discoveryengine] support conversational / multi-turn search (#…
Browse files Browse the repository at this point in the history
…9710)

* feat: support conversational / multi-turn search
feat: support tail suggestions in completion API
feat: support image search
feat: add skip reason for search summarization
docs: keep the API doc up-to-date with recent changes

PiperOrigin-RevId: 551559583

Source-Link: googleapis/googleapis@16ebd6c

Source-Link: https://github.com/googleapis/googleapis-gen/commit/09b192e7226e272a6e755329aaf7f924f1e4eef4
Copy-Tag: eyJwIjoiamF2YS1kaXNjb3ZlcnllbmdpbmUvLk93bEJvdC55YW1sIiwiaCI6IjA5YjE5MmU3MjI2ZTI3MmE2ZTc1NTMyOWFhZjdmOTI0ZjFlNGVlZjQifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
  • Loading branch information
gcf-owl-bot[bot] and gcf-owl-bot[bot] authored Aug 2, 2023
1 parent 09a957d commit e1fba2b
Show file tree
Hide file tree
Showing 144 changed files with 32,030 additions and 1,518 deletions.
2 changes: 1 addition & 1 deletion java-discoveryengine/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ Java is a registered trademark of Oracle and/or its affiliates.
[kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java11.html
[stability-image]: https://img.shields.io/badge/stability-preview-yellow
[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-discoveryengine.svg
[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-discoveryengine/0.17.0
[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-discoveryengine/0.18.0
[authentication]: https://github.com/googleapis/google-cloud-java#authentication
[auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes
[predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
* .setQuery("query107944136")
* .setQueryModel("queryModel-184930495")
* .setUserPseudoId("userPseudoId-1155274652")
* .setIncludeTailSuggestions(true)
* .build();
* CompleteQueryResponse response = completionServiceClient.completeQuery(request);
* }
Expand Down Expand Up @@ -200,6 +201,7 @@ public CompletionServiceStub getStub() {
* .setQuery("query107944136")
* .setQueryModel("queryModel-184930495")
* .setUserPseudoId("userPseudoId-1155274652")
* .setIncludeTailSuggestions(true)
* .build();
* CompleteQueryResponse response = completionServiceClient.completeQuery(request);
* }
Expand Down Expand Up @@ -234,6 +236,7 @@ public final CompleteQueryResponse completeQuery(CompleteQueryRequest request) {
* .setQuery("query107944136")
* .setQueryModel("queryModel-184930495")
* .setUserPseudoId("userPseudoId-1155274652")
* .setIncludeTailSuggestions(true)
* .build();
* ApiFuture<CompleteQueryResponse> future =
* completionServiceClient.completeQueryCallable().futureCall(request);
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,279 @@
/*
* Copyright 2023 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.google.cloud.discoveryengine.v1beta;

import static com.google.cloud.discoveryengine.v1beta.ConversationalSearchServiceClient.ListConversationsPagedResponse;

import com.google.api.core.ApiFunction;
import com.google.api.core.BetaApi;
import com.google.api.gax.core.GoogleCredentialsProvider;
import com.google.api.gax.core.InstantiatingExecutorProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
import com.google.api.gax.rpc.ApiClientHeaderProvider;
import com.google.api.gax.rpc.ClientContext;
import com.google.api.gax.rpc.ClientSettings;
import com.google.api.gax.rpc.PagedCallSettings;
import com.google.api.gax.rpc.TransportChannelProvider;
import com.google.api.gax.rpc.UnaryCallSettings;
import com.google.cloud.discoveryengine.v1beta.stub.ConversationalSearchServiceStubSettings;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.List;
import javax.annotation.Generated;

// AUTO-GENERATED DOCUMENTATION AND CLASS.
/**
* Settings class to configure an instance of {@link ConversationalSearchServiceClient}.
*
* <p>The default instance has everything set to sensible defaults:
*
* <ul>
* <li>The default service address (discoveryengine.googleapis.com) and default port (443) are
* used.
* <li>Credentials are acquired automatically through Application Default Credentials.
* <li>Retries are configured for idempotent methods but not for non-idempotent methods.
* </ul>
*
* <p>The builder of this class is recursive, so contained classes are themselves builders. When
* build() is called, the tree of builders is called to create the complete settings object.
*
* <p>For example, to set the total timeout of converseConversation to 30 seconds:
*
* <pre>{@code
* // This snippet has been automatically generated and should be regarded as a code template only.
* // It will require modifications to work:
* // - It may require correct/in-range values for request initialization.
* // - It may require specifying regional endpoints when creating the service client as shown in
* // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
* ConversationalSearchServiceSettings.Builder conversationalSearchServiceSettingsBuilder =
* ConversationalSearchServiceSettings.newBuilder();
* conversationalSearchServiceSettingsBuilder
* .converseConversationSettings()
* .setRetrySettings(
* conversationalSearchServiceSettingsBuilder
* .converseConversationSettings()
* .getRetrySettings()
* .toBuilder()
* .setTotalTimeout(Duration.ofSeconds(30))
* .build());
* ConversationalSearchServiceSettings conversationalSearchServiceSettings =
* conversationalSearchServiceSettingsBuilder.build();
* }</pre>
*/
@BetaApi
@Generated("by gapic-generator-java")
public class ConversationalSearchServiceSettings
extends ClientSettings<ConversationalSearchServiceSettings> {

/** Returns the object with the settings used for calls to converseConversation. */
public UnaryCallSettings<ConverseConversationRequest, ConverseConversationResponse>
converseConversationSettings() {
return ((ConversationalSearchServiceStubSettings) getStubSettings())
.converseConversationSettings();
}

/** Returns the object with the settings used for calls to createConversation. */
public UnaryCallSettings<CreateConversationRequest, Conversation> createConversationSettings() {
return ((ConversationalSearchServiceStubSettings) getStubSettings())
.createConversationSettings();
}

/** Returns the object with the settings used for calls to deleteConversation. */
public UnaryCallSettings<DeleteConversationRequest, Empty> deleteConversationSettings() {
return ((ConversationalSearchServiceStubSettings) getStubSettings())
.deleteConversationSettings();
}

/** Returns the object with the settings used for calls to updateConversation. */
public UnaryCallSettings<UpdateConversationRequest, Conversation> updateConversationSettings() {
return ((ConversationalSearchServiceStubSettings) getStubSettings())
.updateConversationSettings();
}

/** Returns the object with the settings used for calls to getConversation. */
public UnaryCallSettings<GetConversationRequest, Conversation> getConversationSettings() {
return ((ConversationalSearchServiceStubSettings) getStubSettings()).getConversationSettings();
}

/** Returns the object with the settings used for calls to listConversations. */
public PagedCallSettings<
ListConversationsRequest, ListConversationsResponse, ListConversationsPagedResponse>
listConversationsSettings() {
return ((ConversationalSearchServiceStubSettings) getStubSettings())
.listConversationsSettings();
}

public static final ConversationalSearchServiceSettings create(
ConversationalSearchServiceStubSettings stub) throws IOException {
return new ConversationalSearchServiceSettings.Builder(stub.toBuilder()).build();
}

/** Returns a builder for the default ExecutorProvider for this service. */
public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
return ConversationalSearchServiceStubSettings.defaultExecutorProviderBuilder();
}

/** Returns the default service endpoint. */
public static String getDefaultEndpoint() {
return ConversationalSearchServiceStubSettings.getDefaultEndpoint();
}

/** Returns the default service scopes. */
public static List<String> getDefaultServiceScopes() {
return ConversationalSearchServiceStubSettings.getDefaultServiceScopes();
}

/** Returns a builder for the default credentials for this service. */
public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
return ConversationalSearchServiceStubSettings.defaultCredentialsProviderBuilder();
}

/** Returns a builder for the default gRPC ChannelProvider for this service. */
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
return ConversationalSearchServiceStubSettings.defaultGrpcTransportProviderBuilder();
}

/** Returns a builder for the default REST ChannelProvider for this service. */
@BetaApi
public static InstantiatingHttpJsonChannelProvider.Builder
defaultHttpJsonTransportProviderBuilder() {
return ConversationalSearchServiceStubSettings.defaultHttpJsonTransportProviderBuilder();
}

public static TransportChannelProvider defaultTransportChannelProvider() {
return ConversationalSearchServiceStubSettings.defaultTransportChannelProvider();
}

@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
return ConversationalSearchServiceStubSettings.defaultApiClientHeaderProviderBuilder();
}

/** Returns a new gRPC builder for this class. */
public static Builder newBuilder() {
return Builder.createDefault();
}

/** Returns a new REST builder for this class. */
@BetaApi
public static Builder newHttpJsonBuilder() {
return Builder.createHttpJsonDefault();
}

/** Returns a new builder for this class. */
public static Builder newBuilder(ClientContext clientContext) {
return new Builder(clientContext);
}

/** Returns a builder containing all the values of this settings class. */
public Builder toBuilder() {
return new Builder(this);
}

protected ConversationalSearchServiceSettings(Builder settingsBuilder) throws IOException {
super(settingsBuilder);
}

/** Builder for ConversationalSearchServiceSettings. */
public static class Builder
extends ClientSettings.Builder<ConversationalSearchServiceSettings, Builder> {

protected Builder() throws IOException {
this(((ClientContext) null));
}

protected Builder(ClientContext clientContext) {
super(ConversationalSearchServiceStubSettings.newBuilder(clientContext));
}

protected Builder(ConversationalSearchServiceSettings settings) {
super(settings.getStubSettings().toBuilder());
}

protected Builder(ConversationalSearchServiceStubSettings.Builder stubSettings) {
super(stubSettings);
}

private static Builder createDefault() {
return new Builder(ConversationalSearchServiceStubSettings.newBuilder());
}

@BetaApi
private static Builder createHttpJsonDefault() {
return new Builder(ConversationalSearchServiceStubSettings.newHttpJsonBuilder());
}

public ConversationalSearchServiceStubSettings.Builder getStubSettingsBuilder() {
return ((ConversationalSearchServiceStubSettings.Builder) getStubSettings());
}

/**
* Applies the given settings updater function to all of the unary API methods in this service.
*
* <p>Note: This method does not support applying settings to streaming methods.
*/
public Builder applyToAllUnaryMethods(
ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) {
super.applyToAllUnaryMethods(
getStubSettingsBuilder().unaryMethodSettingsBuilders(), settingsUpdater);
return this;
}

/** Returns the builder for the settings used for calls to converseConversation. */
public UnaryCallSettings.Builder<ConverseConversationRequest, ConverseConversationResponse>
converseConversationSettings() {
return getStubSettingsBuilder().converseConversationSettings();
}

/** Returns the builder for the settings used for calls to createConversation. */
public UnaryCallSettings.Builder<CreateConversationRequest, Conversation>
createConversationSettings() {
return getStubSettingsBuilder().createConversationSettings();
}

/** Returns the builder for the settings used for calls to deleteConversation. */
public UnaryCallSettings.Builder<DeleteConversationRequest, Empty>
deleteConversationSettings() {
return getStubSettingsBuilder().deleteConversationSettings();
}

/** Returns the builder for the settings used for calls to updateConversation. */
public UnaryCallSettings.Builder<UpdateConversationRequest, Conversation>
updateConversationSettings() {
return getStubSettingsBuilder().updateConversationSettings();
}

/** Returns the builder for the settings used for calls to getConversation. */
public UnaryCallSettings.Builder<GetConversationRequest, Conversation>
getConversationSettings() {
return getStubSettingsBuilder().getConversationSettings();
}

/** Returns the builder for the settings used for calls to listConversations. */
public PagedCallSettings.Builder<
ListConversationsRequest, ListConversationsResponse, ListConversationsPagedResponse>
listConversationsSettings() {
return getStubSettingsBuilder().listConversationsSettings();
}

@Override
public ConversationalSearchServiceSettings build() throws IOException {
return new ConversationalSearchServiceSettings(this);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -368,8 +368,9 @@ public final UnaryCallable<GetDocumentRequest, Document> getDocumentCallable() {
* @param parent Required. The parent branch resource name, such as
* `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`.
* Use `default_branch` as the branch ID, to list documents under the default branch.
* <p>If the caller does not have permission to list [Documents][]s under this branch,
* regardless of whether or not this branch exists, a `PERMISSION_DENIED` error is returned.
* <p>If the caller does not have permission to list
* [Document][google.cloud.discoveryengine.v1beta.Document]s under this branch, regardless of
* whether or not this branch exists, a `PERMISSION_DENIED` error is returned.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final ListDocumentsPagedResponse listDocuments(BranchName parent) {
Expand Down Expand Up @@ -406,8 +407,9 @@ public final ListDocumentsPagedResponse listDocuments(BranchName parent) {
* @param parent Required. The parent branch resource name, such as
* `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`.
* Use `default_branch` as the branch ID, to list documents under the default branch.
* <p>If the caller does not have permission to list [Documents][]s under this branch,
* regardless of whether or not this branch exists, a `PERMISSION_DENIED` error is returned.
* <p>If the caller does not have permission to list
* [Document][google.cloud.discoveryengine.v1beta.Document]s under this branch, regardless of
* whether or not this branch exists, a `PERMISSION_DENIED` error is returned.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final ListDocumentsPagedResponse listDocuments(String parent) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
* "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]")
* .toString())
* .setQuery("query107944136")
* .setImageQuery(SearchRequest.ImageQuery.newBuilder().build())
* .setPageSize(883849137)
* .setPageToken("pageToken873572522")
* .setOffset(-1019779949)
Expand Down Expand Up @@ -225,6 +226,7 @@ public SearchServiceStub getStub() {
* "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]")
* .toString())
* .setQuery("query107944136")
* .setImageQuery(SearchRequest.ImageQuery.newBuilder().build())
* .setPageSize(883849137)
* .setPageToken("pageToken873572522")
* .setOffset(-1019779949)
Expand Down Expand Up @@ -278,6 +280,7 @@ public final SearchPagedResponse search(SearchRequest request) {
* "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]")
* .toString())
* .setQuery("query107944136")
* .setImageQuery(SearchRequest.ImageQuery.newBuilder().build())
* .setPageSize(883849137)
* .setPageToken("pageToken873572522")
* .setOffset(-1019779949)
Expand Down Expand Up @@ -331,6 +334,7 @@ public final UnaryCallable<SearchRequest, SearchPagedResponse> searchPagedCallab
* "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]")
* .toString())
* .setQuery("query107944136")
* .setImageQuery(SearchRequest.ImageQuery.newBuilder().build())
* .setPageSize(883849137)
* .setPageToken("pageToken873572522")
* .setOffset(-1019779949)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ public final UnaryCallable<WriteUserEventRequest, UserEvent> writeUserEventCalla
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Writes a single user event from the browser. This uses a GET request to due to browser
* restriction of POST-ing to a 3rd party domain.
* restriction of POST-ing to a third-party domain.
*
* <p>This method is used only by the Discovery Engine API JavaScript pixel and Google Tag
* Manager. Users should not call this method directly.
Expand Down Expand Up @@ -311,7 +311,7 @@ public final HttpBody collectUserEvent(CollectUserEventRequest request) {
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Writes a single user event from the browser. This uses a GET request to due to browser
* restriction of POST-ing to a 3rd party domain.
* restriction of POST-ing to a third-party domain.
*
* <p>This method is used only by the Discovery Engine API JavaScript pixel and Google Tag
* Manager. Users should not call this method directly.
Expand Down
Loading

0 comments on commit e1fba2b

Please sign in to comment.