主题
Ollama 图像生成
WARNING
Ollama 图像生成尚处于实验阶段。Ollama API 与 LangChain4j 集成在未来版本中可能发生变化。
Maven 依赖
xml
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-ollama</artifactId>
<version>${latest version here}</version>
</dependency>API
OllamaImageModel
OllamaImageModel 实现了 ImageModel,并通过 Ollama 标准的 /api/generate 端点支持文本到图像的生成。不支持图像编辑以及由同一提示词生成多张图像。
这需要支持实验性图像生成能力的 Ollama 版本与模型。 普通文本模型会返回文本而非图像,并会以 OllamaImageGenerationException 失败。
用量
java
ImageModel imageModel = OllamaImageModel.builder()
.baseUrl("http://localhost:11434")
.modelName("x/z-image-turbo")
.width(1024)
.height(768)
.steps(20)
.seed(42)
.build();
Response<Image> response = imageModel.generate("a sunset over mountains");
Image image = response.content();
byte[] imageBytes = Base64.getDecoder().decode(image.base64Data());
Files.write(Path.of("ollama-image.png"), imageBytes);参数
| 参数 | 描述 | 类型 |
|---|---|---|
httpClientBuilder | 参见可定制 HTTP 客户端 | HttpClientBuilder |
baseUrl | Ollama 服务器的基础 URL。 | String |
modelName | 从 Ollama 服务器使用的图像生成模型。 | String |
width | 生成图像的宽度(像素)。使用 0 或不设置以采用 Ollama/模型默认值。设置时须介于 0 与 4096 之间。 | Integer |
height | 生成图像的高度(像素)。使用 0 或不设置以采用 Ollama/模型默认值。设置时须介于 0 与 4096 之间。 | Integer |
steps | 扩散步数。使用 0 或不设置以采用 Ollama/模型默认值。不得为负。 | Integer |
seed | 通过 Ollama options.seed 发送的随机种子。 | Integer |
timeout | API 调用允许的最长耗时。 | Duration |
customHeaders | 自定义 HTTP 头。 | Map<String, String> |
logRequests | 是否记录请求。 | Boolean |
logResponses | 是否记录响应。 | Boolean |
maxRetries | API 调用失败时的最大重试次数。 | Integer |
目前没有针对 OllamaImageModel 的 Spring Boot starter 配置。
生成的图像以 Base64 编码的 PNG 数据返回。URL 输出、词元用量,以及 Ollama 流式进度字段(如 completed 与 total)均不暴露。