此版本仍在开发中,尚未被视为稳定版本。最新的快照版本请使用 Spring AI 1.0.0-SNAPSHOT! |
升级 Notes
升级到 1.0.0.M2
-
Chroma矢量存储的配置前缀已从 更改为 ,以便与其他矢量存储的命名约定保持一致。
spring.ai.vectorstore.chroma.store
spring.ai.vectorstore.chroma
-
能够初始化模式的矢量存储上的属性默认值现在设置为 。 这意味着,如果需要在应用程序启动时创建架构,则应用程序现在需要在支持的向量存储上显式选择加入架构初始化。 并非所有 vector store 都支持此属性。 有关更多详细信息,请参阅相应的 vector store 文档。 以下是当前不支持该属性的 vector 存储。
initialize-schema
false
initialize-schema
-
汉娜
-
Pinecone
-
Weaviate
-
-
在 Bedrock Jurassic 2 中,聊天选项 、 、 和 已重命名为 、 和 。 此外,聊天选项的类型已从 更改为 。
countPenalty
frequencyPenalty
presencePenalty
countPenaltyOptions
frequencyPenaltyOptions
presencePenaltyOptions
stopSequences
String[]
List<String>
-
在 Azure OpenAI 中,聊天选项的类型已从 更改为 ,与所有其他实现一致。
frequencyPenalty
presencePenalty
Double
Float
升级到 1.0.0.M1
在发布 1.0.0 M1 的过程中,我们进行了几项重大更改。抱歉,这是最好的!
ChatClient 更改
进行了一项重大更改,将“旧”功能移至 .“new”现在采用 .这样做确实支持 Fluent API,用于以类似于 Spring 生态系统中其他客户端类的样式创建和执行提示,例如 、 和 。有关 Fluent API 的更多信息,请参阅 [JavaDoc](docs.spring.io/spring-ai/docs/api),适当的参考文档即将发布。ChatClient
ChatModel
ChatClient
ChatModel
RestClient
WebClient
JdbcClient
我们将 'old' 重命名为 并重命名了实现类,例如被重命名为 .该实现表示在 Spring AI API 和底层 AI 模型 API 之间进行转换的可移植性层。ModelClient
Model
ImageClient
ImageModel
Model
适应变化
该类现在位于包中ChatClient org.springframework.ai.chat.client
|
方法 1
现在,您将获得一个实例,而不是 Autoconfigured 实例。重命名后的方法签名保持不变。
要适应您的代码,请重构您的代码以将类型的使用更改为 以下是更改前的现有代码的示例ChatClient
ChatModel
call
ChatClient
ChatModel
@RestController
public class OldSimpleAiController {
private final ChatClient chatClient;
public OldSimpleAiController(ChatClient chatClient) {
this.chatClient = chatClient;
}
@GetMapping("/ai/simple")
Map<String, String> completion(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of("generation", this.chatClient.call(message));
}
}
现在,在更改之后,这将是
@RestController
public class SimpleAiController {
private final ChatModel chatModel;
public SimpleAiController(ChatModel chatModel) {
this.chatModel = chatModel;
}
@GetMapping("/ai/simple")
Map<String, String> completion(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of("generation", this.chatModel.call(message));
}
}
重命名也适用于类
* → * → * → * → * 和其他类的类似内容StreamingChatClient StreamingChatModel EmbeddingClient EmbeddingModel ImageClient ImageModel SpeechClient SpeechModel <XYZ>Client |
方法 2
在此方法中,您将使用“new”上提供的新 Fluent APIChatClient
以下是更改前的现有代码示例
@RestController
class OldSimpleAiController {
ChatClient chatClient;
OldSimpleAiController(ChatClient chatClient) {
this.chatClient = chatClient;
}
@GetMapping("/ai/simple")
Map<String, String> completion(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of(
"generation",
this.chatClient.call(message)
);
}
}
现在,在更改之后,这将是
@RestController
class SimpleAiController {
private final ChatClient chatClient;
SimpleAiController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/ai/simple")
Map<String, String> completion(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of(
"generation",
this.chatClient.prompt().user(message).call().content()
);
}
}
该实例通过自动配置提供给您。ChatModel |
方法 3
GitHub 存储库中有一个名为 [v1.0.0-SNAPSHOT-before-chatclient-changes](github.com/spring-projects/spring-ai/tree/v1.0.0-SNAPSHOT-before-chatclient-changes) 的标记,您可以签出该标记并执行本地构建,以避免在准备好迁移代码库之前更新任何代码。
git checkout tags/v1.0.0-SNAPSHOT-before-chatclient-changes
./mvnw clean install -DskipTests
构件名称更改
重命名了 POM 构件名称: - spring-ai-qdrant → spring-ai-qdrant-store - spring-ai-cassandra → spring-ai-cassandra-store - spring-ai-pinecone → spring-ai-pinecone-store - spring-ai-redis → spring-ai-redis-store - spring-ai-qdrant → spring-ai-qdrant-store - spring-ai-gemfire → spring-ai-gemfire-store - spring-ai-azure-vector-store-spring-boot-starter → spring-ai-azure-store-spring-boot-starter - spring-ai-redis-spring-boot-starter → spring-ai-redis-store-spring-boot-starter
升级到 0.8.1
Former 已重命名为 和 已重命名为 。spring-ai-vertex-ai
spring-ai-vertex-ai-palm2
spring-ai-vertex-ai-spring-boot-starter
spring-ai-vertex-ai-palm2-spring-boot-starter
因此,您需要将依赖项从
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-vertex-ai</artifactId>
</dependency>
自
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-vertex-ai-palm2</artifactId>
</dependency>
并且 Palm2 型号的相关 Boot starter 已从
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-vertex-ai-spring-boot-starter</artifactId>
</dependency>
自
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-vertex-ai-palm2-spring-boot-starter</artifactId>
</dependency>
-
重命名的类 (01.03.2024)
-
VertexAiApi → VertexAiPalm2Api
-
VertexAiClientChat → VertexAiPalm2ChatClient
-
VertexAiEmbeddingClient → VertexAiPalm2EmbeddingClient
-
VertexAiChatOptions → VertexAiPalm2ChatOptions
-
升级到 0.8.0
2024 年 1 月 24 日更新
-
将 and 和 包移动到
prompt
messages
metadata
org.sf.ai.chat
-
新功能是文本到图像客户端。类是 和 。有关用法,请参阅集成测试,文档即将推出。
OpenAiImageModel
StabilityAiImageModel
-
一个包含接口和基类的新包,以支持为任何输入/输出数据类型组合创建 AI 模型客户端。目前,chat 和 image model 包实现了这一点。我们很快就会将 embedding 包更新到这个新模型。
model
-
新的 “portable options” 设计模式。我们希望在基于聊天的不同 AI 模型之间提供尽可能多的可移植性。有一组通用的生成选项,然后是特定于模型提供程序的选项。使用了一种 “duck typing” 方法。 在 model 包中是一个 marker 接口,指示此类的实现将为模型提供选项。请参阅 ,一个子接口,用于定义所有 text→image 实现中的可移植选项。然后,提供特定于每个模型提供程序的选项。所有选项类都是通过 Fluent API 构建器创建的,所有选项类都可以传递到可移植 API 中。这些选项数据类型在 implementations的 autoconfiguration/configuration properties 中使用。
ModelCall
ModelOptions
ImageOptions
ImageModel
StabilityAiImageOptions
OpenAiImageOptions
ImageModel
ImageModel
2024 年 1 月 13 日更新
以下 OpenAi 自动配置聊天属性已更改
-
从 到 。
spring.ai.openai.model
spring.ai.openai.chat.options.model
-
从 到 。
spring.ai.openai.temperature
spring.ai.openai.chat.options.temperature
查找有关 OpenAi 属性的更新文档:docs.spring.io/spring-ai/reference/api/chat/openai-chat.html
2023 年 12 月 27 日更新
将 SimplePersistentVectorStore 和 InMemoryVectorStore 合并到 SimpleVectorStore 中 * 将 InMemoryVectorStore 替换为 SimpleVectorStore
2023 年 12 月 20 日更新
重构 Ollama 客户端和相关类和包名称
-
将org.springframework.ai.ollama.client.OllamaClient替换为org.springframework.ai.ollama.OllamaModelCall。
-
OllamaChatClient 方法签名已更改。
-
将 org.springframework.ai.autoconfigure.ollama.OllamaProperties 重命名为 org.springframework.ai.autoconfigure.ollama.OllamaChatProperties,并将后缀更改为: 。一些属性也发生了变化。
spring.ai.ollama.chat
2023 年 12 月 19 日更新
重命名 AiClient 和相关类和包名
-
将 AiClient 重命名为 ChatClient
-
将 AiResponse 重命名为 ChatResponse
-
将 AiStreamClient 重命名为 StreamingChatClient
-
将包 org.sf.ai.client 重命名为 org.sf.ai.chat
重命名 的工件 ID
-
transformers-embedding
自spring-ai-transformers
将 Maven 模块从顶级目录和子目录移动到单个目录下。embedding-clients
models
12月 1, 2023
我们正在转换项目的组 ID:
-
出发地:
org.springframework.experimental.ai
-
收件人:
org.springframework.ai
构件仍将托管在快照存储库中,如下所示。
main 分支将移至版本 .
它会不稳定一两周。
如果您不想处于最前沿,请使用 0.7.1-SNAPSHOT。0.8.0-SNAPSHOT
您可以像以前一样访问构件,并且仍然可以访问 0.7.1-SNAPSHOT 文档。0.7.1-SNAPSHOT
0.7.1-SNAPSHOT 依赖项
-
Azure OpenAI
<dependency> <groupId>org.springframework.experimental.ai</groupId> <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId> <version>0.7.1-SNAPSHOT</version> </dependency>
-
开放人工智能
<dependency> <groupId>org.springframework.experimental.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> <version>0.7.1-SNAPSHOT</version> </dependency>
升级到 1.0.0.M4
-
删除 PaLM API 支持
作为弃用 PaLM API 的公告的后续行动,已删除 PaLM API 支持。