# Spring AI 最新实战系列(二)流式输出与ChatClient

使用前介绍

我们以 Alibaba 的百炼平台作为Spring-AI的模型讲解,以最新稳定版作为架构。

spring-ai 的最新版本 1.1.2 ;alibaba-spring-ai 的最新版本 1.1.0.0-RC1。

需要注意一点:最新版本的 Spring Boot 4.0.0 不能适配,需要降低版本到 3.5.8。

  • 流式输出 :使得输出更流程,快捷,提升用户体验

  • ChatClient :把各个大模型的ChatModel统一接口化,使得代码中不需要依赖底层的具体模型

    注意: 1)若项目中只有一个模型,则Spring-AI 为自动装配上这个模型;

    ​ 2)若项目中有两个以上模型,则要明确指明是装配哪个模型。

代码部分

  • 项目依赖与配置:(略,上一篇有介绍)

  • Java 代码:

    package com.yiyi.coding.spring.ai;
    
    import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatModel;
    import org.junit.jupiter.api.Test;
    import org.springframework.ai.chat.client.ChatClient;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    
    @SpringBootTest
    public class DashScopeTest {
        @Test
        public void testChatModel(@Autowired DashScopeChatModel dashScopeChatModel) {
            System.out.println(dashScopeChatModel.call("你是谁"));
        }
    
        /**
         * 流式打印,输出 Flux<String>
         */
        @Test
        public void testChatModelStream(@Autowired DashScopeChatModel dashScopeChatModel) {
           dashScopeChatModel.stream("你是谁").toStream().forEach(System.out::println);
        }
    
        @Test
        public void testChatClient(@Autowired ChatClient.Builder chatClientBuilder) {
            ChatClient chatClient = chatClientBuilder.build();
            chatClient.prompt("你是谁").stream().content().toStream().forEach(System.out::println);
        }
    
        /**
         * 装配具体的模型
         */
        @Test
        public void testChatClient2( @Autowired DashScopeChatModel dashScopeChatModel) {
            ChatClient chatClient = ChatClient.builder(dashScopeChatModel).build();
            chatClient.prompt("你是谁").stream().content().toStream().forEach(System.out::println);
        }
    }
    
  • 运行后输出的其中一段内容,采用的是流式输出:

    我是
    通义千
    问,
    由
    阿里云研发的超大规模
    语言模型。我可以生成
    各种类型的文本,如文章
    、故事、诗歌、故事
    等,并能够根据不同的
    场景和需求进行变换和
    扩展。此外,我还能够
    回答各种问题,提供帮助
    和解决方案。我
    被设计用来协助
    用户撰写故事、诗歌
    、公文,
    提供信息查询,
    编程等,能够
    支持多种语言,满足
    国际化的使用需求。很高兴
    为您服务!
    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值