目前AI的浪潮已经居高不下了,因此我最近也开始了有关AI的项目,再开始AI的项目之前,我们也要先熟知AI的开发文档和知识,才能更好的开发项目,因此特地从官网查看了有关SpringAI的使用。
Spring AI 官方说明文档:https://docs.spring.io/spring-ai/reference/api/
参数前缀是spring.ai.openai,让您连接到 OpenAI。
参数 | 描述 | 默认值 |
---|---|---|
spring.ai.openai.base-url | 连接到的 URL | api.openai.com |
spring.ai.openai.api-key | The API Key | - |
属性前缀为 spring.ai.openai.chat,可用于配置 OpenAI 的聊天客户端属性。
属性 | 描述 | 默认值 |
---|---|---|
spring.ai.openai.chat.enabled | 是否启用 OpenAI 聊天客户端。 | TRUE |
spring.ai.openai.chat.base-url | 可选,如配置,将覆盖基础 URL,专门针对聊天场景。 | - |
spring.ai.openai.chat.api-key | 可选,配置时覆盖聊天场景下的 API 密钥。 | - |
spring.ai.openai.chat.options.model | 使用的 OpenAI 聊天模型。 | gpt-3.5-turbo |
spring.ai.openai.chat.options.temperature | 模型温度,控制输出的创意程度。 | 0.8 |
spring.ai.openai.chat.options.frequencyPenalty | 影响重复行可能性的惩罚值。 | 0.0f |
spring.ai.openai.chat.options.logitBias | 调整特定令牌出现概率。 | - |
spring.ai.openai.chat.options.maxTokens | 返回的最大令牌数量。 | - |
spring.ai.openai.chat.options.n | 每个输入生成的回复选项数量。 | 1 |
spring.ai.openai.chat.options.presencePenalty | 鼓励新话题的惩罚值。 | - |
spring.ai.openai.chat.options.responseFormat | 输出格式配置,如 JSON。 | - |
spring.ai.openai.chat.options.seed | 控制采样确定性的种子值(测试阶段)。 | - |
spring.ai.openai.chat.options.stop | 停止生成令牌的序列标记。 | - |
spring.ai.openai.chat.options.topP | 核采样中考虑的概率质量比例。 | - |
spring.ai.openai.chat.options.tools | 可供模型调用的工具列表,如函数。 | - |
spring.ai.openai.chat.options.toolChoice | 控制模型如何选择调用函数。 | - |
spring.ai.openai.chat.options.user | 终端用户的唯一标识,用于监控和防滥用。 | - |
spring.ai.openai.chat.options.functions | 函数列表,用于在请求中调用。函数需预先注册。 | - |
属性前缀为 spring.ai.retry,用于配置 OpenAI 聊天客户端的重试机制:
属性 | 描述 | 默认值 |
---|---|---|
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,并且对4xx客户端错误代码不尝试重试 | FALSE |
spring.ai.retry.exclude-on-http-codes | 不触发重试的 HTTP 状态代码列表(例如,抛出 NonTransientAiException)。 | empty |
Spring AI 为 OpenAI Image Generation Client 提供了 Spring Boot 自动配置。要启用它,请将以下依赖项添加到您项目的 Maven pom.xml 文件中:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
Gradle build.gradle 构建文件中。
dependencies {
implementation 'org.springframework.ai:spring-ai-openai-spring-boot-starter'
}
配置前缀是 spring.ai.openai.image,可让您配置基于 OpenAI 的 ImageClient 实现:
参数 | 描述 | 默认值 |
---|---|---|
spring.ai.openai.image.enabled | 启用 OpenAI 图像客户端。 | true |
spring.ai.openai.image.base-url | 可选,覆盖 spring.ai.openai.base-url 以提供特定于图片生成的 URL。 | - |
spring.ai.openai.image.api-key | 可选,覆盖 spring.ai.openai.api-key 以提供特定于图片生成的 API 密钥。 | - |
spring.ai.openai.image.options.n | 要生成的图像数量。必须在 1 和 10 之间。对于 dall-e-3,仅支持 n=1。 | - |
spring.ai.openai.image.options.model | 用于图像生成的模型。 | OpenAiImageApi.DEFAULT_IMAGE_MODEL |
spring.ai.openai.image.options.quality | 生成的图像的质量。HD 创建具有更细节和更一致性的图像。此参数仅适用于 dall-e-3。 | - |
spring.ai.openai.image.options.response_format | 生成的图像返回的格式。必须是 URL 或 b64_json 之一。 | - |
spring.ai.openai.image.options.size | 生成的图像的尺寸 dall-e-2: 256x256、512x512、1024x1024;dall-e-3: 1024x1024、1792x1024、1024x1792。 | - |
spring.ai.openai.image.options.size_width | 生成的图像的宽度。dall-e-2: 256、512、1024。 | - |
spring.ai.openai.image.options.size_height | 生成图像的高度。dall-e-2: 256、512、1024。 | - |
spring.ai.openai.image.options.style | 生成图像的风格。生动或自然。仅支持 dall-e-3。 | - |
spring.ai.openai.image.options.user | 终端用户唯一标识符,帮助监控和检测滥用。 | - |
参数前缀是spring.ai.openai,让您连接到 OpenAI。
参数 | 描述 | 默认值 |
---|---|---|
spring.ai.openai.base-url | 连接到的 URL | api.openai.com |
spring.ai.openai.api-key | The API Key | - |
参数前缀 spring.ai.retry,让您为 OpenAI Image 客户端配置重试机制。
已经为您重新整理了表格,使其更加直观:
参数 | 描述 | 默认值 |
---|---|---|
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 | 控制是否对 4xx 客户端错误进行重试。如果为false,遇到此类错误时不重试并抛出异常。 | false |
spring.ai.retry.exclude-on-http-codes | 不触发重试的特定 HTTP 状态码列表。 | empty |
OpenAiImageOptions 提供了模型配置,例如要使用的模型、质量、大小等,在运行时,您可以通过向 ImagePrompt 添加新的、特定于请求的选项参数来覆盖默认选项参数。例如,要覆盖 OpenAI 的特定选项参数,如质量和要创建的图像数量,请使用以下代码示例:
ImageResponse response = openaiImageClient.call(
new ImagePrompt("A light cream colored mini golden doodle",
OpenAiImageOptions.builder()
.withQuality("hd") // 设置品质
.withN(4) // 要生成的图像数量
.withHeight(1024)
.withWidth(1024).build())
);
除了特定于模型的 OpenAiImageOptions ,您还可以使用一个可移植的 ImageOptions 实例,使用 ImageOptionsBuilder#builder() 创建。