简体中文 | English
KnowForge 是一个基于人工智能的自动化学习笔记生成器,能够从多种输入源(PDF、图片、代码、网页链接)整合处理,生成结构化的笔记,支持多种格式输出。
- 多源输入支持:处理PDF文档、图片(OCR)、网页链接、代码文件
- 智能文本拆分:根据章节/段落自动拆分大文档
- 记忆管理系统:通过向量化和ChromaDB实现上下文记忆和检索
- AI生成增强:使用大语言模型生成摘要和笔记内容,支持多种LLM接口
- 高级OCR处理:结合LLM和知识库的OCR结果校正和增强
- 多格式输出:支持Markdown、Jupyter Notebook、PDF格式
- 高级日志与国际化系统:基于Logloom的全面国际化支持和日志系统
- 多语言支持:支持中文和英文界面
- 跨平台兼容:支持Windows和Linux系统
- 当前版本:v0.1.7(输出系统增强已完成)
- v1.0.0:完整功能版本(包括Web界面)
- v2.0.0:MoeAI-C系统集成版本
- v0.2.0(预计:2025年6月):高级记忆管理与LLM增强
- v0.3.0(预计:2025年8月):知识图谱与跨文档关系
- v0.4.0(预计:2025年10月):学习辅助与智能评估
- v0.5.0-v1.0.0(预计:2025年12月-2026年3月):Web界面与用户体验
参考KnowForge路线图文档,当前已完成v0.1.7版本(输出系统增强),正在进行v0.2.0版本(高级记忆管理与LLM增强)的开发。
最新里程碑:
- 2025年5月16日 (v0.1.6):完成高级PDF图像提取和OCR增强功能,实现多方法冗余提取策略和LLM增强OCR结果,提取成功率达到100%。同时完善高级记忆管理系统,实现记忆访问统计更新和工作记忆优化。
- 2025年5月14日 (v0.1.5):规划文档综合处理功能,设计DocumentAnalyzer、ContentExtractor等核心组件,准备开发PDF内容自动识别能力。
- 2025年5月10日 (v0.1.4):实现OCR-LLM-知识库集成,开发了EmbeddingManager和LLMCaller模块,大幅提升了图像文本识别质量。
- 2025年5月8日 (v0.1.3):将LocaleManager完全迁移至Logloom,优化了国际化资源加载机制,实现了键名智能解析功能。
- 2025年5月5日 (v0.1.2):向量记忆管理模块优化,修复了与ChromaDB API的兼容性问题,增强了混合检索策略。
- 2025年5月2日 (v0.1.1):集成Logloom日志系统,提升了系统的可靠性和国际化支持。
下一步计划: 现已完成v0.1.7输出功能增强,即将进入v0.2.0开发阶段,专注于高级记忆管理功能和LLM调用模块增强。根据更新后的路线图,我们已制定了明确的v1.0.0目标和详细的开发里程碑,确保在v1.0.0版本前完成Web界面开发。详细的设计方案见13_DocumentProcessingDesign.md和13_AdvancedMemoryManager_Progress.md。
更新后的完整开发路线图请查看08_ROADMAP_KnowForge.md,其中明确了从当前版本到v1.0.0的详细发展规划和里程碑。
- 操作系统:Windows 10+、Linux (Ubuntu 20.04+, Fedora 41+)
- Python版本:3.11或更高
- 内存:建议4GB以上,处理大文档时推荐8GB+
# 创建环境
conda create -n knowforge python=3.11
conda activate knowforge
# 克隆项目
git clone https://github.com/yourusername/knowforge.git
cd knowforge
# 安装依赖
pip install -r requirements.txt
# 安装最新版Logloom(必需)
pip install logloom
# 在conda环境中需要设置环境变量
# Linux/macOS
export DEEPSEEK_API_KEY=your-api-key-here
# Windows
set DEEPSEEK_API_KEY=your-api-key-here# 创建环境
python -m venv venv
# 激活环境 (Windows)
venv\Scripts\activate
# 激活环境 (Linux/macOS)
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 安装最新版Logloom(必需)
pip install logloomexport DEEPSEEK_API_KEY=your-api-key-here
-
根目录(如果不存在)创建文件
.env -
编辑
.env文件,填入您的API密钥
DEEPSEEK_API_KEY=your-api-key-here
基本用法:
python gen_notes.py generate --input-dir "input/" --output-dir "output/" --formats "markdown,ipynb"参数说明:
--input-dir: 输入文件目录--output-dir: 输出文件目录--formats: 生成的输出格式,用逗号分隔(支持 markdown, ipynb, pdf)
查看帮助:
python gen_notes.py --help将您的文件放在以下目录结构中:
input/
├── pdf/ # 放置PDF文档
├── images/ # 放置图片
├── codes/ # 放置代码文件
└── links/ # 放置包含URL的文本文件(每行一个链接)
生成的文件将保存在:
output/
├── markdown/ # Markdown文件
├── notebook/ # Jupyter Notebook文件
├── pdf/ # PDF文件
└── logs/ # 日志文件
当前项目处于迭代3(高级功能与优化阶段)开发中,已经完成了国际化系统的全面升级,下一步将重点实现OCR功能和多格式输出支持。 详细的版本历史和计划请查看更新日志和开发路线图。
详细的开发指南请参阅 开发者文档。
运行测试:
# 运行所有测试
pytest tests/
# 检查测试覆盖率
pytest --cov=src tests/
# 运行llm集成测试(你需要在input文件夹中放入文件后,才能进行测试)
python scripts/llm_integration_check.py项目现已完全迁移至Logloom进行国际化和日志管理。Logloom提供了以下功能:
- 统一国际化API:使用
get_text和format_text获取翻译 - 动态资源加载:支持
register_locale_file和register_locale_directory动态加载语言资源 - 多语言支持:完整支持中英文界面和日志消息
- 智能键名解析:处理多种键名格式,简化开发过程
- 自动日志文件轮转:防止日志文件过大
- 可配置的日志格式和级别:通过
resources/config/logloom_config.yaml进行设置
新代码应直接使用Logloom API而非LocaleManager(LocaleManager现为过渡层):
# 推荐方式(直接使用Logloom)
from logloom import get_text, format_text
welcome = get_text("welcome")
error = format_text("system.error", message="发生错误")
# 过渡方式(使用LocaleManager作为Logloom封装)
from src.utils.locale_manager import LocaleManager
locale = LocaleManager("resources/locales")
welcome = locale.get("welcome")
error = locale.format("system.error", {"message": "发生错误"})- Windows上可能需要安装Visual C++ Build Tools
- Linux可能需要额外的系统库:
apt-get install libgl1
- Linux:
apt-get install libpango1.0-dev libharfbuzz-dev libffi-dev - Windows: 按照官方指南安装GTK+
- 项目需要最新版本Logloom,确保使用
pip install logloom安装了最新版本 - 如果遇到键名格式问题,请检查使用方式是否正确(详见开发指南)
- 配置文件位置应为
resources/config/logloom_config.yaml - 语言资源目录应为
resources/locales/
knowforge/
├── input/ # 用户输入目录
├── output/ # 最终输出目录
├── workspace/ # 中间缓存区
├── src/ # 源代码
│ ├── note_generator/ # 核心逻辑模块
│ │ ├── advanced_memory_manager.py # 高级记忆管理系统
│ │ ├── advanced_ocr_processor.py # 高级OCR处理器
│ │ ├── llm_caller.py # LLM调用模块
│ │ ├── document_analyzer.py # 文档分析器(规划中)
│ │ ├── content_extractor.py # 内容提取器(规划中)
│ │ └── content_processor.py # 内容处理器(规划中)
│ ├── cli/ # CLI界面
│ └── utils/ # 工具类
│ ├── locale_manager.py # Logloom封装(过渡层)
│ └── logger.py # 日志系统
├── resources/ # 静态资源
│ ├── config/ # 配置文件
│ │ ├── config.yaml # 主配置文件
│ │ └── logloom_config.yaml # Logloom配置
│ └── locales/ # 语言资源
│ ├── zh.yaml # 中文语言资源
│ ├── en.yaml # 英文语言资源
│ ├── logloom_zh.yaml # Logloom中文资源
│ └── logloom_en.yaml # Logloom英文资源
├── tests/ # 单元测试
└── scripts/ # 工具脚本
- Fork本仓库
- 创建您的特性分支 (
git checkout -b feature/amazing-feature) - 提交您的更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建Pull Request
本项目采用GNU通用公共许可证v3.0 (GPL-3.0) - 详情参见 LICENSE 文件。该许可证确保软件及其衍生作品始终保持开源,并要求任何修改或衍生作品同样以GPL-3.0协议发布。
- @ydzat - GitHub