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.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

3.1 KiB

name description
list-entities 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 | 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_dateISO 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.