Back to Content
AI Content

เขียนโค้ดให้สนุกขึ้น: เมื่อ LLM กลายเป็นผู้ช่วยไขปริศนาคู่ใจ

4 วิธีใช้ Prompt สั่งให้ AI ช่วยเขียน อธิบาย แปล และแก้บั๊กโค้ด

chonchacat's avatar
chonchacat
Admin
3 min
May 15, 2025
AI LLM Coding Coding Assistant

Large Language Models ไม่ได้เก่งแต่เรื่องภาษา แต่ยังสามารถเปลี่ยนเรื่องโค้ดดิ้งยาก ๆ ให้กลายเป็นเครื่องมือทางวิทยาศาสตร์ได้ ลองนึกภาพว่าเราสามารถสั่งให้คอมพิวเตอร์ช่วยคำนวณสูตรฟิสิกส์ที่ซับซ้อน หรือจำลองการเปลี่ยนแปลงทางเคมีง่าย ๆ ได้ มันจะเจ๋งแค่ไหน วันนี้พี่แอดมินมายกตัวอย่างให้ทุกคนดูกันค่ะ


1. ให้ AI สร้างเครื่องมือคำนวณทางวิทยาศาสตร์ (Prompts for writing code)

ในวิชาวิทยาศาสตร์ ไม่ว่าจะเป็นฟิสิกส์ เคมี หรือชีววิทยา เรามักจะเจอสูตรและการคำนวณเต็มไปหมดเลยใช่ไหมคะ ซึ่งเจ้า LLMs นั้นสามารถช่วยเราสร้างโปรแกรมคำนวณเล็ก ๆ ขึ้นมา เพื่อใช้ตรวจสอบความเข้าใจ หรือช่วยประหยัดเวลาคำนวณด้วยมือได้เยอะเลย

ตัวอย่าง:

สิ่งที่เราสั่ง (Input):

ช่วยเขียนฟังก์ชัน Python สำหรับคำนวณพลังงานจลน์ (Kinetic Energy) 
โดยรับมวล (หน่วยเป็นกิโลกรัม) และความเร็ว (หน่วยเป็นเมตรต่อวินาที) 
เป็นอินพุต สูตรคือ KE = 0.5 · m · v²

สิ่งที่ AI สร้างให้ (Output):

def calculate_kinetic_energy(mass, velocity):
    """
    ฟังก์ชันสำหรับคำนวณพลังงานจลน์
    mass: มวลของวัตถุ (kg)
    velocity: ความเร็วของวัตถุ (m/s)
    คืนค่าพลังงานจลน์ (Joules)
    """
    kinetic_energy = 0.5 * mass * (velocity ** 2)
    return kinetic_energy

# ตัวอย่างการเรียกใช้งานฟังก์ชัน
m = float(input("ป้อนค่ามวล (kg): "))
v = float(input("ป้อนค่าความเร็ว (m/s): "))

ke = calculate_kinetic_energy(m, v)
print(f"วัตถุมวล {m:.2f} kg เคลื่อนที่ด้วยความเร็ว {v:.2f} m/s จะมีพลังงานจลน์ {ke:.2f} จูล")

2. แปลโค้ดยากๆ ให้เข้าใจง่าย สไตล์นักอธิบายมือโปร (Prompts for explaining code)

เคยไหมครับที่เจอโค้ดวิทยาศาสตร์ที่คนอื่นเขียนไว้ แล้วงงว่ามันทำงานยังไง? ไม่ต้องห่วงครับ เราสามารถโยนโค้ดนั้นให้ LLMs ช่วยอธิบายการทำงานทีละส่วน เพื่อให้เราเข้าใจหลักการและผลลัพธ์ของมันได้ง่ายขึ้นเยอะ

ตัวอย่าง:

สิ่งที่เราส่งไปให้ AI อธิบาย (Input):

