Skip to content

Repository files navigation

🎓 通信原理 AI 助教 (Comm-Agent Pro)

基于 DeepSeek + LangChain + OCR Markdown 的图文智能课程问答系统。 专为《通信原理》课程设计,不仅懂公式推导,更能直接展示课本原版插图。

✨ 核心亮点

  • 🖼️ 图文并茂: 告别干巴巴的文字!在讲解 "2PSK波形" 或 "眼图" 时,AI 会自动检索并展示课本中的高清插图。
  • ➗ 懂数学: 完美支持 $\int f(t)e^{-j\omega t}dt$ 等 LaTeX 公式渲染,拒绝乱码。
  • 📖 结构化认知: 摒弃传统的机械切分,采用基于 Markdown 结构的 "章节/页码级" 切分,保留知识点的完整性。
  • ⚡ 极速响应: 采用 "ETL 预处理 + JSON 缓存" 架构,Streamlit 启动仅需 1 秒。

🚀 更新日志 (Changelog)

v2.0.0 (Image Enhanced) - 当前版本

  • [重磅] 新增插图检索功能:实现了文本与图片的多模态关联,检索知识点时同步展示对应的课本插图。
  • [数据] 数据源升级为 OCR 识别后的 Markdown 文件,保留了页码和图片引用信息。
  • [算法] 弃用语义分割,改用基于正则表达式的 结构化切分 (Structure-based Chunking),精准提取每一页的知识与图片。
  • [UI] 界面升级,新增折叠式检索详情页,支持多图并排展示。

v1.0.0 (Pro)

  • [架构] 分离预处理与推理流程,引入 JSON 中间层。
  • [优化] 引入 BGE-Small 中文嵌入模型。

v0.5.0 (Beta)

  • [基础] 解决 Word 文档公式乱码问题,确立 LaTeX 输出规范。

🛠️ 技术演进之路 (Dev Log)

本项目如何从一个简单的 RAG 进化为图文 AI 助教:

点击展开查看开发日志

阶段一:原型验证 (MVP)

尝试直接读取 Word 文档,发现公式全乱,且无法处理图片。

  • 教训:通用 Loader 不适合理工科教材。

阶段二:语义分割的尝试

使用 Semantic Chunking 试图让 AI 理解上下文。虽然效果不错,但计算量太大,且经常把“图片的描述”和“图片本身”切分开,导致无法检索图片。

阶段三:图文融合架构 (Current)

为了保留《通信原理》中至关重要的波形图和电路图,我重构了整个 ETL 流程:

  1. 数据源变革:使用 OCR 工具将 PDF 转为带图片引用的 Markdown (.md)。
  2. 自定义切分:编写 preprocess.py,利用正则 !\[.*\]\(.*\) 提取图片路径,并将其写入向量库的 Metadata 中。
  3. 渲染层改造:Streamlit 前端读取 Metadata 中的图片列表,使用 st.image 动态渲染,实现了“检索文字 -> 召回元数据 -> 展示图片”的闭环。

📂 项目结构

/
├── app.py                  # Streamlit 主程序 (推理端)
├── preprocess.py           # ETL 预处理脚本 (数据清洗)
├── knowledge_chunks.json   # 预处理生成的知识库缓存
├── 通信原理概论_RAG_READY.md # OCR 识别后的原始课本文件
├── images_final/           # 课本插图文件夹 (必须与脚本同级)
│   ├── Page_7_Img_0.jpg
│   └── ...
└── requirements.txt        # 依赖列表

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages