public sealed class SessionServiceClientImpl : SessionServiceClientReference documentation and code samples for the Gemini Enterprise for Customer Experience v1 API class SessionServiceClientImpl.
SessionService client wrapper implementation, for convenient use.
Namespace
Google.Cloud.Ces.V1Assembly
Google.Cloud.Ces.V1.dll
Remarks
Session service provides APIs for interacting with CES agents.
Constructors
SessionServiceClientImpl(SessionServiceClient, SessionServiceSettings, ILogger)
public SessionServiceClientImpl(SessionService.SessionServiceClient grpcClient, SessionServiceSettings settings, ILogger logger)Constructs a client wrapper for the SessionService service, with the specified gRPC client and settings.
| Parameters | |
|---|---|
| Name | Description |
grpcClient |
SessionServiceSessionServiceClientThe underlying gRPC client. |
settings |
SessionServiceSettingsThe base SessionServiceSettings used within this client. |
logger |
ILoggerOptional ILogger to use within this client. |
Properties
GrpcClient
public override SessionService.SessionServiceClient GrpcClient { get; }The underlying gRPC SessionService client
| Property Value | |
|---|---|
| Type | Description |
SessionServiceSessionServiceClient |
|
LocationsClient
public override LocationsClient LocationsClient { get; }The LocationsClient associated with this client.
| Property Value | |
|---|---|
| Type | Description |
LocationsClient |
|
Methods
BidiRunSession(CallSettings, BidirectionalStreamingSettings)
public override SessionServiceClient.BidiRunSessionStream BidiRunSession(CallSettings callSettings = null, BidirectionalStreamingSettings streamingSettings = null)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 |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
streamingSettings |
BidirectionalStreamingSettingsIf not null, applies streaming overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
SessionServiceClientBidiRunSessionStream |
The client-server stream. |
RunSession(RunSessionRequest, CallSettings)
public override RunSessionResponse RunSession(RunSessionRequest request, CallSettings callSettings = null)Initiates a single turn interaction with the CES agent within a session.
| Parameters | |
|---|---|
| Name | Description |
request |
RunSessionRequestThe request object containing all of the parameters for the API call. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
RunSessionResponse |
The RPC response. |
RunSessionAsync(RunSessionRequest, CallSettings)
public override Task<RunSessionResponse> RunSessionAsync(RunSessionRequest request, CallSettings callSettings = null)Initiates a single turn interaction with the CES agent within a session.
| Parameters | |
|---|---|
| Name | Description |
request |
RunSessionRequestThe request object containing all of the parameters for the API call. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
TaskRunSessionResponse |
A Task containing the RPC response. |