Mở đầu
Hello ae, hẳn các ae đã biết mấy năm gần đây, AI phát triển cực kì mạnh mẽ, phần lớn các công việc của ae có thể sử dụng AI, giống như sql dùng để giao tiếp với DB, chúng ta dùng prompt để giao tiếp với AI. Đôi khi ae sẽ gặp nhiều trường hợp dùng prompt hoài mà AI trả lời không đúng ý, lan man hoặc hiểu sai hoàn toàn mục tiêu của mình. Điều này không chỉ tốn thời gian mà còn khiến ae cảm thấy ức chế, nhất là khi đang cần gấp một đoạn code hay lời giải cho một bug hóc búa. Chính vì vậy, bài viết này sẽ chia sẻ một số tips đơn giản nhưng cực kỳ hiệu quả giúp ae lập trình viết prompt rõ ràng, đúng mục tiêu và tận dụng tối đa sức mạnh của AI trong công việc hàng ngày. Cùng bắt đầu nhé!
Nguyên tắc chuẩn
khi viết 1 đoạn văn ta cần phải xác định các phần cho đoạn văn đó, tương tự vậy khi tạo ra 1 prompt, các bạn phải xác định các chủ thể của prompt, thường thì trong prompt sẽ bao gồm 4 chủ thể chính : C (context), E (expert persona), T (task), O (Output), giống như hình dưới đây
1. Context
cung cấp ngữ cảnh cho câu hỏi (where, when, why) ->bạn đang gặp vấn đề gì? ->bạn đang gặp chuyện gì?
vd: context để viết api dựa trên product schema
Context: My Task is create a new api for product table here is schema using spring boot, postgres
### Product-Schema ###
create table product ( id serial primary key, name varchar(100), cost double precision, description text
)
2. expert persona (Role)
đây là không quan trọng trong 1 số prompt nhưng cực kì quan trọng trong 1 số prompt khác, các bạn phải xác định được Vai trò của chatgpt trong trường hợp này là gì?, trong ngành IT thì bạn có thể đặt role là (Intern, Fresher, Junior, Senior, CTO), tuy nhiên các bạn cần nhớ 1 điều, không phải chuyên nghiệp là tốt vậy nên việc đặt 1 role quá cao sẽ khiến code của bạn bị rối rắm không cần thiết, dẫn đến khó bảo trì, khó sữa chữa, để thêm phần này các bạn chỉ cần thêm cái này là xong
Role: Middle
hoặc
Vai trò của bạn là middle
3. task
Ở phần này, bạn miêu tả chính xác cái bạn đang muốn AI model làm, câu hỏi các bạn cần trả lời là : "Cần chatgpt làm gì" các bạn nên miêu tả kĩ 1 chút, nếu các bạn chỉ yêu cầu tạo api thì kết quả phần service handle sẽ bị thiếu dẫn đến các bạn phải yêu cầu thêm
Task: Create api, service handler, repository and query related
4. Output
- đây cũng là 1 phần cực kì quan trọng, nếu các bạn không thêm vào, các bạn sẽ phải chờ thêm 1-2 phút để prompt được tạo xong, câu hỏi các bạn cần trả lời là "Kết quả mong muốn nhận được như thế nào"
- Mô tả kết quả càng cụ thể càng tốt, nếu có thể hãy đảm bảo về các mặt:
- độ dài
- định dạng (bảng, xml, json, …)
- cấp độ từ vựng sử dụng (b1, b2, toeic ielts)
- exclusion… (những hạn chế mà bạn có thể kể đến)
lưu ý: để code được chuyên nghiệp các bạn có thể thêm 1 số câu output như sau
apply builder pattern for enity -> dto
-> sử dụng builder pattern cho dtoapply solid
-> sử dụng nguyên tắc solid để code dễ bảo trì (solid, kiss...)oswap check
-> sử dụng oswap để đảm bảo về mặt securitygive me curl of api get list in {host}{port}
-> yêu cầu gpt sau khi tạo xong sẽ tạo ra 1 curl để bạn có thể sử dụng được ngay, sau đó bạn chỉ cần import curl này vào postman, thế là xonguse vietnamese/english
-> trả về output tiếng anh/việt
dưới đây là ví dụ cho phần output của prompt tạo api product
Remove repeated question, explain, library
only code and class
create a window script for create class file
-> giải thích 1 chút về output, ở đây tôi sẽ đưa ra 3 output cụ thể
Remove repeated question, explain, library
=> thông thường GPT hay giải thích, thêm phần lib... , việc này sẽ tốn token => tốn thời gian, tôi đoán nhiều ae không đọc phần explain đâu, phần library nếu bạn cần thì có thể nhờ nó tạoonly code and class
=> tôi muốn phân tách các class cụ thểcreate a window script for create class file
=> tôi không thích tạo class lắm nên nhờ gpt tạo luôn cho nhanh
5. Clean
Bước này là optional nhưng vô cùng cần thiết, các bạn có thể dễ dàng sửa chữa và sử dụng prompt của mình các lần tới, các bạn có thể follow như ví dụ dưới đây
--Context-- My Task is create a new api for product table here is schema using spring boot, postgres
### Product-Schema ###
create table product ( id serial primary key, name varchar(100), cost double precision, description text
)
--Your Role-- Middle
--Task--
Create api
service handler repository and query related
request class
response class
--Output--
1. Remove repeated question, explain, library
2. only code and class
3. create a window script for create class file
Chiến lược + tips, trick
Các mẫu chiến lược
a. Nhờ GPT viết tiếp đoạn văn hoặc logic code
I’m providing you with the beginning (song lyrics/story/paragraph/essay...): (Insert lyrics/words/sentence). Finish it based on the words provided. Keep the flow consistent.
b. Nhờ rà soát kiến thức bằng các câu hỏi trắc nghiệm
(multiple choice questions - câu hỏi dạng trắc nghiệm nhiều đáp án) (single choice questions - câu hỏi chọn 1 đáp án)
c. Học bất kì điều gì sử dụng ai
“Teach me any (theorem/topic/rule name) and include a test at the end, and let me know if my answers are correct after I respond, without providing the answers beforehand.” (Hãy dạy tôi bất kỳ (định lý/chủ đề/tên quy tắc) nào và kèm theo một bài kiểm tra ở cuối, đồng thời cho tôi biết liệu câu trả lời của tôi có đúng sau khi tôi trả lời mà không cần cung cấp câu trả lời trước hay không.)
Các mẫu tips và tricks
- “Ensure that your answer is unbiased and avoids relying on stereotypes.” (Đảm bảo rằng câu trả lời của bạn không thiên vị và tránh dựa vào khuôn mẫu.)
- Sử dụng các chỉ thị khẳng định như “do”, đồng thời tránh dùng ngôn ngữ phủ định như “don’t”
- Nếu cần sử dụng trong 1 số dạng văn (email, hợp đồng) thêm những cụm từ như "please", "if you don’t mind", "thank you", "I would like to", v.v. Ngược lại đối với những task / câu hỏi / vấn đề ngắn => dùng trực tiếp những cụm từ : “Your task is” và “You MUST” để đi thẳng vào vấn đề
Một vài khung mẫu, resources
Phần resources:
- hàng trăm mẫu prompt được viết sẵn bởi cộng đồng : https://github.com/PickleBoxer/dev-chatgpt-prompts?tab=readme-ov-file#-tools
- 50 mẫu prompt cho dev : https://dev.to/mursalfk/50-chatgpt-prompts-for-developers-4bp6
Phần tools
- AIPRM : https://www.aiprm.com/
Bài tập thực hành
Bài tập 1. Bạn hãy rà soát lại công việc thường ngày của bạn, chia nhỏ các phần và prompt chúng
Bài tập 2. xây dựng 1 webapp đơn giản sử dụng ngôn ngữ mà bạn không thạo
Lời cảm ơn
Cảm ơn các bạn vì đã đọc đến đây, nói chung prompt về mặt bản chất cũng chỉ là những câu ra lệnh thường ngày, tuy nhiên để có được 1 câu lệnh chuẩn và chính xác, chuyên nghiệp đòi hỏi các bạn cần có hiểu biết sâu về lĩnh vực đó. Vì vậy, ngoài việc sử dụng prompt, các bạn cũng cần liên tục học hỏi thêm nhiều kiến thức liên quan đến lĩnh vực của mình. Sau khi học xong 1 kiến thức, các bạn cần liên tục áp dụng nó vào các mẫu prompt sẵn có để ra được 1 kết quả chuẩn xác chuyên nghiệp nhất
Hy vọng những chia sẻ trong bài viết này đã giúp các bạn có thêm góc nhìn rõ ràng hơn về cách tạo và tối ưu prompt một cách hiệu quả. Chúc các bạn luôn giữ được tinh thần học hỏi, không ngừng thử nghiệm và cải thiện mỗi ngày. Hẹn gặp lại trong những bài chia sẻ tiếp theo!