欢迎光临
我们一直在努力

从零开始做一个高校课程资料 RAG Agent 问答系统(一)项目搭建

从零开始做一个高校课程资料 RAG Agent 问答系统

大模型解答专业课知识点幻觉频发、脱离教材?计算机毕设选题内卷,不想做老旧管理系统?零基础想学RAG开发,看不懂架构、跑不通项目?

本专栏纯零基础、校园专属、全流程闭环、可答辩可商用,手把手搭建高校课程资料RAG Agent问答系统,一套项目搞定自学备考、高分毕设、求职加分、校园副业四大核心需求。

🔥专栏核心差异化优势
✅校园垂直适配:兼容课件PPT、专业课PDF、历年真题、课堂笔记等全格式校内资料,贴合教学答疑逻辑
✅彻底克制幻觉:问答溯源校内原始资料,自带文档页码来源,答案严谨合规,杜绝AI编造考点错题
✅低门槛上手:弱化冗余理论,逐行代码实操,Python基础即可学完,从环境搭建到部署上线一站式教学
✅项目复用价值高:1. 自用备考:私人AI专业课助教,考点答疑、真题解析、章节梳理一键完成。2. 高分毕设:2026优选AI选题,创新点充足,论文易撰写、答辩通过率高。3. 求职赋能:掌握混合检索、Agent调度、幻觉抑制工业方案,补齐大模型岗位项目经验。4. 副业变现:可复刻院系/班级知识库,承接校内AI答疑系统定制接单

📚Full-Process Technical Chain链路
学术文档降噪处理→专属语义切片→向量库部署→混合检索优化→RAG幻觉优化→Agent智能问答→前端可视化搭建→项目部署→毕设赋能→系统迭代扩容

👥适配人群
💡专栏配套福利

  • 计算机本硕学生:搞定毕设、课程大作业、面试项目
  • AI零基础开发者:快速落地RAG+Agent成品项目
  • 校内师生:搭建班级/院系专属课程AI知识库
  • AI求职者、副业从业者:积累垂直项目、拓展校园定制接单业务

附赠全套可运行源码、课程资料包、毕设模板、报错排错手册,全程伴学答疑,省去全网找代码、调试踩坑时间。


1. 项目定位

这个项目的核心不是训练一个大模型,而是把大模型能力接入真实教学业务场景。

完整目标流程如下:

教师上传课程资料
-> 系统解析资料
-> 系统把资料切成小片段
-> 学生提出问题
-> 系统先从资料里找相关内容
-> 再基于找到的资料生成回答
-> 返回答案和出处

这就是 RAG 的基本流程。

RAG 是 Retrieval-Augmented Generation,中文常译为检索增强生成。简单说,就是先检索资料,再生成回答。

普通大模型问答:

学生提问
-> 大模型凭自己的知识回答

RAG 问答:

学生提问
-> 系统从课程资料里找相关片段
-> 把相关片段交给大模型
-> 大模型基于这些资料回答
-> 返回答案和出处

RAG 的价值是让回答有依据,减少幻觉。


2. Agent、RAG、LLM 的关系

2.1 LLM 是什么

LLM 是 Large Language Model,大语言模型。

常见例子包括 GPT、Claude、Gemini、通义千问、DeepSeek、Kimi 等。

LLM 负责理解和生成自然语言。但是 LLM 不一定知道你的课程资料、你的实验指导书、你的课堂要求,也可能编造内容。

2.2 RAG 是什么

RAG 让大模型先看你的资料,再回答问题。

在教育场景里,它解决的问题是:

  • 学生问的问题必须基于课程资料回答。
  • 回答需要附带出处。
  • 资料不足时不能乱编。
  • 教师可以控制知识来源。

2.3 Agent 是什么

Agent 比普通问答更进一步。

普通问答系统主要是:

你问一句,它答一句。

Agent 更像是:

你给一个任务,它会拆步骤、调工具、执行流程。

例如以后可以让系统做:

帮我分析本章课程资料,生成 10 道选择题、5 道简答题,并整理成 Word。

一个 Agent 可能会执行:

理解任务
-> 检索课程资料
-> 调用大模型生成题目
-> 调用文档工具生成 Word
-> 返回下载链接

当前项目还不是完整 Agent。当前项目是 RAG 后端 MVP,是后续 Agent 化的基础。


3. 当前项目技术栈

当前后端使用 Python 技术栈:

Python
FastAPI
Uvicorn
SQLAlchemy
SQLite
Swagger UI
本地文件存储 uploads

