I still don’t know how to do it
@Keynar, OpenAI Realtime handles interruption natively via its server-side VAD. You configure it through the turn_detection parameter on the RealtimeModel. The key flag is interrupt_response=True, which tells the model to halt its current output when new user audio comes in:
from livekit.plugins.openai import realtime
from openai.types.beta.realtime.session import TurnDetection
from livekit.agents import AgentSession
session = AgentSession(
llm=realtime.RealtimeModel(
turn_detection=TurnDetection(
type="semantic_vad", # or "server_vad" for silence-based
eagerness="medium", # low / medium / high
create_response=True,
interrupt_response=True, # the actual interrupt-enable
)
),
)
[ docs.livekit.io/agents/models/realtime/plugins/openai/ ]
semantic_vad (default) uses a word-based classifier to avoid cutting users off mid-sentence. server_vad is the older silence-based path. eagerness controls how aggressively turn-end fires.
LK’s adaptive interruption mode is for non-realtime LLMs and doesn’t apply here. With OpenAI Realtime, the model itself does interrupt detection server-side, and interrupt_response=True is the toggle that turns that into actually-stopping-audio behavior on the LK side [ Adaptive interruption handling | LiveKit Documentation ].