< 返回版块

Mike Tang 发表于 2026-03-27 14:36

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 v2(Docling 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 v2(18,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

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页