ช่วยอธิบายโค้ดนี้หน่อยครับ ว่ามันทำงานอย่างไร
``````python
# โค้ด Python สำหรับจำลองการเติบโตของประชากรอย่างง่าย
def population_growth(initial_population, growth_rate, time_periods):
    population = initial_population
    print(f"เริ่มต้น: ประชากร {population} ตัว")
    for period in range(1, time_periods + 1):
        growth = population * growth_rate
        population += growth
        print(f"หลังคาบที่ {period}: ประชากร {int(population)} ตัว (เพิ่มขึ้น {int(growth)} ตัว)")
    return int(population)

# กำหนดค่าเริ่มต้น
p0 = 100  # ประชากรเริ่มต้น
r = 0.1   # อัตราการเติบโตต่อคาบ (10%)
t = 5     # จำนวนคาบเวลา

final_pop = population_growth(p0, r, t)
print(f"\nประชากรสุดท้ายหลังจาก {t} คาบเวลา: {final_pop} ตัว")

สิ่งที่ AI อธิบายกลับมา (Output):

โค้ดนี้เป็นการจำลองการเติบโตของประชากรแบบทบต้น (Exponential Growth) ง่ายๆ ครับ:

- ฟังก์ชัน `population_growth` จะรับค่า **ประชากรเริ่มต้น**, **อัตราการเติบโต**, และ **จำนวนช่วงเวลา** เข้ามา
- จากนั้นมันจะวนลูปตามจำนวนช่วงเวลาที่เรากำหนด
- ในแต่ละรอบ มันจะคำนวณว่ามีประชากร **เพิ่มขึ้นเท่าไหร่** (โดยเอาประชากรปัจจุบันคูณกับอัตราการเติบโต)
- แล้วก็เอาจำนวนที่เพิ่มขึ้นนี้ **ไปบวกกับประชากรเดิม**
- สุดท้ายก็จะคืนค่าประชากรทั้งหมดเมื่อจบการจำลอง

โค้ดนี้เจ๋งตรงที่เอาไปอธิบายเรื่องการเพิ่มจำนวนของแบคทีเรียในวิชาชีววิทยา หรือจะเอาไปเปรียบเทียบกับเรื่องดอกเบี้ยทบต้นในวิชาคณิตศาสตร์ก็ได้ครับ

3. เปลี่ยนขั้นตอนการทดลอง ให้กลายเป็นโค้ดอัตโนมัติ (Prompts for translating code)

ในการทดลองทางวิทยาศาสตร์ มักจะมีขั้นตอนที่ชัดเจนและทำซ้ำๆ LLMs สามารถช่วยเราเปลี่ยนขั้นตอนเหล่านั้นให้กลายเป็นโค้ดคอมพิวเตอร์ได้ ทำให้การทำงานของเราเร็วและแม่นยำขึ้นมาก

ตัวอย่าง:

สิ่งที่เราสั่ง (Input):

ผมมีขั้นตอนสำหรับการหาค่าเฉลี่ยของค่าที่วัดได้หลายๆ ครั้งดังนี้:
1. รับรายการของค่าที่วัดได้ (เช่น ความยาว, น้ำหนัก, อุณหภูมิ)
2. หาผลรวมของค่าทั้งหมด
3. นับว่ามีข้อมูลทั้งหมดกี่ตัว
4. เอาผลรวมมาหารด้วยจำนวนข้อมูลเพื่อหาค่าเฉลี่ย
5. แสดงผลค่าเฉลี่ยออกมา
ช่วยเปลี่ยนขั้นตอนพวกนี้เป็นโค้ด Python ให้หน่อยครับ

สิ่งที่ AI สร้างให้ (Output):

def calculate_average_measurement(measurements):
    """
    คำนวณค่าเฉลี่ยจากลิสต์ของค่าที่วัดได้
    measurements: ลิสต์ของตัวเลข (ค่าที่วัดได้)
    คืนค่าค่าเฉลี่ย หรือ None ถ้าลิสต์ว่าง
    """
    if not measurements:
        print("ไม่มีข้อมูลการวัด")
        return None

    total_sum = sum(measurements)
    count = len(measurements)
    average = total_sum / count
    return average

