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.SessionServiceClientNamespace
Google.Cloud.Ces.V1Assembly
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 |
CallInvokerThe callInvoker to use to make remote calls. |
SessionServiceClient(ChannelBase)
public SessionServiceClient(ChannelBase channel)Creates a new client for SessionService
| Parameter | |
|---|---|
| Name | Description |
channel |
ChannelBaseThe 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 |
ClientBaseClientBaseConfigurationThe 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:
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.
Interaction: Subsequent messages stream [SessionInput][google.cloud.ces.v1.BidiSessionClientMessage.realtime_input] containing real-time user input data.
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:
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.
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).
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 ---
Streaming: Stream [audio data][google.cloud.ces.v1.SessionInput.audio] CONTINUOUSLY, even during silence. Recommended chunk size: 40-120ms (balances latency vs. efficiency).
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 |
CallOptionsThe 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:
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.
Interaction: Subsequent messages stream [SessionInput][google.cloud.ces.v1.BidiSessionClientMessage.realtime_input] containing real-time user input data.
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:
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.
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).
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 ---
Streaming: Stream [audio data][google.cloud.ces.v1.SessionInput.audio] CONTINUOUSLY, even during silence. Recommended chunk size: 40-120ms (balances latency vs. efficiency).
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 |
MetadataThe initial metadata to send with the call. This parameter is optional. |
deadline |
System.DateTimeAn optional deadline for the call. The call will be cancelled if deadline is hit. |
cancellationToken |
CancellationTokenAn 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 |
|
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 |
RunSessionRequestThe request to send to the server. |
options |
CallOptionsThe 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 |
RunSessionRequestThe request to send to the server. |
headers |
MetadataThe initial metadata to send with the call. This parameter is optional. |
deadline |
System.DateTimeAn optional deadline for the call. The call will be cancelled if deadline is hit. |
cancellationToken |
CancellationTokenAn 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 |
RunSessionRequestThe request to send to the server. |
options |
CallOptionsThe 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 |
RunSessionRequestThe request to send to the server. |
headers |
MetadataThe initial metadata to send with the call. This parameter is optional. |
deadline |
System.DateTimeAn optional deadline for the call. The call will be cancelled if deadline is hit. |
cancellationToken |
CancellationTokenAn optional token for canceling the call. |
| Returns | |
|---|---|
| Type | Description |
AsyncUnaryCallRunSessionResponse |
The call object. |