Ollama 图像生成
注意
Ollama 图像生成功能仍处于实验阶段。Ollama API 与 LangChain4j 集成可能在未来版本中发生变化。
Maven 依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-ollama</artifactId>
<version>${latest version here}</version>
</dependency>
API
OllamaImageModel
OllamaImageModel 实现了 ImageModel,通过 Ollama 的标准 /api/generate 端点支持文本到图像生成。不支持图像编辑,也不支持从同一提示词生成多张图像。
这需要支持实验性图像生成能力的 Ollama 版本与模型。普通文本模型会返回文本而非图像,并会抛出 OllamaImageGenerationException。
用法
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);
参数
| Parameter | Description | Type |
|---|---|---|
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 输出、token 用量,以及 Ollama 流式进度字段(如 completed 与 total)。