LazyLLM端到端实战:用RAG+Agent实现自动出题与学习计划的个性化学习助手智能体
LazyLLM端到端实战用RAGAgent实现自动出题与学习计划的个性化学习助手智能体引言从“学什么”到“怎么学”你有没有遇到过这样的困境想学一门新知识但面对海量资料不知从何下手或者学完一章后想检测自己掌握程度却找不到合适的题目传统的学习方式往往是“一刀切”——同样的教材、同样的练习完全忽略了个体差异。今天我们将用LazyLLM框架搭建一个RAG检索增强生成Agent智能体的个性化学习助手。它能根据你的知识水平自动生成练习题并动态调整学习计划。整个过程只需不到100行代码就能实现端到端的工作流。—## 技术栈概览LazyLLM的核心能力LazyLLM 是一个轻量级的 LLM 应用框架它封装了 RAG、Agent、工具调用等常见模式。我们主要用到以下组件-RAG从本地文档库检索最相关的知识点片段-Agent根据用户反馈动态调整出题难度和学习路径-Memory记录用户的历史学习记录实现个性化—## 实战一搭建RAG知识库自动出题的数据基础### 1.1 准备工作首先我们需要一个知识库。假设我们有一本《Python入门》的教材将其拆分为章节片断。LazyLLM 支持直接加载 Markdown 文件。python# 安装依赖pip install lazyllmfrom lazyllm import RAG, Document# 加载本地文档支持PDF、Markdown等doc Document(python_basics.md, chunk_size500, chunk_overlap50)# 构建RAG引擎rag RAG(doc, embed_modelBAAI/bge-small-zh-v1.5, llm_modelQwen/Qwen2-7B-Instruct)# 测试检索query Python中的列表推导式是什么results rag.retrieve(query, top_k3)print(检索到的相关知识片段)for i, result in enumerate(results): print(f{i1}. {result[content][:100]}...)代码解析-chunk_size500将文档按500字符切块避免超出LLM上下文窗口-embed_model使用中文嵌入模型将文本转为向量-retrieve返回与问题最相关的3个文档片段### 1.2 自动出题的核心逻辑有了RAG我们可以根据用户当前学习的章节自动生成选择题或简答题。这里我们用Agent来判断出题类型。pythonfrom lazyllm import Agent# 定义出题Agentquestion_agent Agent( tools[rag], # 将RAG作为工具注入 system_prompt你是一位出题老师。请根据用户当前学习的内容生成一道选择题包含4个选项和一道简答题。 要求选择题的难度要适中简答题要能检验理解深度。 输出格式 ## 选择题 题目 A. B. C. D. 答案 ## 简答题 题目 参考答案)# 用户当前学习的内容假设是RAG检索到的user_topic 列表推导式与生成器question_result question_agent.run(f基于以下内容出题{user_topic})print(question_result)输出示例## 选择题题目下列哪个表达式返回的是生成器对象A. (x*2 for x in range(10))B. [x*2 for x in range(10)]C. {x*2 for x in range(10)}D. {x: x*2 for x in range(10)}答案A## 简答题题目请比较列表推导式和生成器表达式在内存使用上的区别并说明何时应该使用生成器。参考答案列表推导式一次性生成所有元素并存储在内存中适合数据量小的场景生成器是惰性求值每次迭代才生成下一个元素适合处理大数据流或无限序列。—## 实战二用Agent实现动态学习计划### 2.1 用户行为感知与计划调整单纯的出题还不够我们还要根据用户答题的正确率来调整学习计划。比如如果某类题目总是错就增加该知识点的复习次数。pythonclass LearningPlanner: def __init__(self, knowledge_graph): self.knowledge knowledge_graph # 知识点图谱 self.mistakes {} # 记录错误知识点 def analyze_errors(self, questions, answers): 分析用户错误更新知识点权重 for q, a in zip(questions, answers): if a[is_correct] False: topic q[topic] self.mistakes[topic] self.mistakes.get(topic, 0) 1 # 增加该知识点的复习权重 self.knowledge[topic][review_weight] min(1.0, self.knowledge[topic].get(review_weight, 0.1) 0.2) def generate_plan(self, user_id, days7): 生成未来7天的学习计划 plan [] # 按错误频率排序优先安排薄弱环节 weak_topics sorted(self.mistakes.items(), keylambda x: x[1], reverseTrue) for i in range(days): day_plan {day: i1, topics: []} for topic, _ in weak_topics[:3]: # 每天复习3个薄弱点 day_plan[topics].append(topic) # 穿插新知识 new_topic self._get_next_new_topic() if new_topic: day_plan[topics].append(new_topic) plan.append(day_plan) return plan# 初始化学习规划器planner LearningPlanner({ 列表推导式: {mastery: 0.3, review_weight: 0.1}, 生成器: {mastery: 0.1, review_weight: 0.1}, 装饰器: {mastery: 0.6, review_weight: 0.1}})# 模拟用户答题记录questions [ {topic: 列表推导式, correct: True}, {topic: 生成器, correct: False}, # 错误 {topic: 装饰器, correct: True}]answers [{is_correct: q[correct]} for q in questions]planner.analyze_errors(questions, answers)plan planner.generate_plan(user123, days3)print(个性化学习计划)for day in plan: print(f第{day[day]}天复习 {, .join(day[topics])})输出示例个性化学习计划第1天复习 生成器, 列表推导式第2天复习 生成器, 列表推导式, 装饰器第3天复习 生成器, 列表推导式, 新章节异常处理### 2.2 集成到LazyLLM Agent中我们将上述逻辑封装成LazyLLM的工具让Agent可以自动调用。pythonfrom lazyllm import Tool# 将学习规划器封装成工具plan_tool Tool( namegenerate_learning_plan, funcplanner.generate_plan, description根据用户错误记录生成学习计划参数user_id和天数)# 创建主Agentmain_agent Agent( tools[rag, plan_tool], system_prompt你是一个个性化学习助手。你的工作流程 1. 先通过RAG检索用户当前学习内容 2. 自动生成练习题 3. 分析用户答题结果调用学习规划器调整计划 4. 以友好自然语言输出建议)# 交互示例user_input 我刚刚学完函数和装饰器但感觉生成器有点难response main_agent.run(user_input)print(response)Agent输出我注意到你对生成器有困惑。先做一道题检验一下选择题下列代码输出什么def gen(): yield 1 yield 2g gen()print(next(g), next(g))A. 1 2 B. 2 1 C. 报错 D. None None答案A如果你答对了说明基础概念已掌握。根据你的学习记录建议未来3天重点复习生成器和列表推导式每天花15分钟做一道综合题。需要我为你生成详细计划吗—## 总结从代码到智能学习助手通过不到100行的核心代码我们实现了1.RAG知识库让AI能精准检索教材内容2.自动出题Agent根据知识点生成带答案的练习题3.动态学习计划根据用户错误模式自动调整复习权重关键收获- LazyLLM 的AgentTool模式让复杂的多步骤任务变得像搭积木一样简单- RAG 解决了LLM“知识幻觉”问题确保出题内容严格基于教材- 个性化不是靠魔法而是靠mistakes字典这样的简单数据结构未来优化方向- 加入知识图谱让计划更了解知识点间的依赖关系- 集成语音交互实现“对话式学习”- 使用强化学习动态调整出题难度现在你可以把这份代码部署到自己的学习场景中。无论是学编程、历史还是外语只需替换知识库文档就能得到一个专属的AI学习导师。动手试试吧

