เขียนพรอมป์ติวเตอร์ที่บังคับให้ AI สวมบทบาท มีกฎเข้มงวด และปรับตามระดับของคุณ
เปิดบทเรียนนี้ใน Kodokonคุณรู้วิธีเขียนพรอมป์ที่ดีพอด้วยส่วนประกอบ CTCF ทั้งสี่อยู่แล้ว ได้แก่ บริบท (context) งาน (task) ข้อจำกัด (constraints) รูปแบบ (format) ในบทนี้ คุณจะก้าวไปอีกขั้น นั่นคือการตั้งค่า AI ให้เป็น ติวเตอร์ส่วนตัว ครั้งเดียวจบ ไม่ใช่เครื่องแจกคำตอบ ความแตกต่างสรุปได้ในประโยคเดียว ติวเตอร์ที่ดีทำให้คุณได้ฝึก ส่วนเครื่องมือที่แย่ทำงานแทนคุณ ทุกอย่างขึ้นอยู่กับบทบาทและกฎที่คุณกำหนดตั้งแต่ข้อความแรกสุด
พรอมป์ติวเตอร์ที่ได้ผลตั้งอยู่บนสามเสาหลัก บทบาท: AI เป็นใคร (ติวเตอร์ผู้ใจเย็น เชี่ยวชาญในสาขาเฉพาะ) กฎ: สิ่งที่มันได้รับอนุญาตให้ทำ และเหนือสิ่งอื่นใด สิ่งที่มันถูกห้ามทำ โดยกฎทองคือ "ห้ามมอบคำตอบให้โดยตรงเด็ดขาด" การปรับตัว: ระดับที่แท้จริงของคุณ สิ่งที่คุณเชี่ยวชาญ จุดที่คุณยังติดขัด เพื่อให้คำอธิบายไม่ง่ายเกินไปและไม่แน่นเกินไป
คุณคือติวเตอร์การเขียนโปรแกรมส่วนตัวของฉัน เชี่ยวชาญด้าน JavaScript
โปรไฟล์ของฉัน: ฉันเป็นมือใหม่ด้าน JavaScript ฉันรู้จักตัวแปร เงื่อนไข และลูป แต่เพิ่งจะเริ่มคุ้นเคยกับฟังก์ชันได้ไม่นาน กรุณาปรับคำอธิบายให้เข้ากับระดับนี้ ไม่ใช้ศัพท์เทคนิคที่ไม่ได้นิยาม ไม่พูดถึงแนวคิดขั้นสูงโดยไม่เตือนฉันล่วงหน้า
กฎของคุณ ใช้ได้ตลอดทั้งบทสนทนา:
1. ห้ามให้คำตอบที่สมบูรณ์ของโจทย์แก่ฉันเด็ดขาด แม้ว่าฉันจะขอก็ตาม แทนที่จะทำเช่นนั้น ให้เสนอคำใบ้หรือคำถามที่พาฉันกลับเข้าสู่ทางที่ถูก
2. เมื่อฉันทำผิด ให้บอกว่าฉันผิดตรง WHERE (ตรงไหน) ไม่ใช่ HOW (วิธีแก้อย่างไร)
3. คอยตรวจสอบเป็นระยะว่าฉันเข้าใจแล้วหรือไม่ ด้วยการถามคำถามสั้น ๆ
4. ถ้าฉันใช้ศัพท์เทคนิคผิด ให้แก้ไขฉันทันที
5. จบคำอธิบายแต่ละครั้งด้วยแบบฝึกหัดสั้น ๆ เพื่อให้ฉันได้ฝึก
ยืนยันว่าคุณเข้าใจกฎเหล่านี้แล้ว จากนั้นถามฉันว่าวันนี้ฉันอยากฝึกเรื่องอะไรมาแยกดูว่าอะไรทำให้พรอมป์นี้ดูเป็นมืออาชีพ กฎ มีหมายเลขกำกับและเด็ดขาด: "ห้าม...เด็ดขาด" "ทันที" AI เคารพข้อห้ามที่ชัดเจนได้ดีกว่าความปรารถนาคลุมเครืออย่าง "ช่วยฉันเรียนรู้หน่อย" มาก โปรไฟล์ เป็นรูปธรรม: การระบุสิ่งที่คุณรู้อยู่แล้ว ("ตัวแปร เงื่อนไข ลูป") ได้ผลดีกว่า "ระดับมือใหม่" เพราะ AI ปรับเทียบแต่ละคำอธิบายกับความรู้ที่ตรวจสอบได้ สุดท้าย บรรทัดสุดท้ายขอ การยืนยัน: คุณตรวจสอบว่าข้อตกลงได้รับการยอมรับแล้วก่อนเริ่ม
ลองเปรียบเทียบกับการใช้งานที่ผิด: "เขียนฟังก์ชันเรียงลำดับอาร์เรย์ของออบเจกต์ตามวันที่ให้ฉันหน่อย" คุณจะได้โค้ดที่สมบูรณ์แบบ… แต่พรุ่งนี้คุณจะเขียนมันขึ้นมาใหม่ไม่ได้ การใช้งานที่ถูกต้องด้วยพรอมป์ติวเตอร์ของคุณ: "ฉันต้องเรียงลำดับอาร์เรย์ของออบเจกต์ตามวันที่ แต่ไม่รู้จะเริ่มตรงไหน ช่วยถามคำถามที่จะทำให้ฉันหาแนวทางเจอเองหน่อย" ความต้องการเดียวกัน แต่กรณีหนึ่งคุณคัดลอก อีกกรณีหนึ่งคุณเรียนรู้