nokode: เซิร์ฟเวอร์ AI แบบไม่ต้องเขียนโค้ด มองไปสู่อนาคตที่ไร้ซึ่งการเขียนโปรแกรม

ทีมชุมชน BigGo
nokode: เซิร์ฟเวอร์ AI แบบไม่ต้องเขียนโค้ด มองไปสู่อนาคตที่ไร้ซึ่งการเขียนโปรแกรม

ในการทดลองที่ท้าทายรากฐานของการพัฒนาซอฟต์แวร์ นักพัฒนาได้สร้างเว็บเซิร์ฟเวอร์ขึ้นมาโดยไม่มีโค้ดแอปพลิเคชันเลยแม้แต่บรรทัดเดียว แทนที่จะใช้การเขียนโปรแกรมแบบดั้งเดิม ระบบนี้ใช้ large language model (LLM) ในการจัดการทุกรายการคำขอ HTTP ในเวลาจริง โดยสร้างทุกอย่างตั้งแต่คำสั่ง query ไปจนถึงอินเทอร์เฟซผู้ใช้แบบทันทีทันใด โครงการที่ชื่อว่า nokode นี้ แสดงให้เห็นทั้งศักยภาพอันน่าทึ่งและข้อจำกัดในปัจจุบันของการแทนที่โค้ดด้วยปัญญาประดิษฐ์

อินเทอร์เฟซผู้ใช้แบบ dynamic ที่สร้างโดย AI สำหรับแอปพลิเคชันจัดการรายชื่อผู้ติดต่อ
อินเทอร์เฟซผู้ใช้แบบ dynamic ที่สร้างโดย AI สำหรับแอปพลิเคชันจัดการรายชื่อผู้ติดต่อ

การทดลองที่ถอนรากถอนโคน

เซิร์ฟเวอร์ nokode เป็นตัวแทนของการเปลี่ยนแปลงพื้นฐานในวิธีที่เราคิดเกี่ยวกับการสร้างซอฟต์แวร์ แทนที่จะเขียน routes, controllers หรือ business logic นักพัฒนาได้สร้างระบบที่ LLM จะทำการประมวลผลคำขอขาเข้าแต่ละรายการโดยใช้เครื่องมือเพียงสามอย่างเท่านั้น: ฐานข้อมูลสำหรับการทำงานของ SQL, เครื่องมือสำหรับการตอบสนองทางเว็บเพื่อส่งคืน HTML หรือ JSON และฟังก์ชันอัปเดตความจำสำหรับการบันทึกข้อเสนอแนะจากผู้ใช้ เมื่อมีคนเข้าไปที่ URL เช่น /contacts AI จะตัดสินใจว่าจะทำอะไร—มันอาจจะสร้างหน้า HTML, สร้างการตอบสนอง API แบบ JSON หรือแม้แต่การออกแบบฟีเจอร์แอปพลิเคชันใหม่ทั้งหมดโดยอิงจาก path เพียงอย่างเดียว

สิ่งที่ทำให้แนวทางนี้น่าสนใจเป็นพิเศษคือวิธีการจัดการข้อเสนอแนะจากผู้ใช้ ผู้เยี่ยมชมสามารถพิมพ์คำขอเช่น make buttons bigger หรือ use dark theme และ AI จะนำการเปลี่ยนแปลงเหล่านี้ไปใช้ในการตอบสนองครั้งต่อๆ ไป สิ่งนี้สร้างแอปพลิเคชันที่มีชีวิตและวิวัฒนาการ ซึ่งปรับตัวตามความชอบของผู้ใช้โดยไม่มีการแทรกแซงการเขียนโปรแกรมจากมนุษย์

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

สถาปัตยกรรมทางเทคนิคของ nokode

  • แนวคิดหลัก: เว็บเซิร์ฟเวอร์ที่ไม่มีโค้ดแอปพลิเคชันเลย
  • โมเดล AI: Claude-3-Haiku-20240307 (การตั้งค่าเริ่มต้น)
  • เครื่องมือสามตัวที่มีให้:
    • ฐานข้อมูล: ประมวลผล SQL บน SQLite
    • การตอบกลับทางเว็บ: ส่งคืนการตอบสนอง HTTP (HTML/JSON)
    • อัปเดตหน่วยความจำ: บันทึกคำติชมของผู้ใช้ลงในไฟล์ markdown
  • คุณสมบัติสำคัญ: การปรับตัวแบบเรียลไทม์ตามคำติชมของผู้ใช้
  • สถานะปัจจุบัน: ใช้งานได้แต่ยังไม่เหมาะสมสำหรับการใช้งานจริง

ข้อเท็จจริงเกี่ยวกับประสิทธิภาพ

แม้แนวคิดนี้จะทำงานได้ดีอย่างน่าประหลาดสำหรับการดำเนินการ CRUD พื้นฐาน แต่ข้อจำกัดในทางปฏิบัติก็มีอยู่มาก แต่ละคำขอใช้เวลาประมวลผล 30-60 วินาที—ซึ่งช้ากว่าแอปพลิเคชันเว็บแบบดั้งเดิมถึง 300 ถึง 6,000 เท่า ค่าใช้จ่ายก็สูงลิ่วไม่แพ้กันที่ 0.01-0.05 ดอลลาร์สหรัฐ ต่อคำขอ ทำให้มีค่าใช้จ่ายสูงกว่าการคำนวณแบบดั้งเดิมถึง 100-1,000 เท่า AI ใช้เวลาส่วนใหญ่ไปกับการใช้เหตุผลมากกว่าการดำเนินการ และมันต้องทนทุกข์กับสิ่งที่ผู้แสดงความคิดเห็นคนหนึ่งเรียกว่าความจำที่สั้นเหมือนปลาทอง โดยลืมอินเทอร์เฟซผู้ใช้ที่มันเพิ่งสร้างไปเมื่อไม่กี่วินาทีก่อน

