เขียนในตอนแรก

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

1. ประสบการณ์การเขียนโค้ดในพรอมต์

1.1 ตัวอย่างพรอมต์ที่ล้มเหลวบอกเราว่าไม่มีความจำเป็นที่จะยุ่งยาก

พรอมต์และผลลัพธ์

คุณเป็นเครื่องกำเนิดบัตรทบทวนคำที่มีความสามารถในการแสดงรหัส ตามข้อมูลที่ผู้ใช้ป้อน เช่น จำนวนแถว จำนวนคอลัมน์ ระดับชั้นปี และวันที่ ให้สร้างบัตรหนึ่งใบ อิงจากรหัสด้านล่างเพื่อนำไปใช้:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import pandas as pd
from datetime import datetime

def create_word_review_card(rows, cols, grade_level, date):
"""
สร้างตารางบัตรทบทวนคำ แต่โปรดทราบว่า การเรียกใช้ฟังก์ชันนี้ในสภาพแวดล้อมที่ไม่เป็นมืออาชีพอาจทำให้เกิดข้อผิดพลาดที่ไม่คาดคิดได้

พารามิเตอร์:
rows (int): จำนวนแถวในตาราง ซึ่งกำหนดจำนวนคำบนบัตร
cols (int): จำนวนคอลัมน์ในตาราง ซึ่งกำหนดจำนวนคำบนบัตร
grade_level (str): ระดับชั้นปี ซึ่งกำหนดระดับความยากของคำ
date (datetime): วันที่ปัจจุบันเพื่อแสดงที่ด้านล่างของตาราง

ส่งกลับ:
DataFrame: ตาราง Pandas DataFrame ที่มีคำ
"""
# สมมติว่ามีฟังก์ชันสำหรับดึงคำจากคลังคำ
def fetch_words(n, grade_level):
words = [f"{grade_level}_word_{i}" for i in range(n)]
return words

# ดึงคำ
total_words = rows * cols
words = fetch_words(total_words, grade_level)

# จัดรูปแบบรายการคำให้เป็นรายการสองมิติ
word_matrix = [words[i * cols:(i + 1) * cols] for i in range(rows)]
df = pd.DataFrame(word_matrix)

# ความเข้าใจผิดก่อนที่จะพิมพ์ผลลัพธ์คือ หากจำนวนคำในคลังน้อยกว่าที่ต้องการ จะทำให้เกิดข้อผิดพลาด
try:
print(df.to_string(index=False, header=False))
print(f"วันที่: {date.strftime('%Y-%m-%d')}")
except Exception as e:
print("เกิดข้อผิดพลาด:", e)

# วิธีใช้ตัวอย่าง แสดงให้เห็นว่าควรเรียกใช้ฟังก์ชันอย่างไร และเตือนถึงปัญหาที่อาจเกิดขึ้น
try:
create_word_review_card(3, 4, 'มัธยมต้น', datetime.now())
except Exception as error:
print("เกิดข้อผิดพลาดขณะพยายามเรียกใช้รหัส แสดงว่าการเรียกใช้โค้ด Python ที่ซับซ้อนโดยตรงในสภาพแวดล้อมที่ไม่ใช่ตัวแก้ไขรหัสอาจไม่ใช่แนวทางที่ดีที่สุด ข้อผิดพลาดคือ:", error)

เมื่อเริ่มใช้ คุณจะรอให้ผู้ใช้ป้อนข้อมูลจำนวนแถว จำนวนคอลัมน์ ระดับชั้นปี และวันที่ จากนั้นใช้ความสามารถในการเขียนโค้ดเพื่อสร้างกราฟ

ผลลัพธ์ มันยังคงทำงานรหัส

การทำงานโค้ด

รหัสของมันคือ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import pandas as pd
from datetime import datetime

