Skip to content

Commit

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

- [ ] Regenerate this pull request now.

feat: support search summarization
feat: support structural search features
feat: support image search
feat: added query expansion details in search response
feat: support bring your own embedding feature
feat: support tail suggestions in completion API
feat: allow uri in user events
chore: deprecate SnippetSpec max_snippet_count and reference_only
docs: keep the API doc up-to-date with recent changes

PiperOrigin-RevId: 561158238

Source-Link: https://togithub.com/googleapis/googleapis/commit/99ac92146f2f37526abb210fbdea8318468982b6

Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/888e9f26e33390d88c0ec75fa32c8136b66a74e9
Copy-Tag: eyJwIjoiamF2YS1kaXNjb3ZlcnllbmdpbmUvLk93bEJvdC55YW1sIiwiaCI6Ijg4OGU5ZjI2ZTMzMzkwZDg4YzBlYzc1ZmEzMmM4MTM2YjY2YTc0ZTkifQ==

BEGIN_NESTED_COMMIT
feat: [discoveryengine] supported bring your own embedding feature
feat: added more options for search extractive content support
feat: added more skip reasons and details for search summarization
feat: added query expansion details in search response
feat: updated summarization interface for multi-turn search
feat: allow uri in user events
docs: keep the API doc up-to-date with recent changes

PiperOrigin-RevId: 561042278

Source-Link: https://togithub.com/googleapis/googleapis/commit/16136d3f0cb481c8fa627adac5812a04a49565ce

Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/cb03b994fd53f39967b43eda900fd5ac907b373b
Copy-Tag: eyJwIjoiamF2YS1kaXNjb3ZlcnllbmdpbmUvLk93bEJvdC55YW1sIiwiaCI6ImNiMDNiOTk0ZmQ1M2YzOTk2N2I0M2VkYTkwMGZkNWFjOTA3YjM3M2IifQ==
END_NESTED_COMMIT
  • Loading branch information
gcf-owl-bot[bot] committed Aug 30, 2023
1 parent b898dcd commit ea37f15
Show file tree
Hide file tree
Showing 188 changed files with 64,648 additions and 6,086 deletions.
4 changes: 2 additions & 2 deletions java-discoveryengine/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>libraries-bom</artifactId>
<version>26.19.0</version>
<version>26.22.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down 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.18.0
[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-discoveryengine/0.19.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 @@ -47,6 +47,7 @@
* .setQuery("query107944136")
* .setQueryModel("queryModel-184930495")
* .setUserPseudoId("userPseudoId-1155274652")
* .setIncludeTailSuggestions(true)
* .build();
* CompleteQueryResponse response = completionServiceClient.completeQuery(request);
* }
Expand Down Expand Up @@ -198,6 +199,7 @@ public CompletionServiceStub getStub() {
* .setQuery("query107944136")
* .setQueryModel("queryModel-184930495")
* .setUserPseudoId("userPseudoId-1155274652")
* .setIncludeTailSuggestions(true)
* .build();
* CompleteQueryResponse response = completionServiceClient.completeQuery(request);
* }
Expand Down Expand Up @@ -232,6 +234,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,278 @@
/*
* 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.v1;

import static com.google.cloud.discoveryengine.v1.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.v1.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>
*/
@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 @@ -367,8 +367,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.v1.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 @@ -405,8 +406,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.v1.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
Loading

0 comments on commit ea37f15

Please sign in to comment.