DeepTutor:香港大学开源的 AI 个性化学习辅导工具

原创 发布日期:
99

一、DeepTutor是什么

DeepTutor是由香港大学数据科学实验室(HKUDS) 开源的一款AI驱动的个性化学习助手,核心定位是解决学习者在自学过程中遇到的“资料太多找不到答案、复杂概念看不懂、学会了没地儿练”三大核心痛点,并非简单的聊天机器人或文档问答工具,而是真正实现了“学、练、测、研”全流程覆盖的一站式学习解决方案。

该项目基于Python语言开发,采用模块化、分层化的技术架构,融合了多智能体推理、检索增强生成(RAG)、知识图谱、代码执行等前沿AI技术,能够深度理解教材、论文、技术手册等各类学习资料,并根据用户的知识水平和学习目标,提供个性化的问答、讲解、练习与研究支持。与普通的AI学习工具相比,DeepTutor的核心优势在于基于用户上传的专属资料进行精准响应,而非输出通用化的网络内容,同时通过交互式可视化、会话级知识跟踪等功能,让学习过程更贴合人类的认知规律。

目前,DeepTutor已在GitHub上开源,采用AGPL-3.0开源协议,支持Docker一键部署,提供中、英、日、西、法等多语言界面,适配Windows、Linux、Mac等主流操作系统,无论是学生、科研人员还是职场自学者,都能通过该工具提升学习与研究效率。

DeepTutor:香港大学开源的 AI 个性化学习辅导工具

二、功能特色

DeepTutor的功能围绕“学习全链路”展开,从知识输入、理解、巩固到应用探索形成完整闭环,核心功能特色可分为五大模块,每个模块都针对自学过程中的具体痛点设计,实用性与针对性极强。

(一)海量文档知识问答:让“啃资料”更高效

这是DeepTutor的核心基础功能,解决了“资料太多找不到答案、答案不精准无依据”的问题,区别于普通的“与PDF对话”工具,该功能实现了精准、可验证、带引用的深度问答。

  1. 智能知识库构建:支持上传PDF、Markdown、Word等格式的教材、研究论文、技术手册、个人笔记,系统会自动对文档进行解析、索引,构建属于用户的专属AI知识库。知识库支持随时添加、删除、更新资料,索引完成后可实现对资料内容的即时检索与问答。

  2. 多智能体分步解题:采用双循环推理架构,集成RAG(检索增强生成)、实时网络搜索、学术论文搜索、Python代码执行等能力,面对复杂问题时,会像专业导师一样分步拆解解答,而非直接给出最终答案。例如询问“某算法在边界情况下的失败原因”,系统会先从用户文档中提取相关理论,再通过网络搜索交叉验证,必要时运行代码演示问题所在,整个过程逻辑清晰、可追溯。

  3. 精准引用与溯源:所有回答都会附带原始资料的精准引用,包括文档名称、页码、段落位置,部分场景下还会通过高亮功能指向PDF中的具体位置,让用户能够快速核对答案依据,避免AI生成“虚假信息”。

  4. ArXiv论文专属支持:针对科研人员,提供ArXiv论文LaTeX源码的自动下载与解析功能,可快速提取论文中的公式、实验数据、核心结论,方便用户针对论文内容进行深度提问。

(二)交互式学习可视化:让“懂概念”更轻松

该功能是DeepTutor的“亮点功能”,解决了“复杂概念看不懂、抽象知识难理解”的问题,通过具象化、交互式的方式,将抽象知识转化为易于理解的内容。

  1. 复杂知识简化与拆解:针对算法、数学公式、神经网络、工程原理等抽象概念,系统会自动将其分解为分步讲解+可视化辅助的形式,例如将“二叉树遍历”转化为动态的节点遍历动画,将“线性卷积计算”转化为分步演算的可视化图表,让用户通过“看”和“交互”理解知识。

  2. 上下文感知的个性化问答:具备会话级知识跟踪能力,能够记住用户之前的提问与学习进度,后续的讲解会根据用户的理解程度调整深度。例如用户反复询问某一概念的细节,系统会从基础定义逐步深入,而非每次都从头开始讲解。

  3. 交互式演示体验:部分知识点支持交互式操作,例如用户可调整算法的参数,实时查看结果变化;或拖动可视化图表中的元素,直观理解概念之间的关联,让被动学习变为主动探索。

