Spring Boot 3+Spring AI 打造旅游智能体!集成阿里云通义千问,多轮对话 + 搜索 + PDF 生成撑全流程

项目介绍

随着人工智能技术的发展,特别是大型语言模型(LLM)的出现,为构建智能对话系统提供了新的可能。然而,单纯依靠LLM存在知识时效性、工具使用能力和上下文管理等问题。本项目旨在解决这些痛点,构建一个能够自主思考、规划和行动的智能体系统,为旅游领域提供全方位的智能服务。本项目是一个面向旅游领域的智能助手系统,通过整合大型语言模型(如阿里云通义千问)、知识检索增强、工具调用和多轮对话管理,为用户提供沉浸式的旅游规划和咨询体验。系统不仅能够回答旅游相关问题,还能主动调用各种工具(如网页搜索、PDF生成、文件操作等)来完成复杂任务,实现真正的智能代理功能。

项目亮点

  1. 智能体架构

通过抽象基础代理类和实现ReAct模式,构建了一个能够自主思考和行动的智能体系统。

  1. 工具调用系统的灵活设计

工具调用系统采用了统一的注册和调用机制,每个工具都实现了标准接口,并通过ToolRegistration进行统一管理。

  1. 高性能的RAG实现

在RAG系统设计中,我采用了PostgreSQL+pgvector作为向量数据库,相比纯内存向量数据库,这种方案在大规模数据集上表现更加稳定,且支持持久化存储。

  1. 流式响应机制

基于SSE(Server-Sent Events)的流式响应机制,使得用户可以实时看到智能体的思考和行动过程,而不需要等待整个任务完成。

系统架构设计

采用了模块化、分层的架构设计,确保系统的可扩展性和可维护性。

API层

负责处理HTTP请求,提供RESTful API接口

服务层

实现业务逻辑,协调各组件工作

智能体层

核心AI代理层,实现思考-行动循环

大语言模型

提供自然语言理解和生成能力

工具调用

扩展智能体能力的各种工具

知识检索增强

通过向量数据库增强模型回答质量

会话记忆

管理多轮对话上下文

技术栈

后端技术

Spring Boot 3.5.0、Spring AI 1.0.0、

阿里云通义千问 (Qwen-Plus)、PostgreSQL

Pgvector、Redis、MyBatis-Plus 3.5.12

Knife4j 4.5.0 (基于OpenAPI 3)、

Hutool 5.8.37、Lombok 1.18.38

iText 9.1.0、Jsoup 1.19.1

前端技术

Vue.js/React、

Element-Plus/Ant Design

Axios、Pinia/Redux

核心功能

后端

  1. 智能体系统 (Agent)

智能体是系统的核心,采用了ReAct(Reasoning and Acting)模式,通过"思考-行动"的循环来解决复杂问题。

  1. 工具调用系统 (Tools)

工具调用系统扩展了智能体的能力边界,使其能够与外部世界交互。

  1. RAG知识增强系统 (RAG)

RAG系统通过检索相关知识来增强模型回答,特别适合处理专业领域问题。

向量存储:使用PostgreSQL+pgvector存储文档向量

文档处理:支持多种格式文档的处理和分块

检索器:基于语义相似度检索相关文档片段

嵌入模型:将文本转换为向量表示

  1. 对话管理系统

会话状态管理:跟踪和维护对话状态

上下文记忆:使用Redis存储短期记忆

多轮对话支持:维护连贯的对话体验

  1. API接口系统

AgentController:智能体交互接口

AppController:应用核心功能接口

RagController:知识检索相关接口

前端

AI 聊天界面

通过响应式聊天界面与 AI 智能体交互

知识库管理

查看和管理 AI 使用的知识

设置与配置

自定义 AI 智能体的行为

用户认证

安全的登录系统

安装部署

  1. 后端安装

环境要求

JDK 21+、Maven 3.8+、Redis 6+

PostgreSQL 14+(已安装pgvector扩展)

克隆仓库

复制代码
git clone ai-agent.gitcd ai-agent

配置环境变量

创建 .env 文件并配置以下环境变量:​​​​​​​

复制代码
AI_DASHSCOPE_API_KEY=your_dashscope_api_keySEARCH_API_KEY=your_search_api_key

编译项目

复制代码
mvn clean package

运行应用

复制代码
java -jar target/ai-agent-0.0.1-SNAPSHOT.jar

2. 前端安装

复制代码
npm install

开发服务器

复制代码
npm run dev

生产构建

复制代码
npm run build

UI展示

相关推荐
Cosolar19 小时前
Chroma向量库面试学习指南
数据库·人工智能·面试·职场和发展·数据库架构
BUG指挥官19 小时前
Claude Code的自动化编程
人工智能
意图共鸣19 小时前
意图共鸣科技《认知智能白皮书》——感知与执行分离:认知架构(CA)如何重塑大模型底层结构
人工智能·架构
等一个人的@19 小时前
让数据自己开口:数睿通智库新增智能问数模块
人工智能·自然语言处理
ZGi.ai19 小时前
人工审查节点:让自动化工作流多一步人工把关
运维·人工智能·自动化·人机协同·智能体工作流·人工审查
橙淮19 小时前
Spring Bean作用域与生命周期全解析
java·spring
王莎莎-MinerU20 小时前
MinerU 深度技术解析:从架构原理到生产部署的全面指南
css·人工智能·自然语言处理·架构·ocr·个人开发
盘古信息IMS20 小时前
盘古信息IMS V6 8.0重磅发布:以薪火AI数智平台点燃离散制造数智化引擎
大数据·人工智能·制造
weilaieqi120 小时前
从音响制造到AI家庭娱乐生态:不见不散AI智能K歌音响亮相第二十届深圳国际金融博览会
人工智能·制造·娱乐
企服AI产品测评局20 小时前
Agent适配信创环境实测:企业级自动化如何实现国产操作系统与数据库全兼容?
运维·数据库·人工智能·ai·chatgpt·自动化