AI OpenHands എങ്ങനെ ഉപയോഗിക്കാം: സജ്ജീകരണം, പ്രോംപ്റ്റുകൾ, റിയൽ-വേൾഡ് വർക്ക്ഫ്ലോകൾ എന്നിവയിലേക്കുള്ള ഒരു പ്രാക്ടിക്കൽ ഗൈഡ്
ഒരു കാര്യശേഷിയുള്ള ഡെവലപ്പർ 24/7 നിങ്ങളോടൊപ്പം ജോഡി-പ്രോഗ്രാം ചെയ്യാൻ ഉണ്ടായിരുന്നെങ്കിൽ എന്ന് നിങ്ങൾ എപ്പോഴെങ്കിലും ആഗ്രഹിച്ചിട്ടുണ്ടെങ്കിൽ, AI OpenHands അതിനോട് വളരെ അടുത്താണ്. നിങ്ങളുടെ റെപ്പോ വായിക്കാനും, കോഡ് എഴുതാനും, ടെർമിനലുകൾ പ്രവർത്തിപ്പിക്കാനും, ഡോക്യുമെൻ്റുകൾ ബ്രൗസ് ചെയ്യാനും, ആവർത്തിക്കാനും കഴിയുന്ന ഒരു ഓപ്പൺ സോഴ്സ് "AI എഞ്ചിനീയർ" ആണിത് - വേഗത്തിൽ പഠിക്കുകയും अथ काम ചെയ്യുന്ന ഒരു ജൂനിയർ ഡെവിനെപ്പോലെ. എന്നാൽ ഇത് ശരിയായി സജ്ജീകരിക്കുകയും എങ്ങനെ നയിക്കാമെന്ന് പഠിക്കുകയും ചെയ്താൽ മാത്രമേ ഇതിൻ്റെ ശക്തി മനസ്സിലാവുകയുള്ളൂ.
AI OpenHands എങ്ങനെ ഉപയോഗിക്കാമെന്ന് ഈ ഗൈഡ് ഘട്ടം ഘട്ടമായി വിശദീകരിക്കുന്നു - ഇൻസ്റ്റാൾ ചെയ്യുന്നത് മുതൽ അഡ്വാൻസ്ഡ് വർക്ക്ഫ്ലോകൾ വരെ - അതിനാൽ നിങ്ങൾക്ക് ആത്മവിശ്വാസത്തോടെ വേഗത്തിൽ കാര്യങ്ങൾ പൂർത്തിയാക്കാൻ കഴിയും.
- നമ്മൾ എന്തൊക്കെയാണ് ചർച്ച ചെയ്യാൻ പോകുന്നത്:
- ഇൻസ്റ്റലേഷൻ ഓപ്ഷനുകളും ക്വിക്ക് സ്റ്റാർട്ടും
- OpenHands ലോക്കൽ ആയോ ക്ലൗഡ് മോഡലുകൾ ഉപയോഗിച്ചോ പ്രവർത്തിപ്പിക്കുന്നത്
- പ്രോംപ്റ്റുകൾ, റെപ്പോകൾ, ടാസ്ക്കുകൾ എന്നിവയ്ക്കായുള്ള മികച്ച രീതികൾ
- ഫീച്ചർ വർക്ക്, ഡീബഗ്ഗിംഗ്, ടെസ്റ്റുകൾ, ഡോക്യുമെൻ്റുകൾ എന്നിവയ്ക്കായുള്ള തെളിയിക്കപ്പെട്ട വർക്ക്ഫ്ലോകൾ
- ഗാർഡ് റെയിലുകൾ, സ്വകാര്യത, സഹകരണം
ശ്രദ്ധിക്കുക: All Hands ടീമും കമ്മ്യൂണിറ്റിയും OpenHands സജീവമായി വികസിപ്പിക്കുന്നു. നിലവിലെ നിർദ്ദേശങ്ങൾക്കും ടിപ്പുകൾക്കുമായി ഔദ്യോഗിക ഡോക്യുമെൻ്റേഷൻ ഉപയോഗിക്കുക. ലോക്കൽ, VM സജ്ജീകരണങ്ങൾ രേഖപ്പെടുത്തിയിട്ടുള്ള വിദഗ്ദ്ധരുടെ ഹാൻഡ്-ഓൺ ഇൻസ്റ്റാൾ ഗൈഡുകളും നിങ്ങൾക്ക് പിന്തുടരാവുന്നതാണ്. ലോക്കൽ മോഡലുകൾ ഉപയോഗിച്ച് പ്രവർത്തിപ്പിക്കുന്നതിന്, ഡോക്യുമെൻ്റേഷനിൽ പ്രത്യേക മാർഗ്ഗനിർദ്ദേശങ്ങൾ ഉൾപ്പെടുന്നു.
എന്താണ് AI OpenHands - എന്തിനാണ് ഇത് ഉപയോഗിക്കുന്നത്?
AI OpenHands-നെ ഒരു കീബോർഡുള്ള AI ടീംമേറ്റായി കരുതുക. ചാറ്റ്-ഒൺലി അസിസ്റ്റൻ്റുകളിൽ നിന്ന് വ്യത്യസ്തമായി, OpenHands-ന്:
- പ്രോജക്റ്റ് ഫയലുകൾ തുറന്ന് വായിക്കാൻ കഴിയും
- കമാൻഡുകൾ, ടെസ്റ്റുകൾ, ലിൻ്ററുകൾ എന്നിവ പ്രവർത്തിപ്പിക്കാൻ ഒരു ടെർമിനൽ ഉപയോഗിക്കാൻ കഴിയും
- ഫയലുകളിലും ഡയറക്ടറികളിലുമുള്ള കോഡ് എഡിറ്റ് ചെയ്യാൻ കഴിയും
- വെബ് ബ്രൗസ് ചെയ്യാൻ കഴിയും (കോൺഫിഗറേഷൻ അനുസരിച്ച്)
- ഘട്ടം ഘട്ടമായുള്ള പ്ലാനുകൾ നിർദ്ദേശിക്കാനും നടപ്പിലാക്കാനും കഴിയും
ഫീച്ചറുകൾ നടപ്പിലാക്കുക, ബഗുകൾ പരിഹരിക്കുക, ടെസ്റ്റുകൾ എഴുതുക, ഡോക്യുമെൻ്റുകൾ നിർമ്മിക്കുക, കോഡ് ബേസുകൾ റീഫാക്ടർ ചെയ്യുക, മോഡേൺവൽക്കരിക്കുക തുടങ്ങിയ ടാസ്ക്കുകൾക്ക് ഇത് അനുയോജ്യമാക്കുന്നു. പ്രോംപ്റ്റുകൾ കൈകാര്യം ചെയ്യുന്നതിനും കോപ്പി/പേസ്റ്റ് ചെയ്യുന്നതിനും പകരം, നിങ്ങൾ OpenHands-ന് ഒരു ലക്ഷ്യം നൽകുകയും അതിനെ പ്രവർത്തിക്കാൻ അനുവദിക്കുകയും ചെയ്യുക, നിങ്ങൾ അതിൻ്റെ നീക്കങ്ങൾ നിരീക്ഷിക്കുക.
ക്വിക്ക് സ്റ്റാർട്ട്: OpenHands ഉപയോഗിക്കാനുള്ള ഏറ്റവും വേഗതയേറിയ മാർഗ്ഗം
ആരംഭിക്കാൻ നിരവധി വഴികളുണ്ട്. നിങ്ങൾ ഒരു ക്ലൗഡ് LLM ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നുണ്ടോ അതോ എല്ലാം പ്രാദേശികമായി പ്രവർത്തിപ്പിക്കാൻ ആഗ്രഹിക്കുന്നുണ്ടോ എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു നിങ്ങളുടെ ചോയ്സ്.
ഓപ്ഷൻ എ: ഒരു ക്ലൗഡ് LLM ഉപയോഗിക്കുക (ഏറ്റവും എളുപ്പം)
- ആപ്ലിക്കേഷൻ ഇൻസ്റ്റാൾ ചെയ്യാനും പ്രവർത്തിപ്പിക്കാനും ഔദ്യോഗിക "Start Building", "Getting Started" ഡോക്യുമെൻ്റുകൾ പിന്തുടരുക. നിങ്ങൾ സാധാരണയായി:
- മുൻകൂட்டியുള്ള ആവശ്യകതകൾ ഇൻസ്റ്റാൾ ചെയ്യുക (Docker, Node, Python, Git - പാതയെ ആശ്രയിച്ച്)
- പിന്തുണയ്ക്കുന്ന ഒരു ക്ലൗഡ് മോഡലിനായി ഒരു API കീ നൽകുക (ഉദാഹരണത്തിന്, OpenAI, Anthropic, അല്ലെങ്കിൽ പ്രോജക്റ്റ് ആ സമയം പിന്തുണയ്ക്കുന്ന മറ്റ് മോഡലുകൾ)
- OpenHands ഇൻ്റർഫേസ് സമാരംഭിക്കുകയും നിങ്ങളുടെ റിപ്പോസിറ്ററിയുമായി കണക്ട് ചെയ്യുകയും ചെയ്യുക
ഈ വഴി കുറഞ്ഞ കമ്പ്യൂട്ട് ഓവർഹെഡിൽ നിങ്ങളെ ഉടനടി ഉൽപ്പാദനക്ഷമമാക്കുന്നു.
ഓപ്ഷൻ ബി: ഒരു ലോക്കൽ LLM ഉപയോഗിച്ച് OpenHands പ്രവർത്തിപ്പിക്കുക
- നിങ്ങളുടെ കോഡും പ്രോംപ്റ്റുകളും ക്ലൗഡിൽ നിന്ന് മാറ്റിവെക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടെങ്കിൽ അല്ലെങ്കിൽ API ചെലവുകൾ ഒഴിവാക്കാൻ ആഗ്രഹിക്കുന്നുണ്ടെങ്കിൽ, ഔദ്യോഗിക ഡോക്യുമെൻ്റുകളിലെ ലോക്കൽ LLM-കളുടെ ഗൈഡ് ഉപയോഗിക്കുക.
- ഒരു അനുയോജ്യമായ ലോക്കൽ മോഡൽ സജ്ജീകരിക്കുക (Ollama വഴിയോ അല്ലെങ്കിൽ ആ സമയം പിന്തുണയ്ക്കുന്ന മറ്റ് ബാക്കെൻഡുകൾ വഴിയോ)
- മോഡൽ എൻഡ്പോയിന്റുകളും കോൺടെക്സ്റ്റ് ലിമിറ്റുകളും കോൺഫിഗർ ചെയ്യുക
- നിങ്ങളുടെ മെഷീനിൽ മതിയായ VRAM/CPU-ഉം ഡിസ്ക് സ്പേസും ഉണ്ടെന്ന് ഉറപ്പാക്കുക
ഓപ്ഷൻ സി: ഒരു VM-ൽ വിന്യസിക്കുക
- നിങ്ങൾക്ക് ഒരു ഡെഡിക്കേറ്റഡ് എൻവയൺമെൻ്റ് ആവശ്യമാണെങ്കിൽ, ഒരു VM-ൽ OpenHands എങ്ങനെ സ്പിൻ അപ്പ് ചെയ്യാമെന്നും മിനിറ്റുകൾക്കുള്ളിൽ ഒരു ആപ്പ് നിർമ്മിക്കാമെന്നും വിദഗ്ദ്ധർ രേഖപ്പെടുത്തിയിട്ടുണ്ട്. സ്ഥിരതയുള്ളതും പങ്കിട്ടതുമായ ഒരു AI എഞ്ചിനീയർ ഇൻസ്റ്റൻസ് ആവശ്യമുള്ള ടീമുകൾക്ക് ഇത് ഉപയോഗപ്രദമാണ്.
ആദ്യ റൺ: പ്രോജക്റ്റ് സജ്ജീകരണവും ടാസ്ക് ഫ്രെയിമിംഗും
OpenHands നിങ്ങളുടെ കോഡ് കാണുമ്പോൾ മികച്ച രീതിയിൽ പ്രവർത്തിക്കും. താഴെ പറയുന്നവയിൽ നിന്ന് ആരംഭിക്കുക:
- നിങ്ങൾ പ്രവർത്തിപ്പിക്കാൻ ആഗ്രഹിക്കുന്ന റിപ്പോസിറ്ററി തുറക്കുക.
- OpenHands-ന് ഘടന മാപ്പ് ചെയ്യാൻ കഴിയുന്ന തരത്തിൽ പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക അല്ലെങ്കിൽ ഇൻഡെക്സ് ചെയ്യുക.
- പരിമിതികളോടെ വ്യക്തമായ ഒരു ലക്ഷ്യം നൽകുക.
നല്ല ടാസ്ക് ഫ്രെയിമിംഗിനുള്ള ഉദാഹരണം:
- "{auth}" സർവീസിലേക്ക് ടോക്കൺ അടിസ്ഥാനമാക്കിയുള്ള ഇമെയിൽ ലിങ്കുകൾ ഉപയോഗിച്ച് യൂസർ പാസ്വേർഡ് റീസെറ്റ് ചേർക്കുക. നിലവിലുള്ള "{mailer}" മൊഡ്യൂൾ ഉപയോഗിക്കുക. ടോക്കൺ ജനറേഷനും എക്സ്പയറിയ്ക്കും യൂണിറ്റ് ടെസ്റ്റുകൾ ചേർക്കുക. യൂസർ ഡാറ്റ സ്കീമ മാറ്റരുത്.
ഇതെങ്ങനെ പ്രവർത്തിക്കുന്നു:
- ഇത് ഘടകം, വ്യാപ്തി, ഡിപൻഡൻസികൾ, അതിരുകൾ എന്നിവയുടെ പേര് നൽകുന്നു. നിങ്ങൾ എത്രത്തോളം വ്യക്തമായി പറയുന്നുവോ അത്രത്തോളം മികച്ച രീതിയിൽ OpenHands പ്ലാൻ ചെയ്യുകയും നടപ്പിലാക്കുകയും ചെയ്യും.
OpenHands-നായി ഫലപ്രദമായ പ്രോംപ്റ്റുകൾ എങ്ങനെ എഴുതാം
പ്രോംപ്റ്റുകളെ സംക്ഷിപ്ത ടിക്കറ്റുകളായി കരുതുക. മികച്ചവ:
- ഫലം നിർവചിക്കുക: "Y പരിമിതികളോടെ X നടപ്പിലാക്കുക"
- ഫയലുകൾ, മൊഡ്യൂളുകൾ അല്ലെങ്കിൽ ടെസ്റ്റുകൾ റഫർ ചെയ്യുക: "{auth/routes.py}-ഉം {tests/test_auth.py}-ഉം കാണുക"
- പരിമിതികൾ വ്യക്തമാക്കുക: "DB സ്കീമ മാറ്റങ്ങൾ പാടില്ല; നിലവിലുള്ള ഇൻ്റർഫേസുകൾ നിലനിർത്തുക"
- സ്വീകാര്യതാ മാനദണ്ഡം ഉൾപ്പെടുത്തുക: "ടെസ്റ്റുകൾ പാസാകണം: {pytest -k password_reset}"
നിങ്ങൾക്ക് വീണ്ടും ഉപയോഗിക്കാവുന്ന ടെംപ്ലേറ്റ്:
{Goal: <നിങ്ങൾ നിർമ്മിക്കാനോ ശരിയാക്കാനോ ആഗ്രഹിക്കുന്നത്>}, {Context: <പ്രസക്തമായ ഫയലുകൾ, അറിയപ്പെടുന്ന പരിമിതികൾ, ബാഹ്യ സേവനങ്ങൾ>}, {Acceptance: <പാസാകുന്നത് എങ്ങനെയിരിക്കും: ടെസ്റ്റുകൾ, എൻഡ്പോയിന്റുകൾ, അളവുകൾ>}, {Boundaries: <മാറ്റാൻ പാടില്ലാത്തവ അല്ലെങ്കിൽ ഒഴിവാക്കേണ്ട സമീപനങ്ങൾ>}, {Tools: <പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന കമാൻഡുകൾ, സ്ക്രിപ്റ്റുകൾ അല്ലെങ്കിൽ ഡാറ്റാ ഉറവിടങ്ങൾ>}
Core Workflow: പ്ലാൻ → എക്സിക്യൂട്ട് → വെരിഫൈ → റിഫൈൻ
OpenHands സാധാരണയായി മൾട്ടി-സ്റ്റെപ്പ് പ്ലാൻ നിർദ്ദേശിക്കുന്നു. അതിനെ എങ്ങനെ നയിക്കാമെന്ന് ഇതാ:
- ആരംഭത്തിൽ തന്നെ അതിൻ്റെ പ്ലാൻ അംഗീകരിക്കുക അല്ലെങ്കിൽ ക്രമീകരിക്കുക. പരാജയങ്ങൾ ബേസ്ലൈൻ ചെയ്യാൻ ആദ്യം ടെസ്റ്റുകൾ പ്രവർത്തിപ്പിക്കാൻ ആവശ്യപ്പെടുക.
- വിജയം നിർവചിക്കാൻ ഒരു ടെസ്റ്റ് ഉണ്ടാക്കാനോ അപ്ഡേറ്റ് ചെയ്യാനോ ആവശ്യപ്പെടുക, തുടർന്ന് കോഡ് നടപ്പിലാക്കുക.
- ടെസ്റ്റ് സ്യൂട്ടും ലിൻ്ററുകളും പതിവായി പ്രവർത്തിപ്പിക്കുക.
- അത് നിലച്ചാൽ, കൂടുതൽ കോൺടെക്സ്റ്റ് ചേർക്കുക: ഫയലിൻ്റെ പേരുകൾ, സ്റ്റാക്ക് ട്രെയ്സുകൾ അല്ലെങ്കിൽ ലോഗുകൾ.
പ്രോ ടിപ്പ്: വലിയ എഡിറ്റുകൾക്ക് പകരം ചെറിയ PR-സൈസ് മാറ്റങ്ങൾ പ്രോത്സാഹിപ്പിക്കുക. ഇത് അവലോകനം ചെയ്യാനും പഴയപടിയാക്കാനും സഹായിക്കുന്നു.
നിങ്ങൾക്ക് കോപ്പി ചെയ്യാൻ കഴിയുന്ന ഉദാഹരണ വർക്ക്ഫ്ലോകൾ
1) ഫീച്ചർ ഇംപ്ലിമെൻ്റേഷൻ
- പ്രോംപ്റ്റ്: "{orders} പേജിലേക്ക് CSV എക്സ്പോർട്ട് ചേർക്കുക. സെർവർ-സൈഡ് പേജിനേഷൻ ഉപയോഗിക്കുക, {text/csv} വഴി ഫലങ്ങൾ സ്ട്രീം ചെയ്യുക. {OrdersTable.jsx}-ൽ {Export} ബട്ടണും {routes/orders.ts}-ൽ എൻഡ്പോയിന്റും ചേർക്കുക. പേജിനേഷനും ഹെഡറുകൾക്കുമുള്ള ടെസ്റ്റുകൾ ഉൾപ്പെടുത്തുക.
- റെപ്പോ സ്കാൻ ചെയ്യുന്നു; പ്ലാൻ തയ്യാറാക്കുന്നു
- എൻഡ്പോയിന്റും ക്ലയിൻ്റ് ബട്ടണും ചേർക്കുന്നു
- ടെസ്റ്റുകൾ എഴുതുകയും പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുന്നു
- പരാജയങ്ങളിൽ ആവർത്തിക്കുന്നു
- നിങ്ങൾ മേൽനോട്ടം വഹിക്കുകയും മാറ്റങ്ങൾ അംഗീകരിക്കുകയും ഗ്രീൻ ആയ ശേഷം മെർജ് ചെയ്യുകയും ചെയ്യുന്നു.
2) പരാജയപ്പെടുന്ന ഒരു ബിൽഡ് ഡീബഗ്ഗ് ചെയ്യുന്നു
- പ്രോംപ്റ്റ്: "CI Node 20-ൽ പരാജയപ്പെടുന്നു. {build.mjs}-ലെ ESM/CJS ഇമ്പോർട്ട് എററുകൾ പരിഹരിക്കുക. നിലവിലുള്ള റോൾഅപ്പ് പ്ലഗിനുകൾ നിലനിർത്തുക; CI പാസാകാൻ കോൺഫിഗറേഷനും കോഡും അപ്ഡേറ്റ് ചെയ്യുക.
- ലോഗുകൾ നൽകുക അല്ലെങ്കിൽ CI ആർട്ടിഫാക്റ്റുകളിലേക്ക് ലിങ്ക് ചെയ്യുക.
- OpenHands-നോട് ലോക്കലായി (<npm run build> പ്രവർത്തിപ്പിക്കാൻ ആവശ്യപ്പെടുക) കൂടാതെ കുറഞ്ഞ വ്യത്യാസങ്ങൾ നിർദ്ദേശിക്കാൻ ആവശ്യപ്പെടുക.
3) ടെസ്റ്റ് കവറേജ്, ശക്തിപ്പെടുത്തൽ
- പ്രോംപ്റ്റ്: "{payments/service.py}-യുടെ കവറേജ് 62% ൽ നിന്ന് 85%+-ലേക്ക് വർദ്ധിപ്പിക്കുക. {retry_charge}, {refund}, {webhook_signature} എന്നിവയ്ക്കായി യൂണിറ്റ് ടെസ്റ്റുകൾ ചേർക്കുക. ടെസ്റ്റ് ഒരു ബഗ്ഗ് വെളിപ്പെടുത്തുന്നില്ലെങ്കിൽ ബിസിനസ് ലോജിക് മാറ്റരുത്.
- OpenHands ടെസ്റ്റുകൾ ജനറേറ്റ് ചെയ്യാനും പ്രവർത്തിപ്പിക്കാനും പരിഷ്കരിക്കാനും അനുവദിക്കുക.
4) ഡോക്യുമെൻ്റുകളും ഡെവലപ്പർ എക്സ്പീരിയൻസും
- പ്രോംപ്റ്റ്: ഈ റെപ്പോയ്ക്കായി ഒരു {CONTRIBUTING.md}-ഉം ഒരു {DEVELOPMENT.md}-ഉം ഉണ്ടാക്കുക. എൻവയൺമെൻ്റ് സജ്ജീകരണം, സ്ക്രിപ്റ്റുകൾ, ടെസ്റ്റ് കമാൻഡുകൾ, PR മാർഗ്ഗനിർദ്ദേശങ്ങൾ എന്നിവ ഉൾപ്പെടുത്തുക.
- കമാൻഡുകൾ പ്രവർത്തിപ്പിച്ച് അവ ശരിയാണോ എന്ന് പരിശോധിക്കാൻ ആവശ്യപ്പെടുക.
ഗാർഡ് റെയിലുകൾ: OpenHands സഹായകരവും സുരക്ഷിതവുമായി നിലനിർത്തുക
- ഡയറക്ടറി വ്യാപ്തി: മറ്റെവിടെയെങ്കിലും ആകസ്മികമായ എഡിറ്റിംഗ് ഒഴിവാക്കാൻ ഒരു പ്രത്യേക റെപ്പോയിലോ ഡയറക്ടറിയിലോ പോയിൻ്റ് ചെയ്യുക.
- ഫയൽ പരിരക്ഷണം: സാധ്യമെങ്കിൽ കോൺഫിഗറേഷൻ ഫയലുകളോ നിർണായക ഇൻഫ്രാസ്ട്രക്ചറോ റീഡ്-ഒൺലി ആയി അടയാളപ്പെടുത്തുക.
- കമാൻഡ് ഓഡിറ്റിംഗ്: വിനാശകരമായ കമാൻഡുകൾക്ക് (ഉദാഹരണത്തിന്, {rm -rf}, ഡാറ്റാബേസ് റീസെറ്റുകൾ) അംഗീകാരം ആവശ്യമാണ്.
- രഹസ്യങ്ങളുടെ ശുചിത്വം: API കീകൾ ഒരിക്കലും പ്രോംപ്റ്റുകളിൽ ഒട്ടിക്കരുത്. എൻവയൺമെൻ്റ് വേരിയബിളുകളും മാസ്ക് ചെയ്ത ലോഗുകളും ഉപയോഗിക്കുക.
- നെറ്റ്വർക്ക് ആക്സസ്: ബ്രൗസിംഗ് പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ, അത് സുരക്ഷിതമാക്കുകയും പുറത്തേക്കുള്ള കോളുകൾ ലോഗ് ചെയ്യുകയും ചെയ്യുക.
ലോക്കൽ vs ക്ലൗഡ് മോഡലുകൾ: നിങ്ങൾക്ക് ശരിയായത് തിരഞ്ഞെടുക്കുന്നു
- Pros: ശക്തമായ യുക്തി/കോഡിംഗ്, കുറഞ്ഞ സജ്ജീകരണം, വേഗത്തിലുള്ള ആവർത്തനം
- Cons: തുടർച്ചയായ ചിലവ്, ഡാറ്റാ ഗവേണൻസ് പരിഗണനകൾ
- Pros: സ്വകാര്യത, നിയന്ത്രണം, ചെലവ് പ്രവചനാതീതത്വം
- Cons: ഹാർഡ്വെയർ ആവശ്യകതകൾ, മോഡലിൻ്റെ ഗുണനിലവാരം വ്യത്യാസപ്പെടുന്നു, കൂടുതൽ ട്യൂണിംഗ് ആവശ്യമാണ്
മോഡൽ ബാക്കെൻഡുകളും മെമ്മറി പരിധികളും കോൺഫിഗർ ചെയ്യാൻ ഔദ്യോഗിക ലോക്കൽ LLM-കളുടെ നിർദ്ദേശങ്ങൾ കാണുക.
ടീം പ്ലേ: ഒരു സഹകരണ ഫ്ലോയിൽ OpenHands ഉപയോഗിക്കുന്നു
- Branch-first workflow: ഒരു ഫീച്ചർ ബ്രാഞ്ച് ഉണ്ടാക്കാനും PR അവലോകനത്തിനായി മാറ്റങ്ങൾ പുഷ് ചെയ്യാനും OpenHands-നോട് ആവശ്യപ്പെടുക.
- Commit hygiene: വ്യക്തമായ സന്ദേശങ്ങളും റഫറൻസ് ഇഷ്യൂ നമ്പറുകളുമുള്ള ആറ്റോമിക് കമ്മിറ്റുകൾ നിർമ്മിക്കാൻ ആവശ്യപ്പെടുക.
- PR ടെംപ്ലേറ്റുകൾ: അവലോകനം ചെയ്യുന്നവർക്ക് എന്താണ് മാറിയതെന്നും എന്തുകൊണ്ട് എന്നും അറിയാൻ PR ടെംപ്ലേറ്റുകൾ ഉണ്ടാക്കുകയും നടപ്പിലാക്കുകയും ചെയ്യുക.
- Code owners: AI-ജനറേറ്റഡ് PR-കൾ ശരിയായ അവലോകകർക്ക് റൂട്ട് ചെയ്യാൻ CODEOWNERS-മായി സംയോജിപ്പിക്കുക.
പൊതുവായ പ്രശ്നങ്ങൾക്കുള്ള ട്രബിൾഷൂട്ടിംഗ്
- ഇത് കുടുങ്ങിപ്പോകുകയോ ലൂപ്പ് ചെയ്യുകയോ ചെയ്യുന്നു: വ്യാപ്തി കുറയ്ക്കുക. അതിൻ്റെ അടുത്ത ഘട്ടം വിശദീകരിക്കാൻ ആവശ്യപ്പെടുക. പരാജയപ്പെടുന്ന ഒരു ടെസ്റ്റ് നൽകുക.
- Messy diffs: ചെറിയ, സ്റ്റേജ് ചെയ്ത പ്ലാൻ അഭ്യർത്ഥിക്കുക - ആദ്യം ടെസ്റ്റുകൾ, തുടർന്ന് കുറഞ്ഞ കോഡ് മാറ്റങ്ങൾ.
- തെറ്റായ ഫയൽ എഡിറ്റുകൾ: കൃത്യമായ പാതകൾ വ്യക്തമാക്കുകയും അതിരുകളെക്കുറിച്ച് ഓർമ്മിപ്പിക്കുകയും ചെയ്യുക.
- പ്രാദേശികമായി പാസാകുകയും CI-ൽ പരാജയപ്പെടുകയും ചെയ്യുന്നു: CI എൻവയൺമെൻ്റ് വിശദാംശങ്ങളും ലോഗുകളും പങ്കിടുക; ഒരു കണ്ടെയ്നർ ഉപയോഗിച്ച് പകർത്താൻ ആവശ്യപ്പെടുക.
പെർഫോമൻസ് ടിപ്പുകളും പവർ മൂവ്സുകളും
- Warm-start context: പ്രധാന ഫയലുകൾ ആദ്യം വായിക്കാൻ ആവശ്യപ്പെടുക ({README}, {package.json}, പ്രധാന സർവീസ് ഫയലുകൾ).
- അതിന് സ്ക്രിപ്റ്റുകൾ നൽകുക: അതിന് വേഗത്തിൽ സാധൂകരിക്കാൻ കഴിയുന്ന ഒരു {make test} അല്ലെങ്കിൽ {npm run verify} നൽകുക.
- ഡൊമെയ്ൻ പഠിപ്പിക്കുക: ഒരു ചെറിയ ആർക്കിടെക്ചറൽ അവലോകനം നൽകുക; കുറഞ്ഞ ലോജിക് എററുകളിൽ ഇത് ഗുണം ചെയ്യും.
- ശൈലി നടപ്പിലാക്കുക: അത് ശരിയായി ഫോർമാറ്റ് ചെയ്യുന്നതിന് {.eslintrc}, {.prettierrc}, {black}/{ruff} കോൺഫിഗുകളിലേക്ക് പോയിൻ്റ് ചെയ്യുക.
- ചെക്ക്പോയിന്റുകൾ ഉപയോഗിക്കുക: ഓരോ നാഴികക്കല്ലിനും ശേഷം, അതിനെ ട്രാക്കിൽ നിർത്താൻ ഒരു സംഗ്രഹവും അടുത്ത ഘട്ടങ്ങളും ആവശ്യപ്പെടുക.
റിയൽ-വേൾഡ് സാഹചര്യങ്ങൾ: ഒരു മണിക്കൂറിനുള്ളിൽ ബഗ് റിപ്പോർട്ട് മുതൽ പാച്ച് വരെ
- സാഹചര്യം: {orders} API-യിലെ തെറ്റായ JSON പേലോഡുകളിൽ പ്രൊഡക്ഷൻ ബഗ് കൈകാര്യം ചെയ്യാത്ത 500-കൾ ഒഴിവാക്കുന്നു.
- നിങ്ങളുടെ പ്രോംപ്റ്റ്: {orders} POST-ലെ തെറ്റായ JSON-ൽ 500 പുനർനിർമ്മിക്കുക. സ്കീമ വാലിഡേഷൻ ചേർത്ത് എറർ വിശദാംശങ്ങളോടെ {400} തിരികെ നൽകുക. തെറ്റായ പേലോഡുകൾ ഉൾക്കൊള്ളാൻ ടെസ്റ്റുകൾ അപ്ഡേറ്റ് ചെയ്യുക.
- API പ്രാദേശികമായി പ്രവർത്തിപ്പിക്കുന്നു, എറർ പുനർനിർമ്മിക്കുന്നു
- ഒരു വാലിഡേഷൻ ലെയറും എറർ ഹാൻഡിലറും ചേർക്കുന്നു
- ടെസ്റ്റുകൾ അപ്ഡേറ്റ് ചെയ്യുകയും CI പാസാകുന്നുവെന്ന് ഉറപ്പാക്കുകയും ചെയ്യുന്നു
- ചേഞ്ച്ലോഗ് എൻട്രിയുള്ള ഒരു കോംപാക്റ്റ് PR നിർമ്മിക്കുന്നു
സമയ ലാഭം: OpenHands സ്കഫോൾഡിംഗ് കൈകാര്യം ചെയ്തപ്പോൾ നിങ്ങൾ ഇംപാക്ട് അനാലിസിസിലും റോൾഔട്ടിലും ശ്രദ്ധ കേന്ദ്രീകരിച്ചു.
OpenHands-നെ സൂപ്പർചാർജ് ചെയ്യുന്ന സംയോജനങ്ങൾ
- ടെസ്റ്റ് റണ്ണറുകൾ: pytest, Jest, Vitest, JUnit
- ബിൽഡ് ടൂളുകൾ: Vite, Webpack, Rollup, Babel
- പാക്കേജ് മാനേജർമാർ: npm, pnpm, yarn, pip/poetry
- Linters/formatters: ESLint, Prettier, black, ruff
- കണ്ടെയ്നറുകൾ: CI-യുമായുള്ള പ്രാദേശിക പൊരുത്തത്തിനായി Docker Compose
ഈ ടൂളുകൾ സ്റ്റാൻഡേർഡ് ചെയ്യുന്നതിലൂടെ, OpenHands-ന് നിങ്ങളുടെ സ്റ്റാക്കിനെക്കുറിച്ച് കൂടുതൽ വിശ്വസനീയമായി കാര്യങ്ങൾ മനസ്സിലാക്കാനും dev ലൂപ്പിന്റെ കൂടുതൽ കാര്യങ്ങൾ ഓട്ടോമേറ്റ് ചെയ്യാനും കഴിയും.
By the Way: OpenHands-നൊപ്പം Sider.AI ഉപയോഗിക്കുന്നു
Relevance score: 8/10. നിങ്ങൾ OpenHands-നെ നിങ്ങളുടെ AI എഞ്ചിനീയറായി ഉപയോഗിക്കുകയാണെങ്കിൽ, സ്പെസിഫിക്കേഷനുകൾ, PR വിവരണങ്ങൾ, ഡോക്യുമെൻ്റേഷൻ എന്നിവയ്ക്കായി ഒരു ഗവേഷണ, ഡ്രാഫ്റ്റിംഗ് കോപൈലറ്റുമായി ഇത് ജോടിയാക്കുന്നത് മൂല്യവത്താണ്. By the way, Sider.AI-ക്ക് സാങ്കേതിക സ്പെസിഫിക്കേഷനുകൾ വേഗത്തിൽ തയ്യാറാക്കാനും, RFC-കൾ സംഗ്രഹിക്കാനും, അല്ലെങ്കിൽ OpenHands റൺ ലോഗുകളെ ക്ലീൻ ചേഞ്ച്ലോഗുകളായും റിലീസ് നോട്ടുകളായും മാറ്റാനും നിങ്ങളെ സഹായിക്കാനാവും. ഈ കോമ്പിനേഷൻ കോൺടെക്സ്റ്റ്-സ്വിച്ചിംഗ് കുറയ്ക്കുന്നു: OpenHands കോഡ് പ്രവർത്തനങ്ങൾ കൈകാര്യം ചെയ്യുന്നു, അതേസമയം Sider.AI ഫലങ്ങളെ ക്ലീൻ, യൂസർ-ഫേസിംഗ് ഡോക്യുമെൻ്റുകളാക്കി മാറ്റുന്നു.
സുരക്ഷ, സ്വകാര്യത, കംപ്ലയിൻസ് ചെക്ക്ലിസ്റ്റ്
- രഹസ്യങ്ങൾ env വേരിയബിളുകളിൽ സൂക്ഷിക്കുക; കീകൾ ഒരിക്കലും പ്രോംപ്റ്റുകളിൽ ഉൾപ്പെടുത്തരുത്
- ഒരു ജൂനിയർ ഡെവിൻ്റെ PR പോലെ AI-ജനറേറ്റഡ് എല്ലാ മാറ്റവും അവലോകനം ചെയ്യുക
- ഓഡിറ്റ് ചെയ്യാനായി കമാൻഡുകളും പ്രവർത്തനങ്ങളും ലോഗ് ചെയ്യുക
- ടൂൾചെയിൻ പതിപ്പുകൾ പിൻ ചെയ്യുക; ലോക്ക്ഫയലുകളിൽ ആകസ്മികമായുള്ള അപ്ഗ്രേഡുകൾ ഒഴിവാക്കുക
- നിങ്ങൾ ക്ലൗഡ് LLM-കൾ ഉപയോഗിക്കുകയാണെങ്കിൽ, നിങ്ങളുടെ ഡാറ്റാ നിലനിർത്തൽ പോളിസികളുമായി ചേർത്തുവയ്ക്കുക
എപ്പോൾ OpenHands ഉപയോഗിക്കരുത്
- ശക്തമായ ടെസ്റ്റ് അല്ലെങ്കിൽ സ്പെക്ക് സ്കഫോൾഡിംഗ് ഇല്ലാത്ത നോവൽ അൽഗോരിതം ഡിസൈൻ
- ശക്തമായ അവലോകന പ്രക്രിയയില്ലാത്ത ഉയർന്ന നിയന്ത്രിത കോഡ്ബേസുകൾ
- മാനുവൽ കോഡിംഗ് വേഗത്തിലുള്ള ഒറ്റത്തവണ ഒഴിവാക്കാവുന്ന സ്ക്രിപ്റ്റുകൾ
OpenHands ഉപയോഗിച്ചുള്ള നിങ്ങളുടെ ആദ്യത്തെ 60 മിനിറ്റ്: ഒരു മിനി പ്ലേബുക്ക്
- മിനിറ്റ് 0–10: ഔദ്യോഗിക ക്വിക്ക്സ്റ്റാർട്ട് ഉപയോഗിച്ച് ഇൻസ്റ്റാൾ ചെയ്ത് സമാരംഭിക്കുക
- മിനിറ്റ് 10–20: നിങ്ങളുടെ റെപ്പോ കണക്ട് ചെയ്യുക; പ്രോജക്റ്റ് ഘടന മാപ്പ് ചെയ്യാൻ ആവശ്യപ്പെടുക
- മിനിറ്റ് 20–35: ചെറുതും ടെസ്റ്റ് ചെയ്യാവുന്നതുമായ ഒരു ലക്ഷ്യം നിർവചിക്കുക; അതിൻ്റെ പ്ലാൻ അംഗീകരിക്കുക
- മിനിറ്റ് 35–50: നടപ്പിലാക്കാനും ടെസ്റ്റുകൾ പ്രവർത്തിപ്പിക്കാനും അനുവദിക്കുക; ആവശ്യമെങ്കിൽ പ്രേരിപ്പിക്കുക
- മിനിറ്റ് 50–60: ഡിഫുകൾ അവലോകനം ചെയ്യുക, പരിഷ്കരിക്കുക, ഒരു ഫീച്ചർ ബ്രാഞ്ചിലേക്ക് മെർജ് ചെയ്യുക
പ്രധാന ലിങ്കുകളും അടുത്ത ഘട്ടങ്ങളും
- OpenHands-നുള്ള ഔദ്യോഗിക "Start Building", ഉപയോഗ ഡോക്യുമെൻ്റുകൾ: ടിപ്പുകൾ, ക്വിക്ക്സ്റ്റാർട്ട്, മികച്ച രീതികൾ.
- ലോക്കൽ LLM സജ്ജീകരണ ഗൈഡ്: നിങ്ങളുടെ മെഷീനിൽ OpenHands പൂർണ്ണമായും കോൺഫിഗർ ചെയ്ത് പ്രവർത്തിപ്പിക്കുക.
- ഒരു VM-ലെ കമ്മ്യൂണിറ്റി-ഡ്രൈവൻ ഇൻസ്റ്റാൾ walkthrough: റിയൽ-വേൾഡ് ഇൻസ്റ്റാൾ സ്റ്റെപ്പുകളും ഒരു ദ്രുത ഡെമോ പ്രോജക്റ്റും.
പ്രധാന കാര്യങ്ങൾ
- വ്യക്തമായ സ്വീകാര്യതാ മാനദണ്ഡങ്ങളുള്ള ടിക്കറ്റുകൾ പോലെ ടാസ്ക്കുകൾ ഫ്രെയിം ചെയ്യുക.
- ആവർത്തനങ്ങൾ ചെറുതായി സൂക്ഷിക്കുക; നേരത്തെയും പതിവായും ടെസ്റ്റ് ചെയ്യുക.
- ഗാർഡ് റെയിലുകൾ ഉപയോഗിച്ച് മാറ്റങ്ങൾ അവലോകനം ചെയ്യുക - ഒരു ജൂനിയർ ടീംമേറ്റിനെപ്പോലെ പരിഗണിക്കുക.
- സൗകര്യത്തിനായി ക്ലൗഡ് തിരഞ്ഞെടുക്കുക, സ്വകാര്യതയ്ക്ക് പ്രാദേശിക മോഡലുകൾ തിരഞ്ഞെടുക്കുക.
- സ്പെസിഫിക്കേഷനുകളും റിലീസ് നോട്ടുകളും വേഗത്തിലാക്കാൻ ഡോക്യുമെൻ്റേഷൻ ടൂളുകളുമായി (ഉദാഹരണത്തിന്, Sider.AI) ജോടിയാക്കുക.
FAQ
{Q1: AI OpenHands എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്ത് വേഗത്തിൽ ഉപയോഗിക്കാൻ തുടങ്ങാം?
മുൻകൂട്ടിയുള്ള ആവശ്യകതകൾ ഇൻസ്റ്റാൾ ചെയ്യാനും പിന്തുണയ്ക്കുന്ന ഒരു LLM (ക്ലൗഡ് അല്ലെങ്കിൽ ലോക്കൽ) പ്ലഗ് ഇൻ ചെയ്യാനും നിങ്ങളുടെ റിപ്പോസിറ്ററി കണക്ട് ചെയ്യാൻ UI സമാരംഭിക്കാനും ഔദ്യോഗിക ക്വിക്ക്സ്റ്റാർട്ട് ഉപയോഗിക്കുക. "Start Building" ഡോക്യുമെൻ്റുകൾ സജ്ജീകരണ ടിപ്പുകളുള്ള ഘട്ടം ഘട്ടമായുള്ള നിർദ്ദേശങ്ങൾ നൽകുന്നു.}{Q2: ഒരു ക്ലൗഡ് മോഡലിന് പകരം ഒരു ലോക്കൽ LLM ഉപയോഗിച്ച് OpenHands പ്രവർത്തിപ്പിക്കാൻ കഴിയുമോ?
ഉവ്വ്. ഒരു ലോക്കൽ മോഡൽ ബാക്കെൻഡ് കോൺഫിഗർ ചെയ്യാനും കോൺടെക്സ്റ്റ് ക്രമീകരണങ്ങൾ ക്രമീകരിക്കാനും ലോക്കൽ LLM-കളുടെ ഗൈഡ് പിന്തുടരുക. സ്വകാര്യത സെൻസിറ്റീവായ പ്രോജക്റ്റുകൾക്കോ API ചെലവുകൾ ഒഴിവാക്കാനോ ഇത് അനുയോജ്യമാണ്.}{Q3: കോഡിംഗ് ടാസ്ക്കുകൾക്കായി OpenHands-നെ പ്രോംപ്റ്റ് ചെയ്യാനുള്ള ഏറ്റവും നല്ല മാർഗ്ഗം ഏതാണ്?
കൃത്യമായ ടിക്കറ്റുകൾ പോലെ പ്രോംപ്റ്റുകൾ എഴുതുക: ലക്ഷ്യം നിർവചിക്കുക, നിർദ്ദിഷ്ട ഫയലുകൾ റഫർ ചെയ്യുക, അതിരുകൾ സജ്ജമാക്കുക, സ്വീകാര്യതാ മാനദണ്ഡങ്ങൾ ഉൾപ്പെടുത്തുക. പുരോഗതി സാധൂകരിക്കാൻ ടെസ്റ്റുകൾ ഉണ്ടാക്കാനോ പ്രവർത്തിപ്പിക്കാനോ ആവശ്യപ്പെടുക.}{Q4: AI OpenHands പ്രൊഡക്ഷൻ കോഡിൽ ഉപയോഗിക്കാൻ സുരക്ഷിതമാണോ?
ഒരു ജൂനിയർ ഡെവലപ്പറെപ്പോലെ പരിഗണിക്കുക: മാറ്റങ്ങൾ സാധൂകരിക്കാൻ ബ്രാഞ്ച് പ്രൊട്ടക്ഷനുകൾ, കോഡ് അവലോകനം, CI എന്നിവ ഉപയോഗിക്കുക. കമാൻഡുകൾക്കായി ഗാർഡ് റെയിലുകൾ ചേർക്കുകയും പ്രോംപ്റ്റുകളിൽ നിന്ന് രഹസ്യങ്ങൾ ഒഴിവാക്കുകയും ചെയ്യുക.}{Q5: പരമ്പരാഗത കോഡ് അസിസ്റ്റൻ്റുമായി OpenHands എങ്ങനെ താരതമ്യം ചെയ്യുന്നു?
ചാറ്റ്-ഒൺലി ടൂളുകളിൽ നിന്ന് വ്യത്യസ്തമായി, OpenHands-ന് കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കാനും ഫയലുകൾ എഡിറ്റ് ചെയ്യാനും നിങ്ങളുടെ റിപ്പോസിറ്ററിക്കുള്ളിൽ സ്വയം പ്രവർത്തിപ്പിക്കാനും കഴിയും. ഫീച്ചറുകൾ, ഡീബഗ്ഗിംഗ്, ടെസ്റ്റുകൾ പോലുള്ള എൻഡ്-ടു-എൻഡ് ടാസ്ക്കുകൾക്കായി ഇത് നിർമ്മിച്ചിരിക്കുന്നു.}