ในโลกของเครื่องมือสำหรับนักพัฒนาที่มีการเปลี่ยนแปลงอยู่เสมอ การจดจำไวยากรณ์ที่ถูกต้องสำหรับคำสั่งเทอร์มินัลยังคงเป็นความท้าทายที่ไม่จบสิ้น เข้ามาพบกับ Zev เครื่องมือใหม่ที่กำลังสร้างกระแสในหมู่นักพัฒนาด้วยความสามารถในการแปลงคำอธิบายภาษาธรรมชาติให้เป็นคำสั่งเทอร์มินัล
Zev ทำหน้าที่เป็นสะพานเชื่อมระหว่างสิ่งที่นักพัฒนาต้องการทำและไวยากรณ์คำสั่งเฉพาะที่จำเป็นต้องใช้เพื่อดำเนินการเหล่านั้น แทนที่จะต้องจดจำแฟล็กและพารามิเตอร์ต่างๆ ผู้ใช้สามารถอธิบายเป้าหมายของพวกเขาด้วยภาษาอังกฤษธรรมดา และ Zev จะนำเสนอตัวเลือกคำสั่งที่เหมาะสม
Zev ทำงานอย่างไร
Zev ทำงานในสองโหมดที่แตกต่างกัน: โหมดโต้ตอบและโหมดคำถามโดยตรง ในโหมดโต้ตอบ ผู้ใช้เพียงแค่พิมพ์ zev
แล้วอธิบายสิ่งที่ต้องการทำ สำหรับการทำงานที่รวดเร็วกว่า วิธีการสอบถามโดยตรงช่วยให้ผู้ใช้สามารถเพิ่มคำขอของพวกเขาโดยตรงไปยังคำสั่ง เช่น zev 'show disk usage for current directory'
จากนั้นเครื่องมือจะใช้ AI เพื่อสร้างตัวเลือกคำสั่งที่เกี่ยวข้อง
สิ่งที่ทำให้ Zev แตกต่างจากยูทิลิตี้ที่คล้ายกันคือการนำเสนอตัวเลือกคำสั่งหลายตัวแทนที่จะดำเนินการโดยอัตโนมัติด้วยตัวเลือกเดียว วิธีนี้ช่วยแก้ไขความกำกวมในคำขอภาษาธรรมชาติและเก็บรักษาคำสั่งในประวัติเชลล์สำหรับการอ้างอิงในอนาคต
ผมชอบมากที่มันให้ตัวเลือกหลายตัวให้เลือก
การติดตั้งและการใช้งาน Zev
การติดตั้ง:
pip install zev
ตัวเลือกการใช้งาน:
- โหมดโต้ตอบ:
zev
- คำสั่งโดยตรง:
zev '<สิ่งที่คุณต้องการทำ>'
ตัวอย่างคำสั่ง:
zev 'show all running python processes'
zev 'find all .py files modified in the last 24 hours'
zev 'show disk usage for current directory'
zev 'check if google.com is reachable'
zev 'show uncommitted changes in git'
ตัวเลือก AI Backend:
- OpenAI API (ค่าเริ่มต้น)
- Ollama (โมเดลแบบติดตั้งในเครื่อง)
การผสานกับ AI ทั้งแบบโลคอลและคลาวด์
ในขณะที่ Zev ใช้ OpenAI API เป็นค่าเริ่มต้น ซึ่งต้องให้ผู้ใช้ให้ API key ของตัวเองระหว่างการตั้งค่า มันยังรองรับการทำงานร่วมกับ Ollama สำหรับผู้ที่ต้องการให้ทุกอย่างทำงานในเครื่องท้องถิ่น ความยืดหยุ่นนี้ช่วยให้นักพัฒนาสามารถเลือกระหว่างบริการ AI บนคลาวด์หรือโมเดลในเครื่องอย่าง llama3.2 ซึ่งตอบสนองทั้งความสะดวกและความกังวลเรื่องความเป็นส่วนตัว
ขั้นตอนการตั้งค่านั้นไม่ซับซ้อน โดยผู้ใช้ต้องรัน zev --setup
และกำหนดค่า AI backend ที่ต้องการ อย่างไรก็ตาม ผู้ใช้บางรายรายงานว่าพบความท้าทายในการกำหนดค่าเมื่อใช้ Ollama ซึ่งบ่งชี้ว่าการผสานอาจยังต้องการการปรับปรุง
การตอบรับจากชุมชนและแนวทางอื่นๆ
ชุมชนนักพัฒนาได้ตอบสนองด้วยความสนใจต่อ Zev พร้อมทั้งแบ่งปันขั้นตอนการทำงานในการเรียกคืนคำสั่งที่มีอยู่แล้ว นักพัฒนาที่มีประสบการณ์หลายคนพึ่งพาประวัติเชลล์ที่ครอบคลุมร่วมกับเครื่องมือค้นหาแบบฟัซซี่อย่าง fzf ซึ่งช่วยให้พวกเขาสามารถค้นหาคำสั่งที่เคยใช้มาก่อนได้อย่างรวดเร็วโดยอาศัยความจำบางส่วน
แนวทางที่ได้รับความนิยมอย่างมากประกอบด้วย:
- การจัดเก็บประวัติเชลล์แบบขยาย (ผู้ใช้บางรายรายงานว่ามีประวัติมากกว่า 60,000 บรรทัด)
- การเพิ่มคำอธิบายให้กับคำสั่งโดยใช้คอมเมนต์ (# tags)
- การนำทางด้วยการค้นหาแบบฟัซซี่โดยใช้เครื่องมืออย่าง fzf
ขั้นตอนการทำงานที่มีอยู่แล้วนี้ทำหน้าที่เป็นสมองที่สองสำหรับนักพัฒนาหลายคน ซึ่งทำให้เกิดคำถามว่าเครื่องมือที่ใช้ AI ช่วยอย่าง Zev จะเข้าไปอยู่ในระบบเพิ่มประสิทธิภาพการทำงานที่มีอยู่แล้วได้อย่างไร
แผนการพัฒนา
ผู้สร้าง Zev ได้ยอมรับถึงข้อจำกัดบางประการในปัจจุบัน รวมถึงปัญหาการจัดการการพึ่งพาและความจำเป็นในการปรับปรุงวิธีที่เครื่องมือจัดการกับตัวแปรสภาพแวดล้อม สิ่งเหล่านี้ถูกกำหนดให้มีการปรับปรุงในรุ่นต่อๆ ไป
ในขณะที่เครื่องมือสำหรับนักพัฒนาที่ใช้ AI ช่วยยังคงพัฒนาต่อไป Zev ถือเป็นจุดเริ่มต้นที่น่าสนใจสำหรับนักพัฒนาที่ต้องการทำให้การโต้ตอบกับคอมมานด์ไลน์ง่ายขึ้นโดยไม่สูญเสียการควบคุมการทำงาน ไม่ว่ามันจะมาแทนที่ขั้นตอนการทำงานที่มีอยู่แล้วหรือเสริมการทำงานเหล่านั้น ยังคงต้องรอดูกันต่อไป แต่จุดเน้นของโปรเจกต์ในการนำเสนอตัวเลือกแทนการทำงานอัตโนมัติดูเหมือนจะสอดคล้องกับความชอบของชุมชนนักพัฒนาในการรักษาการควบคุมสภาพแวดล้อมเทอร์มินัลของพวกเขา
อ้างอิง: zev