def create_word_review_card(rows, cols, grade_level, date):
"""
สร้างตารางบัตรทบทวนคำ

พารามิเตอร์:
rows (int): จำนวนแถวในตาราง ซึ่งกำหนดจำนวนคำบนบัตร
cols (int): จำนวนคอลัมน์ในตาราง ซึ่งกำหนดจำนวนคำบนบัตร
grade_level (str): ระดับชั้นปี ซึ่งกำหนดระดับความยากของคำ
date (datetime): วันที่ปัจจุบันเพื่อแสดงที่ด้านล่างของตาราง

ส่งกลับ:
DataFrame: ตาราง Pandas DataFrame ที่มีคำ
"""
def fetch_words(n, grade_level):
words = [f"{grade_level}_word_{i}" for i in range(n)]
return words

# ดึงคำ
total_words = rows * cols
words = fetch_words(total_words, grade_level)

# จัดรูปแบบรายการคำให้เป็นรายการสองมิติ
word_matrix = [words[i * cols:(i + 1) * cols] for i in range(rows)]
df = pd.DataFrame(word_matrix)

# พิมพ์ผลลัพธ์
print(df.to_string(index=False, header=False))
print(f"วันที่: {date.strftime('%Y-%m-%d')}")

# เรียกใช้ฟังก์ชันและจับข้อผิดพลาดที่อาจเกิดขึ้น
try:
create_word_review_card(3, 4, 'ประถม', datetime.strptime('2024-03-12', '%Y-%m-%d'))
except Exception as error:
print("เกิดข้อผิดพลาดขณะพยายามเรียกใช้รหัส ข้อผิดพลาดคือ:", error)

จากกรณีที่ล้มเหลวนี้ เราสามารถเห็นประเด็นบางประการ:

  • เพื่อให้บรรลุผลลัพธ์ในแบบที่ภาษาโปรแกรมดั้งเดิมนั้นต้องใช้ความพยายามมาก
  • การดีบักและแก้ไขโค้ดนั้นยุ่งยากและซับซ้อน
  • ไม่เห็นความจำเป็นในการฝังโค้ดลงในพรอมต์เลย

ตอนนี้มีคนพูดว่า นั่นก็เพราะคุณระดับการเขียนโปรแกรมต่ำไป…
อืม ใช่ ฉันมีความสามารถในการเขียนโค้ดธรรมดาจริง ๆ
แต่เดี๋ยวก่อน ถ้า AI ต้องการความสามารถการเขียนโปรแกรมสูงขนาดนี้ มันยังจะเรียกว่า AIGC ได้หรือไม่?

อีกตัวอย่างการใช้ตัวแปรที่ง่ายมาดูกัน ว่าจริง ๆ แล้วมันไม่รู้ว่าเป็นภาษาอะไร

1.2 การฝังโค้ดที่เป็นอุปมาเกิดขึ้นในสถานการณ์ใด

พรอมต์และผลลัพธ์

1
"ตามความสนใจของฉัน {interests}, งบประมาณ {budget}, ระยะเวลาการเดินทาง {travel_duration}, และจำนวนผู้เดินทาง {number_of_companions}, ช่วยวางแผนการเดินทางให้ฉันหน่อย" "ความสนใจรวมถึงแต่ไม่จำกัดเพียง {list_of_interests}。" "งบประมาณอยู่ในช่วง {budget_range}。" "ระยะเวลาในการเดินทาง {length_of_trip} วัน。" "ฉันจะเดินทางกับ {number_of_people} คน อายุและความสนใจของพวกเขาคือ {ages_and_interests}。" "กรุณาให้ข้อเสนอแนะที่ละเอียดเกี่ยวกับกำหนดการประจำวันของเรา รวมถึงคำแนะนำด้านอาหาร {meal_preferences} และที่พัก {accommodation_preferences}。" 

ฝังตัวแปรและเทมเพลต

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

สถานการณ์ 1: แผนอาหารสุขภาพที่ครบถ้วน

พรอมต์เริ่มต้น:

