35public record
AiChatRequest(String model, List<AiMessage> messages, Double temperature, Integer maxOutputTokens) {
38 Objects.requireNonNull(model,
"model");
39 if (model.isBlank()) {
40 throw new IllegalArgumentException(
"model must not be blank");
42 Objects.requireNonNull(messages,
"messages");
43 if (messages.isEmpty()) {
44 throw new IllegalArgumentException(
"messages must not be empty");
46 messages = List.copyOf(messages);
47 if (temperature !=
null && (temperature < 0.0d || temperature > 2.0d)) {
48 throw new IllegalArgumentException(
"temperature must be between 0.0 and 2.0");
50 if (maxOutputTokens !=
null && maxOutputTokens < 1) {
51 throw new IllegalArgumentException(
"maxOutputTokens must be greater than 0");
55 public static AiChatRequest of(
final String model,
final AiMessage... messages) {
56 return new AiChatRequest(model, Arrays.asList(messages),
null,
null);