การจัดการความรู้
 
แนวทางการทำ Prompt Engineering สำหรับ GitHub Copilot: จากทฤษฎีสู่การสร้างมินิแอปเกมเพื่อสิ่งแวดล้อม
post: 2026-03-10 16:03:16     by: ปริญญา บุญศรัทธา     views: 59
กลุ่ม: Go Green (องค์กรสีเขียว)


       

กลยุทธ์และแนวทางปฏิบัติที่สำคัญในการทำ Prompt Engineering เพื่อเพิ่มประสิทธิภาพการใช้งาน GitHub Copilot ซึ่งเป็นเครื่องมือ AI ที่ช่วยสนับสนุนการเขียนโค้ด การสร้างโปรเจกต์ และการจัดการ Pull Request หัวใจสำคัญของ Prompt Engineering ไม่ใช่สูตรลับ แต่คือ "การสื่อสารบริบท" (Context) เพื่อให้ AI เข้าใจเป้าหมายเดียวกับผู้ใช้งาน โดย GitHub Copilot ทำงานบนพื้นฐานของ Large Language Model (LLM) ที่คาดเดาลำดับคำจากคีย์เวิร์ด คอมเมนต์ และโครงสร้างของโค้ด การประยุกต์ใช้เทคนิคต่างๆ เช่น การเริ่มต้นจากภาพกว้างไปสู่รายละเอียด การให้ตัวอย่างข้อมูล และการย่อยงานที่ซับซ้อนให้เล็กลง จะช่วยให้ได้ผลลัพธ์ที่แม่นยำและนำไปใช้งานได้จริง นอกจากนี้ การปฏิบัติตามมาตรฐานการเขียนโค้ดที่ดี (Good Coding Practices) ยังเป็นปัจจัยเสริมที่สำคัญที่ช่วยให้ AI ทำงานได้ดียิ่งขึ้น

1. นิยามและความสำคัญของ Prompt Engineering

Prompt Engineering ในบริบทของ GitHub Copilot คือกระบวนการออกแบบคำสั่ง (Prompt) เพื่อบอกความต้องการแก่ AI อย่างครบถ้วนและชัดเจน

  • เป้าหมายหลัก: เพื่อให้ AI เข้าใจ "บริบท" และ "นิยาม" ของงานให้ตรงกับผู้ใช้งาน (เช่น นิยามคำว่า "งานเสร็จ" ของแต่ละคนอาจไม่เหมือนกัน AI จึงต้องการความชัดเจนในส่วนนี้)
  • กลไกการทำงาน: GitHub Copilot ใช้โมเดลภาษาขนาดใหญ่ (LLM) ในการวิเคราะห์และแนะนำโค้ด โดยอิงจาก 3 องค์ประกอบหลัก:
  • Keywords: คำสำคัญในคำสั่ง
  • Comments: คำอธิบายภายในโค้ด
  • Code Structure: โครงสร้างโดยรวมของโค้ด

2. กลยุทธ์การเขียน Prompt ที่มีประสิทธิภาพ

จากการวิเคราะห์แนวทางของ GitHub Official เทคนิคที่ช่วยให้การสื่อสารกับ AI มีความชัดเจนประกอบด้วย:

2.1 การเริ่มต้นจากกว้างไปหาเฉพาะเจาะจง (Start General, Then Get Specific)

เริ่มต้นด้วยการกำหนดเป้าหมายหลัก (Goal) แล้วตามด้วยรายการข้อกำหนด (Requirements) เป็นข้อๆ

  • ตัวอย่าง: แทนที่จะสั่งแค่ "เขียนฟังก์ชันเลขเฉพาะ" ให้ระบุรายละเอียดว่า:
    • บรรทัดแรก: ระบุเป้าหมายกว้างๆ ว่าต้องการสร้างฟังก์ชันตรวจสอบเลขเฉพาะ
    • รายละเอียดเสริม: ระบุว่าฟังก์ชันต้องรับค่า Integer และส่งค่ากลับเป็น Boolean (True/False)
    • การจัดการข้อผิดพลาด: ระบุว่าหาก Input ไม่ใช่จำนวนเต็มบวก ให้ส่งค่า Error

2.2 การให้ตัวอย่าง (Give Examples)

การระบุตัวอย่าง Input และ Output ช่วยลดความคลาดเคลื่อนของรูปแบบข้อมูล โดยเฉพาะเรื่องวันที่หรือโครงสร้างข้อมูลที่ซับซ้อน

  • ตัวอย่าง: หากต้องการสกัดวันที่จากข้อความ ควรระบุ Format ของข้อมูลขาเข้า (เช่น ข้อความนัดหมาย) และ Format ขาออกที่ต้องการ (เช่น Array ของวันที่) เพื่อให้ AI เข้าใจรูปแบบที่ชัดเจน

2.3 การย่อยงานที่ซับซ้อน (Break Complex Tasks into Simple Tasks)

