Skip to content

[inter-v2-10] Real E2E: upload → index → Q&A (OpenRouter) (#417) - #455

Open
CodingMinh wants to merge 1 commit into
masterfrom
inter-v2/10-real-e2e-openrouter
Open

[inter-v2-10] Real E2E: upload → index → Q&A (OpenRouter) (#417)#455
CodingMinh wants to merge 1 commit into
masterfrom
inter-v2/10-real-e2e-openrouter

Conversation

@CodingMinh

Copy link
Copy Markdown
Collaborator

Mục tiêu PR

Thực hiện và tài liệu hóa chu trình kiểm thử đầu-cuối thực tế (Real E2E stack, không sử dụng mock mạng / MSW) theo yêu cầu của Issue #417 và kiến trúc ADR 0016:
Document UploadConvert WorkerOpenRouter Embedding (Qwen 8B)Qdrant Vector StorageGrounded Q&A + Deferred Vision OCR.


Nội dung thay đổi

  • Tạo tài liệu báo cáo thực nghiệm toàn diện tại: bench/INTER_V2_10_REAL_E2E.md.
  • Ghi nhận chi tiết:
    1. Danh mục biến môi trường (Env checklist) cho cả 3 tác vụ AI (Vision OCR, Cloud Embedding, Chat Q&A) sử dụng OpenRouter.
    2. Kết quả đo lường độ trễ (Latency & Timings) qua từng chặng của pipeline.
    3. Minh chứng Grounding Contract: Câu trả lời trích xuất chính xác kèm trích dẫn [CITE-0001], hash SHA-256 của chunk và dẫn chứng cụ thể.
    4. Minh chứng Stretch Goal (Deferred Vision OCR): Quy trình render ảnh JPEG trong sandbox CLONE_NEWNET với placeholder <!-- markhand:ocr-pending ... -->, sau đó worker stage ngoài sandbox gọi OpenRouter qwen/qwen3.7-flash để trích xuất văn bản tiếng Việt và cập nhật vào Markdown preview.
    5. Phân tích các Failure Modes: Khắc phục lỗi SignatureMismatch khi tính toán sai chữ ký index và cách hệ thống xử lý fail-closed khi gặp upstream rate limit 429 từ OpenRouter.

Kết quả thực nghiệm & Thời gian đo được

Bước Hành động Kết quả / Trạng thái Thời gian (Latency)
1 deploy/scripts/poc-up.sh & poc-health.sh Postgres, Qdrant, MinIO, API, 5 Workers All Healthy
2 Đăng nhập (POST /api/v1/auth/login) Cấp JWT Token cho admin@poc.example 0.08 giây
3 Tải lên tài liệu văn bản (.txt) Document ID: e03b67a7-865f-4151-9075-83a38f993594 0.15 giây
4 Pipeline chuyển đổi & nhúng vector uploadedconvertedindexed (OpenRouter Qwen 8B) 6.14 giây
5 Hỏi đáp có căn cứ (POST /api/v1/ask) Nhận câu trả lời trích xuất có trích dẫn [CITE-0001] 3.21 giây
6 (Stretch Goal) Ingest PDF Scan 1 trang OCR văn bản tiếng Việt hoàn chỉnh thay thế placeholder 9.00 giây
7 (Stretch Goal) Tìm kiếm lai (Hybrid Search) Top 1 Match: Vector score 0.4705, Rerank score 1.6088 0.25 giây

Tiêu chuẩn An toàn & Bảo mật (Security Checklist)

  • Không commit secret: File deploy/.env được giữ ở môi trường local (đã gitignore). Mọi API key hiển thị trong tài liệu báo cáo đều được gắn nhãn <REDACTED_OPENROUTER_KEY>.
  • Không nới lỏng sandbox: Converter sandbox duy trì cờ cách ly mạng CLONE_NEWNET tuyệt đối; không truyền API key vào môi trường sandbox.
  • Chất lượng code & CI: Đã xác thực qua cargo fmt --all -- --checkpython3 scripts/check-dependency-policy.py. Không thêm các test flaky phụ thuộc mạng ngoài vào CI mặc định.

Liên kết liên quan

… OpenRouter (#417)

- Hoàn thành chu trình Real E2E (không MSW) trên stack Docker Compose:
  upload -> convert worker -> OpenRouter embedding (Qwen 8B) -> grounded Q&A.
- Bổ sung thử nghiệm mở rộng (Stretch Goal): Deferred Vision OCR trên tài liệu
  scan PDF 1 trang với model qwen/qwen3.7-flash, xác minh placeholder
  markhand:ocr-pending được worker stage thay thế hoàn toàn bằng text OCR.
- Ghi nhận chi tiết checklist biến môi trường, thời gian thực thi (timings)
  và phân tích các failure modes (SignatureMismatch, Upstream 429).
- Đảm bảo 100% bảo mật: giữ nguyên cách ly sandbox converter, không commit secret.

Fixes #417
@CodingMinh
CodingMinh requested a review from anhnth24 as a code owner September 6, 2026 02:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[inter-v2-10] Real E2E: upload → index → Q&A (OpenRouter)

1 participant