尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Agent智能教育与个性化学习系统完整开发教程

Agent智能教育与个性化学习系统完整开发教程 文档适用技术博主专栏、B 站配套文稿、内部实训讲义技术栈Python LangGraph 多智能体 LangChain RAG FastAPI 简易 Web 前端实现目标学生学习画像识别、薄弱知识点诊断、自适应学习路线规划、AI 智能助教答疑目录项目概述与核心能力系统架构设计开发环境准备项目代码实现全模块源码项目启动与测试流程运行效果演示功能拓展与私有化改造方案配套绘图提示词教程配图专用1. 项目概述与核心能力传统在线教育系统固定课件、统一习题无法适配每个学生学习短板。基于大模型 AgentRAG 构建个性化学习系统依靠智能体分工实现自适应教育。系统核心功能✅ 学生学习画像持久管理记录知识点掌握程度、错题、学习历史✅ 诊断 Agent自动识别学生知识薄弱点✅ RAG 知识库教材、知识点本地向量检索减少大模型幻觉✅ 路径规划 Agent生成专属个性化学习方案✅ 导学答疑 Agent知识点讲解、智能出题、错题解析✅ HTTP 接口服务支持 Web 前端对接✅ 模块化架构可拓展题库、多模态识图做题、学习报告智能体分工诊断 Agent分析学生提问 / 答题记录定位薄弱知识点知识库检索模块RAG 获取教学素材学习规划 Agent制定阶梯式学习路线导学 Agent对话答疑、习题生成2. 系统架构设计学生Web前端 ↔ FastAPI接口服务 ↔ LangGraph教育智能Agent集群 ↙️ ↘️ 学生学习画像数据库 教材习题RAG向量库 架构图生成提示词直接复制 AI 绘图手绘风格手绘简约线稿Agent智能教育个性化学习系统架构图白底黑色线条思维导图布局模块之间使用箭头连接。模块Web前端、FastAPI网关、多子Agent集群、学生学习画像库、RAG向量知识库。无阴影、无多余装饰适合技术教程配图 Agent 工作流程图提示词横向手绘流程图教育多Agent流转流程节点依次用户输入 → 诊断Agent → RAG知识库检索 → 学习路径规划Agent → AI导学答疑 → 返回结果箭头串联极简手绘白底3. 开发环境准备3.1 依赖安装pipinstalllangchain langgraph langchain-openai chromadb fastapi uvicorn pydantic python-multipart3.2 项目目录结构edu-agent-system/ ├── config.py # 大模型全局配置 ├── student_profile.py # 学生画像管理模块 ├── edu_rag.py # RAG教学知识库 ├── edu_agent.py # LangGraph智能体核心 ├── main.py # FastAPI后端服务 └── index.html # 前端交互页面4. 完整代码实现4.1 配置文件config.py# config.pyimportos# LLM配置兼容OpenAI、通义千问、DeepSeek等接口LLM_API_KEYos.getenv(LLM_API_KEY,填写你的密钥)LLM_BASE_URLhttps://api.openai.com/v1LLM_MODELgpt-4o-mini# 向量数据库存储路径VECTOR_DB_PATH./edu_chroma_db4.2 学生画像模块student_profile.py维护学生知识点掌握度、错题、学习记录# student_profile.pyfrompydanticimportBaseModelfromtypingimportDict,ListclassStudentProfile(BaseModel):student_id:strname:str# 知识点名称:掌握程度 0~1knowledge_mastery:Dict[str,float]wrong_questions:List[str]learning_history:List[str]classProfileManager:def__init__(self):self.profiles{}defcreate_profile(self,sid:str,name:str)-StudentProfile:profileStudentProfile(student_idsid,namename,knowledge_mastery{},wrong_questions[],learning_history[])self.profiles[sid]profilereturnprofiledefupdate_knowledge(self,sid:str,knowledge:str,score:float):更新知识点掌握程度限制0~1区间profileself.profiles[sid]profile.knowledge_mastery[knowledge]max(0.0,min(1.0,score))defadd_wrong_question(self,sid:str,question:str):记录错题self.profiles[sid].wrong_questions.append(question)# 全局画像管理器profile_managerProfileManager()4.3 RAG 教学知识库edu_rag.py将教材文本向量化实现知识点检索为 Agent 提供参考资料# edu_rag.pyfromlangchain_openaiimportOpenAIEmbeddingsfromlangchain_chromaimportChromafromlangchain.text_splitterimportRecursiveCharacterTextSplitterfromconfigimportVECTOR_DB_PATH,LLM_API_KEY,LLM_BASE_URL embeddingOpenAIEmbeddings(api_keyLLM_API_KEY,base_urlLLM_BASE_URL)text_splitterRecursiveCharacterTextSplitter(chunk_size400,chunk_overlap60)# 初始化向量数据库vector_storeChroma(persist_directoryVECTOR_DB_PATH,embedding_functionembedding)defload_edu_text(text:str):导入教材知识点文本进入向量库chunkstext_splitter.split_text(text)vector_store.add_texts(chunks)defsearch_knowledge(query:str,top_k3):根据问题检索相关教学资料docsvector_store.similarity_search(query,ktop_k)return\n.join([doc.page_contentfordocindocs])if__name____main__:# 示例教学素材可替换为各科教材文本textbook 一元一次方程含有一个未知数未知数次数为1的等式。 解题步骤移项、合并同类项、系数化为1。 易错点移项必须变号很多学生容易忽略符号。 load_edu_text(textbook)print(知识库初始化完成)4.4 LangGraph 教育智能体核心edu_agent.py多智能体串行工作流实现诊断、检索、规划、答疑完整链路# edu_agent.pyfromlanggraph.graphimportStateGraph,START,ENDfromlangchain_openaiimportChatOpenAIfromtypingimportTypedDict,Annotatedimportoperatorfromconfigimport*fromedu_ragimportsearch_knowledgefromstudent_profileimportprofile_manager llmChatOpenAI(api_keyLLM_API_KEY,base_urlLLM_BASE_URL,modelLLM_MODEL)# Agent全局状态容器classAgentState(TypedDict):student_id:struser_input:strweak_knowledge:Annotated[list,operator.add]rag_context:strlearning_plan:stranswer:str# 节点1薄弱知识点诊断Agentdefdiagnostic_agent(state:AgentState):promptf 你是教育诊断专家根据学生输入内容识别学生薄弱知识点。 只输出知识点名称一行一个不要多余描述。 学生输入{state[user_input]}resllm.invoke(prompt)weak_points[x.strip()forxinres.content.split(\n)ifx.strip()]return{weak_knowledge:weak_points}# 节点2RAG知识点检索defretrieve_knowledge(state:AgentState):query .join(state[weak_knowledge])contextsearch_knowledge(query)return{rag_context:context}# 节点3个性化学习路径规划Agentdefplan_agent(state:AgentState):promptf 根据学生薄弱知识点{state[weak_knowledge]}参考教学资料{state[rag_context]}生成简短、可执行的个性化学习路线分步骤描述。 planllm.invoke(prompt).contentreturn{learning_plan:plan}# 节点4AI导学答疑Agentdeftutor_agent(state:AgentState):profileprofile_manager.profiles.get(state[student_id])promptf 【学生学习档案】{profile.model_dump_json()}薄弱知识点{state[weak_knowledge]}教学参考资料{state[rag_context]}个性化学习方案{state[learning_plan]}学生提问{state[user_input]}你的身份AI学科教师。语言通俗易懂讲解知识点适当布置练习题巩固。 replyllm.invoke(prompt).contentreturn{answer:reply}# 构建智能体流程图defbuild_edu_agent():graphStateGraph(AgentState)graph.add_node(diagnostic,diagnostic_agent)graph.add_node(retrieve,retrieve_knowledge)graph.add_node(plan,plan_agent)graph.add_node(tutor,tutor_agent)# 流转逻辑graph.add_edge(START,diagnostic)graph.add_edge(diagnostic,retrieve)graph.add_edge(retrieve,plan)graph.add_edge(plan,tutor)graph.add_edge(tutor,END)returngraph.compile()edu_graphbuild_edu_agent()4.5 FastAPI 后端服务main.py提供 HTTP 接口连接前端与智能体系统# main.pyfromfastapiimportFastAPIfrompydanticimportBaseModelfromedu_agentimportedu_graphfromstudent_profileimportprofile_manager appFastAPI(titleAgent个性化学习系统接口)classChatRequest(BaseModel):student_id:strstudent_name:strmessage:strapp.post(/api/edu_chat)asyncdefedu_chat(req:ChatRequest):# 自动创建学生档案ifreq.student_idnotinprofile_manager.profiles:profile_manager.create_profile(req.student_id,req.student_name)init_state{student_id:req.student_id,user_input:req.message,weak_knowledge:[],rag_context:,learning_plan:,answer:}resultedu_graph.invoke(init_state)return{reply:result[answer],weak_knowledge:result[weak_knowledge],personal_plan:result[learning_plan]}if__name____main__:importuvicorn uvicorn.run(main:app,host0.0.0.0,port8000,reloadTrue)4.6 前端页面index.html浏览器直接打开无需额外部署!DOCTYPEhtmlhtmllangzh-CNheadmetacharsetUTF-8titleAgent个性化学习助教/titlestyle.box{width:700px;margin:30px auto;}textarea{width:100%;height:100px;padding:8px;margin:8px 0;}input{width:100%;padding:8px;margin:8px 0;box-sizing:border-box;}button{padding:8px 20px;background:#2563eb;color:#fff;border:none;border-radius:6px;font-size:15px}#result{margin-top:20px;padding:16px;border:1px solid #ddd;border-radius:8px;white-space:pre-wrap;line-height:1.6;}/style/headbodydivclassboxh2Agent智能个性化学习系统/h2inputplaceholder学生IDidsidvaluestu001inputplaceholder学生姓名idsnamevalue小明textareaidmsgplaceholder输入你的学习问题例如一元一次方程移项总是符号出错/textareabuttononclicksendChat()发起学习咨询/buttondividresult/div/divscriptasyncfunctionsendChat(){constsiddocument.getElementById(sid).value;constsnamedocument.getElementById(sname).value;constmsgdocument.getElementById(msg).value;constresDivdocument.getElementById(result);resDiv.innerTextAI智能体思考中请稍候...;constrespawaitfetch(http://127.0.0.1:8000/api/edu_chat,{method:POST,headers:{Content-Type:application/json},body:JSON.stringify({student_id:sid,student_name:sname,message:msg})})constdataawaitresp.json();resDiv.innerText【薄弱知识点】${data.weak_knowledge.join(、)}\n【个性化学习方案】\n${data.personal_plan}\n\n【AI助教回答】\n${data.reply}}/script/body/html5. 项目启动与测试流程配置密钥修改config.py中的LLM_API_KEY如使用国内大模型同步修改LLM_BASE_URL初始化知识库python edu_rag.py执行后自动创建向量数据库文件夹启动后端服务python main.py服务地址http://127.0.0.1:8000打开前端直接双击index.html文件在浏览器打开测试输入示例一元一次方程移项经常符号搞错做题正确率很低6. 运行效果说明诊断 Agent 自动识别薄弱知识点一元一次方程移项规则RAG 检索教材知识点原文规划 Agent 输出分阶段学习计划导学 Agent 进行知识点讲解并生成练习题学生信息自动存入内存画像管理器⚠️ 当前学生画像保存在内存重启服务数据清空生产环境建议接入 SQLite/MySQL 持久化。7. 功能拓展与私有化改造方案7.1 短期优化使用 SQLite 持久化学生学习画像批量导入整本教材、题库文档到 RAG 知识库增加对话历史记录实现上下文长记忆增加知识点掌握度雷达图前端可视化7.2 私有化部署改造将 OpenAI 接口替换为开源模型Qwen、Llama3、DeepSeek修改edu_agent.py内 LLM 初始化代码适配 Ollama /vLLM 本地推理7.3 高阶拓展方向多模态 Agent拍照识别题目、图文讲解自动错题本、周期性学习周报难度自适应题库根据掌握度动态出题增加家长管理端、教师后台8. 全套教程配图提示词汇总系统整体架构图手绘简约线稿Agent智能教育个性化学习系统架构图白底黑色线条思维导图布局模块之间使用箭头连接。模块Web前端、FastAPI网关、多子Agent集群、学生学习画像库、RAG向量知识库。无阴影、无多余装饰适合技术教程配图LangGraph 智能体工作流图横向手绘流程图教育多Agent流转流程节点依次用户输入 → 诊断Agent → RAG知识库检索 → 学习路径规划Agent → AI导学答疑 → 返回结果箭头串联极简手绘白底系统界面效果图手绘UI草图AI个性化学习网页界面聊天对话框左侧知识点掌握情况面板右侧AI助教对话窗口简约黑白线稿技术教程展示图我把全部代码打包成可直接下载的完整项目目录结构封装为一键初始化脚手架压缩文本包含完整项目初始配置新建项目直接粘贴即可完成初始化适配前文代码与部署逻辑。需要的兄弟微信扫码添加我挨个发~
返回列表