Elixir 中使用 Xberg pages 配置:页面提取与页面标记的完整指南

发布时间:2026/9/28 7:37:25

Elixir 中使用 Xberg pages 配置:页面提取与页面标记的完整指南 后端AI 应用NLP【免费下载链接】xbergPolyglot document intelligence with a Rust core: extract text, metadata, images, tables, and structured data from 106 formats across 140 file extensions, plus code intelligence for 371 languages. Fifteen bindings, with CLI, REST API, and MCP server.项目地址https://gitcode.com/gh_mirrors/kr/xberg点击查看免费下载导读本文聚焦于 Xberg 的pages配置项——一个控制 PDF 等文档页面级提取行为的核心开关。通过extract_pages与insert_page_markers两个字段你可以让提取结果按页组织、并在正文中插入可识别的分页标记从而为 RAG 检索、逐页校对、章节定位等场景提供稳定的页面锚点。读完本文你将掌握在 Elixir 中通过Xberg.extract/Xberg.extract_async传 JSON 配置启用页面提取、理解底层配置结构与自动规范化规则并能在真实测试用例与源码中验证行为。什么是 pages 配置两个开关 一个格式模板在 Xberg 的提取配置中pages是一组独立于chunking、ocr等模块的页面处理选项。它位于顶层ExtractionConfig.pages字段类型为OptionPageConfig为None时页面跟踪完全关闭源码定义见 crates/xberg/src/core/config/page.rs字段类型默认值作用extract_pagesboolfalse是否把每一页提取为独立的数组元素写入结果中的pages字段ExtractedDocument.pagesinsert_page_markersboolfalse是否在主内容字符串中插入分页标记marker_formatstring\n\n!-- PAGE {page_num} --\n\n页面标记的模板格式{page_num}是页码占位符会被替换为实际页码默认值在PageConfig::default()中由源码直接确认extract_pages: false、insert_page_markers: false、marker_format同上并有对应的单元测试test_page_config_default锁定page.rs#L59-L69。也就是说不传pages配置时页面既不会被独立提取正文中也不会有任何分页标记。Elixir 实战一行 JSON 配置启用页面提取在 Elixir 绑定中配置通过config参数以 JSON 字符串形式传入Xberg.extract或Xberg.extract_async。官方契约用例e2e/elixir/test/contract_test.exs#L27052-L27064展示了两者同时启用的完整写法input_value %Xberg.ExtractInput{kind: uri, uri: https://example.com/pdf/fake_memo.pdf} result Xberg.extract_async(input_value, {\pages\:{\extract_pages\:true,\insert_page_markers\:true}}) IO.inspect(Enum.at(result.results, 0).mime_type) IO.inspect(Enum.at(result.results, 0).content)等价于使用同步接口{:ok, result} Xberg.extract( input: %Xberg.ExtractInput{kind: uri, uri: https://example.com/pdf/fake_memo.pdf}, config: {\pages\:{\extract_pages\:true,\insert_page_markers\:true}} ) # 断言 MIME 类型为 PDF assert Enum.at(result.results, 0).mime_type application/pdf # 正文长度 10 assert byte_size(Enum.at(result.results, 0).content) 10 # 正文中应包含页面标记文本 PAGE assert String.contains?(to_string(Enum.at(result.results, 0).content), PAGE)关键要点input的kind可以是:uri、:bytes等配合config一起调用config是 JSON 字符串嵌套字段用点号语义逐层解析此处为pages.extract_pages、pages.insert_page_markers。断言表明启用insert_page_markers后正文content中会出现 PAGE 字样——这是默认标记格式!-- PAGE {page_num} --的体现。该用例同时存在于跨语言契约文件 fixtures/contract/config_pages.json其断言与 Elixir 版一一对应results[0].mime_type application/pdf、content长度 ≥ 10、包含PAGE说明页面配置的行为是所有语言绑定共享的同一契约。底层原理一extract_pages 如何产出独立页面数组extract_pages: true时提取结果会额外携带按页组织的独立内容。从 crates/xberg/src/core/config/extraction/core.rs#L168-L170 可以看到pages字段在ExtractionConfig中的位置与注释Page extraction configuration (None no page tracking)。在 PDF 提取路径中crates/xberg/src/extractors/pdf/extraction.rs#L425-L437 展示了实际接线逻辑当层次结构hierarchy开启而pages.extract_pages未被显式打开时代码会自动把extract_pages置为true——因为层级结构输出需要页面边界信息才能给每个元素分配正确的页码。更值得关注的是配置的自动规范化规则见 crates/xberg/src/core/config/extraction/core.rs#L890-L917normalized()方法当result_format为ElementBased基于元素的结果格式而页面提取未开启时会自动启用extract_pages——否则所有元素都会被错误地标记为page_number 1当配置了chunking文本分块而页面提取未开启时同样会自动启用extract_pages——因为分块器需要页面边界来给每个 chunk 分配正确的页码。这意味着你只需专注于自己的核心配置Xberg 会在需要页面信息的场景下自动补齐extract_pages避免输出全是一页的错误结果。底层原理二insert_page_markers 与 marker_format 模板insert_page_markers: true时提取器会在正文内容中按页插入标记。标记格式由marker_format控制占位符{page_num}会被替换为实际页码默认格式\n\n!-- PAGE {page_num} --\n\n采用 HTML 注释形式对绝大多数下游解析器包括 Markdown 渲染、LLM 提示构造透明无副作用。源码 page.rs#L49-L57 中还有一个容易被忽略的细节——marker_line_regex()它会把marker_format中每一处{page_num}替换为\d并整体转义生成一个整行即标记的正则。该正则的作用是识别正文中已渲染的标记行让各格式渲染器如 Markdown 渲染器将标记行原样透传、不当作正文改写。这也解释了为什么标记默认带前后换行保证它独占一行、可被正则精确匹配。如果你希望使用自己的标记格式例如无 HTML 注释的纯文本可传入{pages:{extract_pages:true,insert_page_markers:true,marker_format:\n PAGE {page_num} \n}}注意marker_format中{page_num}是必需的占位符且marker_line_regex假定每个标记独占一行^...$锚定因此自定义格式建议保留行首行尾的换行。页面配置与分块chunking的协同页面提取通常不是孤立使用的。常见的组合场景是页面 分块先按页组织内容再让分块器基于页面边界切块使每个 chunk 都能携带准确的first_page/last_page元数据。这一点在 page.rs 模块注释 中有明确说明Page range tracking in chunk metadata (first_page/last_page) is automatically enabled when page boundaries are available and chunking is configured.而 crates/xberg/src/core/split.rs#L89 中extract_pages true的赋值进一步印证分块管线在内部解析页面配置并强制要求页面提取开启以保证 chunk 的页码元数据可用。因此当你做 RAG 检索增强检索结果回指到具体页码时推荐同时开启extract_pages与chunking。验证方法从契约文件到端到端测试如果你想在本地复现或验证上述行为仓库提供了两条路径跨语言契约无需服务器查看 fixtures/contract/config_pages.json。它定义了config{pages:{extract_pages:true,insert_page_markers:true}}、mock 响应/pdf/fake_memo.pdf返回../test_documents/pdf/fake_memo.pdf与三条断言。fixtures/contract目录下的契约 JSON 由 Alef 自动生成各语言绑定代码是所有语言的单一事实来源。Elixir 端到端测试运行 e2e/elixir/test/contract_test.exs 中的config_pagesdescribe 块。它通过 mock 服务器提供 PDF 文件断言 MIME 类型为application/pdf、正文非空且包含PAGE。你可以在本地启动 mock 服务器参考 scripts/e2e/run-with-mock-server.sh再执行对应测试用例。小结pages配置是 Xberg 中页面意识page awareness的最小入口extract_pages决定页面是否独立成数组insert_page_markers决定正文是否带有可解析的分页标记marker_format决定标记的呈现模板。本文给出的 Elixir 调用方式可直接复制运行结合normalized()的自动规范化逻辑你甚至可以在元素级结果或分块场景下无感获得正确的页码归属。对于任何需要逐页定位、逐页处理或多页文档检索增强的应用这一配置都是必选项。赞分享后端AI 应用NLP【免费下载链接】xbergPolyglot document intelligence with a Rust core: extract text, metadata, images, tables, and structured data from 106 formats across 140 file extensions, plus code intelligence for 371 languages. Fifteen bindings, with CLI, REST API, and MCP server.项目地址https://gitcode.com/gh_mirrors/kr/xberg点击查看免费下载相关推荐Xberg 的 PageConfigPDF 分页提取与页面标记配置实战指南CXberg 的 PageConfigPDF 分页提取与页面标记配置实战指南C 导读 本文以 Xberg 仓库中的契约测试文档 config_pages.后端AI 应用NLP使用 xberg 的 PageConfig 提取分页内容页面数组与页面标记Page Markers实战指南使用 xberg 的 PageConfig 提取分页内容页面数组与页面标记Page Markers实战指南 导读 在从多页 PDF、扫描件或排版复杂的文档后端AI 应用NLPXberg 页面级抽取与页面标记配置实战extract_pages / insert_page_markers 契约解析与实现原理Xberg 页面级抽取与页面标记配置实战extract_pages / insert_page_markers 契约解析与实现原理 本篇技术指南围绕 Xber后端AI 应用NLP上一篇纯强化学习突破DeepSeek-R1-Zero开源推理模型训练范式重构下一篇5分钟掌握FanControl风扇控制软件完整中文使用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/28 7:32:25

