Ollama4j
A Java library (wrapper/binding) for Ollama server.
Loading...
Searching...
No Matches
OllamaGenerateRequest.java
Go to the documentation of this file.
1/*
2 * Ollama4j - Java library for interacting with Ollama server.
3 * Copyright (c) 2025 Amith Koujalgi and contributors.
4 *
5 * Licensed under the MIT License (the "License");
6 * you may not use this file except in compliance with the License.
7 *
8*/
9package io.github.ollama4j.models.generate;
10
11import io.github.ollama4j.models.request.OllamaCommonRequest;
12import io.github.ollama4j.models.request.ThinkMode;
13import io.github.ollama4j.models.request.ThinkModeSerializer;
14import io.github.ollama4j.tools.Tools;
15import io.github.ollama4j.utils.OllamaRequestBody;
16import io.github.ollama4j.utils.Options;
17import java.io.File;
18import java.io.IOException;
19import java.nio.file.Files;
20import java.util.ArrayList;
21import java.util.Base64;
22import java.util.List;
23import java.util.Map;
24import lombok.Getter;
25import lombok.Setter;
26
27@Getter
28@Setter
30
31 private String prompt;
32 private String suffix;
33 private List<String> images;
34 private String system;
35 private String context;
36 private boolean raw;
37
38 @com.fasterxml.jackson.databind.annotation.JsonSerialize(using = ThinkModeSerializer.class)
39 private ThinkMode think;
40
41 private boolean useTools;
42 private List<Tools.Tool> tools;
43
45
46 public OllamaGenerateRequest(String model, String prompt) {
47 this.model = model;
48 this.prompt = prompt;
49 }
50
51 public OllamaGenerateRequest(String model, String prompt, List<String> images) {
52 this.model = model;
53 this.prompt = prompt;
54 this.images = images;
55 }
56
57 // --- Builder-style methods ---
58
60 return new OllamaGenerateRequest();
61 }
62
63 public OllamaGenerateRequest withPrompt(String prompt) {
64 this.setPrompt(prompt);
65 return this;
66 }
67
68 public OllamaGenerateRequest withSuffix(String suffix) {
69 this.setSuffix(suffix);
70 return this;
71 }
72
73 public OllamaGenerateRequest withTools(List<Tools.Tool> tools) {
74 this.setTools(tools);
75 return this;
76 }
77
79 this.setModel(model);
80 return this;
81 }
82
84 this.setFormat("json");
85 return this;
86 }
87
89 this.setOptions(options.getOptionsMap());
90 return this;
91 }
92
94 this.setTemplate(template);
95 return this;
96 }
97
98 public OllamaGenerateRequest withStreaming(boolean streaming) {
99 this.setStream(streaming);
100 return this;
101 }
102
104 this.setKeepAlive(keepAlive);
105 return this;
106 }
107
108 public OllamaGenerateRequest withRaw(boolean raw) {
109 this.setRaw(raw);
110 return this;
111 }
112
114 this.setThink(think);
115 return this;
116 }
117
118 public OllamaGenerateRequest withUseTools(boolean useTools) {
119 this.setUseTools(useTools);
120 return this;
121 }
122
123 public OllamaGenerateRequest withFormat(Map<String, Object> format) {
124 this.setFormat(format);
125 return this;
126 }
127
128 public OllamaGenerateRequest withSystem(String system) {
129 this.setSystem(system);
130 return this;
131 }
132
133 public OllamaGenerateRequest withContext(String context) {
134 this.setContext(context);
135 return this;
136 }
137
138 public OllamaGenerateRequest withImagesBase64(List<String> images) {
139 this.setImages(images);
140 return this;
141 }
142
143 public OllamaGenerateRequest withImages(List<File> imageFiles) throws IOException {
144 List<String> images = new ArrayList<>();
145 for (File imageFile : imageFiles) {
146 images.add(Base64.getEncoder().encodeToString(Files.readAllBytes(imageFile.toPath())));
147 }
148 this.setImages(images);
149 return this;
150 }
151
153 return this;
154 }
155
156 @Override
157 public boolean equals(Object o) {
158 if (!(o instanceof OllamaGenerateRequest)) {
159 return false;
160 }
161 return this.toString().equals(o.toString());
162 }
163}
OllamaGenerateRequest withImages(List< File > imageFiles)
OllamaGenerateRequest withTools(List< Tools.Tool > tools)
OllamaGenerateRequest(String model, String prompt, List< String > images)
OllamaGenerateRequest withFormat(Map< String, Object > format)
OllamaGenerateRequest withImagesBase64(List< String > images)