news 2026/3/12 3:41:40

52_Spring AI 干货笔记之 ZhiPuAI 图像生成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
52_Spring AI 干货笔记之 ZhiPuAI 图像生成

一、ZhiPuAI 图像生成

Spring AI 支持智谱 AI 的 CogView 图像生成模型。

二、先决条件

您需要创建一个智谱 AI 的 API 来访问智谱 AI 的语言模型。

在智谱 AI 注册页面 创建账户,并在 API 密钥页面 生成令牌。

Spring AI 项目定义了一个名为 spring.ai.zhipuai.api-key 的配置属性,您应将其设置为从 API 密钥页面获得的 API 密钥值。

您可以在 application.properties 文件中设置此配置属性:

spring.ai.zhipuai.api-key=<your-zhipuai-api-key>

为了在处理像 API 密钥这样的敏感信息时增强安全性,您可以使用 Spring 表达式语言(SpEL)引用自定义环境变量:

# 在 application.yml 中spring:ai:zhipuai:api-key:${ZHIPUAI_API_KEY}
# 在您的环境变量或 .env 文件中exportZHIPUAI_API_KEY=<your-zhipuai-api-key>

您也可以在应用程序代码中以编程方式设置此配置:

// 从安全来源或环境变量中检索 API 密钥StringapiKey=System.getenv("ZHIPUAI_API_KEY");

2.1 添加仓库和 BOM

Spring AI 的构件发布在 Maven Central 和 Spring Snapshot 仓库中。请参阅 构件仓库 部分,将这些仓库添加到您的构建系统中。

为便于依赖管理,Spring AI 提供了 BOM(物料清单),以确保在整个项目中使用统一版本的 Spring AI。请参阅 依赖管理 部分,将 Spring AI BOM 添加到您的构建系统中。

三、自动配置

Spring AI 的自动配置和启动器模块的构件名称发生了重大变化。更多信息请参阅升级说明。

Spring AI 为 ZhiPuAI 聊天客户端提供了 Spring Boot 自动配置。要启用它,请在项目的 Maven pom.xml 文件中添加以下依赖:

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-zhipuai</artifactId></dependency>

或在您的 Gradle build.gradle 构建文件中添加:

dependencies{implementation'org.springframework.ai:spring-ai-starter-model-zhipuai'}

请参阅 依赖管理 部分,将 Spring AI BOM 添加到您的构建文件中。

3.1 图像生成属性

现在通过前缀为 spring.ai.model.image 的顶级属性来配置图像自动配置的启用和禁用。

  • 启用:spring.ai.model.image=zhipuai(默认已启用)

  • 禁用:spring.ai.model.image=none(或任何与 zhipuai 不匹配的值)

此项更改是为了支持配置多个模型。

前缀 spring.ai.zhipuai.image 是用于配置智谱 AI 的 ImageModel 实现的属性前缀。

3.2 连接属性

前缀 spring.ai.zhipuai 用作属性前缀,用于连接到智谱 AI。

3.3 配置属性

重试属性

前缀 spring.ai.retry 用作属性前缀,用于配置 ZhiPuAI 图像客户端的重试机制。

四、运行时选项

ZhiPuAiImageOptions.java 提供模型配置,例如要使用的模型、质量、尺寸等。

在启动时,可以使用 ZhiPuAiImageModel(ZhiPuAiImageApi zhiPuAiImageApi) 构造函数和 withDefaultOptions(ZhiPuAiImageOptions defaultOptions) 方法来配置默认选项。或者,使用前面描述的 spring.ai.zhipuai.image.options.* 属性。

在运行时,您可以通过向 ImagePrompt 调用添加新的、特定于请求的选项来覆盖默认选项。例如,要覆盖智谱 AI 特定的选项,如质量和要创建的图像数量,请使用以下代码示例:

ImageResponseresponse=zhiPuAiImageModel.call(newImagePrompt("A light cream colored mini golden doodle",ZhiPuAiImageOptions.builder().quality("hd").N(4).height(1024).width(1024).build()));

除了特定于模型的 ZhiPuAiImageOptions,您还可以使用可移植的 ImageOptions 实例,该实例通过 ImageOptionsBuilder#builder() 创建。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/12 5:35:08

ES数据库JVM调优技巧:实战经验分享

ES数据库JVM调优实战&#xff1a;从踩坑到稳如磐石的全过程 你有没有遇到过这样的场景&#xff1f; 凌晨两点&#xff0c;告警突然炸响——Kibana仪表板卡成幻灯片&#xff0c;查询延迟飙升至秒级&#xff0c;日志里满屏都是 [GC pause (G1 Evacuation Pause)] 。登录节点一…

作者头像 李华
网站建设 2026/3/12 13:53:07

手把手教你识别Multisim 14与Ultimate的元器件图标区别

手把手教你识别 Multisim 14 与 Ultimate 的元器件图标差异&#xff1a;从“看图找件”到高效设计 你有没有遇到过这种情况&#xff1f;在实验室用的是 Multisim 14 &#xff0c;回到宿舍打开自己电脑上的 Ultimate 版本 &#xff0c;明明想找同一个电阻&#xff0c;结果图…

作者头像 李华
网站建设 2026/3/12 15:13:10

36、状态反馈线性化控制全解析:从SISO到MIMO系统

状态反馈线性化控制全解析:从SISO到MIMO系统 在控制系统领域,状态反馈线性化是一种重要的方法,它能够将复杂的非线性系统转化为线性系统,从而便于进行分析和控制。本文将深入探讨状态反馈线性化的相关内容,包括单输入单输出(SISO)系统和多输入多输出(MIMO)系统的线性…

作者头像 李华
网站建设 2026/3/12 16:39:24

43、线性化设计示例:奇异摄动零动态与驱动动态

线性化设计示例:奇异摄动零动态与驱动动态 1. 引言 在控制理论中,非线性系统的控制设计是一个具有挑战性的问题。输入 - 输出线性化是一种重要的方法,可将非线性系统转化为线性系统进行处理。本文将探讨非线性系统在参数变化时零动态的摄动问题,以及如何应用输入 - 输出线…

作者头像 李华
网站建设 2026/3/9 21:09:29

44、几何非线性控制:从概念到实践

几何非线性控制:从概念到实践 1. 可控性概念概述 在非线性系统的研究中,可控性是一个核心概念。我们先从一类解析仿射控制系统入手,其形式为: [x = f(x)+\sum_{j=1}^{m}g_{j}(x)u_{j}] 这里,(x = (x_1, x_2, \cdots, x_n)^T) 是光滑流形 (M)(状态空间流形)的局部坐标…

作者头像 李华
网站建设 2026/3/12 3:01:00

46、非完整系统的通用转向方法解析

非完整系统的通用转向方法解析 在控制理论中,非完整系统的转向问题是一个重要的研究领域。本文将详细介绍几种非完整系统的转向方法,包括最优转向、分段常量输入转向以及含漂移的控制系统分析。 1. 非完整系统的最优转向 我们考虑将形如 $\dot{q} = g_1(q)u_1 + \cdots + …

作者头像 李华