五分钟上手Spring AI Alibaba,轻松打造智能聊天应用

news2024/9/23 15:25:10

文章目录

  • 快速上手
    • 快速体验示例
    • 示例开发指南
    • 总结

快速上手


Spring AI Alibaba 已经完全适配了阿里云通用模型,接下来,我们将学习如何使用 spring ai alibaba 开发一个基于通用模型服务的智能聊天应用。

快速体验示例

  1. 下载项目 运行以下命令下载源码,进入 helloworld 示例目录:

    终端窗口

    git clone --depth=1 https://github.com/alibaba/spring-ai-alibaba.git
    
    cd spring-ai-alibaba/spring-ai-alibaba-examples/helloworld-example
    
  2. 运行项目 首先,需要获取一个合法的 API-KEY 并设置 AI_DASHSCOPE_API_KEY 环境变量,可跳转 阿里云百炼平台 了解如何获取 API-KEY。

    image-20240923092250270

    设置永久性环境变量:

    image-20240923092546504

    验证是否成功:

    echo %DASHSCOPE_API_KEY%
    

    image-20240923092618565

    终端窗口

    $env:AI_DASHSCOPE_API_KEY = "DASHSCOPE_API_KEY"
    

    启动示例应用:

    image-20240923102154812

    访问 http://localhost:8080/ai/chat?input=你好,向通用模型提问并得到回答。

    image-20240923110329694

示例开发指南

以上示例本质上就是一个普通的 Spring Boot 应用,我们来通过源码解析看一下具体的开发流程。

  1. 添加依赖

    首先,需要在项目中添加 spring-ai-alibaba-starter 依赖,它将通过 Spring Boot 自动装配机制初始化与阿里云通用大模型通信的 ChatClientChatModel 相关实例。

    <dependency>
    
      <groupId>com.alibaba.cloud.ai</groupId>
    
      <artifactId>spring-ai-alibaba-starter</artifactId>
    
      <version>1.0.0-m2</version>
    
    </dependency>
    
  2. 注入 ChatClient

    接下来,在普通 Controller Bean 中注入 ChatClient 实例,这样你的 Bean 就具备与 AI 大模型智能对话的能力了。

    @RestController
    public class ChatController {
        private final ChatClient chatClient;
    
        public ChatController(ChatClient.Builder builder) {
            this.chatClient = builder.build();
        }
    
        @GetMapping("/chat")
        public String chat(String input) {
            return this.chatClient.prompt()
                .user(input)
                .call()
                .content();
        }
    }
    

    以上示例中,ChatClient 调用大模型使用的是默认参数,Spring AI Alibaba 还支持通过 DashScopeChatOptions 调整与模型对话时的参数,DashScopeChatOptions 支持两种不同维度的配置方式:

    1. 全局默认值,即 ChatClient 实例初始化参数

      可以在 application.yaml 文件中指定 spring.ai.dashscope.chat.options.* 或调用构造函数 ChatClient.Builder.defaultOptions(options)DashScopeChatModel(api, options) 完成配置初始化。

    2. 每次 Prompt 调用前动态指定

      ChatResponse response = chatModel.call(
      
        new Prompt(
      
          "Generate the names of 5 famous pirates.",
      
          DashScopeChatOptions.builder()
      
            .withModel("qwen-plus")
      
            .withTemperature(0.4)
      
          .build()
      
        ));
      

    关于 DashScopeChatOptions 配置项的详细说明,请查看参考手册。

总结

spring-ai-alibaba 为 Java 开发者提供了一套开箱即用的开发 AI 应用的工具,帮助开发者快速构建智能应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2157862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【产品更新】中汇保函-电子保函管理平台

中汇保函 新增 1.手机扫描保函验真二维码直接跳转小程序模块&#xff0c;验真快人一步。 2.新增客户服务服务&#xff0c;可直接联系微信客服。 优化 1.提交申请、登录程序响应速度。 更新内容说明 1.手机扫描保函验真二维码直接跳转小程序模块&#xff0c;验真快人一步。 2.…

从零开始之AI面试小程序

从零开始之AI面试小程序 文章目录 从零开始之AI面试小程序前言一、工具列表二、部署流程1. VMWare安装2. Centos安装3. Centos环境配置3.1. 更改子网IP3.2. 配置静态IP地址 4. Docker和Docker Compose安装5. Docker镜像加速源配置6. 部署中间件6.1. MySQL部署6.2. Redis部署 7.…

