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来构建一个简单的对话模型并使用到
Prompt
能力和
ChatClient
能力的具体步骤:
具体步骤
- 环境准备- 确保你的JDK版本为17或更高。- 使用Spring Boot 3.3.x及以上版本。
- 获取通义千问的API Key- 访问阿里云百炼页面并登录您的阿里云账号。- 开通“百炼大模型推理”服务,等待开通成功短信通知。- 成功后返回页面,通过右上角用户图标进入API-KEY管理界面,创建一个新的API-KEY并妥善保存。
- 设置环境变量 将获得的API-KEY设置为环境变量:
exportAI_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
功能。
@RestControllerpublicclassChatController{privatefinalChatClient chatClient;@AutowiredpublicChatController(ChatClient.Builder builder){this.chatClient = builder.build();}@GetMapping("/chat")publicStringchat(@RequestParamString input){returnthis.chatClient.prompt().user(input).call().content();}// 使用Prompt模板的例子@Value("classpath:/prompts/joke-prompt.st")privateResource jokeResource;@GetMapping("/prompt")publicAssistantMessagecompletion(@RequestParam(value ="adjective", defaultValue ="funny")String adjective,@RequestParam(value ="topic", defaultValue ="cows")String topic){PromptTemplate promptTemplate =newPromptTemplate(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模板机制来丰富对话内容,使得最终产品更加灵活多变。
版权归原作者 ApacheDubbo 所有, 如有侵权,请联系我们删除。