SpringBoot+Spring AI Alibaba接入RAG应用实战,让你的微服务应用具备智能化能力,小白也能快速上手

Spring AI Alibaba 开源项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。

阿里云百炼是一款可视化 AI 智能体应用开发平台,它提供了三种大模型应用开发模式:智能体、工作流与智能体编排,支持知识库检索、互联网搜索、工作流设计及智能体协作等功能。百炼平台上提供了 0 代码基础就能创建 RAG 应用的方案,你只需要关注私有领域知识库的维护即可使用。

本文会演示如何使用百炼零代码构建一款简单的智能体应用,随后会演示如何将一个普通的 Spring Boot 微服务应用接入智能体,让普通应用具备智能化能力。

一、基于阿里云百炼平台0代码构建RAG应用

1.背景知识:什么是RAG

就像你无法回答一个陌生领域的问题一样,大模型也无法回答预训练阶段没有准确掌握的知识。但是我们可以在大模型直接回答私有领域问题之前,给大模型一些参考,让大模型结合参考来回答问题。这一技术被称为检索增强生成(Retrieval-Augmented Generation,RAG),非常适合于在私域知识问答场景中消除大模型幻觉(编造答案)。

RAG 应用有两个关键过程:

  • 建立索引:这一阶段你需要将私有领域知识的文档(如 PDF、Word 等格式)存储起来并建立索引。这一过程包含:将文档中的文字提取加载出来、切分成小的分块(chunk)以避免超过大模型提示词长度限制、将文本 chunk 向量化后存储到向量数据库中以便于后续检索。

  • 检索和生成:当你为私有知识建立好索引,并完成相关流程开发后,用户就可以进行提问。你的 RAG 应用收到用户问题后,会去向量数据库中检索和问题相关的 chunk,然后将相关的 chunk 组合到提示词中给到大模型。大模型会结合参考信息给出回答。

以下是常见的 RAG 应用流程图:

0

开发一个 RAG 应用需要你具备一定的代码能力和算法基础,并且也会耗费一些时间。

2.开通阿里云百炼

https://bailian.console.aliyun.com/

百炼平台会为首次开通服务的用户提供免费试用额度。

开通之后进行模型体验

在左侧导航栏中,选择模型体验>文本模型>文本对话>通义千问-MAX,在下方的输入框中输入你想问的问题。

在正式搭建 RAG 应用之前,我们可以先测试一个问题「西红市实验十小一年二班的班主任是谁?」来看下大模型的回答效果

你可能会看到这样的回答:

因为“西红市实验十小”这个学校是我们虚构的,大模型无法回答这个私有领域的问题。

3. 创建知识库

为了能够回答前一步骤的问题,我们需要创建一个知识库,并维护一些私有领域的知识文档。

你可以参考如下步骤完成:

1)下载我们提前准备好的示例知识库文件:

示例知识库.doc

2)单击左侧菜单栏中的数据管理,在默认类目下,单击导入数据。

0

3)在导入数据界面,单击本地上传,上传知识库文件(本实验使用的是示例数据),上传完成后单击确认。文档解析需要花费一段时间,请耐心等待,可以主动刷新页面。

0

4)单击左侧菜单栏中的数据应用-知识索引,单击创建知识库。

0

5)填写知识库名称:学校信息库,其它参数保持默认即可,单击下一步。为了更好地区分不同的知识库,建议填写知识库描述;选择推荐配置;相似度阈值越高,模型可以从知识库中获取到的知识越精确,但是可能会丢失部分信息,相似度阈值越低,模型可以从知识库中获取的知识越多,但是可能会引入无用的知识,对模型生成的回复造成干扰,建议使用默认的阈值。

0

6)单击选择文件,在默认类目中选中上传的示例文档,若有多个知识库文档,可以进行多选,单击下一步。在数据处理区域选择智能切分,单击导入完成。

0

0

7)当看到状态为解析完成时,表示知识库创建完成;单击右侧的查看切片即可查看切分完成的文本块。

0

4.创建RAG应用

完成知识库的创建后,我们可以创建一个 RAG 应用,用于回答私有知识:

1)单击左侧边栏的应用中心-我的应用,单击新增应用>直接创建。

0

0

2)应用信息如下,配置好后点击单击

  • 应用名称:示例名称-学校信息答疑机器人

  • 模型:在模型下拉列表可以查看并选择通义千问系列模型

  • 知识检索增强:开启,Prompt栏中会自动填充内容

  • 选择知识库:选择创建好的知识库(学校信息库)

0

0

5. 测试RAG应用

创建好 RAG 应用后,我们可以再次尝试提问,看看现在大模型是否能正确回答这个问题【西红市实验十小一年二班的班主任是谁?】。

1)在右侧边栏体验窗区域,切换为发布版。在输入框进行提问 西红市实验十小一年二班的班主任是谁?

0

可以看到,开启知识检索增强的应用已经能够成功回答该问题了。

6.发布RAG应用

点击页面右上角的 “发布” 按钮,将智能体正式发布出去。

bailian-app-publish.png

发布完成后,我们就可以通过通过 API 与这个智能体应用进行对话了。接下来我们演示如何在 Spring Boot 应用中快速访问这个智能体应用。

二、SpringBoot+Spring AI Alibaba接入RAG应用

为了让 Spring Boot 应用访问百炼中发布的智能体应用,首先我们为应用加入 Spring AI Alibaba 依赖:

