Spring Cloud Alibaba AI,阿里AI这不得玩一下

简介: 🏀闪亮主角:大家好,我是JavaDog程序狗。今天分享Spring Cloud Alibaba AI,基于Spring AI并提供阿里云通义大模型的Java AI应用。本狗用SpringBoot+uniapp+uview2对接Spring Cloud Alibaba AI,带你打造聊天小AI。📘故事背景:🎁获取源码:关注公众号“JavaDog程序狗”,发送“alibaba-ai”即可获取源码。🎯主要目标:

🏀闪亮主角:

大家好,我是JavaDog程序狗

今天跟大家分享Spring Cloud Alibaba AI, 以Spring AI 为基,并提供阿里云通义大模型的 Java AI 应用。

本狗以SpringBoot+uniapp+uview2对接Spring Cloud Alibaba AI,带你玩转实现自己的聊天小AI。

📘你想听的故事

狗哥在翻阅之前写的文章时,发现很多对接gpt的实操项目文章都被和谐了,而且老美还限制我们爱国青年使用gpt

呸,老美这卑鄙手段。所以从我做起,拒绝黄拒绝赌拒绝gpt,找一个平替的国内AI大模型,让gpt食屎去吧!

Spring Cloud Alibaba AI 阿里国产的通义AI大模型,绝对是平替gpt的梦中情AI,就让本狗带大家手把手一起玩耍下吧。

🎁如何获取源码
公众号:【JavaDog程序狗】

关注公众号,发送 “alibaba-ai”,无任何套路即可获得!

正文
🎯主要目标
实现3大重点

  1. 了解Spring Cloud Alibaba AI 是什么
  2. 使用Spring Cloud Alibaba AI 前置条件
  3. SpringBoot+uniapp+uview2对接Spring Cloud Alibaba AI实操步骤
    🥦目标讲解
    一. Spring Cloud Alibaba AI 是什么
    Spring Cloud Alibaba AI 是一个基于 Spring AI 的扩展框架,它提供了对阿里云通义系列大模型的支持,使得开发者能够更容易地在 Java 应用程序中集成和使用这些 AI 模型。

基础框架
Spring Cloud Alibaba AI 基于 Spring AI 构建,这意味着它继承了 Spring AI 的核心功能,并在此基础上增加了特定于阿里云通义系列大模型的功能。

Spring AI
Spring AI 是一个用于简化机器学习和人工智能应用开发的框架,它提供了一套工具和抽象层来帮助开发者更容易地将 AI 功能集成到他们的应用程序中。

通义系列大模型
阿里云的一系列预训练大模型,如通义千问等,它们可以用于多种场景,包括但不限于文本生成、对话系统、文档检索等。

快速集成
Spring Cloud Alibaba AI 提供了简便的方式来接入这些大模型,使得开发者可以在较短的时间内完成 AI 功能的开发和部署。

Spring Boot 支持
为了使用 Spring Cloud Alibaba AI,你需要有一个基于 Spring Boot 的项目,并且 Spring Boot 的版本需要是 3.x 或更高版本。

JDK 版本要求
为了支持最新的特性和性能优化,推荐使用 JDK 17 或更高版本。

二. 使用Spring Cloud Alibaba AI 前置条件
1.JDK版本17+
如果有条件直接JDK21,一步到位,本狗使用的JDK21

JDK21官网地址

2.SringBoot3.0+
本狗使用SringBoot3.1.10版本

SpringBoot文档官网地址

3.申请通义API-KEY
申请调用Spring Cloud Alibaba AI的API-KEY

DashScope模型服务灵积

三. SpringBoot+uniapp+uview2对接Spring Cloud Alibaba AI实操步骤

