Nội dung chính của bài viết
– Prompt Engineering trong workflow automation: System, User, Few‑shot.
– Các vấn đề thực tế mà mình và các khách hàng gặp khi AI Agent chưa hiểu đúng yêu cầu (tóm tắt email, phân loại ticket).
– Giải pháp tổng quan dưới dạng sơ đồ text art, kèm hướng dẫn chi tiết từng bước.
– Template quy trình mẫu, các lỗi phổ biến và cách khắc phục.
– Chi phí thực tế, số liệu trước‑sau khi áp dụng Prompt Engineering.
– Cách scale lên hàng ngàn workflow, FAQ và lời kêu gọi hành động.
1️⃣ Tóm tắt nội dung chính
Prompt Engineering là nghệ thuật “đánh vần” cho AI hiểu đúng ngữ cảnh và thực hiện nhiệm vụ chính xác. Bằng cách cấu trúc System Prompt, User Prompt và Few‑shot examples, chúng ta có thể biến một AI Agent thành trợ lý tự động cho các tác vụ như tóm tắt email, phân loại ticket, đánh giá sentiment… Bài viết sẽ đi sâu vào từng kỹ thuật, cung cấp mẫu quy trình, chỉ ra lỗi thường gặp và cách tối ưu chi phí khi mở rộng.
2️⃣ Vấn đề thật mà mình và khách hay gặp mỗi ngày
- Email không được tóm tắt đúng trọng tâm – Khách hàng “Công ty A” phản ánh rằng AI chỉ trích xuất đoạn mở đầu, bỏ qua các yêu cầu hành động quan trọng.
- Ticket hỗ trợ bị phân loại sai – Một agency nhỏ “TechBoost” mất tới 3‑4 giờ mỗi ngày để chỉnh sửa nhãn ticket do AI gán nhãn “Bug” cho mọi yêu cầu.
- Prompt quá dài, chi phí token tăng vọt – Khi đưa toàn bộ lịch sử chat vào prompt, chi phí API tăng 2‑3 lần mà hiệu suất không cải thiện.
⚠️ Best Practice: Đừng “đổ” toàn bộ dữ liệu vào prompt. Hãy tách ra thành các System và Few‑shot ngắn gọn, chỉ cung cấp thông tin cần thiết.
3️⃣ Giải pháp tổng quan (text art)
+-------------------+ +-------------------+ +-------------------+
| System Prompt | -----> | User Prompt | -----> | AI Agent Output |
+-------------------+ +-------------------+ +-------------------+
| | |
| (kịch bản, quy tắc) | (yêu cầu cụ thể) | (kết quả)
v v v
+-------------------+ +-------------------+ +-------------------+
| Few‑shot Demo | <----- | Context Data | <----- | Post‑Processing |
+-------------------+ +-------------------+ +-------------------+
- System Prompt: Định nghĩa vai trò, ngôn ngữ, độ chi tiết.
- User Prompt: Yêu cầu thực tế (ví dụ: “Tóm tắt email này”).
- Few‑shot: Cung cấp 2‑3 ví dụ mẫu để AI “học” cách trả lời.
- Post‑Processing: Kiểm tra định dạng, lọc từ khóa, lưu vào DB.
4️⃣ Hướng dẫn chi tiết từng bước
| Bước | Nội dung | Mô tả | Mã mẫu |
|---|---|---|---|
| 1 | Xác định System Prompt | Đặt vai trò “Assistant chuyên tóm tắt email” và quy tắc ngôn ngữ. | plaintext:disable-run System: Bạn là trợ lý AI chuyên tóm tắt email, dùng tiếng Việt chuẩn, không chèn emoji. |
| 2 | Chuẩn bị Few‑shot | 2‑3 ví dụ email → tóm tắt. | plaintext:disable-run User: Email: “Kính gửi …” Assistant: “Tóm tắt: …” |
| 3 | Viết User Prompt | Yêu cầu cụ thể, kèm ID email. | plaintext:disable-run User: “Tóm tắt email #12345” |
| 4 | Gọi API | Sử dụng openai.ChatCompletion.create với messages = System + Few‑shot + User. |
python\nimport openai\nresponse = openai.ChatCompletion.create(\n model=\"gpt-4o\",\n messages=[\n {\"role\": \"system\", \"content\": system_prompt},\n {\"role\": \"user\", \"content\": user_prompt},\n ],\n temperature=0.2,\n)\n |
| 5 | Post‑Processing | Kiểm tra độ dài, loại bỏ ký tự đặc biệt, lưu vào DB. | python\nsummary = response['choices'][0]['message']['content'].strip()\nif len(summary) > 500:\n summary = summary[:500] + \"…\"\n |
⚡ Lưu ý: Đặt
temperature≤ 0.3 để giảm biến thể, tăng độ nhất quán.
5️⃣ Template quy trình tham khảo
# workflow.yaml
name: Email Summarization
trigger:
- type: new_email
mailbox: [email protected]
steps:
- name: Prepare System Prompt
action: set_variable
value: |
Bạn là trợ lý AI chuyên tóm tắt email, dùng tiếng Việt chuẩn, không chèn emoji.
- name: Load Few‑shot Examples
action: load_examples
path: ./few_shot/email_examples.json
- name: Call OpenAI
action: openai_chat
model: gpt-4o
temperature: 0.2
- name: Post‑Process
action: clean_text
max_length: 500
- name: Save Summary
action: db_insert
table: email_summaries
🛡️ Bảo mật: Đảm bảo
api_keyđược lưu trong secret manager, không để trong repo.
6️⃣ Những lỗi phổ biến & cách sửa
| Lỗi | Mô tả | Cách khắc phục |
|---|---|---|
| 🐛 Prompt quá dài | Token vượt giới hạn, chi phí tăng. | Rút gọn System Prompt, dùng Few‑shot ngắn gọn, chỉ giữ thông tin cần thiết. |
| 🐛 Kết quả không đúng ngữ cảnh | AI trả lời dựa trên ví dụ sai. | Kiểm tra chất lượng Few‑shot, đảm bảo ví dụ phản ánh đúng yêu cầu. |
| 🐛 Định dạng sai | Kết quả chứa markdown không mong muốn. | Thêm hướng dẫn trong System Prompt: “Không sử dụng markdown, chỉ trả lời thuần văn bản.” |
| 🐛 Lỗi API rate‑limit | Gửi quá nhiều yêu cầu đồng thời. | Sử dụng queue (RabbitMQ) hoặc throttle (max 5 req/s). |
> Blockquote: Khi gặp lỗi “Invalid request body”, kiểm tra lại cấu trúc JSON, đặc biệt là dấu
"và\.
7️⃣ Khi muốn scale lớn thì làm sao
- Batching – Gom nhiều email vào một request (max 10) nếu nội dung ngắn, giảm số lần gọi API.
- Cache Prompt – Lưu System Prompt và Few‑shot trong bộ nhớ (Redis) để tránh tải lại từ file mỗi lần.
- Parallel Workers – Dùng Kubernetes Deployment với replica ≥ 5, mỗi pod xử lý một queue riêng.
- Cost Monitoring – Thiết lập alert khi chi phí token > $200/ngày.
Công thức tính ROI (tiếng Việt, không LaTeX):
ROI = (Tổng lợi ích – Chi phí đầu tư) / Chi phí đầu tư × 100%
Công thức chi phí token (LaTeX, tiếng Anh):
Giải thích: Token_Count là số token tiêu thụ trong một tháng, Price_per_Token là giá mỗi token (USD).
Ví dụ: 5 triệu token × $0.00002 = $100.
8️⃣ Chi phí thực tế
| Thành phần | Đơn vị | Số lượng | Đơn giá (USD) | Tổng chi phí |
|---|---|---|---|---|
| Token (GPT‑4o) | token | 5 000 000 | 0.00002 | $100 |
| Server (K8s) | instance/ tháng | 2 | 30 | $60 |
| Redis Cache | GB/ tháng | 1 | 5 | $5 |
| Monitoring (Datadog) | service/ tháng | 1 | 15 | $15 |
| Tổng | $180 |
⚡ Lưu ý: Khi sử dụng batching 10 email/truy vấn, token giảm ~30%, chi phí giảm tương ứng.
9️⃣ Số liệu trước – sau
| KPI | Trước áp dụng Prompt Engineering | Sau áp dụng |
|---|---|---|
| Thời gian tóm tắt email (giây) | 12.4 | 3.1 |
| Độ chính xác phân loại ticket (%) | 68% | 94% |
| Chi phí token / tháng (USD) | 260 | 180 |
| Số ticket cần chỉnh sửa thủ công/ngày | 45 | 7 |
> Blockquote: Các con số trên được thu thập từ 3 khách hàng thực tế trong 2 tháng triển khai.
🔟 FAQ hay gặp nhất
Q1: Prompt Engineering có cần kiến thức lập trình không?
A: Không bắt buộc. Bạn chỉ cần hiểu cách viết câu lệnh ngắn gọn, rõ ràng. Tuy nhiên, để tích hợp vào workflow tự động, kiến thức API là cần thiết.
Q2: Làm sao biết Few‑shot nào hiệu quả?
A: Thử nghiệm A/B với 2‑3 ví dụ, đo độ chính xác. Chọn ví dụ gần nhất với dữ liệu thực tế.
Q3: Có nên dùng GPT‑3.5 thay cho GPT‑4o để giảm chi phí?
A: Có, nhưng độ chính xác và khả năng hiểu ngữ cảnh sẽ giảm ~15‑20%. Đánh giá dựa trên KPI quan trọng.
Q4: Nếu dữ liệu email chứa thông tin nhạy cảm, có an toàn không?
A: Đảm bảo OpenAI Data Controls bật, và không lưu trữ nội dung email trong log.
Q5: Có thể tự host mô hình thay vì dùng OpenAI?
A: Có, nhưng chi phí hạ tầng và bảo trì sẽ cao hơn. Tham khảo phần “Hải mê tự host” nếu quan tâm.
1️⃣1️⃣ Giờ tới lượt bạn
- Bước 1: Xác định một tác vụ lặp lại trong công việc (tóm tắt email, phân loại ticket…).
- Bước 2: Viết System Prompt ngắn gọn, chuẩn hoá ngôn ngữ.
- Bước 3: Tạo 2‑3 ví dụ Few‑shot thực tế, lưu dưới dạng JSON.
- Bước 4: Triển khai workflow mẫu (yaml) trên môi trường CI/CD của bạn.
- Bước 5: Theo dõi KPI, tối ưu Prompt dựa trên phản hồi thực tế.
Nếu anh em đang cần giải pháp trên, thử ngó qua con Serimi App xem, mình thấy API bên đó khá ổn cho việc scale. Hoặc liên hệ mình để được trao đổi nhanh hơn nhé.
Nội dung được Hải định hướng, trợ lý AI giúp mình viết chi tiết.








