SpringBoot 集成 spring AI Alibaba 快速上手
ApacheDubbo 2024-10-21 14:31:01 阅读 62
Spring AI 介绍
Spring AI 是一个专为AI工程设计的应用框架,它将Spring生态系统的设计原则如可移植性和模块化引入了AI开发领域。该框架的核心优势在于其标准化了不同AI提供者(例如OpenAI、Azure、阿里云等)的接口实现,使得开发者能够通过简单的配置更改即可轻松切换不同的AI服务提供商,而无需重写代码。
这极大地简化了程序迁移的工作量,并且由于其直接兼容Flux流输出,因此也能很好地与基于流的各种机器人模型集成。对于使用SpringBoot构建应用的开发者来说,Spring AI 提供了一种无缝集成AI能力的方式,让项目可以更灵活地利用最新的AI技术,同时保持代码的简洁和高效。
Spring AI alibaba介绍
Spring AI Alibaba 是基于 Spring AI 的应用框架,简单来说就是Spring ai的一个针对阿里云的服务的通用实现。
他整合了阿里云的一系列最佳实践,包括但不限于怎么做异步,怎么做Prompt的线上化管理等一系列的方案,可以更好的实现服务的在线化
SpringBoot介绍
Spring Boot 是一个基于 Java 的框架,用于简化新 Spring 应用的初始搭建以及开发过程。它通过约定大于配置的理念,使得开发者可以快速创建独立运行、生产级别的基于 Spring 的应用,而无需过多的 XML 配置。借助自动配置和起步依赖,Spring Boot 让应用开发变得简单快捷。
基于Spring Boot集成Spring AI Alibaba完成一个简单对话模型
基于Spring Boot集成Spring AI Alibaba来构建一个简单的对话模型并使用到<code>Prompt能力和ChatClient
能力的具体步骤:
具体步骤
环境准备
确保你的JDK版本为17或更高。使用Spring Boot 3.3.x及以上版本。 获取通义千问的API Key
访问阿里云百炼页面并登录您的阿里云账号。开通“百炼大模型推理”服务,等待开通成功短信通知。成功后返回页面,通过右上角用户图标进入API-KEY管理界面,创建一个新的API-KEY并妥善保存。 设置环境变量
将获得的API-KEY设置为环境变量:
export AI_DASHSCOPE_API_KEY=your_api_key_here
添加仓库与依赖在pom.xml
文件中加入Spring的里程碑和快照仓库,以便能够下载最新的Spring AI Alibaba相关包。
<repositories>
<repository>
<id>sonatype-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<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>
接着,在<dependencies>
标签内添加必要的依赖项:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.4</version>
</parent>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter</artifactId>
<version>1.0.0-M2</version>
</dependency>
</dependencies>
配置API KEY在项目的application.properties
或者application.yml
文件里配置刚才获取的API KEY:
spring.ai.dashscope.api-key=${AI_DASHSCOPE_API_KEY}
创建Controller类创建一个新的Controller类,用于处理聊天请求。这里将演示如何使用ChatClient
及Prompt
功能。
@RestController
public class ChatController {
private final ChatClient chatClient;
@Autowired
public ChatController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/chat")
public String chat(@RequestParam String input) {
return this.chatClient.prompt()
.user(input)
.call()
.content();
}
// 使用Prompt模板的例子
@Value("classpath:/prompts/joke-prompt.st")
private Resource jokeResource;
@GetMapping("/prompt")
public AssistantMessage completion(@RequestParam(value = "adjective", defaultValue = "funny") String adjective,
@RequestParam(value = "topic", defaultValue = "cows") String topic) {
PromptTemplate promptTemplate = new PromptTemplate(jokeResource);
Prompt prompt = promptTemplate.create(Map.of("adjective", adjective, "topic", topic));
return chatClient.prompt(prompt).call().chatResponse().getResult().getOutput();
}
}
上述代码示例中定义了两个接口:一个是直接发送消息给AI助手;另一个是利用预设的提示词模板生成特定类型的回复。
启动应用完成上述所有配置后,即可运行你的Spring Boot应用程序。访问/chat
端点进行基本对话测试,或尝试/prompt
端点体验更复杂的Prompt功能。
小结:
以上就是如何从零开始搭建一个基于Spring Boot的应用程序,集成了Spring AI Alibaba框架,并实现了基础的对话功能。
通过Springboot开发者可以快速构建出具备AI交互能力的服务。此外,还展示了如何利用Prompt模板机制来丰富对话内容,使得最终产品更加灵活多变。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。