1.准备
开发工具
工具 版本 用途
IDEA 2023.3.3 Java开发工具
HBuilder X 3.98 前端开发者服务的通用 IDE
API-KEY申请
账号 功能 描述
阿里云 API-KEY 前置中申请阿里AI的API-KEY
主要组件
前端
插件 版本 用途
uview-ui ^2.0.31 多平台快速开发的UI框架
mescroll-uni 1.3.7 mescroll高性能的下拉刷新上拉加载组件
后端
插件 版本 用途
jdk 21 java环境
lombok 1.18.30 代码简化插件
maven 3.6.3 包管理工具
druid 1.1.24 JDBC组件
hutool 5.8.29 Java工具类库
mybatis-plus 3.5.7 基于 MyBatis 增强工具
mysql 8.0 数据库
spring-cloud-alibaba-ai 2023.0.1.0 阿里提供的 API
2.功能分析
后端
提供用户登录,注册,聊天等接口,对接spring-cloud-alibaba-ai。

前端
画出登录,注册,聊天页面,消息分页,下拉加载历史数据,AI消息打印展现效果等页面操作。

对接
前后端对接,实现智能AI聊天基本功能。

3.开发
后端代码总览

具体分层搭建此处省略,如有疑问请参考

【SpringBoot】还不会SpringBoot项目模块分层?来这手把手教你 完全跟着复制分层即可。

doc文件夹下有DB脚本,别忘跑!别忘跑!别忘跑!

后端-关键点
引入spring-cloud-alibaba-ai依赖,版本为 \2023.0.1.0\


com.alibaba.cloud
spring-cloud-alibaba-dependencies
${spring-cloud-alibaba.version}
pom
import


com.alibaba.cloud
spring-cloud-starter-alibaba-ai
${spring-cloud-alibaba-ai.version}

调用alibaba-ai方法

参考文档https://sca.aliyun.com/docs/2023/user-guide/ai/quick-start/

private String handleAI(Message message){

    Generation gen = new Generation();
    com.alibaba.dashscope.common.Message systemMsg = com.alibaba.dashscope.common.Message.builder()
            .role(Role.SYSTEM.getValue())
            .content("中文回复")
            .build();
    com.alibaba.dashscope.common.Message userMsg = com.alibaba.dashscope.common.Message.builder()
            .role(Role.USER.getValue())
            .content(message.getMsgContent())
            .build();
    GenerationParam param = GenerationParam.builder()
            .model("qwen-turbo")
            .messages(Arrays.asList(systemMsg, userMsg))
            .resultFormat(GenerationParam.ResultFormat.MESSAGE)
            .topK(50)
            .temperature(0.8f)
            .topP(0.8)
            .seed(1234)
            .build();
    try {

        return gen.call(param).getOutput().getChoices().get(0).getMessage().getContent();
    } catch (NoApiKeyException e) {

        throw new RuntimeException(e);
    } catch (InputRequiredException e) {

        throw new RuntimeException(e);
    }
}

一定修application.yml配置文件中的api-key

cloud:
ai:
tongyi:

    # 一定替换成自己的,也就是上方前置准备那里从阿里控制台获取的api-key
    api-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

前端代码总览

前端-关键点
如何实现打字机效果?

原理就是采用定时器,每次截取一个字节进行内容填充

// interval
intervalFunc(){

// 深拷贝内容
let content = uni.$u.deepClone(this.targetContent);
// 记录次数

//代码效果参考:https://www.tvdy.cn/sitemap/post.html
//代码效果参考:https://www.tvdy.cn/sitemap/post.xml
//代码效果参考:https://www.nbhbjx.cn/sitemap/post.xml
//代码效果参考:https://www.vipwb.com/sitemap/post.xml
//代码效果参考:https://www.257342.com/sitemap/post.xml this.times++;
if(this.times == content.length){

 clearInterval(this.interval)

}
this.targetMsg.msgContent = content.substring(0,this.times);
this.$set(this.msgList, this.msgList.length-1, this.targetMsg);
this.$nextTick(function () {

 this.mescroll.scrollTo(99999, 0)

})
},
例:AI返回的数据为【我真的好喜欢你!】
每次substring截取一个字符,然后进行填充渲染结果为

我真
我真的
我真的好
我真的好喜欢你
...

这样就可以实现简单的打字机效果,网上还有通过CSS形式或更加简便方法实现,都可参考

4.运行
后端
修改环境变量

直接在IDEA运行启动

前端
在项目目录中执行 npm i ,下载依赖

修改环境变量,在/common/config/env.js下

然后再HBuilder X工具中点击运行即可

5.成果展示