六安开发区网站新手入门:5步搞定SEO让百度首页见你

六安开发区网站新手入门:5步搞定SEO让百度首页见你 刚接手六安开发区的网站项目,是不是对着后台发懵?域名解析指向哪里,服务器配置怎么填,这些底层逻辑一旦搞不懂,后面所有优化都是空中楼阁。很多甲方对接人跟我说,技术团队给了一堆代码和参数,听…

2026/9/28 8:37:29

Qt迷宫游戏源码解析:从DFS生成到A*寻路的完整实战

简介:基于Qt C框架的迷宫游戏实战项目,面向游戏开发初学者及需要完成课程设计的编程学习者,覆盖迷宫随机生成、角色移动、自动寻路等完整游戏逻辑,是一份可直接运行的Qt工程,适合用于理解图形界面游戏的整体开发流程。…

2026/9/28 8:37:29

智能硬件场景下Android工程师必备技能与面试实战指南

这份岗位信息是上海荣泰健康科技的Android工程师,国内做按摩椅和健康设备的老牌厂商,产品线从家用按摩椅一直延伸到共享按摩椅、健康小家电。很多人看到“XX科技公司招聘Android工程师”,下意识以为是做商城、做工具类App,但这家不…

2026/9/28 8:37:29

Java面试进阶:从背题到理解原理,构建JVM/并发/分布式知识体系

1. 先说个反直觉的事:挂在“背过的题”上的人,比挂在新题上的多得多这些年我帮人改简历、做模拟面试,看过太多准备了厚厚一沓网上流传的“Java面试题整理”的候选人。说实话,能把题背得滚瓜烂熟的人不少,但真正能通过面…

2026/9/28 8:37:28

域名服务器搞不懂?锦州做网站公司哪家好,这份怎么选指南请收好

域名服务器搞不懂?锦州做网站公司哪家好,这份怎么选指南请收好 域名解析报错、服务器被墙、SSL证书过期,这些坑你是不是刚踩完?在锦州,很多老板找建站公司,不是怕技术不行,而是怕售后没人管,怕域名和服务器配置一塌糊涂导致网站打不开。面对满大街…

2026/9/28 8:32:28

SpringBoot+Vue旅游网站管理系统:数据库设计到前后端联调全解析

做旅游网站管理系统这个选题,算是计算机专业项目里特别常见的一类了。但说实话,同样的题目,有人做出来只是把CRUD堆一遍,有人做出来能讲清业务链路、讲清每个技术决策的来龙去脉,这两者的差距,面试官和答辩…

2026/9/28 3:03:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/28 6:05:15

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/28 6:07:41

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/28 0:02:03

广州外贸网站建设推广:从零搭建全流程拆解与真实报价避坑

广州外贸网站建设推广:从零搭建全流程拆解与真实报价避坑 改个需求建站公司拖一周,后台改个文案还得再交一笔“技术维护费”。这种憋屈事儿,做外贸的朋友太熟悉了。很多老板在找广州外贸网站建设推广服务商时,光盯着首页好不好看,却忽略了从零搭建一个能…

2026/9/28 0:02:04

搞懂百度竞价推广价格,网站性能优化别掉链子

搞懂百度竞价推广价格,网站性能优化别掉链子 网站突然打不开,浏览器弹出红色警告“此网站存在安全风险”,后台一看全是乱码代码和奇怪的跳转链接。这种网站被黑挂马的绝望感,很多刚转行做网站的朋友都经历过,尤其是那些为了省几百块钱服务器费用的新手。…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/28 1:59:25

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