setOptions(options) {
    if (this.options && !this.options.replaceOptions) {
      this.options = {
        ...this.options,
        ...options,
      }
    } else {
      this.options = {
        ...options,
        host: options.host || 'https://www.bing.com',
        apipath: options.apipath || '/images/create?partner=sydney&re=1&showselective=1&sude=1',
        ua:
          options.ua ||
          'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35',
        xForwardedFor: this.constructor.getValidIPv4(options.xForwardedFor),
        features: {
          enableAnsCardSfx: true,
        },
        enableTelemetry: true,
        telemetry: {
          eventID: 'Codex',
          instrumentedLinkName: 'CodexInstLink',
          externalLinkName: 'CodexInstExtLink',
          kSeedBase: 6500,
          kSeedIncrement: 500,
          instSuffix: 0,
          instSuffixIncrement: 1,
        },
      }
    }
    this.apiurl = `${this.options.host}${this.options.apipath}`
    this.telemetry = {
      config: this.options,
      currentKSeed: this.options.telemetry.kSeedBase,
      instSuffix: this.options.telemetry.instSuffix,
      getNextKSeed() {
        // eslint-disable-next-line no-return-assign, no-sequences
        return (this.currentKSeed += this.config.telemetry.kSeedIncrement), this.currentKSeed
      },
      getNextInstSuffix() {
        // eslint-disable-next-line no-return-assign
        return this.config.features.enableAnsCardSfx
          ? ((this.instSuffix += this.config.telemetry.instSuffixIncrement),
            this.instSuffix > 1 ? `${this.instSuffix}` : '')
          : ''
      },
    }
    this.debug = this.options.debug
  }
Set options for BingImageCreator.
@param {Object} options - Options for BingImageCreator. The format of the options is almost same as the bingAiClient options of 'node-chatgpt-api'.