00. 智能实验室预约系统介绍
一、系统简介
项目并不是简单地调用一下大模型 API,而是从一个真实的业务系统出发,逐步接入 AI 能力,最终实现一个可以理解用户需求、查询业务数据并辅助完成实验室预约的 AI 应用。
最终项目技术栈:
前端:
Vue3 + Vite + Element Plus
后端:
Python + FastAPI + SQLAlchemy
数据库:
MySQL
AI:
LangChain
ChromaDB
RAG
LangGraph二、为什么选择这个项目?
很多同学学习 FastAPI 或 AI 应用开发时,经常会遇到一个问题:
学习了很多技术,但是不知道如何把它们组合到一个真实项目中。
例如:
学了 FastAPI
↓
会写 CRUD
学了 LangChain
↓
会调用大模型
学了 RAG
↓
会做知识库问答
学了 LangGraph
↓
会画工作流但是这些技术之间到底如何结合?
本课程将通过一个完整项目,把这些技术串联起来。
三、项目背景
假设学校拥有多个实验室:
人工智能实验室
机器人实验室
云计算实验室
软件工程实验室每个实验室拥有不同的:
实验设备
容纳人数
开放时间
使用规则学生如果想使用实验室,需要:
查看实验室
↓
了解实验室设备
↓
选择预约时间
↓
提交预约申请
↓
管理员审核传统预约系统中,用户需要自己完成这些操作。
而在本项目中,我们希望引入 AI 能力。
例如用户可以直接告诉系统:
我明天下午需要一个可以容纳 20 人的实验室。
AI 可以理解用户需求,并帮助用户查询符合条件的实验室。
再例如:
哪个实验室有 RTX4090?
AI 可以查询真实的实验室数据。
甚至最终可以实现:
帮我预约明天下午两点到五点的 AI 实验室。
AI 将自动完成:
理解用户需求
↓
提取预约信息
↓
检查实验室
↓
检查预约时间
↓
生成预约方案
↓
用户确认
↓
创建预约这就是我们最终要完成的:AI 智能实验室预约系统
四、项目开发路线
本课程不会一开始就直接进入 AI Agent 开发。
而是采用:
业务系统 → AI 能力 → AI Agent
这样的开发路线。
第一阶段:实验室预约业务系统
首先完成传统业务系统。
主要功能:
学生端
用户登录
实验室列表
实验室详情
实验室预约
我的预约
取消预约管理端
实验室管理
设备管理
预约审核
用户管理技术:
Vue3
+
FastAPI
+
SQLAlchemy
+
MySQL五、为什么先开发业务系统?
AI 并不是独立存在的。
如果我们希望 AI 可以帮助用户预约实验室,那么首先需要拥有一个完整的业务系统。
例如传统系统中已经存在:
查询实验室
查询实验室设备
查询可预约时间
创建预约
取消预约这些都是系统的业务能力。
后面 AI Agent 的作用,就是调用这些业务能力。
例如:
传统用户
点击按钮
↓
调用 API
↓
业务系统
↓
数据库AI 用户:
自然语言
↓
AI Agent
↓
调用业务工具
↓
业务系统
↓
数据库因此:
AI 并不是重新开发一套业务系统,而是为原有业务系统增加一个智能入口。
六、第二阶段:接入大模型
完成业务系统后,我们首先接入大模型。
实现一个简单的:AI 实验室助手
用户可以通过聊天的方式咨询实验室相关问题。
例如:
实验室开放到几点?
实验室有哪些设备?
如何预约实验室?
这一阶段主要学习:
大模型 API
Prompt
Message
AI 对话七、第三阶段:RAG 实验室知识库
但是我们很快会发现一个问题。
普通大模型并不知道我们学校实验室的具体规则。
例如:
实验室预约之后可以取消吗?
实验室设备损坏需要怎么办?
这些内容属于项目私有知识。
因此我们需要引入:RAG 检索增强生成
我们将实验室相关资料导入知识库:
实验室预约规则
实验室安全规范
设备使用规范
实验室管理制度整体流程:
用户问题
↓
检索相关知识
↓
ChromaDB
↓
获取相关文档
↓
大模型
↓
生成回答通过 RAG,让 AI 可以回答项目中的私有知识。
八、第四阶段:Tool Calling
有了 RAG 之后,AI 可以回答知识问题。
但是:
AI 仍然无法操作真实业务系统。
例如用户问:
现在有哪些实验室可以预约?
这个问题不能只通过 RAG 回答。
因为实验室状态是实时变化的。
所以我们需要让 AI 调用业务系统。
例如提供一个工具:
search_laboratory()AI 根据用户的问题,自动决定是否调用工具。
整体流程:
用户问题
↓
AI
↓
判断是否需要调用工具
↓
Tool Calling
↓
查询数据库
↓
返回真实数据
↓
AI 生成回答例如:
哪个实验室有 RTX4090?
AI:
调用查询实验室工具
↓
查询 MySQL
↓
获取实验室数据
↓
生成回答这一阶段,我们将学习:
LangChain
Tool
Tool Calling
Structured Output九、第五阶段:LangGraph 智能预约
当 AI 可以调用工具之后,我们进一步思考:
如果用户希望 AI 帮他完成预约呢?
例如:
帮我预约明天下午的实验室。
这个任务并不是简单调用一次工具。
AI 需要完成多个步骤:
用户请求
↓
提取预约信息
↓
判断信息是否完整
↓
查询实验室
↓
查询空闲时间
↓
推荐实验室
↓
等待用户确认
↓
创建预约这是一个典型的:
多步骤、有状态的业务流程。
因此我们引入:LangGraph
通过 LangGraph 构建 AI 工作流。
整体流程:
用户请求
↓
信息提取
↓
信息是否完整?
↙ ↘
否 是
↓ ↓
继续追问 查询实验室
↓
查询时间
↓
推荐方案
↓
用户确认
↓
创建预约最终实现:AI 智能预约 Agent
十、完整技术架构
最终项目架构如下:
Vue3
│
┌──────────┴──────────┐
│ │
▼ ▼
传统业务 API AI Chat
│ │
▼ ▼
FastAPI LangGraph
│ │
│ ┌──────┼──────┐
│ │ │ │
▼ ▼ ▼ ▼
Service Tool RAG Memory
│ │ │
└──────────────┼──────┘
│
┌────────┴────────┐
│ │
▼ ▼
MySQL ChromaDB十一、本课程最终学习内容
完成本课程后,你将掌握:
Python 后端开发
Python 基础语法
FastAPI
Pydantic
SQLAlchemy
JWT
MySQL
RESTful APIAI 应用开发
大模型 API
Prompt
LangChain
RAG
ChromaDB
Embedding
Retriever
Tool CallingAI Agent
Agent
LangGraph
State
Node
Edge
Conditional Edge
ToolNode
Human-in-the-loop十二、本课程最终项目演示
最终我们将实现这样的效果。
用户:
我明天下午需要一个可以容纳 20 人的实验室。
AI:
正在分析你的需求...
日期:明天
时间:下午
人数:20
正在查询实验室...
找到以下可预约实验室:
1. 人工智能实验室
容量:30人
可预约时间:14:00 - 18:00
2. 软件工程实验室
容量:25人
可预约时间:13:00 - 17:00用户:
帮我预约人工智能实验室。
AI:
预约信息确认:
实验室:人工智能实验室
日期:2026-xx-xx
时间:14:00 - 17:00
是否确认预约?用户确认后:
AI 调用预约工具
↓
业务系统
↓
MySQL
↓
创建预约成功十三、课程开发顺序
整个课程按照以下顺序进行:
第一部分
Python + FastAPI 基础
↓
第二部分
实验室预约业务系统
↓
第三部分
接入大模型
↓
第四部分
RAG 实验室知识库
↓
第五部分
Tool Calling
↓
第六部分
LangGraph
↓
第七部分
AI 智能预约 Agent十四、本课程的核心思想
希望大家在完成这个项目之后,不只是学会:
如何调用大模型 API。
更重要的是理解:如何让 AI 真正进入业务系统。
传统业务系统:
用户
↓
页面操作
↓
API
↓
Service
↓
DatabaseAI Agent:
用户自然语言
↓
AI 理解需求
↓
调用 Tool
↓
业务 Service
↓
DatabaseAI 并不是取代业务系统。
而是:
为传统业务系统提供了一种更加智能的交互方式。