Gemini Enterprise for Customer Experience v1 API - Class SessionService.SessionServiceClient (1.0.0-beta01)

public class SessionService.SessionServiceClient : ClientBase<SessionService.SessionServiceClient>

Reference documentation and code samples for the Gemini Enterprise for Customer Experience v1 API class SessionService.SessionServiceClient.

Client for SessionService

Inheritance

object > ClientBase > ClientBaseSessionServiceSessionServiceClient > SessionService.SessionServiceClient

Namespace

Google.Cloud.Ces.V1

Assembly

Google.Cloud.Ces.V1.dll

Constructors

SessionServiceClient()

protected SessionServiceClient()

Protected parameterless constructor to allow creation of test doubles.

SessionServiceClient(CallInvoker)

public SessionServiceClient(CallInvoker callInvoker)

Creates a new client for SessionService that uses a custom CallInvoker.

Parameter
Name Description
callInvoker CallInvoker

The callInvoker to use to make remote calls.

SessionServiceClient(ChannelBase)

public SessionServiceClient(ChannelBase channel)

Creates a new client for SessionService

Parameter
Name Description
channel ChannelBase

The channel to use to make remote calls.

SessionServiceClient(ClientBaseConfiguration)

protected SessionServiceClient(ClientBase.ClientBaseConfiguration configuration)

Protected constructor to allow creation of configured clients.

Parameter
Name Description
configuration ClientBaseClientBaseConfiguration

The client configuration.

Methods

BidiRunSession(CallOptions)

public virtual AsyncDuplexStreamingCall<BidiSessionClientMessage, BidiSessionServerMessage> BidiRunSession(CallOptions options)

Establishes a bidirectional streaming connection with the CES agent. The agent processes continuous multimodal inputs (e.g., text, audio) and generates real-time multimodal output streams.

--- Client Request Stream --- The client streams requests in the following order:

  1. Initialization: The first message must contain [SessionConfig][google.cloud.ces.v1.BidiSessionClientMessage.config]. For audio sessions, this should also include [InputAudioConfig][google.cloud.ces.v1.SessionConfig.input_audio_config] and [OutputAudioConfig][google.cloud.ces.v1.SessionConfig.output_audio_config] to define audio processing and synthesis parameters.

  2. Interaction: Subsequent messages stream [SessionInput][google.cloud.ces.v1.BidiSessionClientMessage.realtime_input] containing real-time user input data.

  3. Termination: The client should half-close the stream when there is no more user input. It should also half-close upon receiving [EndSession][google.cloud.ces.v1.BidiSessionServerMessage.end_session] or [GoAway][google.cloud.ces.v1.BidiSessionServerMessage.go_away] from the agent.

--- Server Response Stream --- For each interaction turn, the agent streams messages in the following sequence:

  1. Speech Recognition (First N messages): Contains [RecognitionResult][google.cloud.ces.v1.BidiSessionServerMessage.recognition_result] representing the concatenated user speech segments captured so far. This is only populated for audio sessions.

  2. Response (Next M messages): Contains [SessionOutput][google.cloud.ces.v1.BidiSessionServerMessage.session_output] delivering the agent's response in various modalities (e.g., text, audio).

  3. Turn Completion (Final message of the turn): Contains [SessionOutput][google.cloud.ces.v1.BidiSessionServerMessage.session_output] with [turn_completed][google.cloud.ces.v1.SessionOutput.turn_completed] set to true. This signals the end of the current turn and includes [DiagnosticInfo][google.cloud.ces.v1.SessionOutput.diagnostic_info] with execution details.

--- Audio Best Practices ---

  1. Streaming: Stream [audio data][google.cloud.ces.v1.SessionInput.audio] CONTINUOUSLY, even during silence. Recommended chunk size: 40-120ms (balances latency vs. efficiency).

  2. Playback & Interruption: Play [audio responses][google.cloud.ces.v1.SessionOutput.audio] upon receipt. Stop playback immediately if an [InterruptionSignal][google.cloud.ces.v1.BidiSessionServerMessage.interruption_signal] is received (e.g., user barge-in or new agent response).

Parameter
Name Description
options CallOptions

The options for the call.

Returns
Type Description
AsyncDuplexStreamingCallBidiSessionClientMessageBidiSessionServerMessage

The call object.

BidiRunSession(Metadata, DateTime?, CancellationToken)

public virtual AsyncDuplexStreamingCall<BidiSessionClientMessage, BidiSessionServerMessage> BidiRunSession(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)

Establishes a bidirectional streaming connection with the CES agent. The agent processes continuous multimodal inputs (e.g., text, audio) and generates real-time multimodal output streams.

