"""对人工整理的文档块构造带来源的片段；不执行 PDF 解析或 OCR。"""
from hashlib import sha256

# 假设解析器已按阅读顺序输出这些块；page 和 heading 来自源文件。
blocks = [
    {"page": 1, "heading": "质量退货", "text": "签收三十天内，经核实属于质量问题的退货，运费由商家承担。"},
    {"page": 1, "heading": "普通退货", "text": "签收七天内且商品未使用、包装完好，运费由买家承担。"},
]
document_id, version = "after-sales", "v1"
chunks = []
for position, item in enumerate(blocks):
    # 用文档身份、版本与块序号建立来源身份；内容哈希另外用于变化检测。
    chunk_id = f"{document_id}:{version}:{position}"
    chunks.append({
        "id": chunk_id,
        "document_id": document_id,
        "version": version,
        "page": item["page"],
        "heading": item["heading"],
        "text": item["heading"] + "：" + item["text"],
        "content_hash": sha256(item["text"].encode("utf-8")).hexdigest(),
    })
# 展示同一原文的错误拆法；后半段无法说明承担费用的适用条件。
text = blocks[0]["text"]
condition, conclusion = text.split("运费", 1)
print("残缺候选：", "运费" + conclusion)
print("完整候选与来源：", chunks[0])
# 真正入库还应按目标 Tokenizer 检查长度，而不是用汉字数冒充 Token 数。
