Spring AI的Getting Started使用及相关依赖说明
一、依赖的Spring Boot版本
Spring AI supports Spring Boot 3.2.x and 3.3.x
二、Getting Started使用步骤
1. 添加里程碑和快照库
- Maven
- 如果需要使用里程碑和快照版本,需在
build
文件中添加对Spring里程碑和/或快照库的引用。例如:
- 如果需要使用里程碑和快照版本,需在
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
- Gradle
- 需添加以下库定义:
repositories {
mavenCentral()
maven { url 'https://repo.spring.io/milestone' }
maven { url 'https://repo.spring.io/snapshot' }
}
2. 依赖管理
- Maven
- 可通过在
pom.xml
文件中添加以下内容使用Spring AI的物料清单(BOM):
- 可通过在
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- Gradle
- 通过在Gradle构建脚本的
dependencies
部分添加platform
依赖处理方法来使用BOM,如下所示:
- 通过在Gradle构建脚本的
dependencies {
implementation platform("org.springframework.ai:spring-ai-bom:1.0.0-SNAPSHOT")
// Replace the following with the starter dependencies of specific modules you wish to use
implementation 'org.springframework.ai:spring-ai-openai'
}
三、所有组件添加依赖
1. Chat Model API
- 该API允许开发者将AI驱动的聊天完成功能集成到应用中,它利用预训练的语言模型(如GPT)生成类似人类的响应。
- API概述
- ChatModel接口
- 定义如下:
- ChatModel接口
public interface ChatModel extends Model<Prompt, ChatResponse> {
default String call(String message) {...}
@Override
ChatResponse call(Prompt prompt);
}
- StreamingChatModel接口
- 定义如下:
public interface StreamingChatModel extends StreamingModel<Prompt, ChatResponse> {
default Flux<String> stream(String message) {...}
@Override
Flux<ChatResponse> stream(Prompt prompt);
}
- Prompt类
- 是一个
ModelRequest
,封装了Message
对象列表和可选的模型请求选项。
- 是一个
- Message接口
- 封装了提示文本内容、元数据属性集合和消息类型分类。
- ChatOptions类
- 用于定义可传递给AI模型的一些可移植选项,是
ModelOptions
的子类,定义如下:
- 用于定义可传递给AI模型的一些可移植选项,是
public interface ChatOptions extends ModelOptions {
String getModel();
Float getFrequencyPenalty();
Integer getMaxTokens();
Float getPresencePenalty();
List<String> getStopSequences();
Float getTemperature();
Integer getTopK();
Float getTopP();
ChatOptions copy();
}
- 此外,每个特定模型的
ChatModel/StreamingChatModel
实现都可以有自己的选项可传递给AI模型。例如,OpenAI Chat Completion模型有自己的选项,如logitBias
,seed
和user
。