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类,用于处理聊天请求。这里将演示如何使用ChatClientPrompt功能。

@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模板机制来丰富对话内容,使得最终产品更加灵活多变。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。