กำไร:
- ความสามารถในการคำนวณทางวิศวกรรม การจัดการหน่วย และการประมวลผลข้อมูลโดยอัตโนมัติด้วยโค้ด Python ที่ขับเคลื่อนด้วย AI
- ความสามารถในการตรวจสอบรหัส AI ด้วยการตรวจสอบหน่วย การทดสอบผลลัพธ์ที่ทราบ และกรณี Edge
- ความสามารถในการสร้างนิสัยในการผลิตเอกสารบัญชีที่ทำซ้ำ ติดตามได้ และควบคุมเวอร์ชัน
ในวิศวกรรมเครื่องกล มีการคำนวณแบบเดียวกันซ้ำแล้วซ้ำอีก: ความเค้นของกลุ่มชิ้นส่วน กำลังปั๊มสำหรับช่วงการทำงานต่างๆ ตารางคุณสมบัติที่อุณหภูมิต่างๆ การทำสิ่งเหล่านี้ด้วยตนเองนั้นทั้งช้าและเกิดข้อผิดพลาดได้ง่าย Python (ภาษาการเขียนโปรแกรมที่ง่ายต่อการเรียนรู้พร้อมไลบรารี่มากมายสำหรับวิศวกรรม) ทำการวนซ้ำเหล่านี้โดยอัตโนมัติ ทำให้บัญชีสามารถทำซ้ำ ตรวจสอบย้อนกลับได้ และควบคุมเวอร์ชันได้ Python ปัญญาประดิษฐ์ (AI) ทำงานได้อย่างรวดเร็วอย่างไม่น่าเชื่อในการสร้างโค้ด: การแปลงสูตรให้เป็นฟังก์ชัน เพิ่มการจัดการหน่วย การอ่านข้อมูล การพล็อตกราฟ แต่มีความเข้าใจผิดที่เป็นอันตราย: เพียงเพราะโค้ดทำงานโดยไม่มีข้อผิดพลาดไม่ได้หมายความว่าจะคำนวณได้อย่างถูกต้อง รหัส AI อาจส่งคืนผลลัพธ์ที่ไม่ถูกต้องอย่างเงียบๆ เนื่องจากการแปลงหน่วยไม่ถูกต้อง สูตรไม่ถูกต้อง หรือในกรณี Edge และโปรแกรมจะยังคงทำงานต่อไปโดยไม่มีข้อผิดพลาดใดๆ นั่นเป็นเหตุผลที่ทุกรหัสทางวิศวกรรมสร้างด้วย AI อินพุตการทดสอบที่ทราบผลลัพธ์จะไม่น่าเชื่อถือหากไม่มีการตรวจสอบโดยการตรวจสอบหน่วย (ขนาด) และการทดสอบ Edge Case ในหน่วยนี้ คุณจะได้เรียนรู้วิธีตั้งค่าบัญชี Python อัตโนมัติอย่างปลอดภัยด้วย AI
ทำไมต้องรหัสบัญชี? ความสามารถในการตรวจสอบย้อนกลับและการทำซ้ำ
การคำนวณด้วยตนเองเป็นแบบครั้งเดียว เมื่ออินพุตเปลี่ยนแปลง การดำเนินการตั้งแต่ต้นและขั้นตอนกลางจะหายไป การคำนวณที่ทำในโค้ดก็เหมือนกับเอกสาร: อินพุต สูตร และเอาต์พุตถูกเขียนไว้อย่างชัดเจน คุณเปลี่ยนอินพุตและรับผลลัพธ์ใหม่ภายในไม่กี่วินาที ด้วยการควบคุมเวอร์ชัน (เช่น git) คุณสามารถติดตาม "สิ่งที่ฉันคำนวณด้วยค่าใดในวันที่ใด" ได้ นี่เป็นสิ่งล้ำค่าในแง่ของการควบคุมและความรับผิดชอบ แต่พลังนี้ขึ้นอยู่กับความถูกต้องของรหัส รหัสที่ไม่ถูกต้องทำให้เกิดผลลัพธ์ที่ไม่ถูกต้อง สามารถทำซ้ำได้และรวดเร็ว
เคล็ดลับ: เขียนการทดสอบสำหรับแต่ละฟังก์ชันการคำนวณโดยให้ผลลัพธ์ที่แท้จริงอยู่ข้างๆ (ยืนยันใน Python) ตัวอย่างเช่น ฟังก์ชันความเครียดของคุณควรให้ 28.1 MPa ในตัวอย่างที่ทราบ การทดสอบนี้จะเตือนคุณทันทีหากคุณทำบางอย่างเสียหายเมื่อคุณเปลี่ยนโค้ดในอนาคต รหัสทางวิศวกรรมที่ไม่ได้ทดสอบถือเป็นบัญชีที่ไม่ได้รับการยืนยัน
การจัดการโวลุ่ม: แหล่งที่มาของข้อผิดพลาดที่พบบ่อยที่สุด
ในรหัสทางวิศวกรรม ข้อผิดพลาดส่วนใหญ่มาจากหน่วย: N กับ kN, m กับ mm, Pa กับ MPa ซึ่งอาจสับสนได้ด้วยปัจจัย 1,000 หรือ 1,000,000 มีสองการป้องกัน ประการแรกคือวินัย: การเลือกระบบหน่วยเดียวจากจุดเริ่มต้น (เช่น N, mm, MPa) และแปลงอินพุตทั้งหมดให้เป็นระบบและเพิ่มหน่วยให้กับชื่อตัวแปร (length_mm, force_N) อย่างที่สองคือเครื่องมือ: ไลบรารีเช่นไพนต์จะมีหน่วยต่างๆ อยู่ภายในโค้ดและตรวจจับการดำเนินการที่ไม่สอดคล้องกันว่าเป็นข้อผิดพลาด
แนวทาง
มันทำงานอย่างไร
ข้อได้เปรียบ
วินัยในการตั้งชื่อ
เช่น แรง_N, ความยาว_มม
เรียบง่าย ไม่มีการพึ่งพาอาศัยกัน
ระบบหน่วยเดียว
แปลงทั้งหมดเป็น N-mm-MPa
ความเรียบง่าย ความเร็ว
ห้องสมุดไพน์
ย้ายหน่วยตามตัวแปร
จับความไม่สอดคล้องกันโดยอัตโนมัติ
ผลการทดสอบที่ทราบ
อ้างอิงด้วยการยืนยัน
ตรวจจับข้อผิดพลาดของสูตร/หน่วย
ข้อควรระวัง: การแปลงหน่วยอาจหายไปหรือไม่ถูกต้องในโค้ดที่สร้างโดย AI และโค้ดจะยังคง "ใช้งานได้" ตัวอย่างเช่น หากเส้นผ่านศูนย์กลางเป็น มม. และพื้นที่คาดว่าจะเป็น ตร.ม. ผลลัพธ์จะเบี่ยงเบนไป 1,000,000 เท่า แต่โปรแกรมจะไม่แสดงข้อผิดพลาด ก่อนที่จะรันโค้ด ให้คอมเม้นต์หน่วยของอินพุตและเอาท์พุต จากนั้นให้ผลลัพธ์ด้วยตัวอย่างที่ทราบ
ทีละขั้นตอน: รหัสบัญชีที่ตรวจสอบได้ของ AI
- ชี้แจงปัญหาและระบบหน่วย อินพุต เอาต์พุต หน่วย
- สร้างฟังก์ชัน รับผิดชอบเดี่ยว ตีความ เอกภาพ
- เพิ่มการทดสอบผลลัพธ์ที่ทราบ ยืนยันด้วยตัวอย่างอ้างอิง
- ลองใช้เคสขอบ อินพุตเป็นศูนย์ ลบ ใหญ่/เล็กมาก
- ทำการตรวจเช็คหน่วย. หน่วยของเอาต์พุตตรงกับที่คาดไว้หรือไม่
- เอกสารและเวอร์ชัน สมมติฐาน แหล่งที่มา วันที่; การตรวจสอบย้อนกลับด้วย git
พรอมต์ที่สร้างฟังก์ชันและการทดสอบ
บทบาท: นักพัฒนา Python ที่มีประสบการณ์ในการเขียนการคำนวณทางวิศวกรรม ภารกิจ: เขียนฟังก์ชันที่คำนวณค่าความเค้นดัดงอสูงสุดในคานคานยื่นหน้าตัดสี่เหลี่ยม อินพุต: F (N), L (มม.), b (มม.), ชม. (มม.) เอาท์พุต: ซิกมา (MPa) หลักการ: ระบบยูนิต N-mm-MPa; แสดงความคิดเห็นหน่วยของแต่ละรายการ กฎ: ใช้ I = b*h^3/12 และ sigma = M*c/I; แสดงความคิดเห็นเกี่ยวกับขั้นตอนต่างๆ กฎ: เพิ่มการทดสอบด้วยผลลัพธ์ที่ทราบ: sigma ~28.1 MPa สำหรับ F=500,L=300,b=20,h=40; ตรวจสอบด้วยการยืนยัน (ค่าเผื่อเล็กน้อย)
พรอมต์สถานะขอบ
เพิ่มการตรวจสอบตัวพิมพ์ขอบให้กับฟังก์ชันด้านบน:- หาก b, h หรือ L เป็นศูนย์หรือเป็นลบ ให้แสดงข้อผิดพลาดที่สำคัญ (เพิ่ม ValueError)- แสดงความคิดเห็นหากมีปัญหาล้น/แม่นยำกับอินพุตขนาดใหญ่/เล็กมาก เพิ่มอินพุตการทดสอบที่แตกต่างกันอีก 3 รายการและเขียนผลลัพธ์ที่คาดหวัง อธิบายผลลัพธ์ในลักษณะที่ฉันสามารถตรวจสอบได้ด้วยตนเอง
พรอมต์การรักษาความปลอดภัยของหน่วย (ไพน์)
หน่วยปลอดภัยบัญชีเดียวกันกับห้องสมุด 'ไพน์' ให้อินพุตถูกกำหนดเป็นหน่วย (เช่น 500 * ureg.newton) แปลงเอาต์พุตเป็น MPa แล้วพิมพ์ เพิ่มตัวอย่างเล็ก ๆ ที่แสดงให้เห็นว่าไพน์ล้มเหลวเมื่อป้อนข้อมูลด้วยหน่วยที่ไม่ถูกต้อง
พร้อมท์การตรวจสอบรหัส
วิจารณ์โค้ดการคำนวณทางวิศวกรรมของฉันด้านล่างจากมุมมองการตรวจสอบโค้ด ไม่เห็นด้วยกับฉัน โดยเฉพาะอย่างยิ่ง: การแปลงหน่วยถูกต้อง สูตรถูกต้องหรือไม่ มีการพิจารณากรณีขอบ (ศูนย์ ลบ) การทดสอบยืนยันได้อย่างแท้จริงหรือไม่ สำหรับการค้นพบแต่ละครั้ง ให้เขียนวิธีการแก้ไข [รหัส]
พรอมต์ที่อ่อนแอ / พรอมต์ที่แข็งแกร่ง
พรอมต์ที่อ่อนแอ:
เขียนโค้ด Python เพื่อคำนวณความเครียด
ไม่มีตัวเลือกหน่วย สูตร คำจำกัดความอินพุต และการทดสอบ AI สร้างโค้ดที่ใช้งานได้แต่ยังไม่ได้รับการยืนยันและไม่ทราบหน่วยของใคร
พรอมต์อันทรงพลัง:
เขียนฟังก์ชันความเค้นดัดงอในคานคานยื่น อินพุต F(N), L(มม.), b(มม.),h(มม.); ซิกม่าเอาท์พุต (MPa) ระบบ N-mm-MPa ระบุแต่ละหน่วยใน comment เพิ่มการทดสอบด้วยผลลัพธ์ที่ทราบ (F=500, L=300, b=20, h=40 → ~28.1 MPa, ยืนยัน) ให้ข้อผิดพลาดกับอินพุตศูนย์/ลบ ตีความกรณีขอบ
พรอมต์ที่สองต้องใช้ระบบหน่วย สูตร อินพุต การทดสอบ และกรณีขอบ มันทำให้โค้ดสามารถตรวจสอบได้
มินิเคสสามอัน (ตามตัวเลข)
กรณีที่ 1 - ข้อผิดพลาดของระดับเสียงเงียบ การคำนวณพื้นที่ที่สร้างโดย AI จะใช้เส้นผ่านศูนย์กลางเป็น มม. และให้ mm² ด้วย pi*d**2/4 แต่บรรทัดถัดไปใส่ไว้ในสูตรที่คาดว่าจะเป็น m² รหัสทำงานโดยไม่มีข้อผิดพลาดและให้ความเครียดลดลง 1,000,000 เท่า เมื่อวิศวกรทำการทดสอบโดยทราบผลลัพธ์ (assert abs(sigma-28.1)<0.5) การทดสอบจะระเบิดและตรวจพบข้อผิดพลาด หากไม่มีการทดสอบ ผลลัพธ์ที่ไม่ถูกต้องก็จะเข้าสู่รายงานโดยไม่มีใครสังเกตเห็น บทเรียน: รหัสการทำงาน ≠ รหัสที่ถูกต้อง
กรณีที่ 2 - Edge state หยุดทำงาน ในโค้ดที่วนซ้ำสำหรับกลุ่มชิ้นส่วน ความหนา h=0 จะถูกป้อนในหนึ่งบรรทัด เมื่อฉัน = b*h**3/12 = 0, sigma = M*c/I ให้ข้อผิดพลาดในการหารเป็นศูนย์ ต้องขอบคุณ if h<=0: Raise ValueError control ที่เพิ่มโดย AI โค้ดจึงหยุดพร้อมข้อความที่มีความหมายและไม่สร้าง inf โดยไม่โต้ตอบ บทเรียน: จัดการกับ Edge Case ล่วงหน้า
กรณีที่ 3 - ความสามารถในการทำซ้ำได้ วิศวกรใช้เวลาครึ่งวันในการคำนวณกำลังของปั๊มด้วยตนเองสำหรับจุดปฏิบัติงานที่แตกต่างกัน 40 จุด สคริปต์ที่เขียนด้วย AI อ่าน CSV คำนวณกำลังสำหรับแต่ละบรรทัด และตรวจสอบจุดที่ทราบด้วยการยืนยัน ลดงานเหลือ ~2 นาที และเขียนผลลัพธ์ลงในไฟล์ที่ติดตามได้ เมื่อรายการเปลี่ยนแปลง ตารางทั้งหมดจะถูกอัพเดตทุกๆ วินาที บทเรียน: ระบบอัตโนมัติที่ได้รับการตรวจสอบแล้วมีทั้งความรวดเร็วและเชื่อถือได้
ข้อผิดพลาดทั่วไป
- การเข้าใจผิด "ได้ผล = ถูกต้อง": การคิดว่าโค้ดที่ทำงานโดยไม่มีข้อผิดพลาดนั้นถูกต้อง
- ไม่เขียนการทดสอบ: อาศัยโค้ดโดยไม่มีการทดสอบอ้างอิงและทราบผลลัพธ์
- ความคลุมเครือของหน่วย: การปล่อยให้หน่วยอินพุต/เอาท์พุตไม่ได้รับการตีความ ข้ามการแปลง
- การละเว้นกรณี Edge: ข้อผิดพลาดเงียบหรือข้อขัดข้องในอินพุตศูนย์/ลบ
- ไม่บันทึกแหล่งที่มา/ข้อสันนิษฐาน: ไม่จดแหล่งที่มาและข้อสันนิษฐานของสูตรที่ใช้
- ไม่ใช่การกำหนดเวอร์ชัน: ปล่อยให้บัญชีเป็นไฟล์ครั้งเดียวโดยไม่ทำให้ติดตามได้ (git)
โดยสรุป
- Python ทำให้การคำนวณทางวิศวกรรมสามารถทำซ้ำ ติดตามได้ และควบคุมเวอร์ชัน
- AI สร้างโค้ดได้เร็วมาก แต่ความจริงที่ว่าโค้ดทำงานโดยไม่มีข้อผิดพลาดไม่ได้หมายความว่าจะคำนวณได้อย่างถูกต้อง
- ทุกโค้ดควรได้รับการตรวจสอบผ่านการทดสอบผลลัพธ์ที่ทราบ การตรวจสอบหน่วย และกรณี Edge
- ข้อผิดพลาดของหน่วยเป็นสาเหตุของข้อผิดพลาดที่พบบ่อยที่สุดและร้ายกาจที่สุด ปกป้องด้วยระบบหน่วยเดียว ระบบการตั้งชื่อ หรือไพนต์
- ระบบอัตโนมัติที่ได้รับการตรวจสอบจะช่วยประหยัดเวลาและให้ความมั่นใจ รหัสที่ไม่ได้รับการยืนยันเป็นอันตราย
งานสมัคร
เลือกการคำนวณทางวิศวกรรมที่เกิดซ้ำ (เช่น ความเครียด กำลังของปั๊ม โหลดความร้อน) เขียนฟังก์ชัน Python ให้กับ AI ที่ทำการคำนวณนี้ แสดงความคิดเห็นหน่วยของแต่ละอินพุตและเอาต์พุต และเพิ่มการทดสอบการยืนยันด้วยผลลัพธ์ที่ทราบ รันการทดสอบและดูว่าจะผ่านหรือไม่ จากนั้นทำการตรวจสอบอีกสองครั้ง: ลองใช้ตัวพิมพ์ขอบ (อินพุตศูนย์หรือลบ) เพื่อตรวจสอบว่าโค้ดส่งกลับข้อผิดพลาดที่สำคัญ และระบุหน่วยของเอาต์พุตด้วยตนเองในตัวอย่าง หากเป็นไปได้ ให้ผลิตแบบยูนิตเซฟที่ผลิตออกมาเป็นไพนต์ด้วย สุดท้าย เพิ่มสมมติฐานในการคำนวณ แหล่งที่มาของสูตร และวันที่ลงในโค้ดเป็นชื่อย่อ และเขียนว่าเหตุใดโค้ดนี้จึงยังต้องได้รับอนุมัติจากวิศวกร
รายการตรวจสอบ
- [ ] หน่วยอินพุตและเอาต์พุตได้รับการบันทึกไว้อย่างชัดเจนในโค้ด เลือกระบบหน่วยเดียว
- [ ] มีการเพิ่มและผ่านการทดสอบ (ยืนยัน) ที่ทราบผลลัพธ์แล้ว
- [ ] พยายามอย่างน้อยหนึ่งกรณีขอบ (ศูนย์/ลบ) รหัสทำให้เกิดข้อผิดพลาดที่สำคัญ
- [ ] หน่วยของเอาต์พุตได้มาจากตัวอย่างแบบแมนนวล (ไม่ถือว่า "ทำงาน = ถูกต้อง")
- [ ] แหล่งที่มาของสูตร สมมติฐาน และวันที่ที่ระบุไว้ในโค้ด
- [ ] บัญชีสามารถติดตาม/ติดตามได้; การอนุมัติขั้นสุดท้ายตกเป็นหน้าที่ของวิศวกร