Những nguyên tắc tạo prompt cơ bản cho lập trình

Nắm vững kỹ thuật tạo prompt few-shot, chuỗi suy luận, prompt hệ thống và các mẫu cụ thể của mô hình để tạo code đáng tin cậy trên OpenAI, Claude và Gemini.

Mỗi mô hình ngôn ngữ lớn (LLM) đều có những đặc điểm riêng. GPT-5 xử lý tốt các prompt đa bước phức hợp. Claude hiểu hướng dẫn theo nghĩa đen và thích các tag XML. Gemini xuất sắc trong các tác vụ đa phương thức. Hiểu được những khác biệt này sẽ biến các prompt chung chung thành những prompt đáng tin cậy.

Hãy cùng tìm hiểu các kỹ thuật quan trọng nhất đối với những nhà phát triển.

Prompt hệ thống: Thiết lập nền tảng

Prompt hệ thống xác định AI là ai, nó làm gì và hành xử như thế nào. Đối với các trường hợp sử dụng của nhà phát triển, một prompt hệ thống tốt có 4 phần:

1. Vai trò: AI là gì. "Bạn là một nhà phát triển Python cấp cao chuyên về các đường dẫn dữ liệu."

2. Nhiệm vụ: Nó làm gì. "Tạo các hàm Python dựa trên các thông số kỹ thuật."

3. Ràng buộc: Nó phải làm gì và không được làm gì. "Luôn bao gồm prompt kiểu. Không bao giờ sử dụng biến toàn cục. Xử lý lỗi một cách rõ ràng."

4. Định dạng đầu ra: Cách cấu trúc phản hồi. "Chỉ trả về code Python. Không giải thích trừ khi được yêu cầu."

system_prompt = """Bạn là một lập trình viên Python cao cấp.

NHIỆM VỤ: Tạo các hàm Python từ các thông số kỹ thuật.

RÀNG BUỘC:
- Luôn bao gồm prompt kiểu dữ liệu
- Sử dụng tên biến mô tả (2-3 từ, viết hoa chữ cái đầu)
- Xử lý các trường hợp ngoại lệ một cách rõ ràng (đầu vào trống, giá trị None)
- Tuân theo PEP 8

ĐẦU RA: Chỉ trả về code hàm trong một khối code Python.
Không giải thích trừ khi được yêu cầu."""

Kiểm tra nhanh: Prompt hệ thống của bạn nói "Viết code sạch". Một kỹ sư trong nhóm của bạn hỏi tại sao đầu ra của AI lại khác nhau rất nhiều giữa các yêu cầu. Có gì sai?

Câu trả lời: "Code sạch" mang tính chủ quan. Một lần chạy có thể hiểu đó là code tối giản, lần khác lại cho là code được chú thích kỹ lưỡng, lần khác nữa lại cho là code sử dụng nhiều mẫu thiết kế. Thay thế các hướng dẫn mơ hồ bằng các hướng dẫn cụ thể: "Tuân theo PEP 8. Hàm dưới 20 dòng. Một câu lệnh return cho mỗi hàm. Không có chú thích trừ khi logic không rõ ràng." Tính cụ thể giúp giảm sự khác biệt.

Ký thuật tạo prompt Few-Shot: Dạy bằng ví dụ

Hướng dẫn ngắn gọn là kỹ thuật có ROI cao nhất dành cho các nhà phát triển. Thay vì mô tả những gì bạn muốn, bạn hãy cho họ thấy điều đó.

Mẫu:

Dưới đây là các ví dụ về định dạng đầu vào-đầu ra tôi cần:

<example>
Input: Chuyển đổi nhiệt độ từ độ C sang độ F
Output:
def celsius_to_fahrenheit(celsius: float) -> float:
    return celsius * 9/5 + 32
</example>

<example>
Input: Kiểm tra xem một chuỗi có phải là email hợp lệ hay không
Output:
import re

def is_valid_email(email: str) -> bool:
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    return bool(re.match(pattern, email))
</example>

Bây giờ hãy tạo:
Input: {{user_specification}}

Các quy tắc để có ví dụ few-shot hiệu quả:

  • 3-5 ví dụ là số lượng tối ưu — ít hơn và mô hình sẽ đoán; Áp lực ngữ cảnh càng lớn thì càng gây hại
  • Các ví dụ đa dạng — bao gồm những mức độ phức tạp khác nhau, các trường hợp ngoại lệ và các mẫu
  • Các ví dụ tiêu biểu — nếu bạn muốn xử lý lỗi, hãy hiển thị cách xử lý lỗi trong các ví dụ
  • Đặt trong thẻ — các thẻ XML (<example>) giúp Claude phân tích cấu trúc; các khối dấu ngoặc kép ngược hoạt động với GPT

