എല്ലാവരും അനുകരിച്ച OpenAI API അവർ ശുപാർശ ചെയ്യുന്ന ഒന്നല്ല
Ollama, vLLM, LM Studio തുടങ്ങിയ മിക്ക ലോക്കൽ മോഡൽ ടൂളുകളും "OpenAI-compatible" എന്ന ബാഡ്ജ് ഉപയോഗിക്കുന്നു.
എന്നാൽ ഇവിടെ ഒരു പ്രശ്നമുണ്ട്. ഇതിനർത്ഥം ഒരു പ്രത്യേക കാര്യം മാത്രമാണെന്ന് മിക്ക ആളുകളും കരുതുന്നു. യഥാർത്ഥത്തിൽ, രണ്ട് വ്യത്യസ്ത ഫോർമാറ്റുകൾ നിലവിലുണ്ട്. ഒന്ന് ഇൻഡസ്ട്രി സ്റ്റാൻഡേർഡാണ്. മറ്റൊന്ന് OpenAI യഥാർത്ഥത്തിൽ നിങ്ങൾ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നതാണ്.
അതിന്റെ വിശദാംശങ്ങൾ താഴെ നൽകുന്നു.
പഴയ സ്റ്റാൻഡേർഡ്: Chat Completions API
എല്ലാവരും അനുകരിച്ച ഫോർമാറ്റാണിത്. ഇതിൽ developer, user, assistant തുടങ്ങിയ റോളുകളുള്ള മെസ്സേജുകളുടെ ഒരു ലിസ്റ്റ് ഉപയോഗിക്കുന്നു.
ഇതിന് രണ്ട് പ്രധാന പ്രശ്നങ്ങളുണ്ട്:
- ഇത് stateless ആണ്. ഓരോ തവണയും സംഭാഷണത്തിന്റെ മുഴുവൻ ചരിത്രവും നിങ്ങൾ വീണ്ടും അയക്കേണ്ടതുണ്ട്.
- ഇത് ഭാരമേറിയതാണ് (heavy). സങ്കീർണ്ണമായ ഏജന്റുകൾക്കായി (complex agents), വലിയ ട്രാൻസ്ക്രിപ്റ്റുകൾ അയക്കുന്നത് വേഗത കുറയ്ക്കാനും ചിലവ് കൂട്ടാനും കാരണമാകുന്നു.
പുതിയ സ്റ്റാൻഡേർഡ്: Responses API
2025 മാർച്ചിൽ OpenAI ഇത് അവതരിപ്പിച്ചു. ഇത് വെറും ചാറ്റ്ബോട്ടുകൾക്ക് വേണ്ടി മാത്രമല്ല, ഏജന്റുകൾക്കായി (agents) രൂപകൽപ്പന ചെയ്തതാണ്.
എന്തുകൊണ്ട് ഇത് മികച്ചതാണ്:
- ഇത് stateful ആണ്. സെർവർ സംഭാഷണം ഓർത്തു വെക്കുന്നു. അതിനാൽ എല്ലാം വീണ്ടും അയക്കേണ്ട ആവശ്യമില്ല.
- ഇത് റീസണിംഗിനെ (reasoning) മികച്ച രീതിയിൽ കൈകാര്യം ചെയ്യുന്നു. മോഡലിന്റെ "chain of thought" സെർവറിൽ തന്നെ സൂക്ഷിക്കുന്നു.
- ഇത് കൂടുതൽ വ്യക്തമായ ഒരു ഘടന ഉപയോഗിക്കുന്നു. നിർദ്ദേശങ്ങളെ (instructions) യഥാർത്ഥ യൂസർ ഇൻപുട്ടിൽ നിന്ന് ഇത് വേർതിരിക്കുന്നു.
ആശയക്കുഴപ്പം
ഒരു ടൂൾ "OpenAI-compatible" ആണെന്ന് പറയുമ്പോൾ, അത് മിക്കവാറും പഴയ Chat Completions ഫോർമാറ്റിനെ പിന്തുണയ്ക്കുന്നു എന്നാണ് അർത്ഥമാക്കുന്നത്.
ഈ പഴയ ഫോർമാറ്റിനെ ആസ്പദമാക്കി ഇൻഡസ്ട്രി ഒരു വലിയ ഇക്കോസിസ്റ്റം തന്നെ കെട്ടിപ്പടുത്തു. ഇത് എല്ലായിടത്തും ലഭ്യമായതിനാൽ, ഇതൊരു ഡിഫോൾട്ട് (default) ആയി മാറി. ഒരു കമ്പനിയുടെ സ്വകാര്യ API-യുടെ ക്ലോണുകൾ നിർമ്മിക്കുന്ന ഒരു സാഹചര്യം ഇത് സൃഷ്ടിച്ചു.
പരിഹാരം: Open Responses
ഇത് പരിഹരിക്കുന്നതിനായി, OpenAI-യും Hugging Face, Vercel തുടങ്ങിയ പങ്കാളികളും ചേർന്ന് Open Responses സ്പെസിഫിക്കേഷൻ പുറത്തിറക്കി.
ഒരു API എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് ഊഹിക്കുന്നതിന് പകരം, ഡെവലപ്പർമാർക്ക് ഇപ്പോൾ രേഖപ്പെടുത്തപ്പെട്ടതും പരിശോധിക്കാവുന്നതുമായ (documented, testable) ഒരു സ്റ്റാൻഡേർഡ് ലഭ്യമാണ്. ഇത് വളരെ കുറഞ്ഞ കോഡ് മാറ്റങ്ങളോടെ OpenAI-യിൽ നിന്നും ലോക്കൽ മോഡലുകളിലേക്കും തിരിച്ചും മാറാൻ നിങ്ങളെ അനുവദിക്കുന്നു.
നിങ്ങൾ ചെയ്യേണ്ടത്:
- നിങ്ങൾ ഒരു പുതിയ പ്രോജക്റ്റ് നിർമ്മിക്കുകയാണെങ്കിൽ, Responses API ഉപയോഗിക്കുക.
- നിങ്ങൾ പഴയ ആപ്പുകൾ പരിപാലിക്കുകയാണെങ്കിൽ, Chat Completions ദീർഘകാലം പിന്തുണയ്ക്കപ്പെടും.
- ചിലവും ലേറ്റൻസിയും (latency) കുറയ്ക്കുന്നതിനായി നിങ്ങളുടെ ടൂൾ പുതിയ stateful ഫോർമാറ്റ് പിന്തുണയ്ക്കുന്നുണ്ടോ എന്ന് എപ്പോഴും പരിശോധിക്കുക.
ഈ വ്യത്യാസം അറിയുന്നത് ടോക്കൺ കൗണ്ടിംഗിലും (token counting) മെസ്സേജ് ഘടനകളിലും ഉണ്ടാകുന്ന പിശകുകൾ ഒഴിവാക്കാൻ സഹായിക്കും.
Source: https://dev.to/rlnorthcutt/the-openai-api-everyone-copied-isnt-the-one-openai-recommends-28o8
Optional learning community: https://t.me/GyaanSetuAi
