Class SessionServiceGrpc.SessionServiceBlockingV2Stub

java.lang.Object
io.grpc.stub.AbstractStub<S>
io.grpc.stub.AbstractBlockingStub<SessionServiceGrpc.SessionServiceBlockingV2Stub>
com.google.cloud.ces.v1beta.SessionServiceGrpc.SessionServiceBlockingV2Stub
Enclosing class:
SessionServiceGrpc

public static final class SessionServiceGrpc.SessionServiceBlockingV2Stub extends io.grpc.stub.AbstractBlockingStub<SessionServiceGrpc.SessionServiceBlockingV2Stub>
A stub to allow clients to do synchronous rpc calls to service SessionService.
 Session service provides APIs for interacting with CES agents.
 
  • Method Details

    • build

      protected SessionServiceGrpc.SessionServiceBlockingV2Stub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions)
      Specified by:
      build in class io.grpc.stub.AbstractStub<SessionServiceGrpc.SessionServiceBlockingV2Stub>
    • runSession

      public RunSessionResponse runSession(RunSessionRequest request) throws io.grpc.StatusException
       Initiates a single-turn interaction with the CES agent within a session.
       
      Throws:
      io.grpc.StatusException
    • streamRunSession

      @ExperimentalApi("https://github.com/grpc/grpc-java/issues/10918") public io.grpc.stub.BlockingClientCall<?,RunSessionResponse> streamRunSession(RunSessionRequest request)
       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

      @ExperimentalApi("https://github.com/grpc/grpc-java/issues/10918") public io.grpc.stub.BlockingClientCall<BidiSessionClientMessage,BidiSessionServerMessage> bidiRunSession()
       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).