Spring AI支持CogView,这是来自智谱AI的图像生成模型。
前提条件
您需要使用智谱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)来引用自定义环境变量:
# In application.ymlspring:ai:zhipuai:api-key: ${ZHIPUAI_API_KEY}
# In your environment or .env fileexport ZHIPUAI_API_KEY=<your-zhipuai-api-key>
您还可以在应用程序代码中以编程方式设置此配置:
// Retrieve API key from a secure source or environment variableString apiKey = System.getenv("ZHIPUAI_API_KEY");
添加仓库和物料清单
Spring AI 工件发布在 Maven Central 和 Spring Snapshot 仓库中。请参阅“工件仓库”部分,以将这些仓库添加到您的构建系统中。
为了辅助依赖管理,Spring AI 提供了一个物料清单 (BOM),以确保整个项目中使用的是一致版本的 Spring AI。请参阅“依赖管理”部分,将 Spring AI BOM 添加到您的构建系统中。
自动配置
Spring AI 为智谱AI聊天客户端提供了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.model.image”的顶层属性进行配置。
要启用,请将 spring.ai.model.image 设置为 stabilityai(默认情况下已启用)
要禁用,请将 spring.ai.model.image 设置为 none(或任何与 stabilityai 不匹配的值)
这一更改是为了允许配置多个模型。
前缀“spring.ai.zhipuai.image”是属性前缀,用于配置ZhiPuAI的ImageModel实现。
属性 | 描述 | 默认值 |
spring.ai.zhipuai.image.enabled(已删除,不再有效) | 启用智普AI镜像模型。 | true |
spring.ai.model.image | 启用智普AI镜像模型。 | zhipuai |
spring.ai.zhipuai.image.base-url | 可选,重写spring.ai.zhipuai.base-url以提供聊天特定的url | - |
spring.ai.zhipuai.image.api-key | 可选,覆盖spring.ai.zhipuai.api-key以提供聊天特定的api-key | - |
spring.ai.zhipuai.image.options.model | 用于图像生成的模型。 | cogview-3 |
spring.ai.zhipuai.image.options.user | 代表您的最终用户的唯一标识符,可以帮助ZhiPuAI监控和检测滥用行为。 | - |
连接属性
前缀“spring.ai.zhipuai”用作属性前缀,以便您连接到ZhiPuAI。
属性 | 描述 | 默认值 |
spring.ai.zhipuai.base-url | 连接到的URL | open.bigmodel.cn/api/paas |
spring.ai.zhipuai.api-key | API密钥 | - |
配置属性
重试属性
前缀“spring.ai.retry”用作属性前缀,可用于配置智谱AI图像客户端的重试机制。
| 属性 | 描述 | 默认值 |
|---|---|---|
spring.ai.retry.max-attempts | 重试尝试的最大次数。 | 10 |
spring.ai.retry.backoff.initial-interval | 指数回退策略的初始睡眠持续时间。 | 2 sec. |
spring.ai.retry.backoff.multiplier | 回退间隔倍数。 | 5 |
spring.ai.retry.backoff.max-interval | 最大回退持续时间。 | 3 min. |
spring.ai.retry.on-client-errors | 如果为false,则抛出NonTransientAiException,并且不尝试重试
| false |
spring.ai.retry.exclude-on-http-codes | 不应该触发重试的HTTP状态代码列表(例如,抛出NonTransientAiException)。 | empty |
spring.ai.retry.on-http-codes | 应该触发重试的HTTP状态代码列表(例如,抛出TransientAiException)。 | empty |
运行时选项
ZhiPuAiImageOptions.java提供了模型配置,如要使用的模型、质量、大小等。
在启动时,可以使用ZhiPuAiImageModel(ZhiPuAiImageApi zhiPuAiImageApi)构造函数和withDefaultOptions(ZhiPuAiImageOptions defaultOptions)方法来配置默认选项。或者,使用之前描述的spring.ai.zhipuai.image.options.*属性。
在运行时,您可以通过向ImagePrompt调用添加新的、特定于请求的选项来覆盖默认选项。例如,要覆盖智谱AI特定的选项,如质量和要创建的图像数量,请使用以下代码示例:
ImageResponse response = zhiPuAiImageModel.call(new ImagePrompt("A light cream colored mini golden doodle",ZhiPuAiImageOptions.builder().quality("hd").N(4).height(1024).width(1024).build()));
除了特定于模型的ZhiPuAiImageOptions之外,您还可以使用一个便携式的ImageOptions实例,该实例是通过ImageOptionsBuilder#builder()创建的。