Spring AI 中的 ChatModel
在 Spring AI 的开发体系中,模型(Model)是绝对的核心 —— 因为我们用 Spring AI 的核心目标,就是对接和使用大模型能力。 Spring AI 兼容多种类型的大模型,并且按照功能做了清晰分类,比如常用的 Chat Model(对话模型)、Embedding Model(嵌入模型),还有 Image Model(图像模型)、Audio Model(音频模型)等。
1. ChatModel
- ChatModel 是 Spring AI 给对话模型做的统一对接接口。它把 OpenAI、Azure OpenAI、Hugging Face 等不同厂商的对话模型都抽象成一套用法,开发者不用关心每个厂商的调用细节,用起来都一样。
- 不管你用的是 OpenAI 的 GPT-4、百炼对接的开源模型,还是本地部署的 Ollama,都能通过同一个 ChatModel 接口调用。
public interface ChatModel extends Model<Prompt, ChatResponse>, StreamingChatModel {
default String call(String message) {
Prompt prompt = new Prompt(newUserMessage(message));
Generation generation = call(prompt).getResult();
return (generation != null) ? generation.getOutput().getText() : "";
}
default String call(Message... messages) {
Prompt prompt = new Prompt(Arrays.asList(messages));
Generation generation = call(prompt).getResult();
return (generation != null) ? generation.getOutput().getText() : "";
}
@Override
ChatResponse call(Prompt prompt);
default ChatOptions {
ChatOptions.builder().build();
}
Flux<ChatResponse> {
();
}
}