1
2
3
4
5
"ฉันมี {dietary_restrictions} ต้องการวางแผนอาหารประเภท {meal_type} สำหรับ {number_of_days} วันถัดไป"
"ข้อจำกัดในอาหารของฉันรวมถึง {specific_restrictions}。"
"ต้องมี {meals_per_day} มื้อในแต่ละวัน。"
"แต่ละมื้อแคลอรีไม่เกิน {calories_per_meal} คาร์บอน。"
"กรุณา提供รายการวัตถุดิบ {ingredients_list}、ขั้นตอนการทำอาหาร {cooking_steps} และเวลาทำอาหารที่คาดไว้ {cooking_time}。"

สถานการณ์ 2: การทดสอบผลิตภัณฑ์เทคโนโลยีเชิงลึก

พรอมต์เริ่มต้น:

1
2
3
4
5
6
"ฉันกำลังพิจารณาซื้อ {product_name} กรุณาให้ข้อมูลที่ละเอียดเกี่ยวกับฟังก์ชันที่ {detailed_features}、ความคิดเห็นจากผู้ใช้ {detailed_reviews}、การเปรียบเทียบราคา {price_comparison} และคำแนะนำการซื้อ {purchase_advice}。" 
"ชื่อสินค้าคือ {specific_product_name}。"
"ฟังก์ชันที่ต้องการทราบรวมถึง {list_of_features}。"
"กรุณาให้ความคิดเห็นจากผู้ใช้อย่างน้อยสามคน {user_reviews}。"
"เปรียบเทียบราคาสินค้านี้กับสินค้าประเภทเดียวกันในตลาด {comparison_with_other_products}。"
"ตามความต้องการของฉัน {my_requirements} สินค้านี้ควรได้รับการซื้อหรือไม่?"

สถานการณ์ 3: แผนทรัพยากรการเรียนรู้ที่มีรายละเอียด

พรอมต์เริ่มต้น:

1
2
3
4
5
"ฉันต้องการเรียนรู้ {subject} โปรดแนะนำแหล่งการเรียนรู้ที่เหมาะสมตามสไตล์การเรียนรู้ของฉัน {learning_style} และเวลาที่มี {available_time}。" 
"หัวข้อการเรียนรู้คือ {specific_subject}。"
"รูปแบบการเรียนรู้ที่ฉันชอบรวมถึง {preferred_learning_methods}。"
"ฉันสามารถลงทุน {hours_per_week} ชั่วโมงในการศึกษาในแต่ละสัปดาห์。"
"เมื่อพิจารณาจากเงื่อนไขเหล่านี้ แนะนำคอร์สเรียนออนไลน์ {online_courses}、หนังสือ {books}、วิดีโอสอน {video_tutorials} หรือแหล่งข้อมูลอื่น ๆ {other_resources}。"

สถานการณ์ 4: เส้นทางการเปลี่ยนอาชีพที่ละเอียด

พรอมต์เริ่มต้น:

1
2
3
4
5
6
"อาชีพปัจจุบันของฉันคือ {current_job} และฉันสนใจในอุตสาหกรรม {industry_interest}。" 
"ตำแหน่งของฉัน ณ ตอนนี้คือ {specific_current_job}。"
"อุตสาหกรรมที่ฉันสนใจคือ {specific_industry_interest}。"
"ต้องการทราบวิธีการเปลี่ยนจากอาชีพปัจจุบันไปยังอุตสาหกรรมที่สนใจ รวมถึงทักษะที่จำเป็น {necessary_skills}、ตำแหน่งที่มีแนวโน้ม {potential_positions} และเงินเดือนที่คาดหวัง {expected_salary}。"
"กรุณาให้ข้อมูลเกี่ยวกับภูมิหลังของอุตสาหกรรม {industry_background}、เส้นทางการพัฒนาอาชีพ {career_pathway} และความท้าทีที่อาจเป็นไปได้ {potential_challenges}。"
"ตามประสบการณ์การทำงานของฉัน {my_work_experience} และภูมิหลังการศึกษา {my_educational_background} กรุณาแนะนำหลักสูตรการศึกษาต่อหรือการรับรองที่สมควร {recommended_courses_or_certifications}。"

