Package com.google.cloud.ces.v1beta
Interface SessionServiceGrpc.AsyncService
- All Known Implementing Classes:
SessionServiceGrpc.SessionServiceImplBase
- Enclosing class:
- SessionServiceGrpc
public static interface SessionServiceGrpc.AsyncService
Session service provides APIs for interacting with CES agents.
-
Method Summary
Modifier and TypeMethodDescriptiondefault io.grpc.stub.StreamObserver<BidiSessionClientMessage>bidiRunSession(io.grpc.stub.StreamObserver<BidiSessionServerMessage> responseObserver) Establishes a bidirectional streaming connection with the CES agent.default voidrunSession(RunSessionRequest request, io.grpc.stub.StreamObserver<RunSessionResponse> responseObserver) Initiates a single-turn interaction with the CES agent within a session.default voidstreamRunSession(RunSessionRequest request, io.grpc.stub.StreamObserver<RunSessionResponse> responseObserver) Initiates a single-turn interaction with the CES agent.
-
Method Details
-
runSession
default void runSession(RunSessionRequest request, io.grpc.stub.StreamObserver<RunSessionResponse> responseObserver) Initiates a single-turn interaction with the CES agent within a session.
-
streamRunSession
default void streamRunSession(RunSessionRequest request, io.grpc.stub.StreamObserver<RunSessionResponse> responseObserver) Initiates a single-turn interaction with the CES agent. Uses server-side streaming to deliver incremental results and partial responses as they are generated. By default, complete responses (e.g., messages from callbacks or full LLM responses) are sent to the client as soon as they are available. To enable streaming individual text chunks directly from the model, set [enable_text_streaming][google.cloud.ces.v1beta.SessionConfig.enable_text_streaming] to true.
-
bidiRunSession
default io.grpc.stub.StreamObserver<BidiSessionClientMessage> bidiRunSession(io.grpc.stub.StreamObserver<BidiSessionServerMessage> responseObserver) 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.v1beta.BidiSessionClientMessage.config]. For audio sessions, this should also include [InputAudioConfig][google.cloud.ces.v1beta.SessionConfig.input_audio_config] and [OutputAudioConfig][google.cloud.ces.v1beta.SessionConfig.output_audio_config] to define audio processing and synthesis parameters. 2. Interaction: Subsequent messages stream [SessionInput][google.cloud.ces.v1beta.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.v1beta.BidiSessionServerMessage.end_session] or [GoAway][google.cloud.ces.v1beta.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.v1beta.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.v1beta.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.v1beta.BidiSessionServerMessage.session_output] with [turn_completed][google.cloud.ces.v1beta.SessionOutput.turn_completed] set to true. This signals the end of the current turn and includes [DiagnosticInfo][google.cloud.ces.v1beta.SessionOutput.diagnostic_info] with execution details. --- Audio Best Practices --- 1. Streaming: Stream [audio data][google.cloud.ces.v1beta.SessionInput.audio] **CONTINUOUSLY**, even during silence. Recommended chunk size: 40-120ms (balances latency vs. efficiency). 2. Playback & Interruption: Play [audio responses][google.cloud.ces.v1beta.SessionOutput.audio] upon receipt. Stop playback immediately if an [InterruptionSignal][google.cloud.ces.v1beta.BidiSessionServerMessage.interruption_signal] is received (e.g., user barge-in or new agent response).
-