(三)知识强化:智能练习题与模拟卷生成

“光看懂不代表会做”,该功能解决了“学会了没地儿练、真题刷完无新题”的问题,实现了个性化、针对性的知识巩固。

  1. 智能练习题生成:根据用户的知识库内容和学习进度,自动生成适配其知识水平的测验、练习题、定制评估,题型涵盖选择题、填空题、简答题、编程题等。系统会精准定位用户的知识薄弱环节,针对性出题,例如用户对“深度学习优化器”理解不足,系统会重点生成该知识点的相关题目。

  2. 全真考试模拟:支持用户上传参考试卷、真题集,系统会自动分析试卷的出题风格、难度分布、知识点覆盖率,生成与原题风格、格式、难度高度匹配的模拟卷。例如上传高考数学真题,系统会克隆出一套“高仿”模拟卷,让用户获得真实的备考体验。

  3. 精细化题目管理:生成的题目支持导出、打印、在线作答,作答完成后系统会自动批改,并给出详细的解析与知识点溯源,帮助用户查漏补缺。

(四)深度研究与想法生成:让“做研究”更高效

针对科研人员和进阶学习者,DeepTutor提供了深度研究模式,解决了“文献综述效率低、研究方向难寻找”的问题。

  1. 系统化学术探索与文献综述:可对指定研究主题进行深度分析,自动检索相关文献、识别跨学科研究模式、连接相关概念,最终生成结构化的文献综述,帮助用户快速掌握该领域的研究现状。

  2. 知识空白与研究方向挖掘:通过分析用户的知识库和相关领域的研究成果,系统会精准识别该领域的知识空白点,并结合用户的研究基础,生成具体、可行的新研究方向或创新想法。例如用户研究“大模型在教育领域的应用”,系统会提出“大模型个性化错题本的优化设计”等具体研究方向。

  3. 研究全流程可视化:提供“研究仪表盘”,可可视化展示研究规划、文献阅读进度、数据整理、报告生成等全流程,帮助用户梳理研究思路,提升研究效率。

(五)基础辅助功能:让“用工具”更便捷

除核心学习功能外,DeepTutor还提供了一系列基础辅助功能,提升用户的使用体验:

  1. 多语言支持:界面与问答内容支持中文、英文、日语、西班牙语、法语等多种语言,适配不同语言背景的用户。

  2. 知识库管理:可自动提取文档中的定义、定理、公式、图表等结构化知识,支持对知识库进行分类、标签、检索等操作。

  3. 会话管理:支持保存、导出、删除学习会话,方便用户后续回顾学习内容,继续之前的提问与研究。

三、技术细节

DeepTutor采用模块化、分层化的架构设计,整体分为四层,各层之间相互独立又协同工作,保证了系统的灵活性、可扩展性和稳定性。同时,项目采用了前沿的AI技术与工程化方案,让工具在功能强大的同时,具备良好的易用性和部署性。

(一)整体系统架构

DeepTutor的系统架构分为四层,从上层的用户交互到底层的知识存储,形成完整的技术链路,具体架构分层及核心能力如下表所示:

架构层级 核心职责 关键技术/能力
用户界面层 实现用户与系统的交互,输出结构化、可操作的内容 React 19、Next.js 16、TailwindCSS 3.4、WebSocket安全通信、多语言界面
智能Agent模块 处理具体的学习任务,是系统的“大脑” 多智能体分工(问答、出题、研究、引导)、双循环推理、PromptManager架构统一
工具集成层 为智能Agent提供外部能力支持,连接现实世界与知识源 RAG混合检索、实时网络搜索、ArXiv论文解析、Python代码执行、PDF/Markdown文档解析
知识与记忆基础 存储与管理知识,保证会话连续性与知识关联性 知识图谱、向量存储、会话状态管理、引用跟踪系统

(二)核心技术栈

DeepTutor的技术栈涵盖前后端开发、AI模型集成、工程化部署等多个方面,核心技术选型均为目前行业内的主流方案,兼顾了性能与易用性,具体技术栈分类如下:

1. 后端技术栈(核心)

  • 编程语言:Python 3.10+(项目主要开发语言,适配绝大多数AI框架)

  • Web框架:FastAPI(高性能异步Web框架,提供RESTful API与交互式文档)

  • AI核心技术

    • 多智能体架构:实现不同任务的分工协作,如SolveAgent(解题)、QuestionAgent(出题)、ResearchAgent(研究)等;

    • RAG(检索增强生成):混合检索模式,结合关键词检索与语义检索,提升知识检索的精准度;

    • LLM集成:支持GPT-4o、Claude、DeepSeek等多厂商大语言模型,同时支持自定义嵌入模型;

    • 代码执行:内置Python代码执行环境,支持算法验证、数据计算等场景。

  • 文档处理:PyPDF2、python-docx(文档解析)、LaTeX解析器(论文源码处理)

  • 工程化

    • 容器化:Docker(镜像打包)、Docker Compose(多容器管理);

    • 环境管理:Pipenv/Poetry(虚拟环境与依赖管理);

    • 自动化:CI/CD(持续集成/持续部署)、脚本化安装与启动。

2. 前端技术栈

  • 核心框架:React 19(前端界面开发)、Next.js 16(服务端渲染,提升页面加载速度)

  • 样式方案:TailwindCSS 3.4(原子化CSS,快速构建美观的界面)

  • 交互能力:WebSocket(实时通信)、Recharts/ECharts(数据可视化)、React Query(状态管理)

  • 多语言支持:i18next(国际化解决方案)

(三)关键技术亮点

  1. 双循环推理架构:这是DeepTutor实现精准分步解题的核心技术,第一循环为“推理循环”,系统根据用户问题拆解解题步骤,确定所需的知识与工具;第二循环为“验证循环”,对每一步的解答进行验证,通过检索、代码执行等方式确认答案的准确性,确保输出内容的严谨性。

  2. 会话级知识跟踪:基于向量存储与会话记忆系统,能够记住用户的历史提问、学习进度与知识薄弱点,实现上下文感知的个性化交互,让AI的讲解更贴合用户的实际情况。

  3. 模块化智能体设计:不同的学习任务由专属的智能体处理,各智能体之间可协同工作,例如研究智能体可调用问答智能体获取基础概念解释,出题智能体可调用检索智能体获取知识点分布,这种设计让系统易于扩展,后续可新增更多功能的智能体。

knowledge_bases

四、应用场景

DeepTutor的功能覆盖了“学习、练习、研究”全场景,适配不同人群、不同学科的需求,核心应用场景主要分为四大类,覆盖学生、科研人员、自学者、教育工作者等不同用户群体。

(一)学生日常学习与备考

这是DeepTutor最核心的应用场景,适配从小学到研究生的各阶段学生:

  1. 课堂知识巩固:学生可将教材、课堂笔记上传至知识库,针对课堂上没听懂的知识点向AI提问,系统会结合教材内容进行分步讲解,并生成针对性练习题,帮助学生及时巩固知识。

  2. 考试备考冲刺:备考阶段,学生可上传历年真题、复习资料,系统会生成高仿模拟卷,同时针对错题自动分析知识薄弱点,推送相关讲解与练习,实现精准查漏补缺。

  3. 学科难点突破:面对数学、物理、计算机等学科的复杂概念,可通过交互式可视化功能,直观理解抽象知识,例如通过动态演示理解“电磁感应原理”“神经网络反向传播过程”。

(二)科研人员学术研究

针对高校教师、科研院所研究人员,DeepTutor可大幅提升科研效率:

  1. 文献综述与分析:输入研究主题,系统会自动检索相关文献,分析研究现状,识别跨学科关联,生成结构化的文献综述,节省人工阅读与整理的时间。

  2. 研究方向挖掘:基于现有研究成果,系统会挖掘知识空白点,结合用户的研究基础,生成具体的研究方向与创新想法,为科研选题提供参考。

  3. 论文解析与答疑:上传外文论文、专业期刊文章,系统可解析LaTeX源码,提取公式、实验数据,针对论文中的难点问题进行深度解答,帮助科研人员快速理解论文核心内容。

(三)职场人士自主学习

对于职场人士的技能提升与知识更新,DeepTutor同样适用:

  1. 技术文档学习:上传编程语言手册、框架文档、行业技术白皮书,针对技术难点进行提问,系统会结合文档内容给出精准解答,帮助职场人士快速掌握新技能。

  2. 行业知识更新:针对金融、医疗、互联网等快速发展的行业,可通过系统的网络搜索与文献分析能力,快速获取行业最新动态与研究成果,提升专业能力。

  3. 职业资格备考:上传职业资格考试教材、真题,系统会生成模拟卷与练习题,帮助职场人士高效备考各类证书。

(四)教育工作者教学辅助

教师、培训师等教育工作者可将DeepTutor作为教学辅助工具:

  1. 备课素材整理:上传教学大纲、教材,系统可提取核心知识点,生成教学课件的框架,同时针对知识点生成练习题与测验卷,节省备课时间。

  2. 个性化辅导学生:将学生的作业、错题上传至系统,系统会分析学生的知识薄弱点,为教师提供个性化的辅导建议,同时生成针对性的辅导资料。

  3. 教学效果评估:通过系统生成的测验卷对学生进行测试,自动批改并生成成绩分析报告,帮助教师快速掌握学生的学习情况。

此外,DeepTutor适用于所有需要深入理解复杂知识的学科,包括数学、物理、计算机科学、工程学、经济学、医学等,尤其在理工科领域,其代码执行、公式可视化等功能能够发挥更大的作用。

五、使用方法

DeepTutor提供了本地部署API调用两种使用方式,其中本地部署又分为“一键脚本安装”与“Docker容器部署”,推荐普通用户使用Docker部署,操作更简单、环境更稳定;开发人员可通过API调用实现定制化功能。

(一)前置准备

  1. 硬件要求:推荐CPU为4核及以上,内存8GB及以上,硬盘空余空间20GB及以上;若需本地运行大语言模型,需配备NVIDIA显卡(显存16GB及以上)。

  2. 软件要求:安装Git(版本2.30及以上)、Docker(版本20.10及以上)、Docker Compose(版本2.0及以上),操作系统支持Windows 10/11、Ubuntu 20.04+、MacOS 12+。

  3. API密钥准备:若使用云端大语言模型(如GPT-4o、Claude),需提前获取对应的API密钥;若使用本地模型,可跳过此步骤。

(二)Docker容器部署(推荐)

Docker部署是最便捷的方式,无需手动配置依赖,仅需几步即可启动服务,具体步骤如下:

  1. 克隆项目仓库:打开终端/命令提示符,执行以下命令克隆GitHub仓库到本地:

  git clone https://github.com/HKUDS/DeepTutor.git
  cd DeepTutor
  1. 配置环境变量:复制环境变量示例文件,根据自身需求修改配置:

  # 复制示例文件
  cp .env.example .env
  # 编辑.env文件,配置关键参数
  # 需修改的核心参数:LLM_MODEL(大语言模型)、LLM_API_KEY(模型API密钥)、LLM_HOST(模型接口地址)
  1. 启动Docker容器:执行以下命令拉取镜像并启动服务,整个过程约30秒:

  docker run -d --name deeptutor \
  -p 8001:8001 -p 3782:3782 \
  -e LLM_MODEL=gpt-4o \
  -e LLM_API_KEY=your-api-key \
  -e LLM_HOST=https://api.openai.com/v1 \
  -e EMBEDDING_MODEL=text-embedding-3-large \
  -e EMBEDDING_API_KEY=your-api-key \
  -e EMBEDDING_HOST=https://api.openai.com/v1 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config:ro \
  ghcr.io/hkuds/deeptutor:latest
  1. 访问系统:服务启动成功后,打开浏览器,输入http://localhost:3782即可进入DeepTutor的前端界面;后端交互式API文档可通过http://localhost:8001/docs访问。

