ซอร์สโค้ด GitHub Copilot Chat เผยระบบติดตามตำแหน่งเคอร์เซอร์และสถาปัตยกรรม System Prompt

ทีมชุมชน BigGo
ซอร์สโค้ด GitHub Copilot Chat เผยระบบติดตามตำแหน่งเคอร์เซอร์และสถาปัตยกรรม System Prompt

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

ส่วนขยาย GitHub Copilot ใน VS Code:

  • GitHub Copilot: ให้คำแนะนำการเขียนโค้ดแบบอินไลน์ขณะที่คุณพิมพ์
  • GitHub Copilot Chat: ส่วนขยายเสริมสำหรับความช่วยเหลือ AI แบบสนทนา
มุมมองของหน้าเว็บ repository ใน GitHub สำหรับโปรเจกต์ vscode-copilot-chat ที่แสดงซอร์สโค้ดที่เปิดเผยต่อสาธารณะใหม่โดย Microsoft
มุมมองของหน้าเว็บ repository ใน GitHub สำหรับโปรเจกต์ vscode-copilot-chat ที่แสดงซอร์สโค้ดที่เปิดเผยต่อสาธารณะใหม่โดย Microsoft

การค้นพบระบบติดตามตำแหน่งเคอร์เซอร์ทำให้นักพัฒนาประหลาดใจ

หนึ่งในการเปิดเผยที่น่าสนใจที่สุดจากซอร์สโค้ดคือวิธีที่ Copilot Chat ติดตามตำแหน่งเคอร์เซอร์เพื่อให้ความช่วยเหลือที่แม่นยำยิ่งขึ้น ระบบใช้ตัวบ่งชี้พิเศษที่เรียกว่า ${CURSOR_TAG} เพื่อระบุตำแหน่งที่แน่นอนของเคอร์เซอร์ของนักพัฒนาในโค้ด การค้นพบนี้ได้เปลี่ยนวิธีที่นักพัฒนาหลายคนวางแผนที่จะโต้ตอบกับเครื่องมือนี้

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

ฟีเจอร์แชทแบบบูรณาการใน Visual Studio Code ที่แสดงให้เห็นว่าผู้ใช้สามารถโต้ตอบกับ GitHub Copilot เพื่อขอความช่วยเหลือในการเขียนโค้ดได้อย่างไร
ฟีเจอร์แชทแบบบูรณาการใน Visual Studio Code ที่แสดงให้เห็นว่าผู้ใช้สามารถโต้ตอบกับ GitHub Copilot เพื่อขอความช่วยเหลือในการเขียนโค้ดได้อย่างไร

เผยสถาปัตยกรรมทางเทคนิคและการประมวลผล Prompt

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

ระบบประมวลผล prompt ใช้ไฟล์ TypeScript React (TSX) สำหรับการเรนเดอร์ prompt และการตอบสนองของเครื่องมือ ซึ่งแสดงถึงแนวทางที่น่าสนใจในการจัดการการโต้ตอบกับ AI ระบบยังรวมถึงการนับโทเค็นและตรรกะการตัดทอนการสนทนาเพื่อให้แน่ใจว่าคำขอจะอยู่ภายในข้อจำกัดของโมเดล

องค์ประกอบทางเทคนิคหลัก:

  • ${CURSOR_TAG}: เครื่องหมายพิเศษสำหรับติดตามตำแหน่งของเคอร์เซอร์
  • ไฟล์ TSX : ใช้สำหรับการแสดงผล prompts และการตอบสนองของเครื่องมือ
  • การนับและตัดแต่ง Token : ช่วยให้มั่นใจว่าการสนทนาจะอยู่ในขีดจำกัดของโมเดล
  • ตัวจัดการ intent หลายตัว: AskAgentIntent และ EditAgentIntent สำหรับโหมดการโต้ตอบที่แตกต่างกัน
ส่วนติดต่อผู้ใช้ของฟีเจอร์ "Ask Copilot" ใน Visual Studio Code ที่แสดงให้เห็นด้านการโต้ตอบของการประมวลผลพรอมต์ใน Copilot Chat
ส่วนติดต่อผู้ใช้ของฟีเจอร์ "Ask Copilot" ใน Visual Studio Code ที่แสดงให้เห็นด้านการโต้ตอบของการประมวลผลพรอมต์ใน Copilot Chat

การถกเถียงเรื่องโอเพนซอร์สและความสงสัยของชุมชน

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

Copilot Chat คืออะไรนอกจากส่วนหน้าของบริการ SaaS ของ Microsoft บางอย่าง? ไม่มีอะไรที่เป็น 'โอเพนซอร์ส' อย่างแท้จริงเกี่ยวกับเรื่องนั้น สิ่งสำคัญทั้งหมดถูกล็อกไว้เบื้องหลัง GitHub Copilot API

ผู้สนับสนุนโต้แย้งว่าโค้ดส่วนหน้าให้ข้อมูลเชิงลึกที่มีค่าเกี่ยวกับเทคนิค prompt engineering และการจัดการบริบทที่นักพัฒนาคนอื่นสามารถเรียนรู้และปรับใช้ได้ การเปิดเผยช่วยให้นักพัฒนาที่อยากรู้เข้าใจวิธีการประมวลผล prompt ของพวกเขาและข้อมูลอะไรที่ถูกส่งไปยังบริการ AI

ประวัติของ Microsoft ในการมีส่วนร่วมของชุมชน

การประกาศครั้งนี้ยังได้ดึงดูดความสนใจไปยังการจัดการของ Microsoft ต่อการมีส่วนร่วมของชุมชนในโปรเจกต์โอเพนซอร์สของพวกเขา นักพัฒนาบางคนชี้ไปที่ backlog ขนาดใหญ่ของ pull request ที่ยังไม่ได้ merge ใน VS Code เป็นหลักฐานว่าความพยายามโอเพนซอร์สของ Microsoft ให้ความสำคัญกับการพัฒนาภายในมากกว่าข้อมูลป้อนกลับจากชุมชน

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

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

อ้างอิง: GitHub Copilot - Your AI peer programmer