# @ekwo-ai/document-reading 中文文档

规范地址：https://npmcn.com/package/%40ekwo-ai/document-reading/

版本：0\.25\.0
npm 元数据更新时间：2026-11-07T07:35:11.716Z
中文译文更新时间：2026-11-14T16:08:03.663Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ekwo-ai/document-reading
原文对照：https://npmcn.com/package/%40ekwo-ai/document-reading/?lang=original
项目主页：https://github.com/Ekwo-ai/ekwo-os/tree/main/packages/document-reading#readme
源码仓库：https://github.com/Ekwo-ai/ekwo-os

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：89.8 kB，20 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：2 个
- 首次发布：2026-10-23T14:32:05.919Z
- 最新版本发布：2026-11-07T07:35:11.411Z
- 近 30 天下载量：1990（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：11（近 12 个月 11 个）

## 中文简介

CII、Factur-X和UBL读取准确,由视觉模型通过公布的图案和即时读取的照片或平面PDF,两者均输入EN 16931接收发票.

## 安装

```sh
npm install @ekwo-ai/document-reading
```

也可以使用：`pnpm add @ekwo-ai/document-reading`、`yarn add @ekwo-ai/document-reading`、`bun add @ekwo-ai/document-reading`

## README

# @ekwo-ai/ 读取文档

一名读者收到发票。 结构化电子发票——CII、UBL、PDF 载有Factur-X或ZUGFERD XML的正文。 照片或一张 普通PDF 由视觉模型读取 **你们** 电话,与JSON计划 此软件包发布时, 请检查它的答案 。 两者 以相同的EN 16931格式抵达 `ReceivedInvoice`,成为同一购买 草案.

麻省理工学院. 没有数据库,没有网络,没有模式调用: 软件包读取字节和 JSON,并返回对象.

```sh
npm install @ekwo-ai/document-reading
```

## 如何一个产品链

```ts
import {
  READING_VERSION,
  purchaseDraftOf,
  readStructured,
  readingOf,
  readingPrompt,
  readingSchema,
} from '@ekwo-ai/document-reading';

// 1. A structured e-invoice is read exactly, and no model is called.
const structured = await readStructured(bytes);
let invoice = structured?.invoice;

// 2. Anything else is read by a vision model: one call, one schema.
if (invoice === undefined) {
  const answer = await yourModel({
    system: readingPrompt(),
    file: bytes, // the image or the PDF, as your provider takes it
    format: { type: 'json_schema', schema: readingSchema() },
  });
  const reading = readingOf(JSON.parse(answer.text));
  // reading is undefined when the page is not a purchase document.
  invoice = reading?.invoice;
  log({ reading: READING_VERSION, missing: reading?.missing, rejected: reading?.rejected });
}

// 3. The draft of a purchase, in the columns of Ekwo OS.
if (invoice !== undefined) {
  const draft = purchaseDraftOf(invoice);
  // Choose the supplier, the account and the tax in your books, then create_document.
}
```

**模型呼叫,它的钥匙, 它的超时 和测量停留在 产品.** 此软件包名称不包含提供者, 也不包含任何秘密; 计划是 简单的 JSON 方案,每个对象和所需的所有财产都关闭 主要提供者的结构化产出.

## 确切路径 : `readStructured(bytes, options?)`

以第一个字节向 XML 显示一个PDF,以根向 UBL 显示 CII,以及 读取 `readFacturX()` 编号 : `readCii()` 联 合 国 [`@ekwo-ai/factur-x`](https://npmcn.com/package/%40ekwo-ai/formats/factur-x/) 或者说 `readUbl()` 联 合 国 [`@ekwo-ai/peppol-ubl`](https://npmcn.com/package/%40ekwo-ai/formats/peppol-ubl/)返回 `{ invoice, violations }`,或 `undefined` 用于保存不的文件 电子发票——一张照片,没有XML的PDF,不是发票的XML, 一个超过极限的文件——所以来电者是用相反的方式读取. 读者 当文件需要时,会导入它们.

## 模式路径 : `readingSchema()`, (中文(简体) ), `readingPrompt()`, (中文(简体) ), `readingOf()`

模特儿被告知 **复制,永远不要计算**,然后 **倒数空出 而不是猜测**。它返回打印的:

-   页面是什么: `invoice`, (中文(简体) ), `credit_note`, (中文(简体) ), `receipt` (已支付),或 `other` (读作一无所取);
-   数字、发行、到期日期和纳税点日期以及货币 **作为 打印** ——在页上打印出无,从不打印出货币的空白 国家;
-   供应商和客户:法定名称和商品名称、增值税标识符, 登记号、地址;
-   参考资料(客户、订单、合同、发票、信用证) (a) 发票期、IBAN、BIC、付款范围和条款;
-   每行:名称、说明、数量、印刷单位及其联合国/欧洲经委会 建议20 代码、净价格、净金额、增值税类别(UNTDID 5305) 及其期限;
-   汇总的每组增值税:类别、税率、基数、税额、金额 包括印刷税;
-   总计:行,不含增值税,增值税,有增值税,预付,应付; 2;
-   信心(`high`, (中文(简体) ), `medium`, (中文(简体) ), `low`用于每个字段 `CONFIDENCE_FIELDS`,用于每行.

`readingOf(answer)` 检查成一个 `ReceivedInvoice` 与 `syntax: 'model'`,并返回旁边:

| 外地 | 它所持有的 |
| --- | --- |
| `missing` | EN 16931字段要求页面不按路径打印(`number`, (中文(简体) ), `totals.payable`, (中文(简体) ), `lines[2].net_amount`) (中文(简体) ). 每个都是 `''` 在发票中. |
| `rejected` | 模型中填满了非外形的东西的字段——这个日期是没有一天的,是用文字表示的速度. 各入虚空. |
| `violations` | EN 16931的算术显示印刷数字断裂,仅在所读数字全部被读取时检查. |
| `confidence` | 按字段和行`lines[n]`, (中文(简体) ), `null` 模特儿说没什么用. |
| `taxInclusiveByGroup` | 按增值税类别,包括按EN 16931不携带的页印征税的数额. |
| `extension` | 召者自有田地,未发. |

没有计算、默认或更正任何内容:未打印的总数 保持空位, 单个逗号被读作小数分隔符和任何东西 这不是一个小数 被拒绝.

## 扩展计划

需要超过发票的呼叫者会增加自己的财产,请参见: 同一电话:

```ts
const extension = {
  properties: {
    meter: { type: 'string', description: 'The meter number, as printed.' },
    contract_type: { type: 'string', description: 'The contract type, as printed.' },
  },
  instructions: 'The meter number is printed near the address of supply.',
};
const schema = readingSchema(extension); // adds a closed `extension` object
const prompt = readingPrompt(extension); // adds the instructions after the package's words
const reading = readingOf<{ meter: string; contract_type: string }>(answer);
reading?.extension; // as the model answered it: check your own fields
```

发票读了一次,扩展的字段又回到旁边 pDF 从来没有第二次读取.

## 采购草案: `purchaseDraftOf(invoice)`

领域 `documents` 财务报告和审定财务报表 `document_lines` ekwo 操作系统,从任一路径:

-   `doc_type` (单位:千美元)`purchase_invoice` 或者说 `purchase_credit_note`,日期,日期,日期 供应商编号为 `supplier_reference`, (中文(简体) ), `currency_code` (没有它在哪里) 参考文献, `payment_reference`, (中文(简体) ), `payee_iban`· ;
-   在联系人或 添加;
-   每行一行,然后每行一行津贴(负数)或收费 整个文件,每个文件及其 `unit_code`,其增值税类别和税率.

一行保留其数量、单位代码和价格,按其数额计算 其货币的十进制 `amount_untaxed` 计算 `1234 kWh × 0.1834 = 226.3156`,哪个回合 `226.32` 已打印过. 否则,它是一个单位(`C62`(按金额计算,发票是自己的) 数字输入 `attributes` (单位:千美元)`invoiced_quantity`, (中文(简体) ), `invoiced_unit_code`, (中文(简体) ), `invoiced_net_price`) (中文(简体) ). 一行的时期进入 `attributes` 作为 `period_start` 财务报告和审定财务报表 `period_end`;发票的期间为每行 并返回为 `invoicing_period`。 。 。 .

供货商、账户和税收由打电话者自行选择 书籍和乡村包:这个包没有图表,也没有费率.

## 许可证

麻省理工学院. 见 [`LICENSE`](https://npmcn.com/package/%40ekwo-ai/document-reading/LICENSE)。 。 。 .

## 常见问题

### @ekwo-ai/document-reading 是什么？

CII、Factur-X和UBL读取准确,由视觉模型通过公布的图案和即时读取的照片或平面PDF,两者均输入EN 16931接收发票\.

### 如何安装 @ekwo-ai/document-reading？

在项目目录运行 npm install @ekwo-ai/document-reading，或使用 pnpm add / yarn add / bun add。

### @ekwo-ai/document-reading 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @ekwo-ai/document-reading 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @ekwo-ai/document-reading 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @ekwo-ai/document-reading 可以商用吗？

@ekwo-ai/document-reading 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @ekwo-ai/document-reading 的下载量有多少？

根据 npm 官方下载统计，@ekwo-ai/document-reading 在 2026/10/13 – 2026/11/11 这 30 天内被下载 1,990 次，日均约 66 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ekwo-ai/document-reading 还在维护吗？

最新版本 0\.25\.0 发布于 2026/11/07（7 天前）；至今共发布 11 个版本，其中过去 12 个月发布了 11 个；首次发布于 2026/10/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

