com.github.tjake.jlama.net.openai.model.FunctionObject Maven / Gradle / Ivy
/*
* OpenAI API
* The OpenAI REST API. Please see https://platform.openai.com/docs/api-reference for more details.
*
* The version of the OpenAPI document: 2.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
package com.github.tjake.jlama.net.openai.model;
import java.util.Objects;
import java.util.Map;
import java.util.HashMap;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
import org.hibernate.validator.constraints.*;
import com.github.tjake.jlama.net.openai.JSON;
/**
* FunctionObject
*/
@JsonPropertyOrder({
FunctionObject.JSON_PROPERTY_DESCRIPTION,
FunctionObject.JSON_PROPERTY_NAME,
FunctionObject.JSON_PROPERTY_PARAMETERS
})
@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0")
public class FunctionObject {
public static final String JSON_PROPERTY_DESCRIPTION = "description";
private String description;
public static final String JSON_PROPERTY_NAME = "name";
private String name;
public static final String JSON_PROPERTY_PARAMETERS = "parameters";
private Map parameters;
public FunctionObject() {
}
public FunctionObject description(String description) {
this.description = description;
return this;
}
/**
* A description of what the function does, used by the model to choose when and how to call the function.
* @return description
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_DESCRIPTION)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public String getDescription() {
return description;
}
@JsonProperty(JSON_PROPERTY_DESCRIPTION)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public void setDescription(String description) {
this.description = description;
}
public FunctionObject name(String name) {
this.name = name;
return this;
}
/**
* The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.
* @return name
*/
@jakarta.annotation.Nonnull
@NotNull
@JsonProperty(JSON_PROPERTY_NAME)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
public String getName() {
return name;
}
@JsonProperty(JSON_PROPERTY_NAME)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
public void setName(String name) {
this.name = name;
}
public FunctionObject parameters(Map parameters) {
this.parameters = parameters;
return this;
}
public FunctionObject putParametersItem(String key, Object parametersItem) {
if (this.parameters == null) {
this.parameters = new HashMap<>();
}
this.parameters.put(key, parametersItem);
return this;
}
/**
* The parameters the functions accepts, described as a JSON Schema object. See the [guide](/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. Omitting `parameters` defines a function with an empty parameter list.
* @return parameters
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_PARAMETERS)
@JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
public Map getParameters() {
return parameters;
}
@JsonProperty(JSON_PROPERTY_PARAMETERS)
@JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
public void setParameters(Map parameters) {
this.parameters = parameters;
}
/**
* Return true if this FunctionObject object is equal to o.
*/
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
FunctionObject functionObject = (FunctionObject) o;
return Objects.equals(this.description, functionObject.description) &&
Objects.equals(this.name, functionObject.name) &&
Objects.equals(this.parameters, functionObject.parameters);
}
@Override
public int hashCode() {
return Objects.hash(description, name, parameters);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class FunctionObject {\n");
sb.append(" description: ").append(toIndentedString(description)).append("\n");
sb.append(" name: ").append(toIndentedString(name)).append("\n");
sb.append(" parameters: ").append(toIndentedString(parameters)).append("\n");
sb.append("}");
return sb.toString();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}