Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

智学文档助手 (Study & Office Document Assistant)

Version Python Theme

“智学文档助手”是一个本地轻量级的 GUI Python 应用程序。该项目专为处理复杂的理工科文档(PDF、PPTX、DOCX 等)而设计,利用大语言模型 (LLM) 提取多模态内容和公式,能够自动生成结构化学习笔记或高度定制化的 Office 文件。

🌟 核心用途

本工具主要帮助学生、教师以及职场办公人士快速处理堆积如山的资料,其核心应用场景包括:

  1. 学习笔记压缩 (Notes Extraction): 将长篇累牍的复习资料(PDF/Word/PPT)精准压缩成理工科复习导向的笔记,自动抓取重点内容与公式,并生成易于复习的 Markdown 或 DOCX 文件。
  2. 文档/表格生成 (Office File Generation): 基于您上传的输入资料(文档或代码)和具体的需求说明,自动生成格式规范的商务可交付 Word 文档(DOCX)或结构化的 Excel 表格(XLSX)。

🚀 启动与使用方法

本项目已配置了自动化的虚拟环境管理,您只需双击运行即可。

  1. 环境准备: 确保您的电脑上已安装 Python (推荐 3.8 - 3.12 版本)
  2. 启动程序: 双击根目录下的 run.bat 文件。
    • 首次运行时,脚本会自动在本地创建虚拟环境(.venv)并下载安装所需的依赖包,请耐心等待。
    • 后续运行将直接启动秒开。
  3. 初次配置: 启动后,点击左侧导航栏的 "模型设置"
    • 填入您的 API Base URL(如使用 OpenAI 官方接口或兼容镜像站)。
    • 填入您的 API Key
    • 指定大模型名称(推荐使用支持 Vision 视觉能力的模型,如 gpt-4o, gpt-4o-mini,或其他兼容平台的视觉大模型)。
    • 设置保存后将永久写入本地 config.json,下次无需重新配置。

✨ 核心特性:双轨图像处理引擎

对于包含大量图表、公式的复杂文档,项目提供了两种处理模式,可在“模型设置”中切换:

  • 大模型视觉 (Vision) 模式 [推荐 & 默认]: 系统会提取文档中的图片,将其转化为 Base64,直接交由具备原生视觉能力的 LLM 进行原生解析。这种方式对复杂理工科图表的理解能力最强。
  • 本地 OCR 模式 (Fallback): 如果您的模型不支持 Vision,系统可调用本地的 PaddleOCR 提取图片上的文本和公式。 (注:该功能依赖于 paddlepaddle,要求 Python 版本 <= 3.12。您可在设置页面点击“一键安装 OCR 环境”自动完成配置)。 (注:OCR 环境较为复杂,一键配置可能配置失败,建议自行配置)

🛠️ 技术文档

程序流程:将文件提取文本、公式、图片与结构等信息,与 prompt 和 skill 整合后发送给 llm,再将 llm 返回的信息整合为所需文件类型。

  • prompts: llm提示词
  • skills: llm skills
  • ui: 图形化界面窗口脚本
  • core:
    • agent_service agent 相关代码:提示词整合,skill整合,与llm api交互,限制输入输出格式等
    • docx_writer 将llm返回的文本转化为 docx 格式并输出文件
    • formula_extract docx 数学公式提取
    • formula_ocr OCR 进行图片公式提取
    • llm_client llm api 调用
    • skill_engine skill 整合脚本
    • text_extract 文件信息提取
    • xlsx_writer 将llm返回的文本转化为 xlsx 格式并输出文件
    • pptx_extractor 参考 MinerU 实现的 pptx 信息提取

感谢使用智学文档助手,祝您办公/学习效率倍增!

About

学习资料压缩和office处理

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages