All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alibaba.dashscope.common.Param Maven / Gradle / Ivy

package com.alibaba.dashscope.common;

import com.alibaba.dashscope.protocol.Request;
import com.alibaba.dashscope.utils.Constants;
import java.util.UUID;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.StringUtils;

@Data
@SuperBuilder
public abstract class Param {

  /** The request id */
  private String requestId;

  /** The model to use. */
  private String model;

  /** The apiKey. */
  private String apiKey;

  /** Get real-time response on streaming mode */
  @Builder.Default private StreamingMode mode = StreamingMode.NONE;

  public String getApiKey() {
    return apiKey == null ? Constants.apiKey : apiKey;
  }

  /** Open security check */
  @Builder.Default private boolean securityCheck = false;

  public String getRequestId() {
    if (StringUtils.isBlank(requestId)) {
      requestId = UUID.randomUUID().toString();
    }
    return requestId;
  }

  public abstract String url();

  public abstract Request toRequest(Protocol protocol);

  /**
   * Get the related output class, which should be a subclass of `Result`.
   *
   * @return The output Class.
   */
  public abstract Class resultType();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy