ReqLLM.OpenAI.Realtime (ReqLLM v1.9.0)

View Source

Experimental low-level Realtime WebSocket client for OpenAI.

This module exposes a small session-oriented API for Realtime workflows that do not map cleanly onto ReqLLM.stream_text/3. It is intentionally low-level: you connect a session, send JSON events, receive JSON events, and close the socket when you are done.

Summary

Functions

close(session)

@spec close(ReqLLM.OpenAI.Realtime.Session.t()) :: :ok

connect(model_spec \\ "gpt-realtime", opts \\ [])

@spec connect(
  ReqLLM.model_input() | String.t(),
  keyword()
) :: {:ok, ReqLLM.OpenAI.Realtime.Session.t()} | {:error, term()}

next_event(session, timeout \\ 30000)

@spec next_event(ReqLLM.OpenAI.Realtime.Session.t(), non_neg_integer()) ::
  {:ok, map()} | :halt | {:error, term()}

response_create(session, response_payload \\ %{})

@spec response_create(ReqLLM.OpenAI.Realtime.Session.t(), map()) ::
  :ok | {:error, term()}

send_event(session, event)

@spec send_event(ReqLLM.OpenAI.Realtime.Session.t(), map()) :: :ok | {:error, term()}

session_update(session, session_payload)

@spec session_update(ReqLLM.OpenAI.Realtime.Session.t(), map()) ::
  :ok | {:error, term()}