Hazel สภาพแวดล้อมการเขียนโปรแกรมเชิงฟังก์ชันแบบทดลองที่สร้างขึ้นรอบ typed holes ได้เปิดตัวความสามารถในการสร้างโค้ดด้วยพลัง AI อย่างเงียบๆ ที่ทำงานได้โดยตรงภายในอินเทอร์เฟซการเขียนโปรแกรมแบบสด ฟีเจอร์นี้แสดงให้เห็นแนวทางใหม่ในการรวม large language models เข้ากับสภาพแวดล้อมการเขียนโปรแกรมที่มีโครงสร้าง
URLs ที่มีให้บริการ
- Live demo: https://hazel.org/build/dev/
- Branch builds: https://hazel.org/build/[branch-name]
- Pre-July 2024 archive: https://hazel.org/build-pre-july2024/[branch-name]
การรวม AI แบบสดเกินกว่าการเติมข้อความอัตโนมัติแบบเดิม
แตกต่างจากเครื่องมือเติมโค้ดแบบเดิม การรวม AI ของ Hazel ทำงานผ่านระบบ typed hole ที่เป็นเอกลักษณ์ นักพัฒนาสามารถสร้างช่องว่างในโค้ดของตนที่ยังคงความปลอดภัยของประเภทข้อมูล และ AI จะพยายามเติมช่องว่างเหล่านี้ด้วยโค้ดที่เหมาะสมตามบริบท ระบบใช้ API ของ OpenRouter เพื่อเชื่อมต่อกับ language models ต่างๆ ทำให้นักพัฒนาสามารถทดลองกับ AI backends ที่แตกต่างกัน
การใช้งานนี้ปัจจุบันมีให้ใช้ใน development branch ของ Hazel แต่มาพร้อมกับข้อจำกัด ผู้ใช้ในช่วงแรกรายงานว่าฟีเจอร์นี้ช้าและมีข้อบกพร่อง และเพิ่งเริ่มทำงานได้เพียงไม่กี่วัน แม้จะมีข้อจำกัดเหล่านี้ การรวมกันนี้แสดงให้เห็นว่าการช่วยเหลือจาก AI อาจทำงานในสภาพแวดล้อมที่ออกแบบมารอบโครงสร้างโค้ดที่ไม่สมบูรณ์ได้อย่างไร
Typed holes: โครงสร้างการเขียนโปรแกรมที่แสดงถึงโค้ดที่ขาดหายไปในขณะที่ยังคงข้อมูลประเภทไว้ ทำให้ส่วนที่เหลือของโปรแกรมยังคงถูกต้องระหว่างการพัฒนา
ชุมชนเน้นย้ำเอกสารที่ขาดหายไป
โครงการ Hazel เผชิญกับความท้าทายที่พบได้ทั่วไปสำหรับเครื่องมือวิจัยทางวิชาการ: การแปลฟังก์ชันที่ซับซ้อนให้เป็นตัวอย่างที่เข้าถึงได้ สมาชิกชุมชนได้สังเกตเห็นการขาดหายไปของภาพหน้าจอและตัวอย่างบนเว็บไซต์หลักและเอกสารของโครงการ
ฉันชอบมาก อย่างไรก็ตาม กรุณาแสดงตัวอย่างและภาพหน้าจอบนหน้าแรกและ Readme ของ github
ผู้มีส่วนร่วมในโครงการยอมรับช่องว่างนี้ โดยชี้ให้ผู้ที่สนใจไปดูโพสต์บนโซเชียลมีเดียสำหรับตัวอย่างที่ดีที่สุดของ Hazel ในการทำงานปัจจุบัน การขาดการเชื่อมต่อระหว่างความสามารถของเครื่องมือและการนำเสนอต่อสาธารณะเน้นย้ำว่าโครงการวิจัยมักจะประสบปัญหากับเอกสารที่หันหน้าไปหาผู้ใช้
รากฐานทางเทคนิครองรับฟีเจอร์ทดลอง
Hazel ทำงานทั้งหมดในเว็บเบราว์เซอร์ผ่านการคอมไพล์ JavaScript ทำให้สามารถเข้าถึงได้โดยไม่ต้องติดตั้งในเครื่อง ระบบคอมไพล์โค้ด ReasonML เป็น OCaml bytecode จากนั้นแปลงเป็น JavaScript โดยใช้คอมไพเลอร์ js_of_ocaml สถาปัตยกรรมนี้เปิดใช้งานฟีเจอร์เช่นการแก้ไขแบบสดและการตรวจสอบประเภทแบบเรียลไทม์ที่รองรับการรวม AI
โครงการรักษา continuous integration ที่ปรับใช้ branches ที่ทำงานได้โดยอัตโนมัติไปยัง URLs สาธารณะ ทำให้นักพัฒนาสามารถทดสอบเวอร์ชันต่างๆ ได้อย่างง่ายดาย โครงสร้างพื้นฐานนี้พิสูจน์ให้เห็นคุณค่าสำหรับฟีเจอร์ทดลองเช่นการรวม AI ที่การทำซ้ำอย่างรวดเร็วและการทดสอบเป็นสิ่งสำคัญ
การรวมกันของแนวทางที่มีโครงสร้างของ Hazel ต่อโค้ดที่ไม่สมบูรณ์และการช่วยเหลือจาก AI ชี้ให้เห็นความเป็นไปได้ใหม่สำหรับเครื่องมือการเขียนโปรแกรม แม้ว่าการใช้งานปัจจุบันจะยังคงเป็นการทดลอง แต่มันให้ภาพรวมของวิธีที่ AI อาจรวมเข้ากับสภาพแวดล้อมการเขียนโปรแกรมที่ออกแบบรอบ formal methods และ type theory
อ้างอิง: Hazel