Gemini Realtime (STS)

Track Google Gemini’s Multimodal Live API using track_google_sts. This integration captures usage metadata directly from Gemini’s response turn.

Prerequisite: Complete the Voice Agent Setup before implementing STS tracking.

gemini_live_sts.py
1from paygent_sdk import Client
2
3from paygent_sdk.models import CustomerCreateOrGetRequest
4
5paygent = Client("your-paygent-api-key")
6session_id = f"voice_call_{int(time.time() * 1000)}"
7customer_id = "customer-123"
8
9# 1. Ensure Customer exists
10paygent.create_or_get_customer(CustomerCreateOrGetRequest(
11 name="Customer Name",
12 external_id=customer_id
13))
14
15# 2. Initialize Voice Session
16paygent.initialize_voice_session(session_id, "external-agent-id", customer_id)
17
18# 3. Handle Gemini Live turns
19async def receive_audio(self):
20 while True:
21 if self.session is not None:
22 turn = self.session.receive()
23 async for response in turn:
24 if data := response.data:
25 # Handle incoming audio data
26 ...
27
28 if usage := response.usage_metadata:
29 # Track usage directly from Gemini usage_metadata
30 paygent.track_google_sts(
31 usage_metadata=usage,
32 session_id=session_id,
33 model="gemini-2.0-flash-exp"
34 )
35
36# 4. Cleanup / Finalize
37paygent.set_voice_indicator(session_id, indicator_name, 1.5)