You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
3.1 KiB
Markdown
59 lines
3.1 KiB
Markdown
---
|
|
name: list-entities
|
|
description: Liệt kê các hồ sơ (TBMT/KHLCNT/KQLCNT) có trong kho dữ liệu. Dùng khi user muốn tổng quan "có những tài liệu nào" hoặc đếm số lượng theo trạng thái.
|
|
---
|
|
|
|
# List Entities
|
|
|
|
## Khi nào dùng
|
|
|
|
- "Có những hồ sơ nào trong hệ thống?"
|
|
- "Liệt kê các TBMT đã upload"
|
|
- "Bao nhiêu hồ sơ đang ở trạng thái indexed?"
|
|
- "Cho tôi xem 10 record mới nhất"
|
|
- "Gói nào đang mở / sắp đóng thầu?"
|
|
|
|
## Workflow
|
|
|
|
1. Gọi `list_entities()` — không tham số nếu user hỏi chung.
|
|
2. Lọc theo `entity_type` nếu user nêu loại cụ thể. **Giá trị phải LOWERCASE**:
|
|
`"tbmt"` / `"khlcnt"` / `"kqlcnt"`. Filter là exact-match — gọi `"TBMT"` (hoa) trả về **0 kết quả**.
|
|
- Corpus hiện tại chủ yếu là `tbmt`; ngoài ra còn `tbmst_pre` (thông báo mời sơ tuyển / pre-notice).
|
|
`khlcnt`/`kqlcnt` được hỗ trợ nhưng có thể chưa có dữ liệu.
|
|
3. Lọc theo `status` nếu user nêu trạng thái. Giá trị `index_status` thực tế:
|
|
`"indexed"`, `"changed"`, `"indexing"`, `"converting"`, `"converted"`, `"uploaded"`, `"deleted"`.
|
|
(Không có `"failed"` ở mức entity — `failed` chỉ tồn tại ở mức chunk.)
|
|
4. Mặc định `limit=50` — đủ cho hầu hết câu hỏi.
|
|
5. Mỗi row trả về `SELECT *` nên giàu metadata. Surface các cột có ý nghĩa:
|
|
`entity_code` | `entity_type` | `title` (tên gói) | `investor_name` (chủ đầu tư) |
|
|
`status_code` | `bid_close_date` (đóng thầu) | `index_status` | `updated_at`.
|
|
|
|
## Ví dụ
|
|
|
|
**User:** "Cho tôi xem danh sách TBMT đã indexed"
|
|
|
|
**Agent:**
|
|
|
|
```
|
|
→ list_entities(entity_type="tbmt", status="indexed")
|
|
← [{entity_code: "IB2600250575-00", title: "...", investor_name: "...",
|
|
bid_close_date: "2026-06-12T09:00:00", index_status: "indexed", ...}, ...]
|
|
```
|
|
|
|
**Reply:** bảng markdown — cột `Mã` | `Tên gói` | `Chủ đầu tư` | `Đóng thầu` | `Trạng thái` + tổng số.
|
|
|
|
## Đóng/mở thầu (bid status)
|
|
|
|
`bid_close_date` / `bid_open_date` là **ISO giờ Việt Nam (UTC+7, không có hậu tố tz)**. Khi user hỏi
|
|
"gói nào đang mở / đã đóng", tính trạng thái theo **giờ VN** (Asia/Ho_Chi_Minh), không dùng giờ máy chủ:
|
|
`đang mở` (deadline tương lai) · `sắp đóng` (~trong 48h) · `đã đóng` (đã qua) · `không xác định` (null/invalid).
|
|
|
|
## Anti-patterns
|
|
|
|
- ❌ Đừng gọi `entity_type` viết HOA — DB lưu lowercase, sẽ trả rỗng.
|
|
- ❌ Đừng bịa mã kiểu `TBMT-2026-001` — mã thật là eGP `IB<digits>-<version>` (vd. `IB2600250575-00`).
|
|
- ❌ Đừng dùng `list_entities` rồi tự duyệt trả lời nội dung — đó là việc của `search_procurement_docs`.
|
|
- ❌ Đừng dump toàn bộ raw row cho user — chỉ surface các cột có ý nghĩa ở trên.
|
|
- ❌ Đừng kết luận đóng/mở thầu bằng giờ máy chủ — luôn tính theo giờ VN.
|
|
- ❌ Đừng tăng `limit` lên rất lớn (>200) — gây nhiễu cho user. Nếu cần xem nhiều hơn, page bằng cách lọc theo `entity_type`.
|