
DeepTutor
让 AI 当你的终身私教,随时深度研究并个性化辅导
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 57399
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Python 3.11(Conda 环境示例使用 python=3.11)
- Node.js / npm(前端依赖用 npm ci 安装)
- Docker(使用容器方式时需要,可拉取 ghcr.io 镜像)
- 可访问的大模型服务或 API Key(在 Web 设置页配置模型提供方)
安装与启动步骤
-
1获取项目源码
从 GitHub 克隆仓库并进入项目根目录,后续所有命令都在该目录执行。
git clone https://github.com/HKUDS/DeepTutor.git cd DeepTutor -
2安装后端依赖
用 pip 以可编辑模式安装项目自身依赖;README 也提供 Conda 环境创建方式作为替代。
python -m pip install -e . -
3安装前端依赖
进入 web 目录用 npm ci 安装前端依赖,README 明确要求带 --legacy-peer-deps 参数。
cd web && npm ci --legacy-peer-deps -
4初始化配置
运行 init 生成初始配置文件,首次使用必须先执行这一步再启动服务。
deeptutor init -
5启动开发模式
以 HMR 方式启动 Next.js;不加 --dev 则先构建生产版前端后复用。Ctrl+C 停止。
deeptutor start --dev -
6或用 Docker 一键运行
单容器跑完整 Web 应用,数据与配置持久化在 deeptutor-data 卷中。
docker run --rm --name deeptutor \ -p 127.0.0.1:3782:3782 \ -v deeptutor-data:/app/data \ ghcr.io/hkuds/deeptutor:latest -
7挂载自定义工作区
启动时把宿主机目录挂到 /workspace,并用环境变量把 DeepTutor 锁定到该路径。
mkdir -p "$PWD/deeptutor-workspace/outputs" docker run --rm --name deeptutor \ -p 127.0.0.1:3782:3782 \ -v deeptutor-data:/app/data \ -v "$PWD/deeptutor-workspace:/workspace" \ -e DEEPTUTOR_WORKSPACE_ROOT=/workspace \ -e DEEPTUTOR_WORKSPACE_ALLOWED_ROOTS=/workspace \ ghcr.io/hkuds/deeptutor:latest
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
DEEPTUTOR_WORKSPACE_ROOT | 否 | 把容器内内容工作区锁定到指定路径 | /workspace |
DEEPTUTOR_WORKSPACE_ALLOWED_ROOTS | 否 | 允许作为工作区根目录的白名单路径 | /workspace |
DEEPTUTOR_WORKSPACE_HOST | 否 | Compose 部署时指定宿主机工作区目录 | /absolute/host/folder |
DEEPTUTOR_EXTRAS | 否 | 在容器启动时自动附装的可选 extras | rag-lightrag |
next_public_api_base | 否 | 前后端分离部署时前端访问后端的地址 | http://backend:8001 |
cors_origins | 否 | 开启鉴权时需补充的精确前端来源 | ["https://deeptutor.example.com"] |
如何确认成功
浏览器打开 http://127.0.0.1:3782 能看到 Web 界面;容器首次启动会生成 /app/data/user/settings/*.json。
常见问题
Q:需要发布 8001 端口吗?
A:不需要。浏览器只访问前端源 :3782,容器内 Next.js 中间件会把 /api/* 和 /ws/* 转发给后端。8001 仅在想用 curl 直连 API 时可选发布。
Q:容器里怎么访问宿主机的 Ollama / LM Studio?
A:容器内 localhost 是容器自身。加 --add-host=host.docker.internal:host-gateway,然后在 Settings → Models 把 Base URL 设为 http://host.docker.internal:11434/v1 等地址。
Q:deeptutor start --dev 提示前端无响应怎么办?
A:按提示停掉它打印的 PID;若实际没有 Next.js 进程在跑,说明锁文件过期,删除 web/.next/dev/lock 和 web/.next/lock 后重试。
Q:如何修改对外端口?
A:改 -p host:container 左侧的宿主端口,例如 -p 127.0.0.1:8088:3782;若改了容器侧端口,需同步改右侧映射并重启。
Q:数据重启后会丢吗?
A:不会。配置、API Key、日志、默认内容工作区、记忆和知识库都保存在 deeptutor-data 卷;单独挂载的工作区则持久化在宿主机路径。
注意事项
- README 节选只包含 Option 3(Docker)和 Option 4(CLI Only)等部分内容,Option 1/2 的完整说明未包含在内。
- 容器内用 pip install 装的 extras 在下次 compose down 后会丢失,应通过 DEEPTUTOR_EXTRAS 和 DEEPTUTOR_APT_PACKAGES 在部署层声明。
- Docker 路径在容器启动时确定,因此 Web 设置页里会显示为已锁定。
- 修改前端依赖需用 npm install --legacy-peer-deps 刷新 web/package-lock.json,并同时提交 package.json 与 lock 文件。
核心亮点
- 多智能体协作模拟真实教学场景,互动性强
- 深度研究+ RAG 确保知识实时更新,不局限于静态资料
- CLI 工具轻量易用,适合开发者快速上手和集成
不足之处
- 文档/社区待观察
- 高度依赖大模型 API,可能产生较高使用成本
适用场景
- 个人开发者或学生利用 CLI 进行自主学习与深度研究
- 教育科技公司集成多智能体辅导能力到自有平台
- 企业内训场景,为员工提供个性化技能提升路径
替代项目
LangChain、AutoGen、OpenAI Tutor
下一篇:happy-llm
同类项目推荐
ai-math-from-scratch
开源
搞 AI 卡在数学上?从零补起,研究生水平也能啃下
A Complete Resource to Master Graduate-Level GenAI Mathematics
AI-Interview
开源
数字人开口面试,答完自动出逐题评分报告
开源的 AI 模拟面试系统:真人数字人面试官开口提问、按你的回答追问,报告逐题打分;另含···
Daily-LLM
开源
每天跟练 AI 基础与算法,系统补齐大模型面试短板
机器学习/深度学习/Python/大模型/多模态/LLM/deeplearning/Python/Algorithm interview/N···
DeepTutor
开源
让 AI 当你的终身私教,随时深度研究并个性化辅导
DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/.
transformers-explained
开源
手把手拆解 Transformer,从零看懂大模型核心原理
Transformer architecture explained step by step - the full architecture, every atten···
freelingo
开源
自托管 AI 私教,用本地大模型练口语背单词
Open-source, self-hosted AI language learning platform with local or cloud LLMs, CEF···
LearnPrompt
开源
免费学 AIGC,从提示词到实战全搞定
永久免费开源的 AIGC 课程, 目前已支持Claude Code,Codex,Hermes,OpenClaw,Obsidian,···
Diffusion_models_tutorial
开源
从零手写扩散模型,边学边练掌握AI生图
Collection of tutorials on diffusion models, step-by-step implementation guide, scri···
InsightSolver-Colab
开源
在 Colab 里一键跑通 AI 运维模型,快速验证想法
InsightSolver: Colab notebooks for exploring and solving operational issues using de···