Class SessionServiceGrpc.SessionServiceStub (0.1.0)

public static final class SessionServiceGrpc.SessionServiceStub extends AbstractAsyncStub<SessionServiceGrpc.SessionServiceStub>

A stub to allow clients to do asynchronous rpc calls to service SessionService.

Session service provides APIs for interacting with CES agents.

Inheritance

java.lang.Object > io.grpc.stub.AbstractStub > io.grpc.stub.AbstractAsyncStub > SessionServiceGrpc.SessionServiceStub

Methods

bidiRunSession(StreamObserver<BidiSessionServerMessage> responseObserver)

public StreamObserver<BidiSessionClientMessage> bidiRunSession(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. For audio sessions, this should also include InputAudioConfig and OutputAudioConfig to define audio processing and synthesis parameters.
  2. Interaction: Subsequent messages stream SessionInput 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 or GoAway from the agent. --- Server Response Stream --- For each interaction turn, the agent streams messages in the following sequence:
  4. Speech Recognition (First N messages): Contains RecognitionResult representing the concatenated user speech segments captured so far. This is only populated for audio sessions.
  5. Response (Next M messages): Contains SessionOutput delivering the agent's response in various modalities (e.g., text, audio).
  6. Turn Completion (Final message of the turn): Contains SessionOutput with turn_completed set to true. This signals the end of the current turn and includes DiagnosticInfo with execution details. --- Audio Best Practices ---
  7. Streaming: Stream audio data CONTINUOUSLY, even during silence. Recommended chunk size: 40-120ms (balances latency vs. efficiency).
  8. Playback & Interruption: Play audio responses upon receipt. Stop playback immediately if an InterruptionSignal is received (e.g., user barge-in or new agent response).
Parameter
Name Description
responseObserver io.grpc.stub.StreamObserver<BidiSessionServerMessage>
Returns
Type Description
io.grpc.stub.StreamObserver<BidiSessionClientMessage>

build(Channel channel, CallOptions callOptions)

protected SessionServiceGrpc.SessionServiceStub build(Channel channel, CallOptions callOptions)
Parameters
Name Description
channel io.grpc.Channel
callOptions io.grpc.CallOptions
Returns
Type Description
SessionServiceGrpc.SessionServiceStub
Overrides
io.grpc.stub.AbstractStub.build(io.grpc.Channel,io.grpc.CallOptions)

runSession(RunSessionRequest request, StreamObserver<RunSessionResponse> responseObserver)

public void runSession(RunSessionRequest request, StreamObserver<RunSessionResponse> responseObserver)

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

Parameters
Name Description
request RunSessionRequest
responseObserver io.grpc.stub.StreamObserver<RunSessionResponse>