# agri-ai-qa-system **Repository Path**: CodingKeep/agri-ai-qa-system ## Basic Information - **Project Name**: agri-ai-qa-system - **Description**: 基于 SpringBoot 3 + LangChain4j + Vue 3 的 AI 农产品知识智能问答系统(RAG + Tool Calling + RBAC) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-31 - **Last Updated**: 2026-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🌾 AI 农产品知识智能问答系统 > 基于 **Spring Boot 3 + LangChain4j + Vue 3** 的农技知识智能问答 Agent 平台,面向农业生产、农技咨询、病虫害问答、知识检索与专家审核等场景,集成 **RAG 检索增强生成、Tool Calling 工具调用、RBAC 权限管理** 等核心能力。 ## ✨ 功能特性 - 🤖 **AI 智能问答**:LangChain4j 接入 OpenAI 兼容大模型(Ollama / LM Studio 等),支持多轮对话,无模型环境可开启 Mock 兜底演示 - 📚 **知识库 RAG**:文档上传、自动切片、内容审核、关键词检索增强回答(可扩展 pgvector 向量检索) - 🔧 **Tool Calling**:内置 7 个农业领域工具(作物查询、病虫害诊断、天气查询等),完整记录工具调用日志 - 👨‍🌾 **专家咨询**:农户提问 → 专家回复 → 状态流转的完整咨询闭环 - 📋 **AI 报告 / 农事计划**:基于会话记录与工具调用结果自动生成分析报告与农事任务计划 - 🔐 **RBAC 权限体系**:用户 / 角色 / 菜单 / 接口权限,JWT 认证,前后端双重校验 - 📊 **数据看板**:Dashboard + ECharts 数据可视化 - 📝 **日志审计**:操作日志、工具调用日志全程记录 ## 🏗️ 技术栈 ### 后端 | 技术 | 说明 | 版本 | |------|------|------| | Java | 开发语言 | 17 | | Spring Boot | 应用框架 | 3.2.x | | LangChain4j | AI Agent / RAG 框架 | - | | MyBatis-Plus | ORM 框架 | - | | MySQL | 关系型数据库 | 8.0 | | Redis | 缓存 / Token 存储 | 7.x | | Knife4j | API 文档 | - | | JWT | 认证鉴权 | - | ### 前端 | 技术 | 说明 | |------|------| | Vue 3 | 组合式 API | | Vite | 构建工具 | | TypeScript | 类型安全 | | Pinia | 状态管理 | | Vue Router | 路由(登录守卫 + 动态菜单路由) | | Axios | HTTP 请求(JWT Bearer Token) | | Arco Design Vue | UI 组件库 | | ECharts | 数据可视化 | ## 📁 项目结构 ``` ├── backend/ # 后端服务 │ ├── src/main/java/com/agri/agent/ │ │ ├── common/ # 公共模块(统一返回、配置、安全、异常、工具类) │ │ ├── modules/ │ │ │ ├── auth/ # 登录注册 JWT │ │ │ ├── system/ # 用户 / 角色 / 权限 RBAC │ │ │ ├── knowledge/ # 知识库文档与切片 │ │ │ ├── ai/ # RAG 问答、Tool Calling、Agent │ │ │ ├── consultation/ # 专家咨询 │ │ │ ├── crop/ # 农作物管理 │ │ │ ├── pest/ # 病虫害管理 │ │ │ ├── report/ # AI 报告 │ │ │ ├── task/ # 农事计划 │ │ │ ├── dashboard/ # 数据看板 │ │ │ └── log/ # 操作 / 工具调用日志 │ │ └── AgriAgentApplication.java │ └── src/main/resources/ │ ├── prompts/ # AI 提示词模板 │ └── sql/ # 建库脚本与初始化数据 ├── frontend/ # 前端工程 │ └── src/ │ ├── api/ # API 接口封装 │ ├── components/ # 公共组件 │ ├── layout/ # 布局组件 │ ├── router/ # 路由配置 │ ├── stores/ # Pinia 状态 │ └── views/ # 页面视图 └── README.md ``` ## 🚀 快速启动 ### 环境要求 - JDK 17+、Maven 3.8+ - Node.js 18+、npm 9+ - MySQL 8.0、Redis 7.x - (可选)Ollama / LM Studio 等 OpenAI 兼容大模型服务 ### 1. 基础设施 ```bash cd backend docker-compose up -d mysql redis ``` 或手动创建数据库并执行 SQL: ```bash mysql -u root -p < backend/src/main/resources/sql/schema.sql mysql -u root -p < backend/src/main/resources/sql/data.sql ``` ### 2. 后端 编辑 `backend/src/main/resources/application-dev.yml` 配置数据库与 Redis 连接,AI 配置见 `application.yml`: ```yaml ai: mock-enabled: true # 无大模型时使用 Mock 演示 base-url: http://localhost:11434/v1 model-name: qwen2.5:7b ``` 启动: ```bash cd backend mvn clean install -DskipTests mvn spring-boot:run ``` - 服务地址:http://localhost:8080 - API 文档:http://localhost:8080/doc.html ### 3. 前端 ```bash cd frontend npm install npm run dev ``` 访问:http://localhost:5173 (`/api` 自动代理到后端 8080) ## 👥 演示账号(密码均为 123456) | 用户名 | 角色 | |--------|------| | admin | 系统管理员 | | farmer01 | 普通农户 | | expert01 | 农技专家 | | auditor01 | 内容审核员 | | teacher01 | 教师 | | student01 | 学生 | ## 📄 更多文档 - 后端详细说明:[backend/README.md](backend/README.md) - 前端详细说明:[frontend/README.md](frontend/README.md) ## 📜 开源协议 本项目仅供学习交流使用。