internal-base.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.buildRealtimeURL = exports.isAzure = exports.OpenAIRealtimeEmitter = exports.OpenAIRealtimeError = void 0;
  4. const EventEmitter_1 = require("../../lib/EventEmitter.js");
  5. const error_1 = require("../../error.js");
  6. const index_1 = require("../../index.js");
  7. class OpenAIRealtimeError extends error_1.OpenAIError {
  8. constructor(message, event) {
  9. super(message);
  10. this.error = event?.error;
  11. this.event_id = event?.event_id;
  12. }
  13. }
  14. exports.OpenAIRealtimeError = OpenAIRealtimeError;
  15. class OpenAIRealtimeEmitter extends EventEmitter_1.EventEmitter {
  16. _onError(event, message, cause) {
  17. message =
  18. event?.error ?
  19. `${event.error.message} code=${event.error.code} param=${event.error.param} type=${event.error.type} event_id=${event.error.event_id}`
  20. : message ?? 'unknown error';
  21. if (!this._hasListener('error')) {
  22. const error = new OpenAIRealtimeError(message +
  23. `\n\nTo resolve these unhandled rejection errors you should bind an \`error\` callback, e.g. \`rt.on('error', (error) => ...)\` `, event);
  24. // @ts-ignore
  25. error.cause = cause;
  26. Promise.reject(error);
  27. return;
  28. }
  29. const error = new OpenAIRealtimeError(message, event);
  30. // @ts-ignore
  31. error.cause = cause;
  32. this._emit('error', error);
  33. }
  34. }
  35. exports.OpenAIRealtimeEmitter = OpenAIRealtimeEmitter;
  36. function isAzure(client) {
  37. return client instanceof index_1.AzureOpenAI;
  38. }
  39. exports.isAzure = isAzure;
  40. function buildRealtimeURL(client, model) {
  41. const path = '/realtime';
  42. const baseURL = client.baseURL;
  43. const url = new URL(baseURL + (baseURL.endsWith('/') ? path.slice(1) : path));
  44. url.protocol = 'wss';
  45. if (isAzure(client)) {
  46. url.searchParams.set('api-version', client.apiVersion);
  47. url.searchParams.set('deployment', model);
  48. }
  49. else {
  50. url.searchParams.set('model', model);
  51. }
  52. return url;
  53. }
  54. exports.buildRealtimeURL = buildRealtimeURL;
  55. //# sourceMappingURL=internal-base.js.map