(三)一键脚本安装(本地运行)

若不想使用Docker,可通过项目提供的脚本自动安装依赖并启动服务,具体步骤:

  1. 克隆仓库:与Docker部署的第一步相同,克隆项目并进入目录。

  2. 一键安装依赖:执行以下命令,系统会自动安装前后端所有依赖:

  python scripts/install_all.py
  1. 配置环境变量:与Docker部署的第二步相同,复制并编辑.env文件。

  2. 启动服务:执行以下命令启动前后端服务:

  python scripts/start_web.py
  1. 访问系统:与Docker部署的第四步相同,通过http://localhost:3782访问前端界面。

(四)API调用(开发人员)

DeepTutor提供了Python API,开发人员可通过代码调用其核心功能,例如智能解题、题目生成等,以下是两个核心功能的调用示例:

  1. 智能解题示例

  import asyncio
  from src.agents.solve import MainSolver

  async def main():
    # 初始化解题智能体,指定知识库名称
    solver = MainSolver(kb_name="ai_textbook")
    # 提出问题,指定解答模式
    result = await solver.solve(
      question="计算 x=(1,2,3) 和 h=(4,5) 的线性卷积",
      mode="auto"
    )
    # 输出格式化的解答结果
    print(result['formatted_solution'])

  if __name__ == "__main__":
    asyncio.run(main())
  1. 题目生成示例

  import asyncio
  from src.agents.question import AgentCoordinator

  async def main():
    # 初始化出题协调器
    coordinator = AgentCoordinator(
      kb_name="ai_textbook",
      output_dir="data/user/question"
    )
    # 根据需求生成题目
    result = await coordinator.generate_questions_custom(
      requirement_text="生成 3 道关于深度学习基础的中等难度题目",
      difficulty="medium",
      question_type="choice",
      count=3
    )
    # 输出生成结果
    print(f"✅ 生成 {result['completed']}/{result['requested']} 道题目")
    for q in result['results']:
      print(f" - 题目相关性: {q['validation']['relevance']}")

  if __name__ == "__main__":
    asyncio.run(main())

notebooks

