news 2026/9/7 3:15:22

DeepTutor 本地部署 30 分钟上手:不用云端 API 也能跑离线学习助手

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeepTutor 本地部署 30 分钟上手:不用云端 API 也能跑离线学习助手

DeepTutor 本地部署 30 分钟上手:不用云端 API 也能跑离线学习助手

【免费下载链接】DeepTutorDeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/.项目地址: https://gitcode.com/GitHub_Trending/dee/DeepTutor

你有没有过这种顾虑:想让 AI 围绕自己的教材和学习笔记做辅导,却不想把资料发到任何云端 API 上?DeepTutor 是一个开源的 agent 式个性化学习助手,知识库、记忆、对话都落在本地磁盘。这篇就带你走一遍 DeepTutor 本地部署的完整流程:装好它、接上 Ollama 本地模型,全程离线使用。

🔍 一次请求的旅程:Agent 循环到底在转什么

先别管模块清单,把一条消息的完整走法看一遍。你在聊天框里问一句话,系统会先把会话历史、记忆、选中的知识库、persona 这些上下文打包成 UnifiedContext,交给统一入口 ChatOrchestrator 分发。

接下来是一个循环:Think(规划下一步)、Act(决定调工具还是直接回答)、Call Tool(RAG、read_memory、web_fetch 等)、Observe(读回结果),再回到 Think,直到 Respond 输出终稿。每一步事件都通过 StreamBus 同步推给 Web、CLI 和 SDK 三种入口。

关键在于工具是随上下文自动挂载的:你在对话里选中知识库,rag工具自己就出现了,不用手动配。核心路由逻辑可以看 deeptutor/runtime/orchestrator.py,配置则全部写在data/user/settings/下的 JSON 里。

⏱️ 30 分钟最短路径:装包、init、start

准备条件:Python 3.11–3.13、Node.js 20+;想彻底离线就再装好 Ollama。

pip install -U deeptutor

deeptutor init是个交互式向导,会问端口(后端 8001、前端 3782)、LLM 提供商、Base URL 和模型名。选 Ollama 的话,Base URL 填http://localhost:11434/v1;要用知识库 RAG,再配一个 embedding 地址http://localhost:11434/api/embed。跑起来只需:

deeptutor init deeptutor start

终端打印前端地址,浏览器打开就进界面了。模型提前拉好,后面就不用等下载:

ollama pull qwen2.5:7b ollama pull nomic-embed-text

到这里本地部署就算完成。Docker 单容器和源码安装两条路 README 里都有,各只多几行,按文档抄即可。

🧭 跑起来之后能干什么:三个使用场景

知识库,适合备课的老师:把一个学期的教材 PDF 丢进知识库,索引建在本地。问"用学生能听懂的话讲一遍欧姆定律的推导",回答会基于你自己的教材而不是模型的泛化记忆,答得偏不偏一眼能看出来。

Co-Writer,适合写文献综述的研究生:卡在某一段时,选中文字让它"改得更紧凑"。改动以 diff 形式逐条呈现,你逐条接受或拒绝,LaTeX 公式渲染正常,没点头的东西不会进你的文档。

Memory,适合长期学习的人:记忆是三层纯文件——L1 原始事件、L2 分场景摘要、L3 跨场景综合,都在自己磁盘上,可读可改可审计,L3 里的每条结论都能追溯到 L1 的具体事件。这种"可解释的个性化"是闭源云端产品给不了的。

🕳️ 我踩过的坑:连不上本地模型先查这三处

坑一:Docker 里摸不到宿主机上的 Ollama。容器内的 localhost 是容器自己,不是你的机器。解法是 docker 启动时加--add-host=host.docker.internal:host-gateway,然后把 Base URL 改成http://host.docker.internal:11434/v1

坑二:打开的端口不对。deeptutor start之后,浏览器该访问的是前端 3782;8001 只是 API 端口,打开它只会看到裸 JSON,别误会成挂了。

坑三:开发模式前端卡死。deeptutor start --dev报端口被占,但实际并没有进程在跑,多半是陈旧锁文件,删掉再启动就行:

rm -f web/.next/dev/lock web/.next/lock deeptutor start --dev

顺带一提,终端党可以直接跑deeptutor run chat "Explain Fourier transform" --tool rag --kb my-kb执行单轮任务,加--format json还能输出 NDJSON 事件流,方便接进自己的自动化脚本。

✅ 写在最后

DeepTutor 本质是把一套 agent 循环加本地文件的学习工作区交到你手里,本地部署的价值在于教材、记忆、对话都不出机器。装好之后我的建议是:去项目 issues 里翻翻别人怎么配 Ollama 和知识库的,能帮你少走不少弯路;想贡献代码的话,先读一遍 CONTRIBUTING.md 里的分支策略,PR 要提给dev而不是main

【免费下载链接】DeepTutorDeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/.项目地址: https://gitcode.com/GitHub_Trending/dee/DeepTutor

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 3:13:42

全国路网SHP数据解析:从解压到转换的完整指南

简介:2000年全国道路交通网络矢量数据集源自北京大学地理数据平台,以线状要素表达国道、铁路、高速公路等路网信息,适合GIS学习者、城市规划与交通分析研究人员用于地图制图、路网结构分析和历史交通格局研究。压缩包共48个文件,包…

作者头像 李华
网站建设 2026/9/7 3:12:37

SpringCloud 屏蔽个别用户访问全部接口

目录 方案 1:SpringCloud Gateway 全局过滤器(推荐) 1)黑名单存储 2)自定义 GlobalFilter 动态拉黑(Redis 版本) 方案 2:如果没有网关,在微服务内部拦截 HandlerInt…

作者头像 李华
网站建设 2026/9/7 3:11:24

流程即组织力:如何把个人能力沉淀为体系能力

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华