> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 文档

> Alforse 中的公司文件库，涵盖上传、五种列表视图、基于组的可见性、个人固定与标签、记录附件，以及根据 PDF 预填发票和询价单（RFQ）表单的 AI 提取。

文档浏览器是全公司查找已上传文件的地方，无论文件是独立存在，还是属于工单、采购订单或 RFQ 等记录。采购和销售人员还会通过 AI 提取使用它：系统读取供应商发票或客户 RFQ 的 PDF，并替用户填好表单。

## 概览

在侧边栏中选择**文档**即可打开浏览器，默认进入**所有文档**。文件库是扁平的，没有文件夹，而是通过视图、搜索、筛选以及你自己的固定和标签来缩小范围。

附加到某条记录的文件会出现在两个位置：该记录上，以及文档浏览器中。因此无论从哪一侧入手，都能找到它。

## 查找文件

### 视图

左侧的标签栏可在五种视图之间切换：

FieldType

<details>
  <summary>**所有文档**</summary>

  公司内你有权读取的所有有效文件。
</details>

<details>
  <summary>**我的文档**</summary>

  你自己上传的文件（`createdBy` = 你）。
</details>

<details>
  <summary>**最近**</summary>

  按最近活动排序，最近被查看、下载、加标签或编辑的文件排在最前。
</details>

<details>
  <summary>**已固定**</summary>

  仅显示你已固定的文件。
</details>

<details>
  <summary>**垃圾桶**</summary>

  已移入垃圾箱的文件，保留到有人恢复或永久删除为止。
</details>

### 列

已固定的文件排在最前。表格为每个文件显示：

| 列 | 来源 |
| - | - |
| 名称 | 文件名，可在文档属性中编辑。 |
| 源单据 | 文件所附加的记录（如有）。选择它即可打开该记录。 |
| 标签 | 你的个人标签。 |
| 大小 | 已存储的文件大小。 |
| 类型 | 根据扩展名得出的十一个类别之一（见下文）。 |
| 文件扩展名 | 文件名最后一个点之后的文本，因此始终与真实文件一致。 |
| 已创建 / 已更新 | 谁创建或最后修改了文件，以及时间。 |

**类型**由 Alforse 在上传时自动设置，无需你选择。扩展名决定属于十一种类型中的哪一种：`Archive`、`Document`、`Presentation`、`PDF`、`Spreadsheet`、`Text`、`Image`、`Video`、`Audio`、`Model`（受支持的 3D 格式）或 `Other`。

### 搜索和筛选

搜索框会在文件的**名称**或**描述**中匹配任意位置的文本，不区分大小写。它不会搜索文件内容。可将其与视图标签页，以及按源单据、标签、类型、扩展名或创建者的筛选条件组合使用。

如需导出列表，请选择**下载 CSV**。导出内容为当前结果，每个文件附带一个签名的下载链接。

## 上传文件

选择**上传**并选取文件；所有文件类型均可接受。浏览器会将文件存入私有存储，路径为 `{companyId}/{random}.{ext}`，随后 Alforse 创建一条文档记录，保存路径、名称和大小。

每一次上传、下载、编辑、固定和标签变更都会记录为一条活动事务。**最近**视图的排序依据正是这些事务。

## 用固定和标签整理

固定和标签都是**个人**的。你固定或加标签的内容只影响你自己看到的共享文件库，同事不会看到。

| 整理方式 | 使用方法 | 存储形式 |
| - | - | - |
| **固定**（图钉图标；行菜单中为“收藏”） | 在某一行上切换。文件会移到你的列表顶部，并出现在**已固定**中。 | 一条与你绑定的 `documentFavorite` 记录 |
| **标签** | 在该行的标签弹出框中输入，可复用已有标签或新建标签。选择某个标签即可按其筛选列表。 | 按用户保存的标签，因此你的“Q3-audit”标签不会干扰同事的视图 |

## 谁能看到文件

访问权限由组成员资格与权限共同控制：

| 操作 | 你需要 |
| - | - |
| 查看文件 | 属于其某个 `readGroups`，**并且**拥有 `documents` 查看权限 |
| 编辑或删除文件 | 属于其某个 `writeGroups`，**并且**拥有相应的 `documents` 权限 |

私有存储采用同样的读取组规则，因此指向你无权读取的文件的链接无法打开。

NOTE

**这里的组是 Alforse 的公司组**

读取组和写入组来自你所属的公司组，与 Alforse 其他位置用于限定访问范围的组相同。你可以在编辑文档属性时设置它们。如果文件的所有读取组都不包含某位用户，该文件对其不可见。

## 删除和恢复

| 操作 | 效果 | 可否撤销 |
| - | - | - |
| **移动到垃圾箱** | 将文件的 `active` 标志设为 `false`。记录和已存储的文件都保留，文件会出现在**垃圾桶**中。 | 可以，使用**从垃圾箱恢复** |
| **永久删除**（行菜单） | 彻底删除文件。 | 不可以 |

NOTE

**垃圾箱是软删除，不是清除**

将文件移入垃圾箱只是隐藏它，所有内容都会保留。只有**永久删除**才会真正删除，且无法撤销。

## 将文档附加到记录

文档可以链接回它所属的记录。其**源单据**列显示该链接，并可打开上级记录。Alforse 将链接存储在文件上，包含 `sourceDocument`（记录类型）和 `sourceDocumentId`（记录的 id）。

只有以下记录类型可以拥有文档：

FieldType

<details>
  <summary>**销售方**</summary>

  报价、询价单（RFQ）、销售订单、销售发票、销售退货订单、发货单。
</details>

<details>
  <summary>**采购方**</summary>

  采购订单、采购发票、采购退货订单、采购询价单、供应商报价。
</details>

<details>
  <summary>**生产与质量**</summary>

  工单、量具校准记录、问题。
</details>

<details>
  <summary>**服务与保修**</summary>

  维修订单、保修登记。
</details>

<details>
  <summary>**物料**</summary>

  零件、原材料、工具、耗材、服务。
</details>

<details>
  <summary>**交易方**</summary>

  供应商、客户。它们是主数据记录，而非交易；适用于属于该交易方本身的文件。
</details>

