How do I handle interruptions with a realtime openai model?

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 ].