Document、检索组合与引用保真:练习答案
参考实现
追加正文:
python
counts={}
for d in chunks:
identity=d.metadata["id"]
counts[identity]=counts.get(identity,0)+1
d.metadata["chunk_id"]=f"{identity}:{counts[identity]}"
assert len({d.metadata["chunk_id"] for d in chunks}) == len(chunks)
assert all("tenant" in d.metadata and d.metadata["id"] in {"A","B"} for d in chunks)
print([d.metadata["chunk_id"] for d in chunks])位置ID便于当前索引引用,重切分后序号可能变化,因此缓存和引用还需文档/切分版本。