static async getInstance()

in src/backends/client/base.ts [30:68]


  static async getInstance(
    modelId: string,
    quantized: boolean,
    device: DevicesType,

    progress_callback?: ProgressCallbackFunction
  ) {
    if (!this.task) {
      throw new Error("Invalid class configuration");
    }
    const revision = modelId.split("@")[1] || "main";
    modelId = modelId.split("@")[0];
    const key = `${modelId}${
      quantized ? "_quantized" : ""
    }_${device}_${revision}`;
    if (!(key in this.instance)) {
      console.info(
        "Creating pipeline instance. Model not loaded yet, modelId:",
        modelId,
        "Device",
        device
      );
      this.instance[key] = pipeline(this.task, modelId, {
        quantized: device === Devices.webgpu ? false : quantized,
        progress_callback,
        device: device,
        revision: revision,
      });
      // TODO: use progress callback
    } else {
      console.info(
        "Pipeline instance already created for modelId:",
        modelId,
        "Device",
        device
      );
    }
    return this.instance[key];
  }