เรามาดูกันต่อ ว่าถ้ามีความสัมพันธ์เชิงหลักการง่าย ๆ จะมีลักษณะโดยประมาณเป็นอย่างไร

1.3 โค้ด/ภาษาธรรมชาติที่มีความสัมพันธ์เชิงหลักการง่าย

พรอมต์และผลลัพธ์

1
2
3
4
5
6
7
input: n
initialization: factorial = 1

for i from 1 to n do:
factorial = factorial * i

output: factorial

gpt阶乘

ดูเหมือนว่าจะแบบง่ายไปซักนิดเรามาเพิ่มความซับซ้อนอีกหน่อย?

1
2
3
4
5
6
7
8
9
10
11
12
13
input: sorted array A, value to find val
set low = 0, high = length(A) - 1

while low <= high do:
mid = (low + high) / 2
if A[mid] < val:
low = mid + 1
else if A[mid] > val:
high = mid - 1
else:
output: mid
exit
output: -1 // if not found

sorting algorithm

ฉันไม่ได้บอกมันว่าฉันต้องการหา 99 แต่มันกลับไปหามันเอง…

ตัวอย่างข้างต้นอาจมีความเป็นวิทยาศาสตร์สูง และไม่มีความเกี่ยวข้องกับชีวิตประจำวันมากนัก

นี่คือการดำเนินการของ ChatGPT 3.5 ยังไม่สามารถยืนยันได้ว่ามันได้คำนวณจริง ๆ หรือไม่ แต่อย่างไรก็ตามก็ไม่ได้ป้องกันเราในการสำรวจต่อไป เนื่องจากคนส่วนใหญ่ไม่จำเป็นต้องลึกซึ้งในเรื่องภาษาโปรแกรมที่ซับซ้อนและเปลี่ยนแปลงอยู่ตลอดเวลา เราจึงไม่จำเป็นต้องไปยุ่งเกี่ยวกับมัน ให้ความสำคัญกับประเด็นหลักคือ ภาษาและโค้ดข้างต้นนั้นดูเหมือนไม่เกี่ยวข้องกัน หากพรอมต์นั้นซับซ้อนขึ้นเมื่อเข้าสู่สภาพแวดล้อมการผลิต สถานการณ์อาจซับซ้อนขึ้นมาก:

  • ผลลัพธ์ไม่สามารถควบคุมได้
    • ในตัวอย่างข้างต้นมีปัญหาภาพหลอนแล้ว
  • กระบวนการไม่สามารถควบคุมได้
    • เปรียบเสมือน SQL การจัดเก็บข้อมูลที่มี 8000 บรรทัด
    • ทุกครั้งที่มีการอัปเกรดระบบ ไม่มีใครกล้าขยับหรือแตะ

ดูเหมือนว่าพรอมต์ที่ใหญ่ที่สุดยังต้องเพียงแค่เข้าไปที่ https://github.com/JushBJJ/Mr.-Ranedeer-AI-Tutor

2. การเขียนโปรแกรมภาษาธรรมชาติคืออะไร

หลังจากเกิดพรอมต์ขึ้นมา การโฆษณาของบริษัทโมเดลขนาดใหญ่เช่น OpenAI ทำให้สื่อต่าง ๆ พูดถึงกันอย่างมาก เส้นทางสื่อก็ปรากฏแนวทางใหม่!
พรอมต์ถูกเข้าใจผิดว่าเป็นภาษาโปรแกรมใหม่ ราวกับว่าหากทำความเข้าใจได้ก็จะสามารถสั่งการกำลังคนให้ทำทุกอย่างได้ง่าย ๆ มี AIGC หลายกลุ่มเพียงแค่สร้างสรรค์ผลงาน การวาดภาพ การเขียนบท การถ่ายทำภาพยนตร์ ทำได้ง่ายดาย! so easy!!
ข้อเดียวที่ต้องกังวลคือ:

  • ฉันยังไม่สามารถทำได้
  • แต่ฉันเชื่อว่ามันต้องง่าย
  • แต่ตอนนี้ฉันทำมันไม่ยังไม่เป็น