ธรรมชาติที่ไม่เป็นไปตามกำหนดการ (non-deterministic) ของ LLMs นำมาซึ่งความท้าทายเพิ่มเติม สีและเลย์เอาต์สามารถเปลี่ยนแปลงระหว่างคำขอ และอาการหลงผิด (hallucination) เป็นครั้งคราวนำไปสู่คำสั่ง SQL ที่ผิดพลาดซึ่งทำให้เกิดข้อผิดพลาดของเซิร์ฟเวอร์ในทันที ดังที่สมาชิกในชุมชนคนหนึ่งตั้งข้อสังเกต ใครล่ะที่อยากให้แอปพลิเคชันเว็บทำงานแตกต่างกันไปทุกครั้งที่คุณโต้ตอบกับมัน ความไม่สม่ำเสมอนี้แสดงถึงอุปสรรคพื้นฐานสำหรับการนำไปใช้ในทางปฏิบัติสำหรับแอปพลิเคชันส่วนใหญ่ซึ่งความน่าเชื่อถือและความสามารถในการคาดการณ์เป็นสิ่งจำเป็น

การเปรียบเทียบประสิทธิภาพ: เว็บเซิร์ฟเวอร์แบบดั้งเดิมกับแบบที่ขับเคลื่อนด้วย AI

ตัวชี้วัด เว็บแอปแบบดั้งเดิม nokode AI Server ความแตกต่าง
เวลาตอบสนอง 10-100 มิลลิวินาที 30-60 วินาที ช้ากว่า 300-6,000 เท่า
ต้นทุนต่อคำขอ ~$0.00005-0.0005 USD $0.01-0.05 USD แพงกว่า 100-1,000 เท่า
ความสม่ำเสมอ กำหนดได้แน่นอน ไม่แน่นอน เลย์เอาต์/สีอาจเปลี่ยนแปลง
หน่วยความจำ สถานะแอปพลิเคชันถาวร บริบทจำกัด หน่วยความจำ "เหมือนปลาทอง"
มุมมองรายละเอียดผู้ติดต่อที่แสดงการโต้ตอบของผู้ใช้ที่เป็นไปได้ในแอปพลิเคชันที่สร้างโดย AI
มุมมองรายละเอียดผู้ติดต่อที่แสดงการโต้ตอบของผู้ใช้ที่เป็นไปได้ในแอปพลิเคชันที่สร้างโดย AI

ปฏิกิริยาจากชุมชน และความเป็นไปได้ในอนาคต

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

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

ผลกระทบด้านความปลอดภัยก็ก่อให้เกิดการอภิปรายอย่างมีนัยสำคัญเช่นกัน โดยที่ไม่มีตรรกะแอปพลิเคชันที่แน่นอน ระบบจึงมีความเสี่ยงต่อการโจมตีแบบ prompt injection และพฤติกรรมที่คาดเดาไม่ได้ ดังที่ผู้แสดงความคิดเห็นที่กังวลคนหนึ่งระบุ เมื่อ god rectangle ล้มเหลว มันจะไม่มีใครบนโลกนี้สักคนที่สามารถวินิจฉัยปัญหาได้เลย ไม่ต้องพูดถึงการแก้ไขมัน สิ่งนี้เน้นย้ำถึงความท้าทายในการดำเนินงานของการปรับใช้ระบบดังกล่าวในสภาพแวดล้อมการผลิต

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

เส้นทางข้างหน้า

การทดลอง nokode เผยให้เห็นว่าความสามารถของ AI ในการจัดการตรรกะแอปพลิเคชันมีอยู่แล้ว—ปัญหาหลักๆ เป็นเรื่องของประสิทธิภาพมากกว่าความเป็นไปไม่ได้ในพื้นฐาน ด้วยความเร็วในการ inference ที่ดีขึ้นประมาณ 10 เท่าต่อปี ค่าใช้จ่ายที่ลดลงจนใกล้ศูนย์ และ context window ที่ใหญ่ขึ้น ข้อจำกัดหลายอย่างในวันนี้อาจจัดการได้ในอีกไม่กี่ปีข้างหน้า

สิ่งที่ทำให้การทดลองนี้น่าสนใจเป็นพิเศษคือวิธีที่มันปรับกรอบความเข้าใจของเราเกี่ยวกับการพัฒนาซอฟต์แวร์ใหม่ แทนที่จะถามว่า AI สามารถช่วยเราเขียนโค้ดที่ดีขึ้นได้อย่างไร มันกลับถามว่าเราต้องการโค้ดด้วยหรือไม่ เลเยอร์โครงสร้างพื้นฐาน—HTTP servers, การเชื่อมต่อฐานข้อมูล, นิยามเครื่องมือ—ยังคงจำเป็น แต่ตรรกะแอปพลิเคชันกลับเกิดขึ้นมา (emergent) แทนที่จะถูกโปรแกรมไว้อย่างชัดเจน

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

การเดินทางจากโค้ดที่กำหนดได้ (deterministic) ไปสู่การดำเนินการโดย AI แบบไหลลื่น (fluid) น่าจะค่อยเป็นค่อยไป โดยมีแนวทางแบบไฮบริดนำทาง แต่การทดลองเช่น nokode ทำหน้าที่เป็นเครื่องเตือนใจที่สำคัญว่าอุปกรณ์ที่เราเห็นว่าทำให้เกิดประโยชน์ในวันนี้อาจเป็นเพียงทางแก้ชั่วคราวบนเส้นทางสู่วิธีการโต้ตอบกับคอมพิวเตอร์ที่ธรรมชาติและใช้งานง่ายมากขึ้น

อ้างอิง: nokode