3.5 KiB
Pipeline PDF và xây dựng corpus
Loại chính: Explanation, kèm runbook xây corpus
Đối tượng: data/RAG engineer
Logic end-to-end
- Pipeline đọc PDF theo layout, phát hiện glyph order, cột, heading, bảng và công thức.
- Span được sửa thứ tự đọc rồi gắn vào monograph thuốc và section chuẩn.
- Mapping physical page → printed page được giữ riêng để tạo citation đúng.
- Bảng/công thức 2D được quarantine thành attachment và descriptor; cell value chưa kiểm chứng không đi vào prose.
- Monograph được chia theo drug + section + ngữ nghĩa, giữ context label cho liều, đối tượng và đường dùng.
- Chunks được embed theo
search_document, cache theo model/input kind và upsert Qdrant bằng UUID ổn định từchunk_id. - Sidecar manifest ghi hash corpus, model, dimensions và count. Query runtime từ chối startup nếu manifest không tương thích.
Các cổng chất lượng
validate: đối chiếu recall/precision toàn sách với index.coverage: ghi ledger mỗi span đã đi đâu.residual-ink: phát hiện nét mực chưa được span giải thích; gate mục tiêu là không còn residual chưa phân loại.chunk-ready: kiểm tra điều kiện trước khi corpus được coi là sẵn sàng.- Table/formula quarantine: buộc response dùng
verify_pdfkhi evidence phụ thuộc vùng chưa đủ an toàn.
Xây lại corpus
Embedding toàn corpus có thể phát sinh chi phí AWS. Không chạy bước cloud khi chưa được duyệt chi phí và collection đích.
Từ thư mục ingestion:
python -m ingestion.cli detect-tables --pdf data/raw/source.pdf
python -m ingestion.cli run --pdf data/raw/source.pdf
python -m ingestion.cli validate --pdf data/raw/source.pdf
python -m ingestion.cli coverage --pdf data/raw/source.pdf
python -m ingestion.cli residual-ink --pdf data/raw/source.pdf
python -m ingestion.cli chunk --pdf data/raw/source.pdf
python -m ingestion.cli chunk-ready
Điều tra regression coverage và residual chưa phân loại trước khi embed. Chạy
--embed-only để tạo/kiểm tra cache trước:
python -m ingestion.load.run `
--provider cohere-v4 `
--collection duocthu_v1_next `
--region us-east-1 `
--embed-only
Sau khi duyệt, bỏ --embed-only để load collection mới. Khởi động ai-service với
collection đó, yêu cầu manifest check pass, rồi chạy eval trước khi chuyển traffic.
Không ghi đè corpus production hoặc xoá collection cũ mà chưa có snapshot.
CLI reference
| Subcommand | Tham số chính | Trạng thái |
|---|---|---|
run |
--pdf bắt buộc, --out, --tables |
hoạt động |
validate |
--pdf, --tables |
hoạt động |
detect-tables |
--pdf, --out |
hoạt động, chậm, có cache |
coverage |
--pdf, --tables, --out |
hoạt động |
residual-ink |
--pdf, --tables, --pages, --out |
hoạt động |
chunk-ready |
--monographs, --chunks |
hoạt động |
chunk |
--monographs, --tables, --pdf, --out |
hoạt động |
visual-diff |
— | chưa triển khai |
scaffold-golden |
— | chưa triển khai |
Loader python -m ingestion.load.run nhận --chunks, --cache, --provider,
--collection, --region, --qdrant-url, --slice-size, --attempts và
--embed-only. --provider và --collection là bắt buộc.