开启 AI 开发新时代(三):Spring AI核心类

代码库地址:https://github.com/Why1214/spring-demo.git

分支:spring-ai

前面我们已经对AI概念做了一个详细的介绍,同时也通过简单的demo实现了Spring AI框架的入门练习。今天开始,我们将深入Spring AI,对它的详细框架进行一个系统的介绍。

我会通过Spring AI的核心类,结合一些实用demo,

帮助大家快速掌握如何在项目中使用 Spring AI,让大模型真正服务于我们的日常开发。 🚀

Message(org.springframework.ai.chat.messages.Message)

图片

Message包含了真正要发送给大模型的消息,一共有四类消息(MessageType):用户消息、系统消息、助手消息(模型之前的回复)、工具:

UserMessage userMessage = new UserMessage(message);
SystemMessage systemMessage = new SystemMessage(sysMsg);

Prompt(org.springframework.ai.chat.prompt.Prompt)

图片

  • Prompt代表一次完整的输入,不仅仅是简单的字符串;

  • 内部可以包含多个Message对象;

  • 还可以携带一些提示选项(ChatOptions),如温度等。

Prompt prompt = new Prompt(userMessage, systemMessage);

ChatModel(org.springframework.ai.chat.model.ChatModel)

图片

在Spring AI中,所有对话聊天类的大模型都被抽象成了统一的接口,即ChatModel;

  • ChatModel有两个主要的方法,call和stream,分别代表普通交互和流式交互;

  • ChatModel有一个实现类,OpenAiChatModel,真正注入到Spring容器中的对象,负责和大模型进行交互

@RestController
public class TestController {    
    @Resource    
    private OpenAiChatModel chatModel;    
    
    @GetMapping(value = "/deepseek/chat/call2")    
    public String call2(@RequestParam(value = "message") String message, @RequestParam(value = "sysMsg") String sysMsg) {      
        UserMessage userMessage = new UserMessage(message);      
        SystemMessage systemMessage = new SystemMessage(sysMsg);        
        Prompt prompt = new Prompt(userMessage, systemMessage);       
        ChatResponse chatResponse = this.chatModel.call(prompt);        
        return Optional.ofNullable(chatResponse)                
                       .map(ChatResponse::getResult)  
                       .map(Generation::getOutput)        
                       .map(AssistantMessage::getText)     
                       .orElse("");    
    }
}

总结

在这篇文章里,我们依次认识了 Spring AI 的三个核心类:Message、Prompt、ChatModel,结合这三个类,可以快速写出一个完整的demo与模型实现对话交互。

写字不易,分享更难。如果你喜欢这样的技术分享,欢迎扫码关注我的公众号,让我们一起边写代码,边聊 AI。👨‍💻☕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值