相关新闻

MySQL 为什么还有kill不掉的语句?

MySQL 为什么还有kill不掉的语句?

MySQL 为什么还有 kill 不掉的语句? 引言:从一次“杀不死”的查询说起在日常的数据库运维中,我们常常会遇到这样的情况:某个查询执行了很长时间,明显拖慢了系统性能,于是我们执行 KILL QUERY 或者 KILL CON…

2026/7/26 3:59:39 阅读更多 →
Unity机械臂实时驱动:C#脚本实现数据同步与可视化

Unity机械臂实时驱动:C#脚本实现数据同步与可视化

1. 项目概述:当机械臂遇见Unity如果你正在做一个数字孪生项目,或者想为你的机器人开发一个直观的仿真与调试界面,那么“在Unity里实时驱动一个机械臂模型”这个需求,大概率会出现在你的任务清单上。这听起来很酷,但很多…

2026/7/26 3:59:39 阅读更多 →
AI Agent调度官:多机协作的智能指挥系统

AI Agent调度官:多机协作的智能指挥系统

1. 项目概述在万物互联的时代背景下,AI Agent调度官正悄然改变着多机协作的运作模式。这个看似抽象的概念,实际上已经渗透到我们生活的方方面面——从智能家居设备的自动联动,到工业生产线上的机器人协同作业,再到城市交通系统的智…