六、常见问题解答(FAQ)

  1. 问题:执行Docker启动命令后,提示“端口被占用”怎么办?
    解答:修改命令中的端口映射参数,例如将-p 8001:8001改为-p 8002:8001-p 3782:3782改为-p 3783:3782,然后重新执行启动命令,访问时使用新的端口(如http://localhost:3783)。

  2. 问题:一键脚本安装时,提示“Python版本过低”怎么办?
    解答:DeepTutor要求Python版本为3.10及以上,需先升级Python版本。Windows用户可通过Python官网下载安装包升级,Ubuntu用户可执行sudo apt install python3.10,MacOS用户可通过Homebrew执行brew install python@3.10

  3. 问题:部署后无法访问前端界面,提示“连接拒绝”怎么办?
    解答:首先检查Docker容器是否正常运行,执行docker ps命令查看deeptutor容器的状态;若容器未运行,执行docker start deeptutor启动;若容器运行正常,检查防火墙是否放行相关端口(8001、3782),暂时关闭防火墙后重试。

  4. 问题:上传文档后,系统提示“解析失败”怎么办?
    解答:首先检查文档格式是否支持,DeepTutor目前支持PDF、Markdown、Word(.docx)格式,不支持扫描版PDF(图片型PDF);其次检查文档是否损坏,可尝试重新下载或保存文档后再次上传;若为大文件(超过100MB),可拆分后分批上传。

  5. 问题:提问后,系统的回答没有引用或引用错误怎么办?
    解答:首先确认问题是否基于已上传的知识库内容,若为通用问题,系统可能会从网络检索内容,引用信息会标注网络来源;若为知识库内的问题,可尝试重新索引文档(在知识库管理界面点击“重新索引”),或简化问题,让系统更易匹配相关内容。

  6. 问题:生成的练习题/模拟卷难度不合适怎么办?
    解答:在出题界面,可手动调整“难度等级”(简单/中等/困难),同时可指定具体的知识点,让系统更精准地出题;若上传了参考试卷,可检查试卷的知识点是否与知识库匹配,匹配度越高,生成的模拟卷难度越精准。

  7. 问题:交互式可视化功能无法正常显示怎么办?
    解答:首先检查浏览器版本,推荐使用Chrome 100+、Edge 100+、Firefox 95+等最新版本的浏览器;其次清除浏览器缓存,刷新页面后重试;若仍无法显示,可检查网络是否正常,部分可视化资源需要联网加载。

  8. 问题:深度研究模式生成的文献综述内容不全面怎么办?
    解答:可在研究界面补充更多的关键词、相关文献,或指定研究的时间范围(如“近5年”),系统会根据补充的信息重新检索与分析;同时,可手动上传相关的核心文献,让系统基于这些文献生成更精准的综述。

  9. 问题:是否支持本地运行大语言模型,无需云端API密钥?
    解答:支持。在.env配置文件中,将LLM_MODEL改为本地模型的名称(如llama3-8b),LLM_HOST改为本地模型的接口地址(如http://localhost:8080/v1),同时确保本地模型已启动并提供OpenAI兼容的API接口,即可无需云端API密钥使用。

  10. 问题:DeepTutor支持哪些语言的文档问答?
    解答:目前支持中文、英文的文档问答与界面显示,日语、西班牙语、法语仅支持界面显示,后续会逐步完善多语言的文档问答能力。

  11. 问题:生成的内容能否导出?
    解答:支持。问答结果、练习题、模拟卷、文献综述等内容,均可导出为PDF、Markdown、Word等格式,在对应功能界面点击“导出”按钮即可操作。

  12. 问题:项目的开源协议是什么,是否可商用?
    解答:DeepTutor采用AGPL-3.0开源协议,非商业用途可自由使用、修改、分发;若用于商业用途,需遵守AGPL-3.0协议的规定,公开修改后的代码,并保留原作者的版权声明。

七、相关链接

  1. 项目GitHub仓库https://github.com/HKUDS/DeepTutor

  2. 项目官网https://hkuds.github.io/DeepTutor/

八、总结

DeepTutor是由香港大学HKUDS团队开发的一款开源AI驱动个性化学习助手,以Python为核心开发语言,采用多智能体架构、RAG等前沿技术,构建了“文档问答、知识可视化、智能出题、深度研究”的全链路学习解决方案,精准解决了自学过程中“资料难啃、概念难懂、练习缺乏、研究低效”的核心痛点。该工具支持Docker一键部署与多语言界面,适配学生、科研人员、自学者、教育工作者等不同用户群体,覆盖从日常学习、考试备考到学术研究的全场景,其基于用户专属资料的精准响应、贴合人类认知规律的交互式学习体验,以及开源免费的特性,让它成为AI教育领域的一款实用工具。与普通的AI学习产品相比,DeepTutor并非简单的功能堆砌,而是真正围绕“学习”的本质设计,通过技术手段让学习过程更高效、更个性化、更具深度,为不同人群的学习与研究提供了有力的技术支撑。

打赏
THE END
作者头像
dotaai
正在和我的聊天机器人谈恋爱,它很会捧场。