GitHub Issue Triage ની જવાબદારી AI ને સોંપવી

GitHub repo મેનેજ કરવું મુશ્કેલ છે. નવા ઇશ્યુઝ ઘણીવાર અસ્પષ્ટ શીર્ષકો અથવા તેને ફરીથી બનાવવાની (reproduce) કોઈ સ્ટેપ્સ વગર આવે છે. તમે તમારો આખો દિવસ લેબલિંગ કરવામાં, ડુપ્લીકેટ તપાસવામાં અને વધુ વિગતો માંગવામાં વિતાવો છો. આ કામ એ સમય ખાઈ જાય છે જે તમે કોડિંગ કરવા માટે વાપરવા માંગતા હોવ.

2024 ના એક સર્વેક્ષણ મુજબ, 60% ઓપન-સોર્સ મેન્ટેનર્સ (maintainers) એ કામ છોડી દેવા વિશે વિચાર્યું છે. ઇશ્યુઝ મેનેજ કરવા એ એક મોટો બોજ છે.

મેં પ્રથમ તબક્કાના કામ માટે એક બોટ બનાવ્યો છે. તે GitHub Actions માં ચાલે છે અને લેંગ્વેજ મોડલનો ઉપયોગ કરે છે. તે આ કાર્યો કરે છે:

  • તમારા નિયમોના આધારે લેબલ્સ લગાવે છે.
  • સંભવિત ડુપ્લીકેટ ઇશ્યુઝને ફ્લેગ કરે છે.
  • અધૂરી વિગતો ધરાવતા વર્ણનોમાં ખૂટતી વિગતો માંગે છે.

બોટ એક એજન્ટ છે, કોઈ કડક સ્ક્રિપ્ટ નથી. હું મોડલને સાધનોનો (tools) એક સેટ આપું છું. તે નક્કી કરે છે કે કયા સાધનોનો ઉપયોગ કયા ક્રમમાં કરવો. એક સ્પષ્ટ ઇશ્યુ માટે એક સાધન પૂરતું હોઈ શકે છે, જ્યારે અસ્પષ્ટ ઇશ્યુ માટે ત્રણ સાધનોની જરૂર પડી શકે છે.

તેનું પહેલું વર્ઝન ખૂબ જ વધુ પડતું બોલતું (chatty) હતું. તે દરેક ઇશ્યુ પર કોમેન્ટ્સ પોસ્ટ કરતું હતું. આના કારણે બિનજરૂરી ઘોંઘાટ (noise) પેદા થયો. ઘોંઘાટને કારણે લોકો બોટ્સને અવગણવા લાગે છે.

મેં સિસ્ટમ પ્રોમ્પ્ટમાં એક વાક્ય ઉમેરીને આ સમસ્યા સુધારી દીધી. મેં મોડલને કંઈ ન કરવાની પરવાનગી આપી. મેં તેને કહ્યું કે ઘણીવાર મૌન એ જ શ્રેષ્ઠ જવાબ હોય છે. આનાથી કોઈપણ કોડ ફેરફાર કરતા તેના વર્તનમાં વધુ મોટો ફેરફાર આવ્યો.

મેં LiteLLM નો ઉપયોગ કર્યો જેથી બોટ Claude, GPT, અથવા Gemini સાથે કામ કરી શકે. બોટ ઇશ્યુઝ પર કામ કરવા માટે function calling પર આધાર રાખે છે.

વાસ્તવિક દુનિયાના પરીક્ષણથી ત્રણ મુખ્ય પડકારો સામે આવ્યા:

  • GitHub સિક્યુરિટી બોટ્સને pull requests માં રહેલા સિક્રેટ્સ (secrets) જોતા અટકાવે છે.
  • જ્યારે તમે મોડલમાં અવિશ્વસનીય ટેક્સ્ટ નાખો છો, ત્યારે prompt injection નું જોખમ રહેલું છે.
  • પરમિશન અને API એરર્સને ડિબગ (debug) કરવા મૂંઝવણભર્યા હોઈ શકે છે.

મેં બોટ માટે એક નિયમ પણ બનાવ્યો છે: તે ફક્ત સિક્યુરિટી રિસ્ક તપાસે છે. તે કોડની ગુણવત્તાનું મૂલ્યાંકન કરતું નથી. ડિઝાઇનનો નિર્ણય લેતો બોટ કન્ટ્રીબ્યુટર્સને દૂર કરી દે છે. આવા નિર્ણયો માણસો પર છોડી દો.

જો ઇશ્યુના કાગળિયાં (paperwork) તમને થકવી દેતા હોય, તો આ સેટઅપ મદદ કરી શકે છે. તે પુનરાવર્તિત કામ દૂર કરે છે અને વાસ્તવિક નિર્ણયો તમારા માટે છોડી દે છે.

Source: https://dev.to/jescalada/putting-an-ai-agent-in-charge-of-github-issue-triage-3085

Optional learning community: https://t.me/GyaanSetuAi