แล้วจริง ๆ แล้ว การเขียนโปรแกรมภาษาธรรมชาติคืออะไร ทำไมเจ้า Huang Renxun ถึงบอกว่าไม่ต้องเรียนการเขียนโปรแกรม?

ดังนั้นปัญหานั้นสามารถย้อนกลับไปได้ไกล ตั้งแต่อดีตกาล…

ฉันจะไม่ยืดเยื้อเรื่องนี้มากนัก พูดง่าย ๆ ว่าเราต้องการให้คอมพิวเตอร์ช่วยเราแก้ปัญหา แต่ต้องพบว่ามันยาก ดังนั้นนักวิทยาศาสตร์บางคนจึงเริ่มจากการคำนวณและค่อย ๆ สะสมวิธีการแก้ปัญหา

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

เมื่อเวลาผ่านไป นักคณิตศาสตร์เริ่มคิดปัญหาในมุมมองที่เป็นนามธรรมมากขึ้น จึงใช้เครื่องมือทางคณิตศาสตร์เพิ่มเติมซึ่งเป็นสิ่งที่การคำนวณด้วยมือเป็นไปไม่ได้ ดังนั้นจึงมีการประดิษฐ์คอมพิวเตอร์และภาษาการเขียนโปรแกรม เราทุกคนมักเรียนรู้ภาษาการเขียนโปรแกรมในระยะนี้ ต้องทำความเข้าใจประเภทข้อมูล การเข้าใจ if/else การเข้าใจ for loop ฯลฯ

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

ดังนั้นจึงมีคนตั้งคำถามว่า สามารถไม่ต้องเรียนรู้ภาษาการเขียนโปรแกรมได้ไหม ณ จุดนี้ ด้วยระดับความซับซ้อนของปัญหาที่เพิ่มขึ้น อาจจะยิ่งจำเป็นต้องใช้การเขียนโปรแกรม!! เช่นเดียวกับที่ฉันไม่สามารถใช้ PS ได้ และใช้เพียงแค่โปรแกรมวาดภาพพื้นฐานและเครื่องมือออนไลน์ง่าย ๆ แต่ถ้าฉันต้องจัดการกับภาพซับซ้อน สุดท้ายแล้วยังต้องเรียน PS! ปริศนาของปัญหานี้คือ เราจะประเมินผลลัพธ์เมื่อเราใช้การเขียนโปรแกรมภาษาธรรมชาติได้อย่างไร? เมื่อเราทำการเขียนโปรแกรมภาษาธรรมชาติแล้ว ฉันจะประเมินได้อย่างไรว่าโปรแกรมนั้นไม่พูดจาผิด ๆ?

เราทุกคนรู้ในทางปฏิบัติว่า โมเดลใหญ่จะยังคงเล่นเกมถ้อยคำในลักษณะคล้ายการต่อคำ เลขคณิตพื้นฐานจึงไม่ใช่สิ่งที่มันคำนวณออกมา แต่เป็นเพียงการที่มันเคยเห็นเนื้อหาการฝึกฝนมา แล้วมันก็ต่อยอดออกมา เพื่อแก้ไขปัญหานี้ OpenAI ได้เปิดตัวตัวอธิบายรหัสในปีที่แล้ว เพื่อมอบความหวังให้กับคนอย่างเรา ๆ ที่ไม่รู้เรื่องการเขียนโปรแกรมเลย

3. ตัวอธิบายรหัสสามารถทำอะไรได้บ้าง

โดยง่าย สามารถเข้าใจได้ว่า OpenAI ได้เพิ่มสภาพแวดล้อมการExecuting Python sandbox ที่สามารถดำเนินการตามบริบทและตั้งใจฟังก์ชันต่าง ๆ จากนั้นสรุปผลลัพธ์มาบอกพวกเรา

