Flipping The Roles: dùng AI “phản hồi” để lập trình thông minh và sáng tạo hơn

Công nghệ - 01/05/2025 11:11:06

🤖💡Bạn từng nhờ AI viết code, nhưng đã thử để AI hỏi ngược lại bạn chưa? Bài viết này hé lộ cách “đảo vai” để AI chủ động đặt câu hỏi, giúp bạn sáng tạo hơn khi lập trình cùng GitHub Copilot.

Kỹ thuật "Flipping The Roles" là một khái niệm thú vị trong lĩnh vực prompt engineering, đặc biệt khi làm việc với các mô hình AI tạo sinh (generative AI).

Tuy nhiên, "Flipping The Roles" trong coding không phải là một thuật ngữ tiêu chuẩn, mà là một cách tiếp cận sáng tạo, nơi AI chủ động đặt câu hỏi để thu thập thông tin từ developer, thay vì chỉ trả lời câu hỏi. Điều này phù hợp với xu hướng hiện đại, nơi AI ngày càng được sử dụng để hỗ trợ học hỏi, debugging, và code review. Dựa trên các tài liệu, tôi nhận thấy tiềm năng của kỹ thuật này trong các kịch bản như debugging, code review, pair programming, tạo tài liệu, và đào tạo.

Trong bài viết này, các bạn cùng tôi tìm hiểu các bài toán áp dụng kỹ thuật "Flipping The Roles", từ đó quay lại khái niệm và các phương án áp dụng khác nhé.


Bắt đầu với Trò chơi Kéo Búa Bao Online

Bạn đang chơi một trò Kéo Búa Bao đơn giản tại https://sondo.top/minigames/keo-bua-bao. Trò chơi này có luật chơi đơn giản, cho phép bạn chọn Kéo, Búa hoặc Bao, cạnh tranh với máy tính, và xem kết quả tức thì. Đây là một ví dụ, tôi sử dụng GitHub Copilot (Claude 3.5 Sonnet model) để thử viết mã cho bài toán đơn giản này.

Tuy nhiên, sau vài ván, bạn có thể cảm thấy trò chơi thiếu chiều sâu – không có bảng xếp hạng, không có chế độ nhiều người chơi, và các tính năng tương tác hạn chế. Làm thế nào để biến trò chơi này thành một trải nghiệm hấp dẫn hơn, thu hút và giữ chân người chơi lâu dài?

Câu trả lời nằm ở việc kết hợp, vừa sử dụng GitHub Copilot để triển khai code nhanh chóng và kỹ thuật Flipping The Roles để tinh chỉnh ý tưởng và cải tiến trò chơi.


Áp dụng Kỹ thuật "Flipping The Roles" để Cải tiến Trò chơi

Tôi yêu cầu AI viết code, tôi yêu cầu gì AI làm việc đó. Tư duy ngược lại, AI đặt câu hỏi để làm rõ yêu cầu và đề xuất cải tiến, là một cách tiếp cận mạnh mẽ để tối ưu hóa thiết kế trò chơi.

Tôi quay ra thiết kế các prompt để Copilot đặt câu hỏi lại, giúp tôi suy nghĩ sâu hơn về trải nghiệm người chơi. Dựa trên gợi ý của bài báo Flipping The Script On AI, tôi sử dụng lời nhắc sau:

Bạn là một chuyên gia thiết kế trò chơi. Hãy đặt 5 câu hỏi để hiểu rõ hơn về mục tiêu của tôi khi cải tiến trò chơi Kéo Búa Bao trực tuyến, nhằm thu hút và giữ chân người chơi. Sau khi tôi trả lời, đề xuất các tính năng mới và tạo mã mẫu bằng JavaScript.

Tôi có các câu hỏi rất hữu ích từ Copilot:

  • 1. Đối tượng mục tiêu của trò chơi là ai (trẻ em, thanh niên, người lớn)?
  • 2. Bạn muốn tập trung vào cạnh tranh (như bảng xếp hạng) hay tương tác xã hội (như chế độ nhiều người chơi)?
  • 3. Có giới hạn về công nghệ không (chỉ dùng JavaScript hay có thể dùng backend như Node.js)?
  • 4. Bạn muốn thêm yếu tố nào để tăng sự thú vị (hiệu ứng hình ảnh, âm thanh, phần thưởng)?
  • 5. Người chơi có nên nhận được phản hồi hoặc tiến bộ theo thời gian (như cấp độ, huy hiệu)?

 

Tôi trả lời rằng trò chơi hướng đến thanh niên và người lớn, ưu tiên cạnh tranh và tương tác xã hội, có thể dùng backend đơn giản với .NET core, và muốn thêm hiệu ứng hình ảnh cùng phần thưởng.