Chuỗi suy luận: Lý luận đóng vai trò quan trọng

Kỹ thuật tạo prompt chuỗi suy luận (CoT) yêu cầu mô hình hiển thị lý luận của nó trước khi trả lời. Nghiên cứu cho thấy điều này cải thiện tỷ lệ tạo code đạt Pass@1 lên đến 16%.

Khi nào nên sử dụng CoT:

  • Logic phức tạp với nhiều bước
  • Chuyển đổi dữ liệu với các quy tắc nghiệp vụ
  • Triển khai thuật toán
  • Gỡ lỗi và xem xét code

Khi nào nên bỏ qua CoT:

  • Các thao tác CRUD đơn giản
  • Các tác vụ định dạng/chuyển đổi
  • Các tác vụ cần tốc độ hơn độ chính xác

Prompt CoT có cấu trúc cho code:

Hãy suy nghĩ theo từng bước sau:
1. Hiểu các yêu cầu
2. Xác định các trường hợp ngoại lệ
3. Chọn thuật toán/phương pháp
4. Triển khai từng bước
5. Xác minh việc triển khai xử lý tất cả các trường hợp ngoại lệ

Task: {{task_description}}

Kiểm tra nhanh: Bạn sử dụng chuỗi suy luận cho một hàm đơn giản chuyển đổi chuỗi thành dạng viết hoa chữ cái đầu mỗi từ. Mô hình tạo ra 30 dòng lập luận cho một hàm chỉ có 3 dòng. Liệu CoT luôn tốt hơn?

Câu trả lời: Không. Đối với các tác vụ đơn giản, CoT làm tăng độ trễ và chi phí token mà không cải thiện chất lượng. Mô hình biết cách viết hoa chữ cái đầu của chuỗi. CoT dành cho các tác vụ mà mô hình có thể đi sai hướng nếu không có lý do rõ ràng. Hãy dành CoT cho logic phức tạp, những phép biến đổi nhiều bước và các vấn đề thuật toán.

Các mẫu cụ thể của mô hình

OpenAI (GPT-4.1, GPT-5)

  • GPT-5 xử lý các prompt nhiều bước được hợp nhất — hãy cung cấp cho nó toàn bộ nhiệm vụ trong một lần thay vì chia nhỏ
  • Sử dụng response_format với JSON schema để có đầu ra có cấu trúc (Bài học 3 đề cập đến điều này)
  • Ghim vào các phiên bản mô hình cụ thể trong sản xuất: gpt-4.1-2025-04-14
  • Hỗ trợ gọi hàm một cách tự nhiên — định nghĩa các công cụ dưới dạng JSON schema

Anthropic (Claude 4)

  • Claude hiểu các hướng dẫn theo nghĩa đen — hãy rõ ràng về những gì bạn muốn VÀ những gì bạn không muốn
  • Các thẻ XML cấu trúc prompt một cách hiệu quả: <task>, <context>, <examples>, <output_format>
  • Tư duy mở rộng (tham số thinking) cho phép Claude suy luận nội bộ trước khi phản hồi
  • Lưu cache prompt giảm chi phí lên đến 90% cho nội dung tĩnh lặp lại

Google (Gemini)

  • Khả năng đa phương thức mạnh mẽ - gửi hình ảnh, PDF cùng với prompt văn bản
  • Đầu ra có cấu trúc thông qua response_mime_type: "application/json"
  • Thích hợp cho các tác vụ kết hợp văn bản với phân tích trực quan (xem xét ảnh chụp màn hình, hiểu sơ đồ)

Framework CRISP

Một cấu trúc đơn giản cho bất kỳ prompt nào của nhà phát triển:

  • Ngữ cảnh: Thông tin nền, ngữ cảnh code nguồn, kiến ​​thức chuyên môn
  • Vai trò: AI nên là ai (nhà phát triển cấp cao, người đánh giá bảo mật, v.v...)
  • Hướng dẫn: Nhiệm vụ cụ thể với các ràng buộc
  • Thông số kỹ thuật: Định dạng đầu ra, ngôn ngữ, yêu cầu về kiểu dáng
  • Hoàn thiện: Ví dụ, trường hợp ngoại lệ, các bước xác minh

