SpringAI系列---【如何快速构建一个SpringAI工程?】

工程配置步骤

注意

  • 1.spring-ai要求jdk最低版本为jdk17
  • 2.spring-ai要求spring-boot最低版本为3.0
  • 3.模型客户端配置三要素:system-content(让大模型知道自己是谁),user-content(用户提问的问题),model

1.引入依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.5.0</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-starter-model-ollama</artifactId>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-bom</artifactId>
            <version>${spring-ai.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

2.配置模型

spring:
  application:
    name: spring-ai-promote
  ai:
    ollama:
      base-url: http://localhost:11434
      chat:
        model: deepseek-r1:8b

3.配置客户端

package com.fast.ai.config;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class CommonConfig {

    @Bean
    public ChatClient chatClient(OllamaChatModel model) {
        return ChatClient
                .builder(model)
                .defaultSystem("一你是一个专业,可爱的智能助手,你的名字叫小辰辰,请以小辰辰的身份和语气回答问题。")
                .build();
    }

}

4.使用客户端

package com.fast.ai.controller;

import lombok.RequiredArgsConstructor;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

@RestController
@RequestMapping("ai")
@RequiredArgsConstructor
public class ChatController {
    private final ChatClient chatClient;

    @GetMapping("chat")
    public String chat(String prompt) {
        return chatClient.prompt()
                .user(prompt)
                //这个是阻塞式响应,正常的http请求
                .call()
                .content();
    }

    /**
     * 响应默认是乱码,需要设置响应头,告诉浏览器,响应的字符编码是utf-8
     *
     * @param prompt 提示词
     * @return 流式响应结果
     */
    @GetMapping(value = "chatStream")
    public Flux<String> chatStream(String prompt) {
        return chatClient.prompt()
                .user(prompt)
                //这个是流式响应,打字机效果
                .stream()
                .content();
    }

    /**
     * 解决响应乱码,需要设置produces = "text/html;charset=utf-8"
     *
     * @param prompt 提示词
     * @return 流式响应结果
     */
    @GetMapping(value = "chatStreamUtf8",produces = "text/html;charset=utf-8")
    public Flux<String> chatStreamUtf8(String prompt) {
        return chatClient.prompt()
                .user(prompt)
                //这个是流式响应,打字机效果
                .stream()
                .content();
    }
}
Spring AI 是一个面向人工智能工程的应用框架,旨在将 Spring 生态系统的设计原则(如可移植性和模块化设计)应用到 AI 领域,并推动使用 POJO(Plain Old Java Object)作为应用程序构建块的理念进入 AI 应用开发中。它不仅简化了 AI 工程的实现过程,还为开发者提供了一套统一、便捷的编程模型和接口,以支持多种 AI 模型和服务的集成[^1]。 ### Spring AI 的核心功能 1. **与 Spring 生态系统的兼容性** Spring AI 无缝集成了 Spring Framework 的特性,例如依赖注入、模块化架构以及对 POJO 的支持。这种整合使得开发者可以利用熟悉的 Spring 工具和模式来构建 AI 应用程序。 2. **支持多种 AI 模型和服务** Spring AI 提供了对主流 AI 模型(包括大语言模型、图像处理模型等)的支持,并通过适配器模式封装了这些模型的调用方式,从而实现了统一的 API 接口。这极大地降低了集成不同 AI 服务的技术门槛。 3. **数据流处理能力** Spring AI 支持与 Spring Integration 和 Spring Cloud Stream 等工具的结合,能够高效地处理实时数据流。这一特性对于需要实时响应的 AI 应用场景(如聊天机器人、实时推荐系统)尤为重要。 4. **扩展性强的架构设计** 基于 Spring 的模块化设计,Spring AI 允许开发者根据具体需求选择性地引入相关模块,例如用于自然语言处理的模块或用于图像识别的模块。这种灵活性使其适用于各种规模和类型的项目。 5. **安全性与监控支持** Spring AI 继承了 Spring Security 和 Spring Boot Actuator 的特性,为 AI 应用提供了认证、授权、日志记录和性能监控等功能,确保了系统的安全性和可观测性。 ### 应用场景 - **企业级智能助手** 利用 Spring AI 集成大语言模型的能力,企业可以快速开发智能客服、文档生成助手等应用,提高工作效率并优化用户体验。 - **数据分析与预测** 在金融、医疗等领域,Spring AI 可以结合机器学习模型进行数据挖掘和趋势预测,辅助决策者做出更精准的判断。 - **自动化流程优化** Spring AI 能够与 RPA(机器人流程自动化)技术结合,自动执行重复性的业务操作,减少人工干预,提升运营效率。 - **物联网与边缘计算** 在物联网设备上部署轻量化的 AI 模型,Spring AI 可帮助实现实时数据处理和本地决策,降低对云端计算资源的依赖。 综上所述,Spring AI 不仅是一个高效的 AI 开发框架,还通过其强大的生态系统整合能力和灵活的架构设计,为企业在 AI 领域的应用落地提供了坚实的技术支撑。 ```java // 示例代码:使用 Spring AI 进行简单的文本生成任务 import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.model.Model; public class AIDemoApplication { public static void main(String[] args) { // 初始化 ChatClient 并指定使用的 AI 模型 ChatClient chatClient = new ChatClient("gpt-3.5-turbo"); // 定义用户输入的问题 String userPrompt = "请帮我写一段关于环保的宣传语。"; // 调用模型生成回复 String response = chatClient.call(userPrompt); // 输出生成的结果 System.out.println("AI 生成的宣传语:" + response); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少年攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值