Spring AI 介绍以及与 Spring Boot 项目整合

Spring AI 项目旨在简化使用 Spring Boot 开发包含人工智能功能的应用程序,提供抽象和支持多种模型提供商及矢量数据库提供商。

Spring AI 的功能特点

  • 支持主流模型提供商:如 OpenAI、Microsoft、Amazon、Google 和 Huggingface 等。
  • 支持多种模型类型:包括聊天、文本到图像、音频转录、文本到语音等。
  • 提供可移植 API:支持同步和流 API 选项,还支持访问模型特定功能。
  • 实现 AI 模型输出到 POJO 的映射
  • 支持主流矢量数据库提供商:如 Apache Cassandra、Azure Vector Search、Chroma、Milvus、Neo4j、PostgreSQL/PGVector、PineCone、Qdrant、Redis 和 Weaviate 等。
  • 提供跨 Vector Store 提供程序的可移植 API,包括类似 SQL 的元数据过滤器 API。
  • 支持 Function calling(函数调用)
  • 提供 Spring Boot 自动配置和启动器的 AI 模型
  • 包含数据工程的 ETL 框架

Spring Boot 项目整合 Spring AI 的步骤

  1. 初始化 Spring Boot 项目
    • 使用 Spring Initializr:访问 https://start.spring.io/,选择 Maven 或 Gradle 作为构建工具,选择 Java 作为语言,勾选“Web”依赖以启用 Spring Web 支持,选择 OpenAI 依赖,然后生成项目。

在这里插入图片描述
手动添加依赖

添加仓库依赖:在 pom.xml 文件中添加以下仓库依赖:

<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>

使用 BOM:通过将以下内容添加到 pom.xml 文件中来使用 BOM,使用的 BOM 版本决定了使用的依赖项版本,它还可确保默认使用受支持和测试的依赖项版本。

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

添加 OpenAI 的 maven 依赖:在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
  1. 配置 OpenAi API KEY:请加入你生成的 OpenAI 的 API key,可以通过直连或者中转的方式进行访问,具体可以百度和淘宝。在 application.properties 文件中添加以下配置:
spring.application.name=spring-ai
spring.ai.openai.api-key=sk-8*******************
spring.ai.openai.base-ur=h*******************
  1. 在控制器中调用 Spring API 的方法进行访问和输出
@RestController
@RequestMapping("/openai")
public class OpenAiChatController {

    @Resource
    private OpenAiChatModel openAiChatModel;

    @GetMapping("/chat/generate")
    public String chat(@RequestParam(value = "message", defaultValue = "你是谁?") String message) {
        String result = openAiChatModel.call(message);
        System.out.println(result);
        return result;
    }
}
  1. 运行和测试
    启动 Spring Boot 应用,访问 http://localhost:8080/openapi/generate?message=请介绍一下 Spring AI

你应该能看到来自 ChatGPT 的响应。

在这里插入图片描述
在这里插入图片描述
Spring AI 为开发人员提供了一个强大的平台,帮助他们更轻松地利用人工智能和机器学习技术,提升应用程序的智能化水平。通过与 Spring Boot 的整合,开发人员可以更方便地构建包含人工智能功能的应用程序。

  • 29
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能客服是指利用人工智能技术,通过自然语言处理、语音识别、机器学习等技术实现自动回答用户问题的系统。Spring Boot是一个快速开发框架,可以快速构建Web应用程序。本文将介绍如何使用Spring Boot实现智能客服。 1. 搭建Spring Boot项目 首先需要创建一个Spring Boot项目,可以使用Spring Initializr创建一个默认项目。在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.14.2</version> </dependency> ``` 2. 实现智能客服 接下来需要实现智能客服的核心功能:自动回答用户问题。可以使用第三方的问答库,比如百度知道、百度百科等。这里以百度知道为例,通过爬取百度知道的页面,获取对应问题的答案。 ``` import com.alibaba.fastjson.JSON; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.io.IOException; import java.util.HashMap; import java.util.Map; @Service public class QaService { public String getAnswer(String question) { if (StringUtils.isEmpty(question)) { return "你问的问题是什么呢?"; } // 爬取百度知道页面 String url = "https://zhidao.baidu.com/search?word=" + question; Document document = null; try { document = Jsoup.connect(url).get(); } catch (IOException e) { e.printStackTrace(); } // 解析答案 Element answerElement = document.selectFirst("div[class='line content'] div[class='best-text mb-10']"); if (answerElement == null) { return "不好意思,我还不知道怎么回答你的问题"; } String answer = answerElement.text(); // 封装结果 Map<String, String> result = new HashMap<>(); result.put("question", question); result.put("answer", answer); return JSON.toJSONString(result); } } ``` 3. 创建Web接口 创建一个Web接口,接收用户的问题,并返回智能客服的回答。 ``` import com.alibaba.fastjson.JSON; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class IndexController { @Autowired private QaService qaService; @GetMapping("/") public String index() { return "index"; } @PostMapping("/qa") @ResponseBody public String qa(@RequestParam("question") String question, Model model) { String answer = qaService.getAnswer(question); return answer; } } ``` 4. 创建前端页面 创建一个简单的前端页面,包含一个问题输入框和一个回答展示框。 ``` <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>智能客服</title> </head> <body> <h1>智能客服</h1> <form> <input type="text" id="question" name="question"> <button type="button" onclick="qa()">提问</button> </form> <hr> <div id="answer"></div> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> function qa() { var question = $("#question").val(); $.post("/qa", {question: question}, function (data) { var result = JSON.parse(data); $("#answer").text(result.answer); }); } </script> </body> </html> ``` 5. 运行项目 启动Spring Boot项目,访问http://localhost:8080/即可看到智能客服页面。输入一个问题,点击“提问”按钮,就可以得到智能客服的回答了。 总结 本文介绍了如何使用Spring Boot实现智能客服的功能,通过爬取第三方问答库的页面,实现自动回答用户问题。这只是一个简单的示例,实际应用还需要考虑更多的问题,比如如何处理多个答案、如何处理用户的反馈等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值