Skip to main content

openai_core/websocket/
mod.rs

1//! WebSocket protocol models and transport implementation.
2
3mod core;
4mod events;
5
6use crate::{Client, Result};
7
8pub use core::*;
9pub use events::*;
10
11/// Standalone OpenAI Realtime WebSocket connector.
12#[cfg(feature = "realtime")]
13#[cfg_attr(docsrs, doc(cfg(feature = "realtime")))]
14#[derive(Debug, Clone, Copy, Default)]
15pub struct OpenAIRealtimeWebSocket;
16
17/// Backwards-compatible alias for the standalone Realtime connector.
18#[cfg(feature = "realtime")]
19#[cfg_attr(docsrs, doc(cfg(feature = "realtime")))]
20pub type OpenAIRealtimeWS = OpenAIRealtimeWebSocket;
21
22#[cfg(feature = "realtime")]
23impl OpenAIRealtimeWebSocket {
24    /// Connect using the standalone Realtime helper.
25    pub async fn connect(client: Client, model: impl Into<String>) -> Result<RealtimeSocket> {
26        client.realtime().ws().model(model).connect().await
27    }
28}
29
30/// Standalone OpenAI Responses WebSocket connector.
31#[cfg(feature = "responses-ws")]
32#[cfg_attr(docsrs, doc(cfg(feature = "responses-ws")))]
33#[derive(Debug, Clone, Copy, Default)]
34pub struct OpenAIResponsesWebSocket;
35
36#[cfg(feature = "responses-ws")]
37impl OpenAIResponsesWebSocket {
38    /// Connect using the standalone Responses helper.
39    pub async fn connect(client: Client) -> Result<ResponsesSocket> {
40        client.responses().ws().connect().await
41    }
42}