Những điểm chính cần ghi nhớ

  • Prompt hệ thống cần 4 phần: Vai trò, nhiệm vụ, ràng buộc và định dạng đầu ra - hướng dẫn mơ hồ tạo ra đầu ra không nhất quán
  • Kỹ thuật tạo prompt few-shot (3-5 ví dụ đa dạng) là kỹ thuật có ROI cao nhất để có chất lượng đầu ra nhất quán
  • Chuỗi suy luận cải thiện các tác vụ phức tạp lên 16% nhưng làm tăng chi phí không cần thiết cho các tác vụ đơn giản
  • Hiểu rõ mô hình của bạn: Claude là theo nghĩa đen (hãy rõ ràng), GPT-5 xử lý các prompt hợp nhất, Gemini vượt trội về đa phương thức
  • Ghim vào mô hình cụ thể các phiên bản đang được sản xuất — việc cập nhật mô hình có thể làm hỏng các prompt đang hoạt động
  • Câu 1:

    Claude hiểu theo nghĩa đen hướng dẫn của hệ thống 'Sử dụng tên biến mô tả' và tạo ra các biến như `the_total_sum_of_all_prices_after_tax`. Bạn nên thay đổi điều gì?

    GIẢI THÍCH:

    Tài liệu của Anthropic cũng nói rằng Claude hiểu hướng dẫn theo nghĩa đen. Nếu bạn nói 'mô tả', nó sẽ mô tả tối đa. Cách khắc phục: Giới hạn bằng ví dụ và phạm vi. 'Mô tả nhưng ngắn gọn (tối đa 2-3 từ)' kèm theo ví dụ sẽ cho Claude một mục tiêu rõ ràng. Việc hiểu theo nghĩa đen này thực ra lại là một điểm mạnh khi bạn học cách viết hướng dẫn chính xác.

  • Câu 2:

    Bạn đang sử dụng prompt chuỗi suy luận cho một phép biến đổi dữ liệu phức tạp. Lý luận của mô hình là chính xác nhưng kết quả cuối cùng lại có lỗi. Điều gì có khả năng xảy ra nhất?

    GIẢI THÍCH:

    Phương pháp suy luận chuỗi (CoT) cải thiện khả năng suy luận lên đến 16% (Đạt điểm 1 trên các bài kiểm tra code), nhưng vẫn có sự khác biệt giữa suy luận đúng và triển khai đúng. Cách khắc phục: yêu cầu mô hình tự kiểm tra code của nó dựa trên chính lý luận của nó. Bước tự kiểm tra này sẽ phát hiện ra các lỗi triển khai có thể lọt qua ngay cả khi logic là đúng. Phương pháp suy luận chuỗi cải thiện khả năng suy luận nhưng không đảm bảo code chính xác. Thêm hướng dẫn rõ ràng: 'Sau khi suy luận kỹ phương pháp, hãy triển khai từng bước một. Sau đó, xác minh việc triển khai của bạn dựa trên từng bước suy luận của bạn'.

  • Câu 3:

    Bạn thêm 3 ví dụ few-shot vào prompt tạo code. Chất lượng đầu ra cải thiện đáng kể. Bạn thêm 15 ví dụ nữa. Chất lượng chững lại và đôi khi giảm sút. Tại sao?

    GIẢI THÍCH:

    Prompt few-shot tuân theo một đường cong chất lượng. 0 ví dụ: mô hình đoán. 3-5 ví dụ đa dạng: mô hình hiểu được mẫu và khái quát hóa tốt. 10+ ví dụ: áp lực cửa sổ ngữ cảnh, và mô hình có thể quá khớp với các ví dụ thay vì hướng dẫn. Nghiên cứu liên tục cho thấy 3-5 ví dụ đa dạng, được lựa chọn kỹ lưỡng cho hiệu quả tốt hơn so với các tập hợp lớn hơn. Vượt quá 3-5 ví dụ đa dạng, bạn sẽ nhận được hiệu quả giảm dần - mô hình bắt đầu khớp mẫu với các ví dụ thay vì hiểu nhiệm vụ. Các ví dụ few-shot chất lượng cao hơn số lượng.

Thứ Hai, 04/05/2026 11:02
51 👨 13
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
    ❖ Kỹ thuật thiết kế Prompt