总结
本文主要介绍了如何使用 Spring Cloud Alibaba AI 来构建一个基于 Spring Boot 和 uni-app 的聊天机器人应用。

关键点:

了解Spring Cloud Alibaba AI

前置条件: 包括使用 JDK 17+、Spring Boot 3.0+ 以及获取通义 API-KEY。

实操步骤: 分别从前端和后端的角度进行了详细的说明,包括开发工具的选择、主要组件介绍、功能分析及开发过程中的关键代码示例。

最终,本狗展示了如何成功地实现了一个具备基本聊天功能的 AI 应用。

通过这个项目,小伙伴可以了解到如何利用现有的技术和框架快速搭建一个智能聊天应用,并且可以进一步探索更多高级功能和技术细节。

相关文章
|
9天前
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
9天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
527 8
|
19天前
|
消息中间件 人工智能 运维
|
2月前
|
Java Spring 人工智能
AI 时代浪潮下,Spring 框架异步编程点亮高效开发之路,你还在等什么?
【8月更文挑战第31天】在快节奏的软件开发中,Spring框架通过@Async注解和异步执行器提供了强大的异步编程工具,提升应用性能与用户体验。异步编程如同魔法,使任务在后台执行而不阻塞主线程,保持界面流畅。只需添加@Async注解即可实现方法的异步执行,或通过配置异步执行器来管理线程池,提高系统吞吐量和资源利用率。尽管存在线程安全等问题,但异步编程能显著增强应用的响应性和效率。
32 0
|
2月前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
41 0
|
7天前
|
机器学习/深度学习 数据采集 人工智能
探索AI技术在文本生成中的应用与挑战
【9月更文挑战第26天】本文深入探讨了AI技术在文本生成领域的应用,并分析了其面临的挑战。通过介绍AI文本生成的基本原理、应用场景以及未来发展趋势,帮助读者全面了解该技术的潜力和局限性。同时,文章还提供了代码示例,展示了如何使用Python和相关库实现简单的文本生成模型。
30 9
|
3天前
|
机器学习/深度学习 人工智能 供应链
精准农业:AI在农业生产中的应用
【10月更文挑战第1天】随着科技的发展,人工智能(AI)逐渐渗透到农业领域,通过精准监控和管理提升了农业生产效率和质量。AI在精准农业中的应用包括:精准农田管理,如个性化灌溉和施肥;作物病虫害识别与预测,及时发现并预防病虫害;智能农机自动化作业,提高作业效率;农产品质量检测与分类,确保品质;农业供应链优化,预测需求和价格。尽管面临数据收集、技术接受度等挑战,AI在精准农业中的未来前景广阔,有望实现全程自动化作业、数据驱动决策及智能预警系统,推动农业可持续发展。
22 11
|
2天前
|
机器学习/深度学习 数据采集 人工智能
探索AI在医疗诊断中的应用
【9月更文挑战第30天】本文将探讨人工智能(AI)如何在医疗诊断中发挥重要作用。我们将从AI的基本概念开始,然后深入到其在医疗领域的应用,特别是如何帮助医生进行更准确的诊断。最后,我们将通过一些实际的代码示例来展示AI是如何工作的。无论你是AI专家还是医疗专业人士,这篇文章都将为你提供有价值的信息。
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
AI在医疗诊断中的应用与未来展望
随着人工智能技术的飞速发展,AI在医疗领域的应用日益广泛。本文探讨了AI在医疗诊断中的具体应用,包括医学影像分析、电子病历分析和辅助诊断等。同时,讨论了AI技术在未来医疗中的潜力和挑战,如数据隐私保护、算法的公平性和透明度等问题。通过分析具体案例和当前研究成果,本文揭示了AI在提高医疗诊断效率和准确性方面的显著优势,并对其未来发展进行了展望。
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
AI在医疗诊断中的应用
【9月更文挑战第29天】随着科技的发展,人工智能(AI)已经在许多领域得到广泛应用,其中包括医疗诊断。AI可以帮助医生更准确、更快速地进行疾病诊断,提高医疗服务的质量和效率。本文将介绍AI在医疗诊断中的应用,包括图像识别、自然语言处理和预测分析等方面。
下一篇
无影云桌面