# agent **Repository Path**: ruixinliu/agent ## Basic Information - **Project Name**: agent - **Description**: 互联网软件开发课程,创建智能体应用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-12 - **Last Updated**: 2026-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## AI 智能旅行规划助手 ![欢迎页](./assets/欢迎页.png) 这是一个基于大语言模型(LLM)和检索增强生成(RAG)技术的智能旅行规划平台。项目集成了**多模态对话、知识库检索、多轮会话管理**等核心功能,旨在为用户提供个性化、专业化的旅行建议和行程规划服务。 本项目采用**前后端分离架构**,前端基于 Vue 3 开发,后端基于 Spring Boot 与 FastAPI 构建。系统支持 **Docker 一键自动化部署**,可快速构建包含数据库、AI 检索服务及前后端在内的完整运行环境。 --- ### 🌟 核心功能 #### 1. 智能多轮对话 - **专业旅行建议**:基于 DeepSeek-V3.2 模型,提供目的地推荐、行程规划、预算估算、文化常识等服务。(注:由于 DeepSeek-V3.2 模型具有深度思考过程,**生成回复可能需要耐心等待**) - **上下文理解**:支持长对话记忆,AI 能够理解上下文,保持对话的连贯性。 - **Markdown 渲染**:回复内容支持 Markdown 格式,包括结构化列表、代码块高亮及表格展示。 - **对话导出**:支持将当前对话记录一键导出为文本文件(.txt),方便用户保存和离线查看。 - **快捷问题入口**:首页提供“目的地推荐”、“行程规划”等常用问题快捷入口,点击即可快速开启专业对话。 ![常规对话](./assets/常规对话.png) #### 2. 多模态视觉分析 - **图片深度识别**:使用 Qwen3-VL-8B 视觉模型,用户可上传景点照、地图、票据等图片。 - **图文结合交互**:AI 能够结合上传的图片内容与文字描述进行综合分析,例如“识别这张图里的建筑并帮我规划去那里的路线”。 ![图片对话](./assets/图片对话.png) #### 3. RAG 知识库检索增强 - **文档上传**:支持 PDF、Word (.docx)、Markdown、TXT 等多种格式的文档。 - **语义搜索**:采用 **BGE-small-zh** 中文语义模型进行向量化,结合 **FAISS** 向量数据库实现精准的语义片段检索。 - **知识库辅助生成**:AI 会优先检索用户上传的私有攻略或行程文档,确保回答的准确性和个性化。 - **用户数据隔离**:每个用户的知识库完全独立,确保数据安全与隐私。 ![RAG对话](./assets/RAG对话.png) - **下面给出一个图片+文档的综合对话案例:** ![综合对话](./assets/综合对话.png) #### 4. 完善的用户与会话管理 - **用户账号体系**:支持用户注册、登录功能,通过 JWT(JSON Web Token)实现安全的身份验证与鉴权。 - **数据隐私隔离**:严格的权限控制,确保不同用户之间的对话记录、上传的知识库文档及个人资料完全隔离。 - **会话持久化与管理**:自动保存历史对话,支持会话的新建、切换及智能标题生成(基于首条消息内容)。 - **个人资料维护**:支持用户查看并更新个人基本信息。 ![登录页](./assets/登录页.png) --- ### 🛠 技术架构 项目采用前后端分离的微服务架构,结合 Python AI 侧边服务: #### 前端 (Frontend) - **框架**:Vue 3 (Composition API) - **状态管理**:Pinia - **UI 组件库**:Element Plus - **工具链**:Vite + Axios + Vue Router - **内容渲染**:Marked + Highlight.js #### 后端 (Backend) - **核心框架**:Spring Boot 3.2.0 - **持久层**:Spring Data JPA + Hibernate - **数据库**:MySQL 8.0 - **安全认证**:JWT (JSON Web Token) - **AI 调度**:通过 Java 进程调用 Python 脚本实现与 ModelScope API 的交互 #### AI 检索服务 (RAG Service) - **框架**:FastAPI (Python) - **向量检索**:FAISS - **嵌入模型**:BAAI/bge-small-zh-v1.5 - **文档处理**:PyPDF2, python-docx #### AI 模型集成 - **LLM**:DeepSeek-V3.2 (ModelScope 提供) - **Vision LLM**:Qwen-VL-8B (ModelScope 提供) --- ### 🚀 快速部署 (Docker 一键部署) 项目支持使用 Docker Compose 快速构建和启动全量服务。 #### 前置要求 - 已安装 Docker 和 Docker Compose。 - 拥有 ModelScope API Key([获取地址](https://www.modelscope.cn/))。 #### 部署步骤 1. **克隆仓库** ```bash git clone cd agent ``` 2. **配置环境变量** 编辑根目录下的 `docker-compose.yml`,在 `backend` 服务的 `environment` 部分填入您的 API Key: ```yaml AI_MODEL_API_KEY: "您的_MODELSCOPE_API_KEY" ``` 3. **一键启动** ```bash docker compose up -d ``` 4. **访问应用** - 前端门户:`http://localhost:3000` - 后端接口:`http://localhost:8080` - RAG 服务:`http://localhost:8801` 5. **执行效果** ![docker部署效果](./assets/docker部署效果.png) --- ### 🔧 手动开发环境配置 如果需要进行二次开发,可以按照以下步骤手动启动: #### 1. 数据库准备 创建名为 `travel_agent` 的数据库,并导入 `database/init/01-schema.sql` 中的表结构。 #### 2. RAG 服务启动 (Python 3.9+) ```bash cd rag-service pip install -r requirements.txt python main.py ``` #### 3. 后端启动 (JDK 17+) 确保本地已安装 Python 并安装 `openai` 库(用于脚本调用): ```bash pip install openai ``` 修改 `backend/src/main/resources/application.yml` 中的数据库及 API 配置,然后运行: ```bash cd backend mvn spring-boot:run ``` #### 4. 前端启动 (Node.js 18+) ```bash cd frontend npm install npm run dev ``` --- ### 📂 项目结构 ```text agent/ ├── frontend/ ## Vue 3 前端源码 │ ├── src/ ## 核心代码 (api, views, stores) │ └── Dockerfile ├── backend/ ## Spring Boot 后端源码 │ ├── src/main/java/ ## Java 业务逻辑 │ ├── scripts/ ## AI 模型交互 Python 脚本 │ └── Dockerfile ├── rag-service/ ## FastAPI RAG 服务 │ ├── main.py ## 检索逻辑实现 │ ├── bge-small-zh/ ## 本地向量模型 │ └── Dockerfile ├── database/ ## 数据库初始化脚本 ├── RAG文档及多模态图片参考/ ## RAG 文档及多模态图片示例参考 └── docker-compose.yml ## 容器编排配置 ``` --- ### 📝 核心接口说明 | 模块 | 路径 | 方法 | 功能描述 | | :--- | :--- | :--- | :--- | | **用户** | `/api/user/login` | POST | 用户登录并获取 Token | | **对话** | `/api/chat/messages` | POST | 发送图文消息(支持流式响应) | | **知识库** | `/api/kb/upload` | POST | 上传 RAG 知识库文件 | | **会话** | `/api/chat/sessions` | GET | 获取用户历史会话列表 | --- ### 📜 许可证 本项目采用 [MIT License](LICENSE) 开源协议。