--- Client Request Stream --- The client streams requests in the following order:

  1. Initialization: The first message must contain [SessionConfig][google.cloud.ces.v1.BidiSessionClientMessage.config]. For audio sessions, this should also include [InputAudioConfig][google.cloud.ces.v1.SessionConfig.input_audio_config] and [OutputAudioConfig][google.cloud.ces.v1.SessionConfig.output_audio_config] to define audio processing and synthesis parameters.

  2. Interaction: Subsequent messages stream [SessionInput][google.cloud.ces.v1.BidiSessionClientMessage.realtime_input] containing real-time user input data.

  3. Termination: The client should half-close the stream when there is no more user input. It should also half-close upon receiving [EndSession][google.cloud.ces.v1.BidiSessionServerMessage.end_session] or [GoAway][google.cloud.ces.v1.BidiSessionServerMessage.go_away] from the agent.

--- Server Response Stream --- For each interaction turn, the agent streams messages in the following sequence:

  1. Speech Recognition (First N messages): Contains [RecognitionResult][google.cloud.ces.v1.BidiSessionServerMessage.recognition_result] representing the concatenated user speech segments captured so far. This is only populated for audio sessions.

  2. Response (Next M messages): Contains [SessionOutput][google.cloud.ces.v1.BidiSessionServerMessage.session_output] delivering the agent's response in various modalities (e.g., text, audio).

  3. Turn Completion (Final message of the turn): Contains [SessionOutput][google.cloud.ces.v1.BidiSessionServerMessage.session_output] with [turn_completed][google.cloud.ces.v1.SessionOutput.turn_completed] set to true. This signals the end of the current turn and includes [DiagnosticInfo][google.cloud.ces.v1.SessionOutput.diagnostic_info] with execution details.

--- Audio Best Practices ---

  1. Streaming: Stream [audio data][google.cloud.ces.v1.SessionInput.audio] CONTINUOUSLY, even during silence. Recommended chunk size: 40-120ms (balances latency vs. efficiency).

  2. Playback & Interruption: Play [audio responses][google.cloud.ces.v1.SessionOutput.audio] upon receipt. Stop playback immediately if an [InterruptionSignal][google.cloud.ces.v1.BidiSessionServerMessage.interruption_signal] is received (e.g., user barge-in or new agent response).

Parameters
Name Description
headers Metadata

The initial metadata to send with the call. This parameter is optional.

deadline System.DateTime

An optional deadline for the call. The call will be cancelled if deadline is hit.

cancellationToken CancellationToken

An optional token for canceling the call.

Returns
Type Description
AsyncDuplexStreamingCallBidiSessionClientMessageBidiSessionServerMessage

The call object.

CreateLocationsClient()

public virtual Locations.LocationsClient CreateLocationsClient()

Creates a new instance of Locations.LocationsClient using the same call invoker as this client.

Returns
Type Description
LocationsLocationsClient

A new Locations.LocationsClient for the same target as this client.

NewInstance(ClientBaseConfiguration)

protected override SessionService.SessionServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration)

Creates a new instance of client from given ClientBaseConfiguration.

Parameter
Name Description
configuration ClientBaseClientBaseConfiguration
Returns
Type Description
SessionServiceSessionServiceClient
Overrides
Grpc.Core.ClientBase<Google.Cloud.Ces.V1.SessionService.SessionServiceClient>.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration)

RunSession(RunSessionRequest, CallOptions)

public virtual RunSessionResponse RunSession(RunSessionRequest request, CallOptions options)

Initiates a single turn interaction with the CES agent within a session.

Parameters
Name Description
request RunSessionRequest

The request to send to the server.

options CallOptions

The options for the call.

Returns
Type Description
RunSessionResponse

The response received from the server.

RunSession(RunSessionRequest, Metadata, DateTime?, CancellationToken)

public virtual RunSessionResponse RunSession(RunSessionRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)

Initiates a single turn interaction with the CES agent within a session.

Parameters
Name Description
request RunSessionRequest

The request to send to the server.

headers Metadata

The initial metadata to send with the call. This parameter is optional.

deadline System.DateTime

An optional deadline for the call. The call will be cancelled if deadline is hit.

cancellationToken CancellationToken

An optional token for canceling the call.

Returns
Type Description
RunSessionResponse

The response received from the server.

RunSessionAsync(RunSessionRequest, CallOptions)

public virtual AsyncUnaryCall<RunSessionResponse> RunSessionAsync(RunSessionRequest request, CallOptions options)

Initiates a single turn interaction with the CES agent within a session.

Parameters
Name Description
request RunSessionRequest

The request to send to the server.

options CallOptions

The options for the call.

Returns
Type Description
AsyncUnaryCallRunSessionResponse

The call object.

RunSessionAsync(RunSessionRequest, Metadata, DateTime?, CancellationToken)

public virtual AsyncUnaryCall<RunSessionResponse> RunSessionAsync(RunSessionRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)

Initiates a single turn interaction with the CES agent within a session.

Parameters
Name Description
request RunSessionRequest

The request to send to the server.

headers Metadata

The initial metadata to send with the call. This parameter is optional.

deadline System.DateTime

An optional deadline for the call. The call will be cancelled if deadline is hit.

cancellationToken CancellationToken

An optional token for canceling the call.

Returns
Type Description
AsyncUnaryCallRunSessionResponse

The call object.