Gemini.Live.Message (GeminiEx v0.8.2)
View SourceMessage types for Gemini Live API WebSocket communication.
This module defines the structure of messages sent to and received from the Gemini Live API WebSocket endpoint.
Message Flow
- Client sends
setupmessage to configure the session - Server responds with
setupComplete - Client sends content via
clientContentorrealtimeInput - Server responds with
serverContentcontaining model responses - Client can send
toolResponseto respond to function calls
Example
# Setup message
setup = %ClientMessage{
setup: %LiveClientSetup{
model: "gemini-2.0-flash-exp",
generation_config: %{temperature: 0.8}
}
}
# Client content message
content = %ClientMessage{
client_content: %{
turns: [%{role: "user", parts: [%{text: "Hello!"}]}],
turn_complete: true
}
}
Summary
Functions
Convert API map to ServerMessage struct.
Parse JSON from WebSocket into ServerMessage.
Convert ClientMessage to API map format.
Convert ClientMessage to JSON for WebSocket transmission.
Functions
@spec from_api_map(map()) :: Gemini.Live.Message.ServerMessage.t()
Convert API map to ServerMessage struct.
@spec from_json(String.t()) :: {:ok, Gemini.Live.Message.ServerMessage.t()} | {:error, term()}
Parse JSON from WebSocket into ServerMessage.
@spec to_api_map(Gemini.Live.Message.ClientMessage.t()) :: map()
Convert ClientMessage to API map format.
@spec to_json(Gemini.Live.Message.ClientMessage.t()) :: {:ok, String.t()} | {:error, term()}
Convert ClientMessage to JSON for WebSocket transmission.