LiveKit + Universal-3.6 Pro Realtime — multi-location routing
# LiveKit + AssemblyAI Universal-3.6 Pro Realtime: multi-location routing
from livekit.agents import Agent, AgentSession, TurnHandlingOptions
from livekit.plugins import assemblyai, cartesia, openai, silero
from livekit.plugins.turn_detector.multilingual import MultilingualModel
class FrontDeskAgent(Agent):
def __init__(self):
super().__init__(
instructions=(
"You are a front desk receptionist for a multi-location dental "
"group. Identify which office the caller needs. Check availability "
"across all locations. Book appointments, collect insurance details, "
"and route complex billing questions to the office manager."
),
)
async def entrypoint(ctx):
session = AgentSession(
stt=assemblyai.STT(
model="universal-3-6-pro",
keyterms_prompt=["Dr. Patel", "panoramic x-ray", "deep cleaning",
"Lakewood office", "Downtown office"],
),
llm=openai.LLM(model="gpt-4o"),
tts=cartesia.TTS(),
vad=silero.VAD.load(activation_threshold=0.3),
turn_handling=TurnHandlingOptions(
turn_detection=MultilingualModel(),
endpointing={"min_delay": 0.5, "max_delay": 3.0},
),
)
await session.start(room=ctx.room, agent=FrontDeskAgent())
Want AssemblyAI on the speaking side too? The Text-to-Speech API has reference implementations for LiveKit and Pipecat.