赞
踩
近几年,AI大模型的发展迅速,成为全球科技竞争的新高地,具有极大的发展潜力和广泛的应用前景。中国在AI大模型领域的发展尤为显著,不仅在算力规模上与美国差距不大,而且在中文语料和文化理解方面具有天然优势。中国企业在大模型开发方面起步较晚,但发展迅速,涌现出如百度的ERNIE、阿里巴巴的M6等代表性的大模型产品。
AI大模型的应用场景广泛,包括但不限于自然语言处理、图像识别、语音识别、推荐系统、自动驾驶、游戏、科学研究等。随着技术的进步,AI大模型正在不断推动人工智能技术的边界,为各行各业带来革命性的变化。
Spring AI 是 Spring 官方社区项目,旨在简化 Java AI 应用程序开发,让 Java 开发者像使用 Spring 开发普通应用一样开发 AI 应用。
Spring AI项目从最初专注于处理语言输入和生成语言输出的模型开始,逐渐发展成为一个提供多种AI功能集成的框架。它提供了跨AI提供商的可移植API支持,包括聊天、文本到图像、嵌入模型等,并支持同步和流式API选项。
主要功能特点:
java.util.Function
实现,以供OpenAI模型在其提示响应中使用。
Spring Cloud Alibaba AI 以 Spring AI 为基础,并在此基础上提供阿里云通义系列大模型全面适配,让用户能快速开发基于通义大模型的 Java AI 应用。
Spring Cloud Alibaba AI 目前基于 Spring AI 0.8.1 版本 API 完成通义系列大模型的接入。通义接入是基于阿里云 灵积模型服务,灵积模型服务建立在“模型即服务”(Model-as-a-Service,MaaS)的理念基础之上,围绕 AI 各领域模型,通过标准化的API提供包括模型推理、模型微调训练在内的多种模型服务。
在当前最新版本中,Spring Cloud Alibaba AI 主要完成了几种常见生成式模型的适配,包括对话、文生图、文生语音等,开发者可以使用 Spring Cloud Alibaba AI 开发基于通义的聊天、图片或语音生成 AI 应用,框架还提供 OutParser、Prompt Template、Stuff 等实用能力。
开发工具:IDEA
Java环境:JDK17
构建工具:Maven
通义模型key
获取通义api key步骤:
1.阿里云官网开通服务
2.创建key
idea创建maven工程
初始化
<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>
备注:
添加依赖,出现报错:Cannot resolve org.springframework.ai:spring-ai-core:0.8.1
添加额外的Repository:在pom.xml文件中,添加如下仓库配置段落,这会指引Maven去查找Spring的里程碑和快照仓库,这些仓库可能包含了spring-ai-core或其他sca相关的依赖。
<repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories>
添加后,reload导入
新建文件夹
新建application.yml文件
内容如下:
server:
port: 8080
spring:
application:
name: alibaba-spring-ai-demo
cloud:
ai:
tongyi:
api-key: 你的api-key
3.2.2 TongYiController
@RestController @RequestMapping("/api") public class TongYiController { @Resource private TongYiService tongYiService; @GetMapping("/simple") public String completion(@RequestParam(value = "message",defaultValue = "AI时代下Java开发者该何去何从?") String message){ return tongYiService.completion(message); } @GetMapping("/stream_completion") public Map<String, String> streamCompletion(@RequestParam(value = "message",defaultValue = "AI时代下Java开发者该何去何从?") String message){ return tongYiService.streamCompletion(message); } @GetMapping("/image") public ImageResponse getImage(@RequestParam(value = "imgPrompt",defaultValue = "画一只狗") String imgPrompt){ return tongYiService.getImage(imgPrompt); } }
TongYiService
public interface TongYiService { /** * 基本问答 * * @param message * @return */ String completion(String message); /** * Stream call * * @param message * @return */ Map<String, String> streamCompletion(String message); /** * 文生图 * * @param imgPrompt * @return */ ImageResponse getImage(String imgPrompt); }
TongYiSimpleServiceImpl
@Service @Slf4j public class TongYiServiceImpl implements TongYiService { @Resource private ChatClient chatClient; @Resource private ImageClient imageClient; @Resource private StreamingChatClient streamingChatClient; @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:{}",fullContent); return Map.of(message,fullContent.toString()); } @Override public ImageResponse getImage(String imgPrompt) { ImagePrompt imagePrompt = new ImagePrompt(imgPrompt); return imageClient.call(imagePrompt); } }
如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。