# RAGFlow Excel表格知识库：保留每行SKU与单位，区分零重量和未提供

## 实际范围

需可用 RAGFlow 1.0.0-rc1 实例、embedding/chat 模型和实际解析记录。官方部署起点为 x86-64、16GB RAM、50GB 可用磁盘；本练习未部署 RAGFlow、未嵌入、未编译知识。代码 Apache-2.0，模型许可另计。

已实际执行：原创输入生成、PDF渲染、文件哈希/教材事实检查与两条故意错误拒绝。人工reference-manual.json不冒充目标工具输出；actual-template.json为空模板，不能视为实际结果。

## 使用

```bash
python3 verify.py
python3 verify.py --actual my-observation.json
```

默认材料检查使用Python标准库；可选的--pdf深度检查需要pypdf，且只接受本题定义的PDF契约。不连接任何外部服务或数据库。--actual检查你填写的规范化事实记录，不自动识别任意工具原生导出；仍须逐项回读原生输出。

## 七步操作

1. 检查八行产品表

打开 products.xlsx 或 products.csv。表中 weight_g 是克、battery_hours 是小时；QR-121 重量未提供，QR-120L 的0是刻意的异常原值，应照原文呈现并待核实。

2. 选择Table解析与固定Embedding

在实际 Dataset 选 Table parser；API 选项以当前 parser_id 文档为准。确定 embedding 后再解析，不能把不同向量空间的结果混用。

3. 上传表格并查看逐行分块

实际解析自己的测试文件，打开 chunks 核对每行是否保留 SKU 与列名。本站没有上传或嵌入；输入工作簿截图不是 RAGFlow 界面。

4. 先问精确SKU问题

依次发送 Q1–Q3，打开引用回读原始行。相近产品名不能代替准确 SKU；没有重量时回答未提供，不从其他 SKU 借用数值。

5. 区分检索与总计计算

本题只做产品行查找，不让模型依据少量召回片段计算全表总计。需要总量时先确定全量数据是否进入确定性计算器，再另立验收。

6. 保存实际回答和行号

按 actual-template.json 整理实际答案，source_row 是数据行的一基序号，不含表头。保留 null 与0的类型。

7. 运行相似SKU与缺值负例

负例会拒绝混淆 QR-120/QR-120L 以及把未提供重量补0。即使回答数值正确，也应保存自己实际引用行才能证明对应来源。

## 原创与图片身份

source.pdf及数据文件是本站原创虚构教材。页面官方截图只说明工具入口；人工真值图与材料核验图都注明身份，未生成目标软件的假界面或假模型结果。

## 官方依据

- 当前 parser_id 与 Table API: https://ragflow.io/docs/v1.0.0-rc1/http_api_reference
- 官方 TableChunker 逐行契约测试: https://github.com/infiniflow/ragflow/blob/main/internal/ingestion/component/chunker/table_test.go
