നിങ്ങളുടെ AI API കോളുകൾ ഹാർഡ്കോഡ് ചെയ്യുന്നത് നിർത്തുക
ഞാൻ AI API കോളുകൾ ഹാർഡ്കോഡ് ചെയ്യുന്നത് നിർത്തി. അത് പിന്നീട് പരിപാലിക്കാൻ (maintenance) വലിയ ബുദ്ധിമുട്ടുണ്ടാക്കുന്നു.
ഞാൻ OpenAI ഉപയോഗിച്ചാണ് തുടങ്ങിയത്. പിന്നീട് ഒരു ക്ലയന്റിന് Claude വേണമെന്ന് ആവശ്യപ്പെട്ടു. എനിക്ക് OpenAI-ക്കായി ഒരു ഫംഗ്ഷൻ മാത്രമേ ഉണ്ടായിരുന്നുള്ളൂ. മറ്റൊരു പ്രൊവൈഡർ കൂടി ചേർക്കാൻ എന്നാൽ കോഡ് കോപ്പി ചെയ്യേണ്ടി വന്നു.
ഞാൻ എൻവയോൺമെന്റ് വേരിയബിളുകൾ (environment variables) പരീക്ഷിച്ചു നോക്കി. പക്ഷേ കോഡ് ഒരുപാട് if-else ബ്ലോക്കുകൾ കൊണ്ട് കുഴഞ്ഞുമറിഞ്ഞു. എനിക്ക് ഒരു കോമൺ ഇന്റർഫേസ് (common interface) ആവശ്യമായിരുന്നു.
ഞാൻ ഒരു അബ്സ്ട്രാക്ഷൻ ലെയർ (abstraction layer) നിർമ്മിച്ചു. അതിനായി ഞാൻ Strategy pattern ഉപയോഗിച്ചു.
ഇത് ഇപ്രകാരമാണ് പ്രവർത്തിക്കുന്നത്:
- പ്രൊവൈഡർമാർക്കായി ഒരു ബേസ് ക്ലാസ് (base class) നിർമ്മിക്കുക.
- ഓരോ API-ക്കും പ്രത്യേകമായ ഒരു ക്ലാസ് എഴുതുക.
- ആപ്പ് ബേസ് ക്ലാസിനെ മാത്രം വിളിക്കാൻ അനുവദിക്കുക.
ഏത് ബാക്കെൻഡ് ആണ് പ്രവർത്തിക്കുന്നത് എന്ന് ആപ്പ് ശ്രദ്ധിക്കേണ്ടതില്ല.
ഗുണങ്ങൾ:
- പുതിയ പ്രൊവൈഡർമാരെ എളുപ്പത്തിൽ ചേർക്കാം.
- മോക്ക് പ്രൊവൈഡറുകൾ (mock providers) ഉപയോഗിച്ച് ടെസ്റ്റ് ചെയ്യാം.
ദോഷങ്ങൾ:
- ഒരു പ്രൊവൈഡർ മാത്രം ഉപയോഗിക്കുന്ന സാഹചര്യത്തിൽ ഇത് അമിതമായി തോന്നാം.
- ഓരോ API-യുടെയും സവിശേഷമായ ഫീച്ചറുകൾ ഉപയോഗിക്കാൻ പ്രയാസമായേക്കാം.
- എറർ മാപ്പിംഗ് (error mapping) ചെയ്യാൻ കൂടുതൽ അധ്വാനം ആവശ്യമാണ്.
എന്റെ ഉപദേശം: ആദ്യം ഒരു പ്രൊവൈഡറുമായി തുടങ്ങുക. രണ്ടാമതൊന്ന് ചേർക്കുമ്പോൾ മാത്രം റീഫാക്ടർ (refactor) ചെയ്യുക.
ഇത് മുഴുവനായി കോഡ് മാറ്റിയെഴുതുന്നതിൽ നിന്ന് എന്നെ രക്ഷിച്ചു.
നിങ്ങൾ എങ്ങനെയാണ് ഒന്നിലധികം AI പ്രൊവൈഡറുകളെ കൈകാര്യം ചെയ്യുന്നത്?
Source: https://dev.to/__c1b9e06dc90a7e0a676b/why-i-stopped-hardcoding-ai-api-calls-and-built-a-simple-abstraction-layer-27me Optional learning community: https://t.me/GyaanSetuAi