Prompt Engineering — Nghệ Thuật Ra Lệnh Cho AI

@Nguyễn Ngô Thượng//~7 phút đọc0
Chia sẻ:

import { Alert } from '@/components/mdx/alert';

Prompt Engineering — Nghệ Thuật Ra Lệnh Cho AI

TL;DR: Prompt là cách bạn "nói chuyện" với AI. Prompt tốt = output đúng ý. Prompt tệ = output vô dụng. Công thức 5 phần: Role + Task + Context + Constraint + Format. Đây là kỹ năng QUAN TRỌNG NHẤT của AI Engineer.


Prompt Là Gì?

Prompt = câu hỏi/yêu cầu bạn gửi cho AI.

Prompt: "Viết code JavaScript validate email"
        ↑
    Đây là prompt

Nghe đơn giản — nhưng 90% người dùng AI không biết viết prompt đúng. Kết quả: AI trả lời chung chung, sai ý, hoặc hallucinate.

ℹ️ Info: Thực tế: Không có AI dở — chỉ có prompt dở. Cùng 1 model, prompt khác nhau → output khác nhau hoàn toàn.


Prompt Tệ vs Prompt Tốt

Ví dụ 1: Viết code

❌ Prompt tệ:

Viết code cho tôi

→ AI: "Code gì? Ngôn ngữ gì? Mục đích gì?"

✅ Prompt tốt:

Viết hàm JavaScript validate email:
- Dùng regex
- Handle null/undefined
- Return true/false
- Có comment giải thích regex
- Viết test cases cho 5 email: valid, invalid, empty, null, có tiếng Việt

→ AI: Code hoàn chỉnh, có test, đúng ý 100%.

Ví dụ 2: Phân tích data

❌ Prompt tệ:

Phân tích data này

✅ Prompt tốt:

Phân tích file CSV đính kèm:
1. Tính tổng doanh thu theo tháng
2. Tìm top 5 sản phẩm bán chạy
3. So sánh Q1 2026 vs Q1 2025 (growth %)
4. Đề xuất 3 actions dựa trên data
Output: Bảng + bullet points

Ví dụ 3: Viết email

❌ Prompt tệ:

Viết email cho khách hàng

✅ Prompt tốt:

Viết email gửi khách hàng SME:
- Nội dung: Thông báo ra mắt gói automation mới
- Tone: Chuyên nghiệp nhưng thân thiện
- Độ dài: 200-300 từ
- CTA: Đặt lịch demo miễn phí
- Include: 3 benefits chính, pricing starting từ 5tr/tháng

Công Thức Prompt 5 Phần

Success: Công thức vàng: Role + Task + Context + Constraint + Format

1. Role — AI là ai?

Cho AI biết nó đang đóng vai gì → output đúng tone, đúng expertise.

"Bạn là senior JavaScript developer với 10 năm kinh nghiệm"
"Bạn là marketing manager cho startup SaaS"
"Bạn là business analyst phân tích quy trình SME"

2. Task — Làm gì?

Mô tả cụ thể task cần làm.

"Viết hàm X làm Y"
"Phân tích data Z"
"Tóm tắt tài liệu này thành 3 bullet points"

3. Context — Bối cảnh là gì?

Cho AI biết thông tin nền để output relevant.

"Công ty Diginno làm về automation (n8n, Lark). Khách hàng là SME 10-50 nhân viên."
"Data này là doanh thu Q1 2026 của shop bán mỹ phẩm online."

4. Constraint — Giới hạn gì?

Đặt rule để output không đi lạc.

"Không dùng external libraries"
"Tối đa 50 dòng code"
"Chỉ dùng tiếng Việt, không tiếng Anh"
"Không giải thích — chỉ output kết quả"

5. Format — Output dạng gì?

Chỉ định format output mong muốn.

"Output dạng JSON"
"Viết thành bảng markdown"
"Trả về code block, có comment tiếng Việt"
"Format: bullet points, mỗi point max 1 câu"

Prompt Template (Copy-Paste Ready)

<Role>
Bạn là [vai trò] với [X năm] kinh nghiệm về [lĩnh vực].

<Task>
Nhiệm vụ: [mô tả task cụ thể]

<Context>
Bối cảnh: [thông tin nền, data, mục tiêu]

<Constraint>
Giới hạn:
- [constraint 1]
- [constraint 2]
- [constraint 3]

<Format>
Output format: [mô tả format mong muốn]

Các Kỹ Thuật Prompt Nâng Cao

1. Zero-Shot Prompting

Không cho ví dụ — AI tự làm từ mô tả.

"Viết hàm JavaScript debounce với delay 300ms"

✅ Dùng khi: Task đơn giản, AI đã biết pattern.

2. Few-Shot Prompting

Cho 1-3 ví dụ mẫu → AI follow pattern.

Convert các câu sau thành JSON format:

Ví dụ 1:
Input: "Tôi muốn đặt lịch họp vào thứ 2 lúc 10h"
Output: {"action": "schedule_meeting", "day": "Monday", "time": "10:00"}

Ví dụ 2:
Input: "Hủy đơn hàng #12345"
Output: {"action": "cancel_order", "order_id": "12345"}

Input: "Gửi báo cáo doanh thu tháng 3 cho sếp"
Output: ?

✅ Dùng khi: Task cần format cụ thể, AI dễ nhầm nếu không có example.

3. Chain-of-Thought (CoT)

Yêu cầu AI giải thích từng bước.

"Hãy giải quyết bài toán này. Trước khi trả lời, hãy giải thích từng bước suy nghĩ của bạn."

Hoặc ngắn gọn:

