Làm cho AI thông minh hơn.
Hướng dẫn nạp knowledge vào VIVA AI — wiki articles, conversation memory, function tools. Chất lượng trả lời của AI phụ thuộc 80% vào knowledge feed, 20% vào prompt engineering.
01Vì sao cần feed knowledge?
LLM (DeepSeek, Gemini, Claude, GPT) được train trên internet public data — nhưng không biết về:
- Thị trường việc làm cụ thể ở Bắc Ninh tháng 04/2026
- Lương công nhân CNC tại Samsung Yên Phong quý này
- Công ty nào đang tuyển gấp trong KCN Quế Võ II
- Quy định KTX của từng nhà máy đối tác
Nếu hỏi trực tiếp LLM, nó sẽ hallucinate — bịa số liệu, bịa địa điểm, gây mất tin.
023 loại dữ liệu nạp được
| Loại | Tính chất | Storage | Cập nhật |
|---|---|---|---|
| Wiki articles | Static knowledge — jobs, skills, industries, locations, benefits | Postgres + pgvector 768-dim | Manual, approved |
| Conversation memory | Dynamic — per-worker chat history | Postgres conversations table |
Auto, mỗi turn |
| Function tools | Live — Laravel M2M queries | Không stored, fetched on demand | Real-time |
Tài liệu này tập trung vào Wiki articles — loại duy nhất cần bạn viết tay. Hai loại còn lại tự động chạy.
03Wiki article format
Markdown với YAML frontmatter. Đặt trong docs/ai-service/wiki-seed/:
# Công nhân CNC
## Định nghĩa
(1–2 câu mô tả ngắn gọn)
## Thông tin công việc
- Làm gì
- Ca làm việc
- Môi trường
## Kỹ năng cần thiết
- Kỹ năng 1
- Kỹ năng 2
## Phúc lợi phổ biến
...
## Liên quan
- [cnc-advanced](./cnc-advanced.md)
- [kcn-yen-phong](./kcn-yen-phong.md)
Field spec
| Field | Type | Mô tả |
|---|---|---|
id | string (kebab-case) | Unique identifier, dùng cho cross-link |
title | string | Hiển thị trong search results |
category | enum | job · skill · industry · location · benefit · faq |
tags | list | Để filter — không ảnh hưởng embedding |
status | enum | draft → reviewed → approved (chỉ approved được index) |
04Pipeline nạp wiki
Cách 1: CLI (bulk import)
# Nạp toàn bộ thư mục wiki-seed/
$ cd /opt/ai-service/current
$ .venv/bin/python scripts/wiki-import.py docs/ai-service/wiki-seed/
# Output:
→ 52 articles found, 50 approved, 2 skipped (draft)
→ Embedding 50 × 768-dim via Gemini...
→ Indexed to pgvector: 50 rows
→ Done in 18.3s
Cách 2: Admin GUI (single article)
Vào /admin/wiki/new — editor UI có:
- Markdown live preview
- Frontmatter form (category, tags, status)
- Embedding preview — xem top-5 articles gần nhất về semantic
- 2-person approval flow — 1 author + 1 reviewer → status
approved - Rollback version history
text-embedding-3-small (OpenAI) ~ $0.02 / 1M tokens.
Gemini embedding free tier đủ cho < 1000 articles/tháng.
05Chất lượng content — 6 rules
- Factual. Luôn có số liệu cụ thể: lương (8.5 – 14.2tr), giờ (ca ngày 8h–17h), địa điểm (KCN Yên Phong, xã Đông Phong). Không viết "lương cạnh tranh" mà phải viết "11.5 – 14.2tr + KTX + ăn ca".
- Không quảng cáo. Không "tốt nhất", "uy tín nhất", "đi làm ngay". AI sẽ tự tổng hợp khi worker hỏi — bạn chỉ cần cung cấp facts.
- 300 – 800 từ. Ngắn quá không đủ context, dài quá tốn token. Sweet spot ≈ 500 từ.
- Tiếng Việt native. Dùng từ ngữ worker hay nói — "đứng máy" thay "operate machine", "KTX" thay "dormitory", "xe đưa đón" thay "shuttle bus".
- Cross-reference 2–4 bài. Ở cuối có section "Liên quan" link sang các bài khác → AI tự xâu chuỗi knowledge.
- Last_updated chính xác. AI sẽ cite "dữ liệu cập nhật tháng 04/2026" — nếu lệch >6 tháng sẽ tự cảnh báo worker.
06Eval harness — test accuracy mỗi commit
Mỗi bài wiki mới nên kèm eval scenarios trong app/eval/scenarios/:
name: "CNC Bac Ninh salary query"
input: "Lương công nhân CNC Bắc Ninh hiện tại bao nhiêu?"
expect:
must_include:
- "11" # mention số lương
- "KTX" # mention phúc lợi
- "Yên Phong" # mention địa điểm
must_not_include:
- "5 triệu" # hallucinate số sai
retrieval_topk: [cnc-operator, kcn-yen-phong]
CI chạy 100+ scenarios mỗi commit. F1 score phải ≥ 0.85. Nếu giảm, PR bị block.
07Roadmap — knowledge loại v2
- PDF ingest — upload PDF (hợp đồng lao động, quy định nhà máy) → OCR → chunk → embed. Target Q3/2026.
- Company-specific wiki — employer private KB cho từng nhà máy đối tác (chỉ worker của họ truy cập được).
- Voice transcript search — phone call với HR → Deepgram transcript → indexed, searchable.
- Real-time news ingestion — ingest tin tức việc làm KCN từ web → AI trả lời "có gì mới tuần này?" (TBD).
- Structured data tools — thêm tool calls:
WeatherGet(for outdoor work),BusScheduleGet(xe bus đến KCN).
08FAQ
Có bao nhiêu bài wiki đủ?
Minimum 30 bài để AI trả lời ổn định các câu hỏi phổ biến. Sweet spot 100–200 bài bao phủ 80% câu hỏi worker Bắc Ninh. Sau 500 bài, marginal benefit giảm — focus vào chất lượng hơn số lượng.
Cập nhật tần suất như thế nào?
Quarterly review toàn bộ bài lương/tuyển dụng (dữ liệu volatile).
Wiki về kỹ năng/định nghĩa chỉ cần review yearly.
Admin GUI có cột last_updated để sort ngược — bài cũ nhất lên trước.
Làm sao sửa khi AI trả lời sai?
3 bước: (1) copy câu trả lời sai + conversation_id từ admin dashboard, (2) identify bài wiki gốc nào gây ra (retrieval_topk trong log), (3) sửa bài đó + thêm eval scenario để prevent regression. Ship fix trong vòng 4h.
AI có learn được từ conversation không?
Không auto — conversation memory chỉ scope per-worker (worker A không ảnh hưởng worker B). Muốn insights từ real conversations → admin dashboard có mục "Common questions" (top 100 prompts trong 30 ngày) → decide bài wiki nào cần thêm/sửa.
Có thể dùng ngôn ngữ khác tiếng Việt không?
Technically yes — embedding model multilingual. Nhưng trong scope v0.1, worker target là Việt Nam → tất cả wiki nên tiếng Việt để prompt + retrieval đồng bộ. Roadmap v2 xem xét tiếng Lào/Cambodia cho labor export.
09Example: full CNC article
Click để xem một bài wiki hoàn chỉnh, pass mọi quality gate:
cnc-operator.md — 520 từ, status: approved
# Công nhân CNC (đứng máy)
## Định nghĩa
Công nhân CNC là người vận hành máy gia công điều khiển số (Computer Numerical Control) —
cài đặt chương trình, nạp phôi, kiểm tra sản phẩm đầu ra. Không cần lập trình, chỉ cần biết
đọc bản vẽ kỹ thuật cơ bản và vận hành theo SOP.
## Thông tin công việc tại Bắc Ninh (04/2026)
- **Số lượng tuyển**: ~280 slot / tháng tại KCN Yên Phong I, II, III
- **Ca làm việc**: 2 ca xoay (6h–14h, 14h–22h) hoặc ca ngày cố định (8h–17h)
- **Môi trường**: phòng xưởng có điều hòa, đi giày bảo hộ, đeo kính bảo vệ
- **Thời gian đào tạo**: 5–7 ngày có lương (80% lương cơ bản)
## Kỹ năng cần thiết
- Đọc bản vẽ kỹ thuật cơ bản (kích thước, dung sai)
- Biết sử dụng thước cặp, panme
- Kiên nhẫn, tỉ mỉ — sai lệch 0.02mm là hỏng phôi
- Không sợ tiếng ồn (~85dB trong xưởng)
## Yêu cầu
- Tuổi: 18–40
- Học vấn: lớp 9 trở lên
- Sức khỏe: loại B trở lên
- **Không yêu cầu kinh nghiệm** — đào tạo tại chỗ
## Lương & phúc lợi phổ biến
- **Lương cơ bản**: 7.5 – 9 triệu
- **Tổng thu nhập** (có tăng ca): **11.5 – 14.2 triệu**
- Thưởng chuyên cần: 500k/tháng
- Thưởng năng suất: 300k – 1.5tr tùy xưởng
- KTX miễn phí (Samsung, Goertek) hoặc hỗ trợ 500k/tháng
- Xe đưa đón từ Từ Sơn, Yên Phong
- BHXH, BHYT đầy đủ từ tháng 1
## Công ty đang tuyển (04/2026)
- Samsung Electronics Yên Phong — 47 slot, 11.5–14.2tr
- Goertek VSIP Bắc Ninh — 62 slot, 10.2–13.5tr
- Canon Quế Võ II — 34 slot, 9.8–12tr
## Liên quan
- [cnc-advanced](./cnc-advanced.md) — CNC vận hành nâng cao (lập trình G-code)
- [kcn-yen-phong](./kcn-yen-phong.md) — Khu công nghiệp Yên Phong
- [samsung-electronics](./samsung-electronics.md) — Samsung Electronics Vietnam
wiki-import.py, verify trong admin,
approve → AI sẽ dùng ngay trong 5 phút tiếp theo.