Spring AI 抢先体验,5 分钟玩转 Java AI 应用开发

作者:刘军

Spring AI 是 Spring 官方社区项目,旨在简化 Java AI 应用程序开发,让 Java 开发者像使用 Spring 开发普通应用一样开发 AI 应用。

Spring Cloud Alibaba AI 以 Spring AI 为基础,并在此基础上提供阿里云通义系列大模型全面适配,让用户在 5 分钟内开发基于通义大模型的 Java AI 应用。

Spring AI 抢先体验,5 分钟玩转 Java AI 应用开发

Spring AI x 通义千问 Demo 已上线至 sca.aliyun.com

Spring AI 简介

据 Spring AI 官网描述,该项目的灵感来自著名的 Python 项目,如 LangChain 和 LlamaIndex,但 Spring AI 并不是这些项目的直接复制。Spring AI 相信下一波 Generative AI 生成式应用程序将不仅面向 Python 开发人员,而且将在许多编程语言中广泛应用。

Spring AI 的核心是提供抽象,作为开发 Java AI 应用程序的基础,提供以下功能:

  • 提供多种大模型服务对接能力,包括业界大多数主流大模型服务等;
  • 支持灵活的 Prompt Template 和模型输出解析 Output Parsing 能力;
  • 支持多模态的生成式 AI 能力,如对话,文生图、文生语音等;
  • 提供通用的可移植的 API 以访问各类模型服务和 Embedding 服务,支持同步和流式调用,同时也支持传递特定模型的定制参数;
  • 支持 RAG 能力的基础组件,包括 DocumentLoader、TextSpillter、EmobeddingClient、VectorStore 等;
  • 支持 AI Spring Boot Starter 实现配置自动装配。

Spring Cloud Alibaba AI 简介

Spring Cloud Alibaba AI 目前基于Spring AI 0.8.1[1]版本 API 完成通义系列大模型的接入。通义接入是基于阿里云灵积模型服务[2],灵积模型服务建立在“模型即服务”(Model-as-a-Service,MaaS)的理念基础之上,围绕 AI 各领域模型,通过标准化的API提供包括模型推理、模型微调训练在内的多种模型服务。

在当前最新版本中,Spring Cloud Alibaba AI 主要完成了几种常见生成式模型的适配,包括对话、文生图、文生语音等,开发者可以使用 Spring Cloud Alibaba AI 开发基于通义的聊天、图片或语音生成 AI 应用,框架还提供 OutParser、Prompt Template、Stuff 等实用能力。

以下是当前官方提供的 Spring Cloud Alibaba AI 应用开发示例,访问 sca.aliyun.com 可查看。

  • 聊天对话应用
  • 文生图应用
  • 文生语音应用
  • 模型输出解析OutputParser(实现从 String 到自动 POJO 映射)
  • 使用 Prompt Template
  • 让 AI 模型接入外部数据(Prompt Stuff)

体验第一个 Spring AI 应用开发

本项目演示如何使用 spring-cloud-starter-alibaba-ai 完成一个在线聊天 AI 应用,底层使用通义千问提供的模型服务。可在此查看完整示例源码[3]。

开发聊天对话应用

1. 在项目 pom.xml 中加入 2023.0.1.0 版本 Spring Cloud Alibaba 依赖:

<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2023.0.1.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement><dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-ai</artifactId> </dependency></dependencies>

2. 在 application.yml 配置文件中加入以下配置:

spring: cloud: ai: tongyi: chat: options: # Replace the following key with a valid api-KEY. api-key: sk-a3d73b1709bf4a178c28ed7c8b3b5axx

3. 编写聊天服务实现类,由 Spring AI 自动注入 ChatClient、StreamingChatClient,ChatClient 屏蔽底层通义大模型交互细节。

@Servicepublic class TongYiSimpleServiceImpl extends AbstractTongYiServiceImpl { private final ChatClient chatClient; private final StreamingChatClient streamingChatClient; @Autowired public TongYiSimpleServiceImpl(ChatClient chatClient, StreamingChatClient streamingChatClient) { this.chatClient = chatClient; this.streamingChatClient = streamingChatClient; }}

4. 提供具体聊天逻辑实现

