001package com.box.sdkgen.schemas.aistudioagentbasictexttool;
002
003import com.box.sdkgen.schemas.aiagentbasictexttool.AiAgentBasicTextTool;
004import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams;
005import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws;
006import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle;
007import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm;
008import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi;
009import com.fasterxml.jackson.annotation.JsonFilter;
010import com.fasterxml.jackson.annotation.JsonProperty;
011import java.util.Objects;
012
013/** AI agent processor used to handle basic text. */
014@JsonFilter("nullablePropertyFilter")
015public class AiStudioAgentBasicTextTool extends AiAgentBasicTextTool {
016
017  /** True if system message contains custom instructions placeholder, false otherwise. */
018  @JsonProperty("is_custom_instructions_included")
019  protected Boolean isCustomInstructionsIncluded;
020
021  public AiStudioAgentBasicTextTool() {
022    super();
023  }
024
025  protected AiStudioAgentBasicTextTool(Builder builder) {
026    super(builder);
027    this.isCustomInstructionsIncluded = builder.isCustomInstructionsIncluded;
028    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
029  }
030
031  public Boolean getIsCustomInstructionsIncluded() {
032    return isCustomInstructionsIncluded;
033  }
034
035  @Override
036  public boolean equals(Object o) {
037    if (this == o) {
038      return true;
039    }
040    if (o == null || getClass() != o.getClass()) {
041      return false;
042    }
043    AiStudioAgentBasicTextTool casted = (AiStudioAgentBasicTextTool) o;
044    return Objects.equals(model, casted.model)
045        && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion)
046        && Objects.equals(llmEndpointParams, casted.llmEndpointParams)
047        && Objects.equals(systemMessage, casted.systemMessage)
048        && Objects.equals(promptTemplate, casted.promptTemplate)
049        && Objects.equals(isCustomInstructionsIncluded, casted.isCustomInstructionsIncluded);
050  }
051
052  @Override
053  public int hashCode() {
054    return Objects.hash(
055        model,
056        numTokensForCompletion,
057        llmEndpointParams,
058        systemMessage,
059        promptTemplate,
060        isCustomInstructionsIncluded);
061  }
062
063  @Override
064  public String toString() {
065    return "AiStudioAgentBasicTextTool{"
066        + "model='"
067        + model
068        + '\''
069        + ", "
070        + "numTokensForCompletion='"
071        + numTokensForCompletion
072        + '\''
073        + ", "
074        + "llmEndpointParams='"
075        + llmEndpointParams
076        + '\''
077        + ", "
078        + "systemMessage='"
079        + systemMessage
080        + '\''
081        + ", "
082        + "promptTemplate='"
083        + promptTemplate
084        + '\''
085        + ", "
086        + "isCustomInstructionsIncluded='"
087        + isCustomInstructionsIncluded
088        + '\''
089        + "}";
090  }
091
092  public static class Builder extends AiAgentBasicTextTool.Builder {
093
094    protected Boolean isCustomInstructionsIncluded;
095
096    public Builder isCustomInstructionsIncluded(Boolean isCustomInstructionsIncluded) {
097      this.isCustomInstructionsIncluded = isCustomInstructionsIncluded;
098      return this;
099    }
100
101    @Override
102    public Builder model(String model) {
103      this.model = model;
104      return this;
105    }
106
107    @Override
108    public Builder numTokensForCompletion(Long numTokensForCompletion) {
109      this.numTokensForCompletion = numTokensForCompletion;
110      return this;
111    }
112
113    @Override
114    public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) {
115      this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams);
116      return this;
117    }
118
119    @Override
120    public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) {
121      this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams);
122      return this;
123    }
124
125    @Override
126    public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) {
127      this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams);
128      return this;
129    }
130
131    @Override
132    public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) {
133      this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams);
134      return this;
135    }
136
137    @Override
138    public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) {
139      this.llmEndpointParams = llmEndpointParams;
140      return this;
141    }
142
143    @Override
144    public Builder systemMessage(String systemMessage) {
145      this.systemMessage = systemMessage;
146      return this;
147    }
148
149    @Override
150    public Builder promptTemplate(String promptTemplate) {
151      this.promptTemplate = promptTemplate;
152      return this;
153    }
154
155    public AiStudioAgentBasicTextTool build() {
156      return new AiStudioAgentBasicTextTool(this);
157    }
158  }
159}