import voicegateway
PROJECT = "livekit-demo"
def build_session():
from livekit.agents import AgentSession
from livekit.plugins import cartesia, deepgram, openai
return AgentSession(
stt=deepgram.STT(model="nova-3"),
# guard() wraps ONE provider for control; it returns a drop-in LLM.
llm=voicegateway.guard(
openai.LLM(model="gpt-4o-mini"),
fallback=[openai.LLM(model="gpt-4o")],
rate_limit="60/min",
budget="$5.00/day",
project=PROJECT,
),
tts=cartesia.TTS(model="sonic-3"),
)
async def entrypoint(ctx):
from livekit.agents import Agent
await ctx.connect()
session = build_session()
# One meter for the whole session. guard adds no second row.
voicegateway.attach(session, project=PROJECT)
await session.start(
agent=Agent(instructions="You are a helpful voice assistant. Be concise."),
room=ctx.room,
)