createRealtimeWebsocket method

Future<WebsocketRealtimeSessionController> createRealtimeWebsocket({
  1. required String token,
  2. RealtimeModel model = RealtimeModel.gptRealtime,
  3. String? callId,
  4. String? orgId,
  5. String? projectId,
})

Implementation

Future<WebsocketRealtimeSessionController> createRealtimeWebsocket(
    {required String token, RealtimeModel model = RealtimeModel.gptRealtime, String? callId, String? orgId, String? projectId}) async {
  final url = baseUrl.resolve("realtime").replace(
      scheme: baseUrl.scheme.replaceFirst("http", "ws"),
      queryParameters: {if (callId != null) "callId": callId, "model": model.toJson()});

  final headers = getHeaders({});

  headers!["Authorization"] = "Bearer " + token;

  final ws = await WebSocketChannel.connect(url, protocols: [
    "realtime",
    // Auth
    "openai-insecure-api-key." + token,
    if (orgId != null) "openai-organization." + orgId,
    if (projectId != null) "openai-project." + projectId,
  ]);

  return WebsocketRealtimeSessionController(webSocket: ws, initialTools: []);
}