# ตัวอย่างการใช้งาน
length_data = [10.2, 10.1, 10.3, 10.2, 10.0]
avg_length = calculate_average_measurement(length_data)

if avg_length is not None:
    print(f"ค่าเฉลี่ยของความยาวที่วัดได้: {avg_length:.2f} cm")

4. เป็นนักจับบั๊กและโค้ดรีวิวเวอร์ส่วนตัว (Prompts for debugging and reviewing code)

บางครั้งโค้ดที่เราเขียนอาจมีข้อผิดพลาดเล็กๆ น้อยๆ ซ่อนอยู่ ทำให้ผลลัพธ์เพี้ยนไป ไม่ต้องนั่งปวดหัวหาเองครับ ให้ LLMs ช่วยเป็นตาที่สามในการตรวจสอบและให้คำแนะนำได้เลย

ตัวอย่าง:

โค้ดที่มีบั๊กที่เราส่งไป (Input):

# สูตรนี้มีอะไรผิดหรือเปล่า?
def celsius_to_fahrenheit(celsius):
    fahrenheit = celsius * (9/5 + 32)
    return fahrenheit

c = 25
f = celsius_to_fahrenheit(c)
print(f"{c} องศาเซลเซียส เท่ากับ {f} องศาฟาเรนไฮต์")

สิ่งที่ AI ช่วยตรวจ (Output):

โค้ดนี้มีจุดผิดพลาดเล็กน้อยที่ลำดับการคำนวณทางคณิตศาสตร์ครับ

จากโค้ด `fahrenheit = celsius * (9/5 + 32)` โปรแกรมจะคำนวณในวงเล็บก่อน คือเอา `9/5` (เท่ากับ 1.8) ไปบวกกับ `32` ได้ `33.8` แล้วค่อยเอาไปคูณกับ `celsius` ซึ่งทำให้ผลลัพธ์ผิดครับ

สูตรที่ถูกต้องคือ ต้องคูณ `celsius` กับ `9/5` ก่อน แล้วค่อยนำผลลัพธ์ไปบวกกับ `32` ครับ

**โค้ดที่แก้ไขแล้ว:**
```python
def celsius_to_fahrenheit(celsius):
    # แก้ไขโดยใส่วงเล็บให้ถูกต้องตามลำดับการคำนวณ
    fahrenheit = (celsius * 9/5) + 32 
    return fahrenheit

ผลลัพธ์ที่ถูกต้องควรจะเป็น: 25°C เท่ากับ 77.0°F ซึ่ง LLMs สามารถชี้จุดที่ผิดพลาดเรื่องลำดับการคำนวณ (Order of Operations) ซึ่งเป็นเรื่องสำคัญมากในทางวิทยาศาสตร์ได้ครับ


---

#### **หัวใจสำคัญที่ต้องจำ: LLM คือผู้ช่วยสุดเจ๋ง ไม่ใช่คนที่จะมาแทนที่เรา**

แม้ว่า LLMs จะเก่งกาจและช่วยงานเราได้เยอะมาก ตั้งแต่ **ช่วยคิด, ช่วยเขียน, ช่วยอธิบาย, ไปจนถึงช่วยแก้บั๊ก** แต่สิ่งสำคัญที่สุดที่เราต้องไม่ลืมคือ **การตรวจสอบและทดสอบ** โค้ดที่ได้จาก AI ทุกครั้งนะครับ

เพราะ AI ก็ยังเป็นแค่เครื่องมือที่เรียนรู้จากข้อมูลมหาศาล บางครั้งมันอาจจะเข้าใจผิด หรือให้โค้ดที่ไม่สมบูรณ์ 100% ก็ได้ ดังนั้น ทักษะความเข้าใจในหลักการเขียนโปรแกรมและการคิดวิเคราะห์ของเรายังคงเป็นสิ่งที่สำคัญที่สุดเสมอครับ