- โปรเจกต์ที่มีเป้าหมายเพื่อยกระดับการพัฒนาซอฟต์แวร์โอเพนซอร์ส ด้วยการสร้างผู้ช่วยอัตโนมัติแบบ "เอเจนต์" สำหรับการดูแลรักษาโอเพนซอร์ส
- น่าจะช่วยลดปริมาณงานซ้ำ ๆ ที่เกี่ยวข้องกับการดูแลรักษาโอเพนซอร์สได้
- ความสามารถของโมเดลภาษาขนาดใหญ่ (LLM) ในการวิเคราะห์ความหมายของภาษาธรรมชาติ และการแปลงระหว่างคำสั่งภาษาธรรมชาติกับโค้ดโปรแกรม ได้สร้างโอกาสใหม่ให้อยู่ร่วมและโต้ตอบกับผู้คนได้ลื่นไหลยิ่งขึ้น
- LLM จะเป็นเพียงส่วนหนึ่งของเอเจนต์ และการทำงานส่วนใหญ่ของเอเจนต์จะเป็นการรันโค้ดมาตรฐานที่กำหนดผลลัพธ์ได้แน่นอน
- Oscar ไม่ได้พยายามเสริมหรือแทนที่กระบวนการเขียนโค้ด ต่างจากการใช้ LLM ที่มุ่งเน้นด้านการพัฒนา
- แต่แนวคิดคือโฟกัสกับส่วนที่น่าเบื่อ เช่น การจัดการ issue ที่เข้ามา และการจับคู่คำถามกับเอกสารที่มีอยู่แล้ว
เป้าหมายของโปรเจกต์
- ลดภาระการดูแลรักษาเพื่อแก้ไข issue [การแก้ไขไม่ได้หมายถึงการแก้โค้ดเสมอไป]
- ลดภาระการดูแลรักษาเพื่อจัดการ changelist (CL) หรือ pull request (PR) [การจัดการไม่ได้หมายถึงการส่งหรือ merge เสมอไป]
- ลดภาระการดูแลรักษาเพื่อแก้ไขคำถามในฟอรัม
- สนับสนุนให้ผู้คนจำนวนมากขึ้นสามารถเป็นผู้ดูแลรักษาที่ทำงานได้อย่างมีประสิทธิภาพ
แนวทาง
- งานซ้ำ ๆ ของการดูแลรักษาโอเพนซอร์สไม่ได้จำกัดอยู่แค่โปรเจกต์ Go ดังนั้นเป้าหมายคือสร้างสถาปัตยกรรมที่ทุกโปรเจกต์ซอฟต์แวร์สามารถนำกลับมาใช้ซ้ำและขยายต่อได้
- จนถึงตอนนี้ได้ระบุ 3 ความสามารถที่น่าจะเป็นส่วนสำคัญของ Oscar:
- ทำดัชนีและเปิดเผยบริบทของโปรเจกต์ที่เกี่ยวข้องระหว่างการโต้ตอบกับผู้มีส่วนร่วม
- ใช้ภาษาธรรมชาติเพื่อควบคุมเครื่องมือที่กำหนดผลลัพธ์ได้แน่นอน
- ปรับปรุงแบบเรียลไทม์ พร้อมติดป้ายกำกับและส่งต่ออย่างเหมาะสม ระหว่างหรือทันทีหลังการส่ง โดยอาศัยการวิเคราะห์ issue report และ CL/PR
การทำดัชนีและเปิดเผยบริบทของโปรเจกต์ที่เกี่ยวข้อง
- LLM สามารถวิเคราะห์เอกสารได้ด้วยการสร้าง embedding ซึ่งเป็นเวกเตอร์หน่วยจุดลอยตัวมิติสูงที่มีคุณสมบัติในการแมปเอกสารที่มีความหมายคล้ายกันไปยังเวกเตอร์ที่ชี้ไปในทิศทางคล้ายกัน
- เมื่อนำไปใช้ร่วมกับ vector database สำหรับค้นหาเวกเตอร์ที่คล้ายกับเวกเตอร์อินพุตแล้ว embedding ของ LLM ก็เป็นวิธีที่มีประสิทธิภาพมากในการทำดัชนีบริบททั้งหมดของโปรเจกต์โอเพนซอร์ส
- เอเจนต์ต้นแบบได้ทำความสามารถนี้แล้ว และตอบกลับ issue ใหม่ในรีโพซิทอรี Go ด้วยรายการลิงก์ที่เกี่ยวข้องมากที่สุดสูงสุด 10 รายการ
การใช้ภาษาธรรมชาติเพื่อควบคุมเครื่องมือแบบกำหนดผลลัพธ์ได้แน่นอน
- เมื่อโปรเจกต์โอเพนซอร์สเติบโตขึ้น จำนวนเครื่องมือที่มีประโยชน์ก็เพิ่มขึ้น และอาจยากที่จะติดตามเครื่องมือทั้งหมดและจำวิธีใช้ของแต่ละตัวได้
- LLM มีประสิทธิภาพมากในการแปลงระหว่างเจตนาที่เขียนด้วยภาษาธรรมชาติกับรูปแบบที่นำไปปฏิบัติได้ เช่น โค้ดโปรแกรมหรือการเรียกใช้เครื่องมือ
- มีการทดลองของ Gemini ในการเลือกและเรียกใช้เครื่องมือที่มีอยู่เพื่อให้ตรงกับคำขอภาษาธรรมชาติ แต่ตอนนี้ยังไม่มีสิ่งที่ใช้งานได้จริง
การวิเคราะห์ issue report และ CL/PR
- การโพสต์ไปยัง issue ที่เกี่ยวข้องเป็นรูปแบบหนึ่งของการวิเคราะห์แบบจำกัด แต่มีแผนจะเพิ่มการวิเคราะห์เชิงความหมายประเภทอื่น ๆ เช่น การระบุ issue ที่เกี่ยวกับประสิทธิภาพและเพิ่มป้ายกำกับ "performance"
- มีแผนจะสำรวจว่าสามารถวิเคราะห์รายงานได้ดีพอที่จะระบุได้หรือไม่ว่า ต้องการข้อมูลเพิ่มเติมเพื่อทำให้รายงานนั้นมีประโยชน์หรือไม่
- การวิเคราะห์ทั้งหมดเหล่านี้และปฏิสัมพันธ์ที่เกิดขึ้นตามมาจะทำงานได้ดีกว่ามากเมื่อเกิดขึ้นทันทีหลังจากส่งรายงาน โดยที่ผู้รายงานยังพร้อมใช้งานและยังมีส่วนร่วมอยู่
ต้นแบบ
- ต้นแบบแรกสำหรับการสำรวจ Oscar มีชื่อว่า Gaby (Go AI bot) โดยทำงานบน Go issue tracker และโพสต์ด้วย @gabyhelp
- จนถึงตอนนี้ Gaby ทำดัชนีเนื้อหา issue ของ Go บน GitHub ทำดัชนีเอกสาร Go บน go.dev และตอบกลับ issue ใหม่ด้วยลิงก์ที่เกี่ยวข้อง
- โครงสร้างของ Gaby ทำให้สามารถรันได้ง่ายโดยใช้ LLM, storage layer และ vector database ใดก็ได้ บนบริการโฮสต์ทุกรูปแบบ
ยังไม่มีความคิดเห็น