2026/7/26 3:59:39 阅读更多 →

最新新闻

金融数据治理实战:NLP与知识图谱提升数据质量

金融数据治理实战:NLP与知识图谱提升数据质量

1. 项目背景与核心价值数据要素市场化配置已成为数字化转型的关键突破口。在金融风控、商业决策、政务治理等场景中,原始数据往往像含金量不高的沙矿,需要经过专业淘洗才能释放价值。我们团队在银行信贷审批系统中实施的这套数据治理方案,实现…

2026/7/26 4:08:43 阅读更多 →
AI技术实现废弃算法的临终忏悔系统

AI技术实现废弃算法的临终忏悔系统

1. 项目背景与核心价值去年在清理公司代码仓库时,我发现一个被遗忘的角落——那里堆满了多年积累的废弃算法模块。这些曾经被寄予厚望的代码,如今只剩下commit记录里泛黄的注释。这让我萌生了一个想法:能否给这些"数字生命"一个体面…

2026/7/26 4:08:43 阅读更多 →
Python Pygame游戏开发入门:从零构建躲避游戏实战教程

Python Pygame游戏开发入门:从零构建躲避游戏实战教程

1. 项目概述:从零到一,用Python和Pygame构建你的第一个游戏如果你对编程感兴趣,尤其是Python,那么亲手制作一个游戏绝对是检验学习成果、提升实战能力的最佳方式之一。今天我们要聊的,就是如何用Python和它的一个经典游…

2026/7/26 4:08:43 阅读更多 →
智能时代文化遗产保护的GAN与多模态技术实践

智能时代文化遗产保护的GAN与多模态技术实践

1. 项目背景与核心价值在算法主导的数字洪流中,人类文明正面临前所未有的记忆危机。去年某博物馆的数字化项目给了我深刻启示:当他们用AI修复一批战国竹简时,算法虽然完美补全了残缺文字,却丢失了刀刻笔触中蕴含的工匠精神。这个案…

2026/7/26 4:08:43 阅读更多 →
深度学习训练脚本解析与优化实践

深度学习训练脚本解析与优化实践

1. 项目概述:train_608_736.py脚本解析这个以数字编号命名的Python脚本文件,从命名规律来看很可能是深度学习训练过程中的某个实验版本。类似"train_608_736.py"的命名方式在机器学习工程中非常典型——前段数字可能表示模型版本或超参数组合&…

2026/7/26 4:08:43 阅读更多 →
Cmder:提升Windows开发效率的终极终端工具

Cmder:提升Windows开发效率的终极终端工具

1. 为什么我们需要更好的终端工具 作为一名长期在Windows环境下工作的开发者,我深知系统自带cmd终端的种种不便。字体渲染模糊、多标签支持缺失、快捷键不统一、功能扩展困难等问题,让日常开发效率大打折扣。直到三年前偶然发现Cmder这款神器&#xff0c…

2026/7/26 4:07:43 阅读更多 →

日新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