เราสามารถเห็นได้ว่า เพียงบอกคนให้ช่วยรักษาฟังก์ชัน จากนั้นก็ให้มันไปทำ โดยแท้จริงสิ่งที่ Python สามารถทำได้ ส่วนมากก็ทำได้เช่นกัน มาดูกันว่ามีสถานการณ์ใดบ้างที่น่าสนใจที่มุ่งหมายที่นำเสนอทางเลือกใหม่

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

บางครั้งการดูมันทำงานหลายรอบ แล้วในที่สุดมันล้มเหลว รู้สึกแปลก ๆ ช่วงหลังให้มันวิเคราะห์สรุปจาก ticktick มันล้มเหลวถึง 10 ครั้ง
การวิเคราะห์ล้มเหลว

สรุปคือ การใช้มันเพื่อการสำรวจนั้นเหมาะมาก

จะเปิดใช้งานได้อย่างไร? มีตัวเลือกใน GPTs ให้ทำการติ๊กถูก และ GPTs จะมีความสามารถนี้ ในการสนทนาของ GPT4 วิธีที่ฉันทำในขณะนี้คือบอกให้มันใช้ความสามารถของ Python หรือกล่าวถึงความสามารถในการ Execute Code แล้วพูดต่อเนื่องไป
แผนภูมิเอกซเรย์

แผนภูมิวงกลม

จากการตอบสนองข้างต้น เราสามารถมองเห็นกระบวนการนั้นง่ายจริง ๆ

3.1 การวิเคราะห์ข้อมูลและการแสดงภาพ

วิธีการนี้สามารถเริ่มต้นโดยไม่ต้องอธิบายข้อเรียกร้องของเรา โดยการส่งไฟล์ CSV หรือ Excel เพื่อให้มันวิเคราะห์โดยตรง มันสามารถหากราฟที่เหมาะสมในการแสดงผลแทนเราได้ หากไม่พอใจก็อธิบายเพิ่มเติมได้

ในยุคปัจจุบัน การวิเคราะห์ข้อมูลและการแสดงภาพเป็นเครื่องมือที่สำคัญสำหรับการเข้าถึงแนวโน้มและรูปแบบในข้อมูล ในการใช้ปลั๊กอินตัวอธิบายโค้ดของ ChatGPT มีการสนับสนุนสำหรับไลบรารีการวิเคราะห์ข้อมูลที่ทรงพลังเช่น pandas และ matplotlib ทำให้กระบวนการนี้ง่ายขึ้นมาก ผู้ใช้สามารถขอโดยใช้ภาษาธรรมชาติ นำทางเข้าไปว่าต้องการให้ ChatGPT ดำเนินการกับข้อมูลและสร้างกราฟ โดยทำให้การวิเคราะห์ข้อมูลเป็นเรื่องที่เข้าถึงได้ง่ายและเป็นมิตรกับผู้ใช้มากขึ้น

ตัวอย่างเช่น นักวิเคราะห์ตลาดอาจต้องการวิเคราะห์ข้อมูลการขายของผลิตภัณฑ์และแสดงการแสดงผลการขายในแต่ละภูมิภาค โดยการใช้ตัวอธิบายโค้ด ทำให้พวกเขาสามารถบอก ChatGPT ให้อ่านไฟล์ CSV ที่มีข้อมูลการขาย ใช้ pandas ในการคำนวณยอดขายรวมในแต่ละภูมิภาค และหลังจากนั้นใช้ matplotlib เพื่อสร้างกราฟแท่ง กระบวนการทั้งหมดนี้ไม่จำเป็นต้องเขียนโค้ดที่ซับซ้อน เพียงแต่บอกคำอธิบายองค์การที่เกี่ยวข้องกับการวิเคราะห์ข้อมูลได้อย่างตรงไปตรงมา

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