Dựa trên câu trả lời, Copilot lại đề xuất kịch bản cho các tính năng mới:

  • Chế độ Nhiều Người chơi: Sử dụng WebSocket để kết nối người chơi.
  • Hiệu ứng Hoạt hình: Thêm hoạt hình CSS khi người chơi thắng.
  • Hệ thống Phần thưởng: Cấp huy hiệu khi đạt số ván thắng nhất định.
  • Thống kê Trò chơi: Hiển thị tỷ lệ thắng/thua của người chơi.

Đồng thời, "hắn" còn hỗ trợ tôi viết code cho đoạn đó... bạn thử chơi oẳn tù tì thắng hoặc thua máy thêm vài ván để thấy hiệu ứng mới cho Phần thưởng này.


Lợi ích của Sự Kết hợp các kỹ thuật

Kết hợp GitHub Copilot và "Flipping The Roles" mang lại nhiều lợi ích:

  • Tăng tốc Phát triển: Copilot tạo code nhanh chóng, giảm thời gian viết các tác vụ lặp lại, tham khảo GitHub Copilot for Beginners.
  • Tinh chỉnh Ý tưởng: Kỹ thuật "Flipping The Roles" giúp tôi suy nghĩ sâu hơn về nhu cầu người chơi, dẫn đến các tính năng sáng tạo hơn.
  • Cải thiện Chất lượng: Copilot đề xuất các phương pháp tốt nhất, giảm lỗi và cải thiện hiệu suất. Tham khảo Game Development with GitHub Copilot. - tôi xin phép trình bày phương án trong bài viết tới nhé.
  • Tăng Tương tác Người chơi: Các tính năng như bảng xếp hạng và chế độ nhiều người chơi làm tăng sự hấp dẫn, như được minh họa qua các dự án trong GitHub Copilot 1-Day Build Challenge. - tôi chưa thiết lập tính năng tương tác trong keo-bua-bao này, chắc sẽ mất lượng khách hàng lớn đây :)

Quay trở lại lý thuyết một chút

Kỹ thuật "Flipping The Roles" trong lập trình

"Flipping The Roles" trong prompt engineering là một kỹ thuật mà ở đó, thay vì người dùng cung cấp câu hỏi (prompt) và AI trả lời, AI sẽ đóng vai trò người hỏi, yêu cầu người dùng cung cấp câu trả lời. Các mục đích sử dụng bao gồm:

  • Cung cấp thông tin hoặc huấn luyện dữ liệu cho AI: AI có thể hỏi để thu thập thêm thông tin, giúp hiểu rõ hơn về ngữ cảnh hoặc cải thiện hiệu suất.
  • Khám phá các câu hỏi ngữ cảnh: AI đặt câu hỏi để làm rõ ý định của người dùng hoặc cung cấp thêm ngữ cảnh.
  • Học hỏi từ việc bị hỏi: Người dùng có thể nhận được góc nhìn mới khi phải trả lời các câu hỏi của AI.
  • Kiểm tra hoặc đánh giá: Dùng để đánh giá kiến thức của người dùng hoặc chấm điểm dựa trên tiêu chí đã định.

Để thực hiện, người dùng cần thiết kế prompt rõ ràng, bao gồm:

  • Chỉ định đây là tương tác đảo ngược vai trò.
  • Số lượng và thời gian đặt câu hỏi (ví dụ: một câu hỏi mỗi lần).
  • Lý do đặt câu hỏi.
  • Loại và phong cách câu hỏi.
  • Trình tự hỏi đáp.
  • AI sẽ làm gì với câu trả lời (tóm tắt, thách thức, v.v.).
  • Các bước tiếp theo để AI thực hiện (code, review, pair code, kiểm thử,...).

Kết luận

Kỹ thuật "Flipping The Roles" có tiềm năng lớn trong xây dựng phần mềm. Nó có thể được áp dụng trong debugging, code review, pair programming, tạo tài liệu, và học hỏi, giúp tăng cường tính tương tác, hiệu quả, và chất lượng của quá trình phát triển phần mềm.

Mặc dù các công cụ hiện tại như GitHub Copilot và IntelliCode đã cung cấp một số tính năng tương tác, việc triển khai đầy đủ kỹ thuật này có thể mang lại những lợi ích to lớn hơn nữa trong tương lai.

Hi vọng các bạn thích bài viết và áp dụng kỹ thuật này trong công việc của các bạn.

Happy coding.

Nguồn tham khảo

 

/Son Do - I share real-world lessons, team building & developer growth.

 

#FlippingTheRoles #PromptEngineering #GitHubCopilot #DotNet #AIAuto #ChatAI #MicrosoftAI #TechBlog #SoftwareDevelopment #AIGame #wecommit100xshare #1percentbetter

Công nghệ

Xem tất cả