当前位置: 首页 > news >正文

【Rust日报】 Kreuzberg: 一个开源(MIT 许可)的文档智能框架

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

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss

  • 微信公众号:Rust语言中文社区

http://www.jsqmd.com/news/579065/

相关文章:

  • k8s网络Cilium10 - 小镇
  • Spring Boot项目里,我把Jackson换成FastJSON2后,接口性能提升了3倍(附完整配置与踩坑记录)
  • ClickHouse报错排查实战:从‘Nested type Array(String) cannot be inside Nullable type’到‘Table is in readonly m
  • PVN3D 原生 / ONNX 混合 / TRT 混合推理速度测试
  • 《QGIS快速入门与应用基础》256:SVG格式:适合矢量图二次编辑
  • 如何设置 SEO 关键词的权重和布局
  • 告别穿模与漂移!南洋理工团队提出HMR新框架:用视觉大模型对齐人体姿态
  • 保姆级教程:手把手教你用百度网盘下载并安装AD20(附汉化与激活全流程)
  • Python 3.14 JIT启用后反而变慢?——揭秘AST优化器与LLVM后端协同失效的4种临界场景
  • Mavlink协议解析:从Pixhawk飞控到QGC地面站的完整通信流程
  • OpenClaw内容审核:Qwen3.5-9B-AWQ-4bit实现图片敏感内容过滤
  • Claude Code源代码泄露,Anthropic第三次“开源”翻车
  • OpenClaw备份策略:Phi-3-mini-128k-instruct配置文件的版本控制
  • 为什么你的MCP服务器在QPS>3200时开始丢帧?揭秘内核级Socket缓冲区与GIL协同失效真相
  • 手把手教你排查I2C通信故障:当上拉电阻配置不当会发生什么?
  • FlipIt翻页时钟屏保:为Windows桌面添加复古时间艺术
  • Python数据分析实战:用Seaborn绘制炫酷相关性热力图(附完整代码)
  • Vue2项目里用Cesium加载天地图标注,保姆级避坑指南(含Token申请)
  • 大语言模型专家:引领丰语垂域智能革命,塑造未来科技先锋!
  • 告别OOM!手把手教你用PyTorch 1.6+的AMP加速训练,从单卡到多卡完整配置
  • PVN3D Custom ONNX Op / TensorRT Plugin 设计说明
  • Svelte 现实世界指南(四)
  • 为什么你的PyTorch 3.0静态图训练成本比竞品高2.6倍?——基于17家头部AI Lab真实Trace数据的成本效能诊断矩阵(含可执行checklist)
  • 2026年市场口碑好的GEO优化排名企业,究竟有哪些独特优势?
  • 成为数据科学家之路,第一部分:数学
  • Figma Make 提示词工程化:构建从布局、组件、交互到风格的稳定设计系统
  • 【STM32MP135】实战指南:利用HAL库构建Bare Metal裸机应用并实现SD卡启动全流程
  • OpenClaw学习助手:千问3.5-27B驱动错题本自动整理与解析
  • OpenClaw智能截图:千问3.5-27B识别界面元素自动操作
  • C语言标准流实战:stdin/stdout/stderr重定向的5个常见场景与代码示例