SpringAI - Models(三)
非聊天模型
ImageModel
非聊天模型没有像聊天模型那样有
ChatClient
的使用,而是直接使用相应的Model
来进行交互。比如图像模型
ImageModel
。当然也对应有提示ImagePrompt
和选项参数ImageOptions
。提示词是通过
ImageMessage
来进行封装,整体思想与聊天模型基本一致。简单实用一下
OpenAiImageModel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public class ImageModelExample {
private final OpenAiImageModel imageModel;
public void example() {
ImageResponse imageResponse = imageModel.call(new ImagePrompt(
"一台蓝色的奥迪S5",
OpenAiImageOptions.builder()
.model("gpt-image-1")
.user("test")
.quality("auto")
.height(256)
.height(1024)
.build()));
log.info("\nImage model response -> \n{}", imageResponse);
}
}然后因为OpenAI没有充值,图像模型不能使用,所以就只返回了一个报错。
这里只是简单了解一下,不做多记录了。
EmbeddingModel
EmbeddingModel
是SpringAI提供的嵌入模型。嵌入模型可能在后续学习向量数据库的时候会使用到,将内容转为嵌入向量进行存储,然后进行语意查询。
下面是官方的一个结构图,大概看看。整体与其他模型基本一致的,
也不多做记录了,简单记录一个
OpenAiEmbeddingModel
调用案例。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15public class EmbeddingModelExample {
private final OpenAiEmbeddingModel embeddingModel;
public void example() {
EmbeddingResponse embeddingResponse = embeddingModel.call(
new EmbeddingRequest(List.of("AI应用开发者"),
OpenAiEmbeddingOptions.builder()
.model("text-embedding-ada-002")
.user("test-1")
.build()));
log.info("\nEmbedding model response -> \n{}", embeddingResponse);
}
}结果一样,没有余额,也是返回的报错。
总结
- 简单了解一下SpringAI提供的其他模型的使用。
- 各个模型整体思想,代码结构等基本都是一致的。
最后
- 简单了解一下SpringAI除了聊天模型,也提供其他模型的使用,只是相对来说没有那么丰富。
- 对于SpringAI模型的学习到这里结束,后面继续学习与聊天模型交互之间的聊天记忆。
- 所有案例的源码,都会提交在GitHub上。本次案例包:
com.spring.ai.example.models.three