internal-base.js 2.1 KB

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