<dependency>`    `<groupId>com.alibaba.cloud.ai</groupId>`    `<artifactId>spring-ai-alibaba-starter</artifactId>`    `<version>${spring-ai-alibaba.version}</version>``</dependency>

其次,需要在百炼平台获取应用标识、模型apikey等信息:

spring:`  `ai:`    `dashscope:`      `agent:`        `app-id: put-your-app-id-here`      `api-key: ${AI_DASHSCOPE_API_KEY}
  • api-key,必填,访问模型服务的 key。

  • app-id,必填,每个百炼应用都有一个 id,用户唯一标识这个应用。

  • workspace-id,选填,默认使用默认业务空间,如果是在独立业务空间创建的应用则需要指定。

应用id

业务空间

bailian-app-workspace.png

Spring AI Alibaba 使用 DashScopeAgent 访问

示例代码:

public class BailianAgentRagController {`  `private DashScopeAgent agent;``   `  `@Value("${spring.ai.dashscope.agent.app-id}")`  `private String appId;``   `  `public BailianAgentRagController(DashScopeAgentApi dashscopeAgentApi) {`    `this.agent = new DashScopeAgent(dashscopeAgentApi);`  `}``   `  `@GetMapping("/bailian/agent/call")`  `public String call(@RequestParam(value = "message") String message) {`    `ChatResponse response = agent.call(new Prompt(message, DashScopeAgentOptions.builder().withAppId(appId).build()));`    `AssistantMessage app_output = response.getResult().getOutput();`    `return app_output.getContent();`  `}``}

测试效果

零基础如何学习AI大模型

领取方式在文末

为什么要学习大模型?

学习大模型课程的重要性在于它能够极大地促进个人在人工智能领域的专业发展。大模型技术,如自然语言处理和图像识别,正在推动着人工智能的新发展阶段。通过学习大模型课程,可以掌握设计和实现基于大模型的应用系统所需的基本原理和技术,从而提升自己在数据处理、分析和决策制定方面的能力。此外,大模型技术在多个行业中的应用日益增加,掌握这一技术将有助于提高就业竞争力,并为未来的创新创业提供坚实的基础。

大模型典型应用场景

AI+教育:智能教学助手和自动评分系统使个性化教育成为可能。通过AI分析学生的学习数据,提供量身定制的学习方案,提高学习效果。
AI+医疗:智能诊断系统和个性化医疗方案让医疗服务更加精准高效。AI可以分析医学影像,辅助医生进行早期诊断,同时根据患者数据制定个性化治疗方案。
AI+金融:智能投顾和风险管理系统帮助投资者做出更明智的决策,并实时监控金融市场,识别潜在风险。

这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。

大模型就业发展前景

根据脉脉发布的《2024年度人才迁徙报告》显示,AI相关岗位的需求在2024年就已经十分强劲,TOP20热招岗位中,有5个与AI相关。
在这里插入图片描述字节、阿里等多个头部公司AI人才紧缺,包括算法工程师、人工智能工程师、推荐算法、大模型算法以及自然语言处理等。
在这里插入图片描述
除了上述技术岗外,AI也催生除了一系列高薪非技术类岗位,如AI产品经理、产品主管等,平均月薪也达到了5-6万左右。
AI正在改变各行各业,行动力强的人,早已吃到了第一波红利。

最后

大模型很多技术干货,都可以共享给你们,如果你肯花时间沉下心去学习,它们一定能帮到你!

大模型全套学习资料领取

如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

部分资料展示

一、 AI大模型学习路线图

整个学习分为7个阶段
在这里插入图片描述
请添加图片描述

二、AI大模型实战案例

涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、视频和书籍PDF合集

从入门到进阶这里都有,跟着老师学习事半功倍。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、LLM面试题

在这里插入图片描述
在这里插入图片描述

五、AI产品经理面试题

在这里插入图片描述

六、deepseek部署包+技巧大全

在这里插入图片描述

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~
在这里插入图片描述

### 关于 Spring AI 与 Neo4j RAG 集成 对于基于 Spring Boot 构建的应用程序而言,集成了人工智能模块(如 qwen 或其他 AI 组件)以及图数据库 Neo4j 可以为开发者提供强大的功能组合。当涉及到将这些技术栈结合起来时,特别是针对 Neo4j 的记录聚合图形(RAG),可以利用 Spring Data Neo4j 来简化操作。 #### 使用 Spring Boot 3.x 和 JDK 17 进行配置[^2] 为了实现这一目标,在 `pom.xml` 文件中定义父项目如下: ```xml <parent> <artifactId>springboot-demo</artifactId> <groupId>com.et</groupId> <version>1.0-SNAPSHOT</version> </parent> ``` 接着引入必要的依赖项来支持 Spring Data Neo4j 和所选的人工智能库。例如,假设选择了 Timefold Solver 作为优化求解器,则可以在 `pom.xml` 中添加相应的 Maven 依赖关系。 #### 创建应用程序入口类 创建一个启动类用于加载应用上下文并初始化服务组件: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### 定义实体模型和服务层逻辑 通过继承自 `org.springframework.data.neo4j.repository.Neo4jRepository` 接口的方式定义数据访问对象 (DAO),从而能够方便地执行 CRUD 操作以及其他查询方法。同时开发业务处理的服务接口及其具体实现。 #### 整合 AI 功能到现有流程里 如果要加入像 Qwen 这样的自然语言理解能力或其他形式的机器学习算法,可以通过 RESTful API 调用来获取预测结果或者解析输入文本的意义;也可以考虑直接嵌入本地运行的 ML/DL 库来进行更高效的计算任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值