หากโปรเจกต์มีความซับซ้อนสูง ควรแบ่งขั้นตอนออกเป็นงานย่อย (Small/Simple Tasks) ในลักษณะ Step-by-step

  • กรณีศึกษา (การสร้างเกม Word Search):
  • สร้างฟังก์ชันสำหรับสร้างตารางตัวอักษรขนาด 10x10
  • สร้างฟังก์ชันสำหรับค้นหาคำในตาราง
  • สร้างฟังก์ชันหลักเพื่อรวมการทำงานและอัปเดตสถานะ

2.4 การหลีกเลี่ยงความกำกวม (Avoid Ambiguity)

ควรระบุให้ชัดเจนว่าฟังก์ชันต้องทำอะไร มี Input อะไร และต้องการ Response กลับมาในรูปแบบใด การสั่งงานกว้างๆ เช่น "Create User" โดยไม่ระบุฟิลด์ข้อมูล จะทำให้ได้ผลลัพธ์ที่ไม่ตรงความต้องการ

3. การจัดการบริบทและสภาพแวดล้อม (Context Management)

GitHub Copilot สามารถรับรู้บริบทจากสิ่งที่ผู้ใช้กำลังทำอยู่ผ่านเทคนิคดังนี้:

เทคนิค

วิธีการใช้งาน

การไฮไลต์โค้ด (Highlighting)

ลากคลุมส่วนของโค้ดที่ต้องการถาม เพื่อให้ AI โฟกัสเฉพาะจุดนั้น

การใช้ตัวแปรบริบท

ใช้เครื่องหมาย # หรือ @ เช่น #file เพื่อระบุไฟล์ที่เกี่ยวข้อง หรือ @workspace เพื่อถามเกี่ยวกับโปรเจกต์โดยรวม

การแยก Thread ในแชท

เปิด Thread ใหม่เมื่อเริ่มหัวข้อใหม่ เพื่อไม่ให้ประวัติการคุยเดิมปะปนกับบริบทใหม่

การลบข้อมูลที่ไม่เกี่ยวข้อง

ลบประวัติแชทที่ไม่เกี่ยวข้องออกเพื่อให้เหลือเพียงบริบทที่จำเป็นต่อการทำงาน

 

4. การปฏิบัติตามมาตรฐานการเขียนโค้ดที่ดี (Good Coding Practices)

การเขียนโค้ดที่มีคุณภาพช่วยให้ GitHub Copilot แนะนำโค้ดได้แม่นยำขึ้นมากกว่าครึ่งหนึ่ง เมื่อเทียบกับโค้ดที่ไม่มีมาตรฐาน โดยมีแนวทางปฏิบัติดังนี้:

  1. Consistent Coding Style: รักษาจังหวะการเขียน รูปแบบตัวพิมพ์ใหญ่-เล็กให้สม่ำเสมอตาม Coding Standard
  2. Meaningful Naming: ตั้งชื่อตัวแปร ฟังก์ชัน และคลาสให้สื่อความหมายชัดเจน
  3. Modular Structure: ออกแบบโค้ดให้เป็นโมดูล แยกส่วนงานที่เกี่ยวข้องกันไว้ด้วยกัน และแยกส่วนที่ไม่เกี่ยวข้องกันออก
  4. Comments & Documentation: ใส่คอมเมนต์อธิบายภายในโค้ดอย่างสม่ำเสมอ
  5. Unit Test: เขียน Unit Test เพื่อยืนยันความถูกต้องของโค้ด

 

5. การทดลองและปรับปรุง (Experiment and Iterate)

หากผลลัพธ์จาก AI ยังไม่เป็นที่น่าพอใจ ผู้ใช้งานควร:

  • ทำการทดลองซ้ำ (Experiment) และปรับแก้คำสั่ง (Iterate) ไปเรื่อยๆ
  • หากต้องการเพียงแนวทางแต่ไม่ต้องการให้ AI แก้ไขโค้ดโดยตรง สามารถใช้ให้ AI แนะนำแล้วเลือกลบส่วนที่ไม่ต้องการทิ้ง เพื่อใช้เป็นเพียงไกด์ไลน์ในการเขียนต่อ
  • ในการใช้งานผ่าน Copilot Chat สามารถสื่อสารโต้ตอบต่อเนื่องจากประโยคก่อนหน้าได้โดยไม่จำเป็นต้องเริ่มใหม่ทุกครั้ง

 

การประยุกต์ใช้: การสร้างมินิแอปเกม "Eco-Sorter" (เกมคัดแยกขยะ)

หากต้องการสร้างมินิแอปเกมเกี่ยวกับสิ่งแวดล้อมเพื่อใช้ในงานประจำวัน สามารถใช้แนวทาง Prompt Engineering ได้ดังนี้:

ขั้นที่ 1: กำหนดโครงสร้าง (Start General)

