Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DocAvatar:文档 → Markdown → 思维导图(预览/带背)

项目简介

DocAvatar 是一个面向学习与内容创作的“文档理解与讲解助手”。它由教育开源项目 DotsOCR 衍生开发,聚焦多场景的知识获取与表达:文档转换、思维导图可视化、逐段带背、要点讲解、播客传播、研学对话与以练带学。 它将文档转换为结构化 Markdown,并在浏览器端通过思维导图进行可视化呈现;在“带背模式”中,系统会按分块自动执行:生成导图 → 回填 → 朗读 → 推进下一块,支持断点续播与缓存。

本项目包含三部分:

  • Gradio 主应用(固定对外端口 10222,内部 7860)
  • Automindmap 子应用(前端 + Node 服务,端口 5173)
  • 可选推理/转换后端(如 vLLM/OpenAI 兼容接口/Kimi 等)

应用模式

  • 带背模式(MEM)
    • 目标:通过精细化思维导图抽取关键知识点,逐段朗读与自动推进,辅助记忆与复习。
    • 流程:分块 → 模型生成导图 Markdown → 回填右侧 → 朗读 → ACK 推进下一块。
  • 讲解模式
    • 目标:针对章节要点进行结构化讲解,自动生成类 PPT 页面或讲解大纲。
    • 流程:大模型 API 分析 → 生成分节页面(标题、要点、示例/图示占位)→ 导出与复用。
  • 播客模式
    • 目标:以播客形式传播知识,支持长文精炼、章节串讲与结构化对谈脚本。
    • 流程:调用 API 生成播客脚本 → 可选 TTS/外部播客工作流。
  • 研学模式
    • 目标:亦师亦友的研究式讨论,在探讨中完善知识库、形成问题清单与调研计划。
    • 流程:对话式推理与资料汇集 → 结论沉淀至 Markdown/导图/任务清单。
  • 练习模式
    • 目标:围绕知识点进行精细化题目管理,以练带学,形成闭环反馈。
    • 流程:要点 → 题目生成/导入 → 分层练习与讲评 → 错题/薄弱点回流导图与讲解。

主要特性

  • 文档转 Markdown:支持 PDF/图片/Office(通过后端 API)
  • 思维导图可视化:基于 Markmap,自动为标题注入锚点、片段预览
  • 带背模式(MEM):
    • 分块最深标题切分,逐段“生成导图 → 回填 → 朗读 → 自动推进”
    • 朗读失败/无语音环境亦会自动推进(ACK 兜底)
    • Base64 内联图片自动剔除后再送入导图模型
  • 讲解/播客/研学/练习联动:讲解页、播客脚本、研学对话与练习题流转到同一知识骨架
  • 设置持久化:跨端口(10222 ⇄ 5173)双向同步;忽略空值覆盖,防止误清空
  • 可扩展模型接入:支持 Kimi/OpenAI 兼容接口(Bearer Key)、后续可扩展 qwen/gpt/claude

架构与端口

  • 10222:对外入口(反向代理转发至 7860)
  • 7860:Gradio 内部端口
  • 5173:Automindmap 服务(前端 + API 转发/设置持久化)

关键目录:

  • docavatardev/docavatar_gradio.py:主应用(路由、模式、设置转发 /am/save-settings、/export-settings 代理)
  • docavatardev/automindmap/:思维导图前端与服务(index.htmlscript.jsserver.js
  • docavatardev/forward_10222.js:10222 → 7860 HTTP/WS 转发
  • docavatardev/start_docavatar.sh:一键启动脚本(固定端口、并发进程)

快速开始

  1. 准备环境
  • Linux/WSL2 推荐;需要 Node ≥ 18、Python ≥ 3.10
  • 建议已安装 Chrome/Edge(浏览器端朗读依赖 Web Speech API,在部分环境不可用时系统会自动推进但不发声)
  1. 启动
bash ./docavatardev/start_docavatar.sh
# 启动后访问:http://localhost:10222
  1. 配置思维导图模型(必填)
  • 进入“带背模式 A”设置,填写:
    • 思维导图 API Base(OpenAI 兼容接口或代理地址)
    • 思维导图 API Key(Bearer 令牌)
    • 思维导图模型(如 kimi-k2-0711-preview
  • 点击“保存带背模式 A 配置”以同步到 5173;设置在 5173 端以非空优先合并,避免被空值清空
  1. 使用带背模式
  • 选取 Markdown 文本或从“预览模式”生成后,切换至“带背模式”
  • 系统按分块逐段执行:模型生成导图 → 回填右侧 → 朗读 → 朗读完成发送 ACK → 推进下一段
  • 若浏览器禁用语音或语音列表为空,仍会自动推进

常见问题(FAQ)

Q: 填写设置后再次进入带背,为什么设置被清空?

  • 已修复:/save-settings 采用“忽略空值的深合并”,避免空字段覆盖已有有效配置

Q: 仍然朗读原始分块而不是模型生成的导图?

  • 请确认 5173 的 mindmap_api_basemindmap_api_keymindmap_model 已写入且可用;
  • 预览面板现统一触发 generate-btn,确保走“API → 回填 → 朗读 → ACK”的流程

Q: 朗读卡住不推进?

  • 已修复:无论 TTS 是否成功,都会发送 mem-ack,保障推进

配置与环境变量(节选)

  • AUTOMINDMAP_PORT:默认 5173
  • GRADIO_INTERNAL_PORT:默认 7860
  • GRADIO_PUBLIC_PORT:默认 10222
  • 以上已在 start_docavatar.sh 中固定,也可自定义

贡献与开发

欢迎提交 Issue 与 PR。建议变更遵循:

  • 不改变既有默认端口行为
  • 前端变更需兼容 iframe/embed(embed=1&mode=mem
  • 重要流程(API 调用、朗读、推进)需具备兜底与日志

许可证

本项目采用 GPL-3.0 开源许可证,详见根目录 LICENSE 文件。

致谢

  • DotsOCR 教育开源项目与社区贡献者
  • Gradio、Markmap、vLLM 及开源社区
  • 所有测试与反馈的贡献者

About

生而为教学

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages