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;
  if (orgId != null) {
    headers["OpenAI-Organization"] = orgId;
  }
  if (projectId != null) {
    headers["OpenAI-Project"] = projectId;
  }

  final ws = await WebSocket.connect(url.toString(), headers: headers);

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