Prompt: "สร้างโครงสร้างโปรเจกต์ React สำหรับมินิเกม 'Eco-Sorter' เป้าหมายคือให้ผู้เล่นลากขยะไปทิ้งให้ถูกถัง (Organic, Recyclable, Hazardous) โดยต้องมีระบบนับคะแนนและเวลาถอยหลัง 60 วินาที" 

ขั้นที่ 2: ให้ตัวอย่างข้อมูล (Give Examples)

Prompt: "สร้าง Array ของวัตถุขยะ (Items) โดยแต่ละวัตถุประกอบด้วย id, name, และ category เช่น { id: 1, name: 'เปลือกกล้วย', category: 'Organic' }" 

ขั้นที่ 3: ย่อยงานส่วน Logic (Break Complex Tasks)

แบ่งการสั่งงานเป็นส่วนๆ เพื่อความแม่นยำ: 

 

  1. ฟังก์ชันสุ่มขยะ: "เขียนฟังก์ชันสำหรับสุ่มขยะออกมาทีละชิ้นจาก Array ที่สร้างไว้" 

  2. ระบบตรวจสอบความถูกต้อง: "เขียนฟังก์ชันตรวจสอบว่าขยะที่ผู้เล่นลากมาวางในถัง ตรงกับ category หรือไม่ ถ้าถูกได้ 10 คะแนน ถ้าผิดลบ 5 คะแนน" 

  3. UI ของถังขยะ: "ใช้ Tailwind CSS สร้าง Component ถังขยะ 3 ใบที่มีสีต่างกันและมีป้ายกำกับชัดเจน" 

 

 

ทดลองเล่นเกมได้ที่ https://parinyaboon17-lab.github.io/eco-sorter/

 copy link ไปเปิดหน้าใหม่ ถึงจะเล่นได้  (5 อันดับแรก รับร่มกันแดด คนละ 1 รางวัล เล่นได้ตั้งแต่บัดนี้ - วันที่ 13 มีนาคม 2569 ประกาศผลวันจันทร์ที่ 16 มีนาคม 2569 ช่องทาง Facebook : UBU Library )

 

 

บทสรุป

การทำ Prompt Engineering คือการทดลองและปรับปรุง (Experiment and Iterate) หากผลลัพธ์ยังไม่ตรงใจ ให้ลองใช้การแนะนำจาก AI เป็นเพียงไกด์ไลน์แล้วปรับแก้ด้วยตัวเอง หรือใช้ Copilot Chat ในการสื่อสารโต้ตอบอย่างต่อเนื่องเพื่อขัดเกลาโค้ดให้สมบูรณ์ที่สุด 






Login
Username
Password

สำหรับผู้เข้าใช้งานครั้งแรก



(เฉพาะบุคลากรมหาวิทยาลัยเท่านั้น)
 
กลุ่มชุมชนนักปฏิบัติ
IT UBU (79 บทความ)
Tech & Innovation in New Normal (38 บทความ)
UBU Library Services (35 บทความ)
Go Green (องค์กรสีเขียว) (34 บทความ)
OCN KM Bank (30 บทความ)
ทำอย่างไรให้สะดวกและความปลอดภัยในการทำงาน (30 บทความ)
กลุ่มทั้งหมด
บทความใหม่
เทคนิคการช่วยให้เพื่อนร่วมงานจดจำคำศัพท์ภาษาอังกฤษในสำนักงานได้ง่ายขึ้น (2026-04-14 20:53)
ทำไม mac os ถึงเลือกใช้ zsh เป็น shell หลัก (2026-04-04 07:04)
ถอดรหัส EdPEx สู่การปฏิบัติจริง: พลังสายสนับสนุนขับเคลื่อนองค์กรสู่ความเป็นเลิศ (EdPEx for Supporting Staff) (2026-04-02 23:53)
ถอดบทเรียนงานบุคคลยุคดิจิทัล: พลิกโฉมการตรวจสอบเอกสาร ก.พ.อ. 03 ด้วย AI และ Visual Design แบบ Zero Error (2026-03-31 15:54)
คลีนิคให้คำปรึกษาด้านวิชาการคณะรัฐศาสตร์ (2026-03-27 14:29)
คู่มือการลงลายมือชื่อหนังสืออิเล็กทรอนิกส์ (2026-03-27 08:45)
 
บทความยอดนิยม
PESTEL Analysis : เครื่องมือในการวิเคราะห์ปัจจัยภายนอก (7479 view)
เกณฑ์ AUN-QA Overview (Versions 4) (3543 view)
การจัดการศึกษาแบบ Outcome-Based Education : Backward Curriculum Design (3491 view)
Mesh / Access Point คืออะไร ? ทำไมคนถึงชอบเข้าใจผิด (2570 view)
ภาพรวมเกณฑ์ AUN-QA Version 4.0 (2215 view)
แนะนำ Google AppSheet ช่วยพัฒนา Mobile Applications เป็นเรื่องง่าย และฟรี (1917 view)