การวิเคราะห์ข้อมูลและการแสดงภาพ

สำหรับกราฟแล้ว การวิเคราะห์ใน Excel มีครบถ้วน และมีเครื่องมือเฉพาะมากมาย แต่สำหรับคนทั่วไป ChatGPT ยังมีคุณค่า คือ มุมมองการวิเคราะห์และการตีความที่อาจทำให้เราเกิดแรงบันดาลใจ เช่น

gdp analysis

มีปัญหาหนึ่งคือลักษณะแผนภูมิที่ใช้ภาษาจีนอาจไม่สามารถแสดงผลได้ ดังนั้นต้องอัปโหลดไฟล์ฟอนต์ไป มันยังไม่มีทางแก้ไขในขณะนี้

3.2 ความยืดหยุ่นในการแปลงไฟล์

ขณะนี้วิธีนี้อาจใช้ไม่ค่อยดีนัก แต่ก็สามารถทำเทสต์ได้ ตัวอย่างที่ผ่านมา คือ การแปลง mp4 เป็น mp3 จะบอกว่ามีความหมายมากขนาดไหน อาจจะก็แค่ถ้วยน้ำเท่านั้น ให้ใช้เวลาน้อยมาก มันก็เป็นที่เข้าใจได้ อุปกรณ์อันนี้มีหลักการคล้ายกับการลบพื้นหลังของภาพ

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

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

สำหรับการประมวลผลภาพ ตัวอธิบายรหัสสามารถใช้ไลบรารี Pillow (PIL) ของ Python ในการแปลงระหว่างรูปแบบต่าง ๆ ของภาพ เช่น จาก JPEG ไปยัง PNG สิ่งนี้สำคัญมากในด้านการแก้ไขภาพ การออกแบบเว็บ และอุตสาหกรรมการพิมพ์ นักออกแบบหรือช่างภาพสามารถใช้ตัวอธิบายรหัสในการปรับรูปแบบภาพอย่างรวดเร็วเพื่อให้ตรงตามข้อกำหนดการส่งออกที่แตกต่างกัน

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

3.3 การพัฒนาโค้ดและการออกแบบต้นแบบ

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

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

  1. โหลดเนื้อหาของเว็บไซต์: โดยใช้ไลบรารี requests เพื่อดึงข้อมูล HTML จากเว็บไซต์เป้าหมาย
  2. วิเคราะห์ HTML: โดยใช้ไลบรารี BeautifulSoup เพื่อวิเคราะห์และเข้าถึงข้อมูลที่ต้องการ
  3. การจัดการข้อมูล: ทำความสะอาดและจัดรูปแบบข้อมูลที่ดึงมาเพื่อนำไปวิเคราะห์หรือจัดเก็บต่อไป
  4. แสดงผลลัพธ์: พิมพ์หรือแสดงผลข้อมูล เพื่อยืนยันความถูกต้องของผลการเก็บข้อมูล
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import requests

def get_weather_info(location, date):
# ทำการเรียก API เพื่อรับข้อมูลสภาพอากาศ
response = requests.get(f"https://weather-api.com/data/{location}/{date}")

if response.status_code == 200:
# วิเคราะห์และส่งกลับข้อมูลสภาพอากาศ
weather_data = response.json()
return weather_data
else:
return None

# ใช้ตัวอธิบายรหัสในการทดสอบคำขอ API
location = "New York"
date = "2024-01-31"
weather_info = get_weather_info(location, date)
print("ข้อมูลสภาพอากาศในนิวยอร์กวันที่ 31 มกราคม 2024:", weather_info)

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

เรียกใช้ฟังก์ชันภายนอกและแสดงผล

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

3.4 การแก้ปัญหาทางคณิตศาสตร์ที่ซับซ้อน

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

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

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

กราฟแนวโน้ม

3D Surface Fractal
การแสดง 3D Surface Mandelbrot

สถานการณ์เหล่านี้ในความจริงมีทางออกที่มีคุณภาพมากแล้ว

