Skip to content
Track 03 · Guide

Prompt engineering trong VS Code

Các cách viết prompt và cung cấp ngữ cảnh để nhận gợi ý inline và câu trả lời chat tốt hơn từ AI trong VS Code.

This content is currently available in Vietnamese only.

Intermediate@shine19045 min read

Bài này tóm tắt các cách viết prompt để nhận phản hồi (response) tốt và sát hơn từ AI trong VS Code. Prompt engineering (hay prompt crafting) là việc quyết định thông tin nào được đóng gói và gửi tới endpoint của AI, và đóng gói ra sao.

Nếu mới làm quen với VS Code hoặc AI, bạn có thể đọc tổng quan AI trong VS Code hoặc bắt đầu với tutorial Getting started. Có thêm video Core principles of prompt engineering with GitHub Copilot.

Tận dụng gợi ý inline

Gợi ý inline tự động đề xuất phần tiếp theo cho code, comment, test… Bạn có thể "gợi ý ngược" để AI đưa ra đề xuất tốt nhất.

Cung cấp ngữ cảnh

AI làm tốt nhất khi có đủ ngữ cảnh (context) để biết bạn đang làm gì, giống như khi bạn nhờ đồng nghiệp giúp.

  • Mở các file liên quan: với gợi ý inline, VS Code xem file hiện tại và các file đang mở để phân tích ngữ cảnh. Mở sẵn file liên quan giúp AI thấy bức tranh rộng hơn về dự án.
  • Comment ở đầu file: một đoạn giới thiệu ngắn, cấp cao giúp AI hiểu tổng thể phần bạn đang viết.
  • Tự khai báo include và tham chiếu module: bạn biết rõ nhất cần dependency nào. Việc này còn cho AI biết framework, thư viện và phiên bản bạn muốn dùng. Ví dụ trong TypeScript, muốn log kết quả của hàm add: khi file không có import nào, AI gợi ý console.log; khi đã tham chiếu Log4js, AI gợi ý log bằng framework đó.
  • Đặt tên hàm có nghĩa: một hàm tên fetchData() chẳng nói lên gì với đồng nghiệp, và với AI cũng vậy. Tên rõ nghĩa giúp AI sinh thân hàm đúng ý.
  • Comment hàm cụ thể, đúng phạm vi: tên hàm không thể dài mãi; comment bổ sung chi tiết AI cần biết.
  • Mồi bằng code mẫu: dán một đoạn code gần với thứ bạn cần vào editor để AI bắt đúng ngôn ngữ và tác vụ, rồi xoá đi khi AI đã gợi ý đúng. Cách này đặc biệt hữu ích khi AI cứ gợi ý code của phiên bản thư viện cũ.

Nhất quán và giữ chất lượng cao

AI bám theo code hiện có để sinh gợi ý cùng khuôn mẫu, nên "rác vào, rác ra". Giữ chất lượng cao đòi hỏi kỷ luật. Khi đang code nhanh, làm tạm cho chạy được, bạn có thể tạm tắt gợi ý: chọn menu Copilot trên Status Bar rồi chọn Snooze (mỗi lần cộng thêm năm phút). Muốn bật lại, chọn Cancel Snooze trong menu Copilot.

Tận dụng chat

Thêm ngữ cảnh liên quan

Gõ # rồi tên mục ngữ cảnh để thêm vào prompt. VS Code hỗ trợ nhiều loại: file, thư mục, symbol trong code, tool, output terminal, thay đổi source control… Gõ # trong ô chat để xem danh sách, hoặc chọn Add Context trong Chat view để mở bộ chọn ngữ cảnh.

Ví dụ #<file name> hoặc #<folder name> tham chiếu file hay thư mục trong workspace, giúp câu trả lời sát với code của bạn hơn: "Can you suggest improvements to #package.json?" hay "How do I add an extension in #devcontainer.json?".

Nếu không biết file nào liên quan, dùng #codebase để VS Code tự tìm file phù hợp trong codebase. Xem thêm dùng ngữ cảnh trong chat.

Cụ thể và đơn giản

Hãy yêu cầu cụ thể và chia tác vụ lớn thành nhiều tác vụ nhỏ. Ví dụ, đừng đòi cùng lúc một app Express dùng TypeScript và Pug, có trang products lấy dữ liệu từ MongoDB. Thay vào đó, trước hết yêu cầu tạo app Express với TypeScript và Pug, sau đó thêm trang products, cuối cùng mới lấy dữ liệu từ database.

Nói rõ input, output, API hoặc framework muốn dùng. Prompt càng cụ thể, kết quả càng tốt. Thay vì "read product data from the database", hãy viết "read all products by category, return the data in JSON format, and use the Mongoose library".

Lặp để cải thiện lời giải

Bạn không phải chấp nhận phản hồi đầu tiên. Chat nắm cả code đã sinh lẫn hội thoại hiện tại, nên bạn có thể yêu cầu cải thiện tiếp. Ví dụ, dùng Inline Chat tạo hàm tính số Fibonacci, rồi yêu cầu bản không dùng đệ quy, rồi yêu cầu theo quy ước code hoặc đặt tên biến tốt hơn. Kể cả khi đã chấp nhận kết quả, bạn vẫn có thể nhờ AI cải thiện code sau.

Tài liệu thêm

Nguồn

Write another guide for this track