Kreuzberg v4.5 重大更新发布Kreuzberg 团队发布了 v4.5 版本这是一个重要的里程碑更新。项目简介Kreuzberg 是一个开源MIT 许可的文档智能框架支持 12 种编程语言。它用 Rust 编写为 Python、TypeScript/Node.js、PHP、Ruby、Java、C#、Go、Elixir、R、C 和 WASM 提供原生绑定。可以从 88 种格式中提取文本、结构和元数据运行 OCR生成嵌入向量专为 AI 流程和大规模文档处理而构建。核心更新亮点文档结构理解能力不仅提取文本现在还能理解文档结构布局/表格集成了 Docling 的 RT-DETR v2Docling Heron模型将其嵌入到 Rust 原生管道中性能优势在 171 个 PDF 文档的基准测试中包括学术论文、政府和法律文档、发票、OCR 扫描等结构 F1 分数Kreuzberg 42.1% vs Docling 41.7%文本 F1 分数Kreuzberg 88.9% vs Docling 86.7%平均处理时间Kreuzberg 1,032 毫秒/文档 vs Docling 2,894 毫秒/文档速度提升平均快 2.8 倍内存开销更小无需 Python 依赖技术特性支持 17 种文档元素类型分类表格检测和结构预测使用 TATR 模型使用 pdfium 直接从 PDF 原生文本层提取文本保留字符位置、字体元数据自动 OCR 回退针对无文本层的页面支持 PDF/A 标记结构树自动修复字体 CMap 表错误多后端 OCR 管道包含 PaddleOCR v218,000 字符多语言模型提取结果缓存项目链接https://kreuzberg.dev/https://old.reddit.com/r/rust/comments/1s0eyn5/kreuzberg_v450_we_loved_doclings_model_so_much/特性携带值的设想概述这篇文章探讨了一个假设性的语言设计概念如果特性(traits)可以携带值会怎样核心机制声明全局能力名称使用capability my_capability;声明一个全局名称隐式参数传递可以在 where 约束中写入my_capability: Type这类似于隐式参数的工作方式编译器会自动传递相应的值如果找不到合适的值编译器会报错作用域内提供值通过以下语法为特定作用域提供值with my_capability some_value() { ... }在代码块内该能力将携带指定的值设计意义这种机制允许在编译时通过类型系统管理和传递上下文相关的值类似于依赖注入或上下文传递模式但以更加类型安全和编译器辅助的方式实现。https://nadrieril.github.io/blog/2026/03/22/what-if-traits-carried-values.html--From 日报小组 Mike社区学习交流平台订阅Rustcc论坛: 支持rss微信公众号Rust语言中文社区