各记录在何处显示其文件，请参阅[销售订单](https://docs.alforse.com/zh/docs/reference/sales-orders.md)、[采购订单](https://docs.alforse.com/zh/docs/reference/purchase-orders.md)和[工单](https://docs.alforse.com/zh/docs/reference/jobs.md)。交易方层面的“文档”标签页见[供应商与客户](https://docs.alforse.com/zh/docs/reference/suppliers-and-customers.md)。

## AI 提取

AI 提取会读取 PDF 并预填表单，免去重新录入。它只适用于两种流程：

| PDF | 流程 |
| - | - |
| **询价单（Request for Quote）** | 销售方 |
| **采购发票** | 采购方 |

### 提取如何运行

将 PDF 拖入任一流程，会创建一条状态为 `pending` 的 `documentExtraction` 记录，并将后台任务加入队列。随后该任务会：

1. 将记录设为 `processing`；
2. 从私有存储下载 PDF，并用 PDF 解析器提取其**文本**。这是文本提取，不是图像 OCR，因此纯图片的扫描版 PDF 提取不到文本；
3. 加载公司的候选记录，使模型能将名称映射到真实 id：发票对应供应商和付款条款，RFQ 对应客户；
4. 将文本和这些候选列表发送给 AI 模型，模型为每个字段返回一个 `{ value, confidence }` 对；
5. **应用置信度阈值**：得分低于阈值（默认 `0.85`）的字段会被设为 `null`，因此不确定的猜测永远不会进入你的表单；
6. 将日期转换为 `YYYY-MM-DD`，把原始输出和过滤后的结果都存入该记录，并将状态设为 `completed`。

随后表单会根据过滤后的值自行填充。在可能的情况下，它会将提取到的联系人和地址与该客户或供应商已有的记录匹配。

NOTE

**它是解析 id，而不是凭空编造**

模型会收到你真实的供应商、付款条款或客户列表，必须返回唯一最佳匹配的 id，或返回 `null`；它被明确告知不得编造。因此 `supplierId`、`customerId` 和 `paymentTermId` 要么是已有记录，要么为空，空缺之处由表单自身的匹配来补全。

### 提取的字段

| 字段组 | 采购发票 | 询价单（RFQ） |
| - | - | - |
| 交易方 | 供应商名称、联系人、地址，以及解析出的 `supplierId` | 客户名称、解析出的 `customerId`、分开的采购联系人和工程联系人、客户地址 |
| 表头 | 发票号、发票日期和到期日、付款条款及解析出的 `paymentTermId`、引用的采购订单号、币种 | RFQ 编号、RFQ 日期、截止日期、要求交货日期 |
| 金额 | 小计、税额、运费、总计 | 无 |
| 行项目 | 零件号、描述、数量、单价、行合计 | 零件号、描述、数量 |

HEADS UP

**提取结果只是草稿，不会直接提交**

`documentExtraction` 记录只是暂存区，它本身绝不会创建发票或 RFQ。这些值只是预填到常规表单中，真正的记录是在你保存时，由经过权限检查的常规路由操作创建。如果后台任务无法入队或解析失败，该记录会被标记为 `failed` 并附上错误信息，你需要手动填写表单。

要获得好的结果，需要基于文本的 PDF。当提取不可用或失败时，两个流程仍可照常使用，你自行录入各字段即可。

NOTE

**这不是文档模板自定义器**

本页介绍的是文件库。**文档模板**功能，即用于自定义 Alforse *生成*的 PDF（报价单、订单确认、发票）的拖放式自定义器，是一个独立的子系统，此处不作介绍。

## 存储配额

每家公司在 Alforse 中保存文件都有一个存储配额，默认为 **32 GB**。更大的配额可能随您的套餐提供，也可以与 Alforse 协商确定；您无法自行更改。

* **计入范围：**公司的所有已存储文件，包括记录上的附件，而不仅是此处列出的文件。仍在进行中的上传同样计入。
* **垃圾箱不会释放空间：****移动到垃圾箱**会保留已存储的文件，因此它仍然计入。

会使公司超出配额的上传在存储之前就会被拒绝，返回 HTTP `413` 和如下消息（英文原文，后附译文）：

> The company's storage quota is used up: *X* of *Y* are in use and this file needs *Z*. Delete files you no longer need or ask for a larger quota.
>
> （公司的存储配额已用完：已使用 *X*（配额 *Y*），而此文件需要 *Z*。请删除不再需要的文件，或申请更大的配额。）

*X* 是公司已使用的空间，*Y* 是配额，*Z* 是被拒绝文件的大小。要继续上传，请删除不再需要的文件，或联系 Alforse 支持申请更大的配额。

## 故障排除

| 现象 | 原因 | 解决方法 |
| - | - | - |
| 已删除的文件仍在列表中，或又回来了 | **移动到垃圾箱**是软删除，**从垃圾箱恢复**可将其撤销。 | 在行菜单中使用**永久删除**彻底删除该文件。 |
| 用户看不到某个文件，或其链接打不开 | 该用户不属于文件的任何 `readGroups`，或缺少 `documents` 查看权限。 | 将用户所属的某个公司组加入读取组，或授予查看权限。 |
| 搜索找不到文件内部的文本 | 搜索只覆盖**名称**和**描述**。 | 重命名文件或添加描述，或用列筛选缩小列表范围。 |
| 扫描版 PDF 提取不到任何内容 | 提取读取的是文本，而不是图像。 | 使用基于文本的 PDF，或手动填写表单。 |
| 预期的字段没有被预填 | 其置信度低于阈值（默认 `0.85`），或者 `supplierId`、`customerId` 或 `paymentTermId` 没有匹配到已有记录。 | 在表单中手动补全该字段。 |
| 提取记录显示 `failed` | 任务无法入队，或解析失败。 | 手动填写表单；该记录本身绝不会创建业务记录。 |
| 上传失败，提示 “The company's storage quota is used up” | 该文件会使公司超出存储配额。 | 删除不再需要的文件（仅移入垃圾箱不够），或联系 Alforse 支持申请更大的配额。 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.