@Servicepublic class TongYiSimpleServiceImpl extends AbstractTongYiServiceImpl { // ...... @Override public String completion(String message) { Prompt prompt = new Prompt(new UserMessage(message)); return chatClient.call(prompt).getResult().getOutput().getContent(); } @Override public Map<String, String> streamCompletion(String message) { StringBuilder fullContent = new StringBuilder(); streamingChatClient.stream(new Prompt(message)) .flatMap(chatResponse -> Flux.fromIterable(chatResponse.getResults())) .map(content -> content.getOutput().getContent()) .doOnNext(fullContent::append) .last() .map(lastContent -> Map.of(message, fullContent.toString())) .block(); log.info(fullContent.toString()); return Map.of(message, fullContent.toString()); }}

5. 编写 Spring 入口类并启动应用

@SpringBootApplicationpublic class TongYiApplication { public static void main(String[] args) { SpringApplication.run(TongYiApplication.class); }}

至此,便完成了最简单的聊天 AI 应用开发,与普通的 Spring Boot 应用开发步骤完全一致!

验证应用效果

启动应用后,可通过如下两种方式验证应用效果。

方式一

浏览器地址栏输入:http://localhost:8080/ai/example

返回如下响应:

{ "Tell me a joke": "Sure, here's a classic one for you:nnWhy was the math book sad?nnBecause it had too many problems.nnI hope that made you smile! If you're looking for more, just let me know."}

方式二

进入 resources/static 目录下,使用浏览器打开 index.html 文件,输入问题,即可获得输出响应(确保 api-key 有效):

Spring AI 抢先体验,5 分钟玩转 Java AI 应用开发

申请通义API-KEY

为使示例能够正常接入通义大模型,需要在阿里云开通 DashScope 灵积模型服务,申请有效的 API-KEY 并更新到应用配置文件。具体操作步骤可参见如下文档:https://help.aliyun.com/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key

未来规划

当前版本 Spring Cloud Alibaba AI 主要完成了几种常见生成式模型适配,包括对话、文生图、文生语音等。接下来的版本中,我们将继续完成 VectorStore、Embedding、ETL Pipeline 等更多适配,简化 RAG 等更多 AI 应用开发场景。

Spring AI 抢先体验,5 分钟玩转 Java AI 应用开发

请持续关注 https://sca.aliyun.com,了解最新进展。也欢迎通过钉钉扫描下方二维码加入社区钉群。(群号:64485010179

相关链接:

[1] Spring AI 0.8.1

https://docs.spring.io/spring-ai/reference/0.8-SNAPSHOT/index.html

[2] 灵积模型服务

https://help.aliyun.com/zh/dashscope/

[3] 完整示例源码

https://github.com/alibaba/spring-cloud-alibaba/tree/2023.x/spring-cloud-alibaba-examples/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/helloworld

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月1日 下午1:34
下一篇 2024年5月1日 下午1:45

相关推荐

  • 关于全过程工程项目管理师报名截止时间的通知

    为响应国家住建部 发改委《关于大力推进全过程咨询服务》的政策和文件,经人力资源和社会保障部下属单位中国国家培训网牵头,由我办公室负责实施的全过程工程项目管理师认定工作于2019年6…

    科研百科 2022年11月24日
    156
  • 合同管理相关建议

    合同管理是一个非常重要的方面,可以帮助企业确保合同的有效性和合规性,同时也可以减少合同争议和法律纠纷。以下是一些合同管理相关建议: 1. 制定合同模板:制定合同模板可以帮助企业更好…

    科研百科 2024年9月20日
    26
  • 国家发改委:国债资金项目化管理(国债项目资金管理办法)

    中国将于2023年增发1万亿元国债。在这次增发中,国家发展改革委提出了按项目管理的政策,以促进资金精准、有效地使用。国家发展改革委将与财政部会同有关方面,统筹推进国债项目实施各项工…

    科研百科 2023年11月19日
    2.0K
  • 旌德政务公开网(旌德县协同办公系统网址)

    旌德县协同办公系统网址:https://www.zhaopin.com/service/37889 旌德县协同办公系统是一款功能强大、易于使用的办公软件,可以帮助旌德县提高工作效率…

    科研百科 2024年8月30日
    33
  • 【VIP项目】物业管理服务项目(物业公司vip服务项目)

    跟踪记录:2023-10-11:截止至2023年10月上旬,经与业主单位沟通得知,有对物业管理单位招标需求;服务范围:食堂餐饮,保洁服务,绿化修剪;承包周期:1年;物业服务招标时间…

    科研百科 2023年11月22日
    148
  • 那家项目管理软件好

    项目管理软件是现代项目管理中不可或缺的工具之一。在选择项目管理软件时,我们需要考虑到以下几点: 1. 功能:项目管理软件应该具备项目管理的各个方面的功能,如任务管理、进度管理、风险…

    科研百科 2024年7月28日
    56
  • 阜阳项目管理系统价格

    阜阳项目管理系统:提升企业项目管理效率的利器 阜阳市位于中国安徽省中部,是一个历史悠久、文化底蕴深厚的城市。在这个城市里,许多企业都面临着项目管理的痛点,比如项目进展缓慢、资源分配…

    科研百科 2024年12月20日
    2
  • 福建省财政厅唐金倍被

    福建省财政厅唐金倍被 福建省财政厅 唐金倍被 福建省财政厅 唐金倍被 福建省财政厅 唐金倍被 唐金倍被福建省财政厅 福建省财政厅 唐金倍被 福建省财政厅 唐金倍被 唐金倍被福建省财…

    科研百科 2024年12月7日
    2
  • 第二批新冠状病毒科研项目

    第二批新冠状病毒科研项目开始啦! 随着新冠病毒的全球爆发,各国政府和科学家们都在努力研究如何更好地应对这一疫情。作为全球公共卫生领域的重要问题,新冠状病毒的研究一直备受关注。 为了…

    科研百科 2024年8月13日
    36
  • 商贸财神医药进销存管理系统云平台(商贸财神进销存软件)

      商贸财神医药进销存管理系统云平台根据国内零售医药的实际运营情况及国家药监局GSP认证规范与大型医药联合设计开发,适合各种规模的零售型医药、连锁医药使用,加强药品进销存的规范化管…

    科研百科 2022年9月13日
    218