• โปรเจกต์ที่มีเป้าหมายเพื่อยกระดับการพัฒนาซอฟต์แวร์โอเพนซอร์ส ด้วยการสร้างผู้ช่วยอัตโนมัติแบบ "เอเจนต์" สำหรับการดูแลรักษาโอเพนซอร์ส
    • น่าจะช่วยลดปริมาณงานซ้ำ ๆ ที่เกี่ยวข้องกับการดูแลรักษาโอเพนซอร์สได้
  • ความสามารถของโมเดลภาษาขนาดใหญ่ (LLM) ในการวิเคราะห์ความหมายของภาษาธรรมชาติ และการแปลงระหว่างคำสั่งภาษาธรรมชาติกับโค้ดโปรแกรม ได้สร้างโอกาสใหม่ให้อยู่ร่วมและโต้ตอบกับผู้คนได้ลื่นไหลยิ่งขึ้น
  • LLM จะเป็นเพียงส่วนหนึ่งของเอเจนต์ และการทำงานส่วนใหญ่ของเอเจนต์จะเป็นการรันโค้ดมาตรฐานที่กำหนดผลลัพธ์ได้แน่นอน
  • Oscar ไม่ได้พยายามเสริมหรือแทนที่กระบวนการเขียนโค้ด ต่างจากการใช้ LLM ที่มุ่งเน้นด้านการพัฒนา
  • แต่แนวคิดคือโฟกัสกับส่วนที่น่าเบื่อ เช่น การจัดการ issue ที่เข้ามา และการจับคู่คำถามกับเอกสารที่มีอยู่แล้ว

เป้าหมายของโปรเจกต์

  • ลดภาระการดูแลรักษาเพื่อแก้ไข issue [การแก้ไขไม่ได้หมายถึงการแก้โค้ดเสมอไป]
  • ลดภาระการดูแลรักษาเพื่อจัดการ changelist (CL) หรือ pull request (PR) [การจัดการไม่ได้หมายถึงการส่งหรือ merge เสมอไป]
  • ลดภาระการดูแลรักษาเพื่อแก้ไขคำถามในฟอรัม
  • สนับสนุนให้ผู้คนจำนวนมากขึ้นสามารถเป็นผู้ดูแลรักษาที่ทำงานได้อย่างมีประสิทธิภาพ

แนวทาง

  • งานซ้ำ ๆ ของการดูแลรักษาโอเพนซอร์สไม่ได้จำกัดอยู่แค่โปรเจกต์ Go ดังนั้นเป้าหมายคือสร้างสถาปัตยกรรมที่ทุกโปรเจกต์ซอฟต์แวร์สามารถนำกลับมาใช้ซ้ำและขยายต่อได้
  • จนถึงตอนนี้ได้ระบุ 3 ความสามารถที่น่าจะเป็นส่วนสำคัญของ Oscar:
    1. ทำดัชนีและเปิดเผยบริบทของโปรเจกต์ที่เกี่ยวข้องระหว่างการโต้ตอบกับผู้มีส่วนร่วม
    2. ใช้ภาษาธรรมชาติเพื่อควบคุมเครื่องมือที่กำหนดผลลัพธ์ได้แน่นอน
    3. ปรับปรุงแบบเรียลไทม์ พร้อมติดป้ายกำกับและส่งต่ออย่างเหมาะสม ระหว่างหรือทันทีหลังการส่ง โดยอาศัยการวิเคราะห์ 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 ใดก็ได้ บนบริการโฮสต์ทุกรูปแบบ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น