"Hãy suy nghĩ từng bước (think step by step)"

⚠️ Warning: Lưu ý: Chain-of-thought giúp AI reasoning tốt hơn — nhưng tốn nhiều tokens hơn vì AI phải "nghĩ aloud". Chỉ dùng khi cần accuracy cao.

4. System Prompt vs User Prompt

System Prompt User Prompt
Là gì? Instruction cho AI (ẩn với user) Câu hỏi của user
Tồn tại khi nào Suốt conversation Chỉ message đó
Ví dụ "Bạn là trợ lý tiếng Việt, tone thân thiện" "Viết email cho khách hàng"
Priority Cao nhất — AI luôn follow Bình thường

5. Negative Prompting

Nói AI cái KHÔNG làm.

"Viết blog post về AI. KHÔNG:
- Dùng từ 'revolutionary' hay 'game-changing'
- Viết dài hơn 1500 từ
- Nhắc đến ChatGPT
- Dùng passive voice"

Prompt Examples Từ Diginno (Thực Tế)

Example 1: Generate n8n Workflow

Bạn là n8n developer senior.

Thiết kế workflow automation cho use case sau:
- Khi có đơn hàng mới từ Pancake POS → sync vào Lark Base
- Nếu đơn > 500K → gửi Zalo notification cho quản lý
- Nếu đơn bị hủy → update status trong Lark Base + gửi email cho khách

Output:
- JSON config cho n8n workflow
- Giải thích từng node
- Error handling cho mỗi step

Example 2: Phân Tích Quy Trình Khách Hàng

Bạn là business analyst cho SME.

Phân tích quy trình sau và đề xuất automation:

[Quy trình hiện tại của khách hàng]
1. Nhận đơn hàng từ Facebook → nhập tay vào Excel
2. Check tồn kho → nhắn kho trên Zalo
3. Kho xác nhận → in phiếu giao hàng
4. Giao hàng → cập nhật status vào Excel
5. Cuối tháng → tổng hợp Excel → gửi sếp

Yêu cầu:
1. Vẽ flow diagram (mermaid)
2. Identify bottlenecks
3. Đề xuất automation (dùng n8n + Lark)
4. Ước tính thời gian tiết kiệm/tháng
5. ROI estimate

Output: Bảng phân tích + đề xuất cụ thể

Example 3: Generate SQL Query

Bạn là data engineer PostgreSQL.

Viết query cho yêu cầu sau:
- Bảng: orders (id, customer_id, total, created_at, status)
- Bảng: customers (id, name, email, level)
- Yêu cầu: Top 10 khách hàng có tổng chi tiêu cao nhất trong Q1 2026, 
  include: tên, email, total spent, số đơn, level
- Filter: chỉ đơn status = 'completed'
- Sort: total spent DESC

Output: SQL query, có comment giải thích từng phần

Các Lỗi Prompt Phổ Biến

Lỗi 1: Quá chung chung

❌ "Viết code"
✅ "Viết hàm Python sort list dict theo key 'name'"

Lỗi 2: Thiếu context

❌ "Phân tích data"
✅ "Phân tích file CSV này, tìm top 5 trends, so sánh YoY"

Lỗi 3: Không chỉ định format

❌ "Cho tôi kết quả"
✅ "Output dạng bảng markdown, 3 cột: metric, value, trend"

Lỗi 4: Nhiều task trong 1 prompt

❌ "Viết code + test + deploy + document"
✅ Tách thành 4 prompts riêng biệt

Lỗi 5: Không set constraint

❌ "Viết blog post"
✅ "Viết blog post 1000-1500 từ, tiếng Việt, tone chuyên nghiệp"

Bài Tập Thực Hành

Task 1: Rewrite prompts

Rewrite 3 prompts sau thành prompt tốt (dùng công thức 5 phần):

  1. "Dịch cái này"
  2. "Làm báo cáo"
  3. "Fix bug"

Task 2: Practice few-shot

Viết 1 prompt few-shot để convert Vietnamese sentences thành JSON (3 examples).

Task 3: Test chain-of-thought

  1. Hỏi AI 1 bài toán logic đơn giản
  2. Lần 1: Không dùng CoT
  3. Lần 2: Dùng "think step by step"
  4. So sánh kết quả

Tóm Tắt

Kỹ thuật Khi nào dùng Ví dụ
Zero-shot Task đơn giản, AI đã biết "Viết hàm debounce JS"
Few-shot Cần format cụ thể Cho ví dụ → AI follow pattern
Chain-of-thought Cần reasoning sâu "Think step by step"
System prompt Set role/context cố định "Bạn là senior dev"
Negative prompt Tránh output không mong muốn "KHÔNG dùng từ X"

Công thức vàng: Role + Task + Context + Constraint + Format


Bài Tiếp Theo

Bài 5: Tool — Khi AI Biết "Dùng Tay"

Bài 3: Context — Bộ Nhớ Của AI


Liên hệ tư vấn

Bài viết hữu ích?

Chia sẻ để nhiều người biết đến!

Chia sẻ:

>_ LLM-Friendly Copy

Copy as Markdown to use with ChatGPT, Claude, or other AI tools

1,593 words|8,341 characters

//Bình luận

Bài viết liên quan

Khám phá thêm những bài viết cùng chủ đề với Prompt Engineering — Nghệ Thuật Ra Lệnh Cho AI

Bài viết hữu ích? Hãy kết nối với Diginno!

Chúng tôi giúp doanh nghiệp SME ứng dụng AI và automation vào quy trình làm việc - từ tư vấn chiến lược đến triển khai thực tế.