学习笔记 · Obsidian
Document Transformers:解析、翻译与重排
5 个路由
| 路由 | 包/类 | 能力与边界 |
|---|---|---|
cross_encoder_reranker | langchain-huggingface + CrossEncoderReranker / HuggingFaceCrossEncoder | 本地 cross-encoder 对每个 query-document pair 打分;通常 top-20 重排到 top-5,精度更高但每候选都增加推理。示例的 langchain-community 已不再维护。 |
google_docai | langchain-google-community[docai] / DocAIParser | GCS 输入/输出、Document AI OCR processor;lazy_parse 每页产文档,也可提交 batch operation、轮询 is_running、取 result 后再 parse。 |
google_translate | google-cloud-translate / GoogleTranslateTransformer | Cloud Translation Advanced v3,plain text/HTML、source auto-detect、target ISO language、model/glossary/regional endpoint;输出新 Document 并附 model/detected language metadata。 |
localai_rerank | 第三方 langchain-localai / LocalAIRerank | 调自托管 LocalAI reranker 的 OpenAI-compatible endpoint;包由第三方维护。 |
voyageai-reranker | langchain-voyageai / VoyageAIRerank | 托管 Voyage rerank + contextual compression;示例还依赖 classic/community FAISS/loader。 |
执行边界
这些页面的 transformer/reranker 调用主要是同步的。DocAI 的 operation 是服务端长任务并通过轮询分阶段取得结果,但示例不是 Python coroutine;不能把“异步作业”与 asyncio API 混为一谈。批量 DocAI 应把 submit、poll、result parse 解耦,持久化 operation name,并对 GCS 输出做 lifecycle cleanup。
Rerank 是第二阶段:先用廉价 retriever 召回有限候选,再重排。候选过少损失 recall,过多线性增加本地 GPU/CPU 或远程费用;要监控 rerank latency、top-n、score distribution 和相对 base retrieval 的质量增益。
数据与安全
- DocAI/Translate/Voyage 会把内容发往外部服务;确认 project/region、IAM、保留、敏感数据与成本。GCS input/output 使用最小权限和受控过期。
- LocalAI 即使自托管也要 TLS/auth、model version、并发、timeout 和健康检查;
localhost示例不是生产部署方案。 - 翻译不能保证姓名、代码、法律/医疗术语或 HTML 结构绝对正确;关键内容使用 glossary、golden corpus 和人工审校。
- Rerank score 是相关性,不是事实性或授权。ACL 必须在候选进入 reranker 前执行,避免把越权文本发送给外部模型。
验证边界
已逐页核对 5 个官方 Markdown 路由、安装与服务边界。没有运行真实 OCR、翻译或 rerank 评测,格式保真、延迟、质量、费用和区域合规仍需目标数据验证。