54cea00906
Borrowed the shape from Langfuse's own README (log first call, see results): ask a real question, check ArgoCD, check the trace -- three clickable steps instead of a wall of status text before anything is provable.
67 lines
3.7 KiB
Markdown
67 lines
3.7 KiB
Markdown
# Dược Thư RAG — Demo GitOps trên Gitea cá nhân
|
|
|
|
Chatbot y dược tra cứu Dược thư Quốc gia Việt Nam 2018, có căn cứ trích dẫn
|
|
trang thật cho từng câu trả lời. Repo này là **bản demo độc lập**, dựng lại để
|
|
chứng minh một điều cụ thể: toàn bộ hạ tầng có thể chạy qua GitOps đọc từ
|
|
Gitea cá nhân (`git.vinmec.tech/VuQuangBao`), thay vì GitHub — cùng kiến trúc,
|
|
khác nguồn Git, khác hạ tầng vật lý, không đụng gì tới sản phẩm chính hay hạ
|
|
tầng của team.
|
|
|
|
**Chạy thật tại:** https://finalduocthu.realvuxbaro.me
|
|
|
|
## Thử ngay
|
|
|
|
1. Mở [finalduocthu.realvuxbaro.me](https://finalduocthu.realvuxbaro.me), hỏi
|
|
`Metformin chống chỉ định trong trường hợp nào?` — trả lời kèm trích dẫn
|
|
trang thật (tr. 956), không phải tóm tắt chung chung.
|
|
2. Mở [ArgoCD](https://argocd-finalduocthu.realvuxbaro.me) — 4 Application đều
|
|
`Synced` + `Healthy`, đọc từ chính repo này.
|
|
3. Mở [Langfuse](https://langfuse-finalduocthu.realvuxbaro.me) → Tracing — câu
|
|
hỏi vừa hỏi hiện ra thành 7 bước xử lý (hiểu câu hỏi → truy hồi → sinh câu
|
|
trả lời → kiểm chứng), kèm chi phí thật tính theo token.
|
|
|
|
## Trạng thái
|
|
|
|
| Phần | Thế nào |
|
|
|---|---|
|
|
| Corpus | 15.100 chunk, embed và nạp vào Qdrant `duocthu_v1` |
|
|
| Chat | RAG có căn cứ — chỉ định, chống chỉ định, ADR theo tần suất, tương tác thuốc, thận trọng thai kỳ, giữ ngữ cảnh nhiều lượt |
|
|
| Eval toàn sách | 673/684 (98,4%) trả lời được trong phạm vi có thể trả lời |
|
|
| ArgoCD | 4 Application: `clickhouse-operator`, `langfuse`, `medical-chatbot-app`, `medical-chatbot-data` — tất cả đọc từ repo này |
|
|
| Quan sát | Grafana (độ trễ, phân bố quyết định, lỗi provider) + Langfuse tự host (trace từng bước xử lý, chi phí thật theo token) |
|
|
|
|
Hai năng lực chưa có: tính liều theo cân nặng, so sánh nhiều thuốc. Đo trực
|
|
tiếp và ghi lại trung thực tại
|
|
[`apps/ai-service/evals/known_gaps.jsonl`](apps/ai-service/evals/known_gaps.jsonl),
|
|
không phải suy đoán. Xem thêm ở [`docs/rag-chat.md`](docs/rag-chat.md#giới-hạn-đã-biết).
|
|
|
|
## Đọc gì trước
|
|
|
|
Bắt đầu ở [`docs/README.md`](docs/README.md) — bộ tài liệu chuẩn của dự án
|
|
(kiến trúc, ingestion, RAG/chat, local dev, vận hành, API, cấu hình, eval).
|
|
Bộ tài liệu này mô tả **sản phẩm**, không riêng cho bản demo — máy demo chỉ
|
|
khác ở nguồn Git và hạ tầng chạy, hành vi chatbot thì y hệt.
|
|
|
|
## Cấu trúc
|
|
|
|
```
|
|
apps/
|
|
web/ Next.js — giao diện chat + BFF
|
|
ai-service/ Python FastAPI — pipeline RAG, gọi AWS Bedrock
|
|
api-gateway/ NestJS — cổng vào công khai
|
|
auth-service/ NestJS — đăng ký/đăng nhập/JWT
|
|
packages/ DTO dùng chung, HTTP client, UI components
|
|
ingestion/ pipeline offline: PDF -> chuyên luận -> chunk -> embedding -> Qdrant
|
|
infra/helm/ Helm chart 4 Application đọc bởi ArgoCD (chart giống hệt production)
|
|
docs/ tài liệu chuẩn của dự án
|
|
```
|
|
|
|
## Vì sao repo này tồn tại
|
|
|
|
Không phải để thay thế sản phẩm chính. Team dùng `git.vinmec.tech/ai-team/*`
|
|
cho hạ tầng thật — repo này nằm trong namespace cá nhân
|
|
(`VuQuangBao/duocthu`), tách biệt hoàn toàn: EC2 riêng, cluster k3s riêng,
|
|
Postgres/Qdrant riêng, ArgoCD riêng, Langfuse riêng. Mục đích duy nhất: chứng
|
|
minh khả năng migrate GitOps sang Gitea mà không đổi gì về kiến trúc hay hành
|
|
vi hệ thống.
|