3.1 Python

Python 是项目的主要编程语言。

注意:课程内容是 Java Web,但系统本身用 Python 写。

也就是说:

系统服务对象:Java Web 课程
系统开发语言:Python

3.2 FastAPI

FastAPI 是 Python Web API 框架。

它负责定义接口,例如:

GET /api/health
POST /api/documents
GET /api/documents
DELETE /api/documents/{document_id}
POST /api/chat/ask

类比 Java:

FastAPI 类似 Spring MVC / Spring Boot Web

3.3 Uvicorn

Uvicorn 是 ASGI Web 服务器。

它负责把 FastAPI 应用跑起来,监听浏览器或客户端发来的 HTTP 请求。

类比 Java:

Uvicorn 类似 Tomcat / Netty
FastAPI 类似 Spring MVC

启动命令:

uvicorn app.main:app –reload

这条命令的含义:

uvicorn 启动 Uvicorn 服务器
app.main 找 backend/app/main.py 这个模块
:app 使用 main.py 里的 app 变量
–reload 开发模式,代码改了自动重启

3.4 Swagger UI

浏览器打开:

http://127.0.0.1:8000/docs

这个页面就是 Swagger UI。

它是后端接口文档和接口测试页面。它能让你不用写前端,也不用 Postman,就能直接测试接口。

3.5 SQLite

SQLite 是本地轻量级数据库。

它不需要单独启动数据库服务,也不需要像 MySQL 那样安装服务端。Python 标准库自带 SQLite 支持,所以当前项目可以直接使用。

当前项目里:

原始上传文件 -> 保存到 backend/uploads 目录
文档元数据 -> 保存到 SQLite
解析后的文本切块 -> 保存到 SQLite
问答历史 -> 保存到 SQLite

所以,上传的文件本体不是直接塞进 SQLite。SQLite 主要保存文件信息、解析文本、切块和问答记录。


4. 项目目录结构

项目根目录:

E:\\CodeX\\agent

主要目录:

agent/
backend/
app/
api/
core/
models/
schemas/
services/
main.py
tests/
pyproject.toml
README.md
.env.example
docs/
superpowers/
tutorials/
.gitignore

4.1 backend

backend 是后端项目目录,包含 FastAPI 应用代码、数据库模型、业务服务、API 路由、测试代码和 Python 依赖配置。

4.2 app/main.py

入口文件:

backend/app/main.py

核心作用:

  • 创建 FastAPI 应用。
  • 注册健康检查接口。
  • 注册文档接口。
  • 注册问答接口。

示例结构:

from fastapi import FastAPI

from app.api.chat import router as chat_router
from app.api.documents import router as documents_router

def create_app() > FastAPI:
app = FastAPI(title="Java Web RAG Assistant", version="0.1.0")

@app.get("/api/health")
def health() > dict[str, str]:
return {"status": "ok", "service": "java-web-rag-assistant"}

app.include_router(documents_router)
app.include_router(chat_router)
return app

app = create_app()

这里的 def create_app() -> FastAPI: 表示定义一个函数,返回 FastAPI 类型的对象。

类比 Java:

public static FastAPI createApp() {
...
}

Python 里的 -> FastAPI 是返回值类型标注,不是 lambda。

4.3 app/api

负责定义 HTTP 接口。

当前主要文件:

documents.py 文档上传、文档列表、删除文档
chat.py 学生提问接口

4.4 app/core

负责基础配置。

当前主要文件:

config.py 读取配置,例如数据库地址、上传目录
database.py 创建数据库连接、初始化表

4.5 app/models

负责数据库表模型。

当前主要文件:

document.py 上传文档表
chunk.py 文本切块表
chat.py 会话和消息表
user.py 用户表,当前 MVP 先预留

4.6 app/schemas

负责接口请求和响应结构。Swagger 页面底部的 Schemas 就来自这里。

例如:

ChatAskRequest 提问请求结构
ChatAskResponse 提问响应结构
DocumentRead 文档返回结构

你可以把它理解成 Java 里的 DTO。

4.7 app/services

负责业务逻辑。

当前主要文件:

storage.py 保存上传文件
parsers.py 解析 PDF、DOCX、PPTX、Markdown、代码等
chunking.py 文本切块
ingestion.py 文档入库流程
retrieval.py 本地检索
prompt.py Prompt 构造
chat.py 问答服务

赞(0)
未经允许不得转载:171主机测评 » 从零开始做一个高校课程资料 RAG Agent 问答系统(一)项目搭建
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址