华为OD机试 - 出租车计费(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

飞睿智能实时雷达活体探测传感器模块,智能家居静止检测实时感知人员有无

随着科技的飞速发展&#xff0c;我们的生活正在经历着未有的创新。在这个创新的浪潮中&#xff0c;实时雷达活体探测传感器模块的技术正逐渐崭露头角&#xff0c;以其独特的优势为我们的生活带来安全与便捷。今天&#xff0c;我们就来详细探讨一下这项技术&#xff0c;看看它是…

帮13岁小孩哥2分钟完成开发,这位AI程序员究竟是何方神圣?

通义灵码再升级&#xff0c;真AI程序员来了 随着通义系列基础模型能力的全面提升&#xff0c;各个具体领域的应用模型也随之飞升。这次在云栖大会上迎来重磅升级的&#xff0c;就包括用于代码生成的通义灵码。 一年前的通义灵码还只能完成基础的辅助编程任务&#xff0c;很难…

基于SpringBoot和Vue框架的医保管理系统的设计与实现

文未可获取一份本项目的java源码和数据库参考。 1.研究的主要内容与方法 &#xff08;1&#xff09;主要内容 医保管理系统采用B/S模式进行开发&#xff0c;采用Springboot框架、VUE技术、Idea为环境、MySQL为数据库开发。主要功能有&#xff1a;个人资料管理、投保用户管理、…

上海我店平台 8月新增注册用户89w 两年破百亿销售额!

近年来&#xff0c;网络空间内涌现了一个备受瞩目的新平台——“上海我店”&#xff0c;其公布的业绩数据显示&#xff0c;短短三年内&#xff0c;该平台交易流水已突破百亿大关&#xff0c;上月更是迎来了近百万的新增注册用户&#xff0c;这一消息迅速吸引了众多商家的目光。…

【深度好文】你必须要知道-大模型的上下文窗口(Context Window )

Context Window 上下文窗口&#xff1a;捕捉信息的范围 上下文窗口指的是 AI 模型在生成回答时考虑的 Token 数量。它决定了模型能够捕捉信息的范围。上下文窗口越大&#xff0c;模型能够考虑的信息就越多&#xff0c;生成的回答也就越相关和连贯。 在语言模型中&#xff0c;上…

SysML图例-手电筒

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>>

第二证券:股价为什么出现大跌?股价大跌时怎么办?

股票是预期收益率较大的出资之一&#xff0c;但同时股票商场的动摇也会是比较大的&#xff0c;股价大涨大跌都是有或许出现的。股价大涨会让出资者获利更多&#xff0c;而大跌也会加大出资者的损失。下面为我们分析股价为什么会大跌&#xff0c;并介绍股价大跌出资者应该如何应…

【测试】——Selenium API (万字详解)

&#x1f4d6; 前言&#xff1a;本文详细介绍了如何利用Selenium进行Web自动化测试&#xff0c;包括定位元素&#xff08;如cssSelector和xpath&#xff09;、常用操作函数&#xff08;如点击、输入等&#xff09;、窗口管理、键盘鼠标事件和浏览器导航&#xff0c;以及处理弹窗…

linux 的 sed 命令的 使用学习

&#xff08;1&#xff09; sed 概述&#xff1a; &#xff08;2&#xff09; 首先谢谢 b 站这位老师&#xff0c;这位专家的完美讲解 讲解继续&#xff1a; &#xff08;3&#xff09; 关于 sed 里的模式&#xff1a; &#xff08;4&#xff09; sed 支持的常用的对文本编辑的…

LIN总线CAPL函数—— 设置报头同步间隔场长度(linSetBreakLength)

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

爬虫 ----hook

目录 定义&#xff1a; 了解什么是hook? 举例 hook XHR请求 XMLHttpRequest 案例地址&#xff1a; Interceptors-拦截器 HOOK cookie操作 cookie 示范 常见的hook代码总结 1.Hook Cookie 2.Hook Header 3.Hook URL 4.Hook JSON.stringify 5.Hook JSON.parse 6.Ho…

5G Multicast/Broadcast Services(MBS) (四)

这篇是有关MBS RRC相关的一些基本内容,内容不多,但是感觉很关键,主要包括SI,MBS网络侧相关的内容,L2 协议架构,cell reselection prioritity以及MBS接收的一些内容,希望有帮助。 SI 在MBS场景中,SI和常规5G一样分为Minimum SI和Other SI。Minimum SI是MIB和SIB1,Min…

智能创造的幕后推手:AIGC浪潮下看AI训练师如何塑造智能未来

文章目录 一、AIGC时代的算法与模型训练概览二、算法与模型训练的关键环节三、AI训练师的角色与职责四、AI训练师的专业技能与素养五、AIGC算法与模型训练的未来展望《AI训练师手册&#xff1a;算法与模型训练从入门到精通》亮点内容简介作者简介谷建阳 目录 《医学统计学从入门…

Cisco Packet Tracer超详细下载安装教程(附中文版插件)

一、安装包下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1RK8iQ9lJG__vBEGCYVYNSA 提取码&#xff1a;1lvb 压缩包解压密码&#xff1a;66668888&#xff0c;不能正常解压的&#xff0c;推荐使用360压缩解压 二、安装教程&#xff1a; 1.双击启动安装包 2.点击N…

springboot+vue3基于Java的校园二手商品交易系统设计与实现(编号:4259233)

目录 功能和开发技术介绍具体实现截图开发核心技术介绍&#xff1a;技术创新点vue3和vue2的区别&#xff1a;核心代码部分展示非功能需求分析系统开发流程系统运行步骤软件测试源码获取 功能和开发技术介绍 本课题拟采用主流的MVC架构、开发工具idea、java语言编程、MySQL数据…

【Python】入门学习1:开发前的准备

准备工作&#xff1a; 1、电脑系统&#xff1a;windows 64位&#xff1b; 2、python学习所需工具&#xff1a;“解释器、编译器”&#xff1b; &#xff08;1&#xff09;python 解释器&#xff1a;解释代码的&#xff0c;把 python 计算机语言翻译给计算机认识&#xff1b;…

Linux 5.0在start_kernel之前做了什么事?(以aarch64为例)

目录 引言汇编启动&#xff01;&#xff01;&#xff01;细节剖析 引言 之前在研究Linux内核源码的时候总是找不到关于这部分源码的相关剖析&#xff0c;要么也是模棱两可的&#xff0c;也有一些比较专业的代码分析&#xff0c;不过比较分散&#xff0c;感觉大家都不太喜欢这部…