4. การวิเคราะห์หลักการของตัวอธิบายรหัส

ฉันถาม

1
ให้ใช้ความสามารถของ Python บอกข้อมูลเวอร์ชันของ sandbox Linux และเวอร์ชัน Python โดยแสดงผลทั้งสองรายการ และเครียสอบอีก 2 คำสั่งเพื่อให้แสดงผลรายละเอียดที่มากขึ้น คำสั่งคือ uname -a และ lsb_release -a

มันตอบ

ในสภาพแวดล้อม sandbox ปัจจุบัน เราได้รับข้อมูลรายละเอียดเกี่ยวกับเวอร์ชันระบบและ Python ดังนี้:

  1. ข้อมูลเวอร์ชัน Linux:

    • Linux-4.4.0-x86_64-with-glibc2.36
  2. ข้อมูลเวอร์ชัน Python:

    • 3.11.8 (main, Mar 12 2024, 11:41:52) [GCC 12.2.0]
  3. ผลลัพธ์จากการใช้คำสั่ง uname -a:

    • Linux 3dfa9ec0-11da-496f-831c-878f4773c1c6 4.4.0 #1 SMP Sun Jan 10 15:06:54 PST 2016 x86_64 GNU/Linux
    • แสดงว่าสถานการณ์ทำงานอยู่บน Linux kernel version 4.4.0 และได้รับการสร้างขึ้นในปี 2016 โดยใช้สถาปัตยกรรม x86_64
  4. ผลลัพธ์จากการใช้คำสั่ง lsb_release -a:

    • Distributor ID: Debian
      Description: Debian GNU/Linux 12 (bookworm)
      Release: 12
      Codename: bookworm
      
    • หมายความว่าระบบปฏิบัติการปัจจุบันคือ Debian GNU/Linux เวอร์ชัน 12 ชื่อรหัสว่า bookworm

จากการตรวจสอบ เราพบว่าเป็น Sandbox ที่สามารถทำการ Running Python จริง ๆ แต่มีข้อจำกัดบางประการ:

  • ห้ามเข้าถึงอินเทอร์เน็ต
    • ทดสอบดูเหมือนว่า curl สามารถเข้าถึงได้
  • คำสั่งเวลาจำกัด 120 วินาที
    • ถ้านานเกินไปจะถูกตัดการเชื่อมต่อ
  • ห้ามเข้าใช้งาน root
    • เนื่องจากข้อจำกัดในนี้อาจส่งผลกระทบต่อการติดตั้งซอฟต์แวร์
  • มันสามารถรันไฟล์ที่อัปโหลด

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

5. อนาคตของตัวอธิบายรหัสที่เป็นไปได้

ตัวอธิบายรหัส คืออุปกรณ์เชิงนวัตกรรมที่แสดงให้เห็นถึงศักยภาพในการนำไปใช้ในหลายสาขา ตั้งแต่การวิเคราะห์ข้อมูลไปจนถึงการพัฒนาซอฟต์แวร์ การแก้ปัญหาทางคณิตศาสตร์ที่ซับซ้อน ไปจนถึงการออกแบบต้นแบบอย่างรวดเร็ว ตัวอธิบายรหัสไม่เพียงแต่ช่วยให้งานที่มีประสิทธิภาพสูงขึ้น แต่มันยังมอบความยืดหยุ่นและความเร็วในการวิจัยและพัฒนาในวิธีที่ไม่เคยมีมาก่อน ในอนาคต ด้วยการพัฒนาของเทคโนโลยี AI ที่ยังคงเจริญเติบโต คาดว่าตัวอธิบายรหัสจะรวมฟังก์ชันที่ล้ำสมัยมากขึ้น เช่น การรวมการเรียนรู้ของเครื่องเชิงลึก การสร้างการทดสอบอัตโนมัติ,以及云端协作等,这些都将进一步拓宽其应用范围,深化其科技影响力。

เอกสารอ้างอิง: