Neon Functions ਹੁਣ ਅਸੀਮਤ-ਸਮੇਂ ਦੀਆਂ ਸਟ੍ਰੀਮਿੰਗ ਕਨੈਕਸ਼ਨਾਂ (streaming connections) ਦਾ ਸਮਰਥਨ ਕਰਦੇ ਹਨ, ਜੋ AI agents ਨੂੰ ਸੈਕਿੰਡਾਂ, ਮਿੰਟਾਂ ਜਾਂ ਇਸ ਤੋਂ ਵੀ ਵੱਧ ਸਮੇਂ ਲਈ ਇੱਕ ਲਾਈਵ ਚੈਨਲ ਖੁੱਲ੍ਹਾ ਰੱਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ, ਬਿਨਾਂ ਉਨ੍ਹਾਂ ਟਾਈਮਆਊਟ ਸੀਮਾਵਾਂ (timeout limits) ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕੀਤੇ ਜੋ ਜ਼ਿਆਦਾਤਰ serverless workloads ਨੂੰ ਬੰਦ ਕਰ ਦਿੰਦੀਆਂ ਹਨ। ਇਹ ਬਦਲਾਅ ਉਨ੍ਹਾਂ ਸਾਰਿਆਂ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ ਜੋ ਚੈਟ-ਸ਼ੈਲੀ ਦੇ ਸਹਾਇਕ (chat-style assistants) ਜਾਂ ਟੂਲ-ਵਰਤਣ ਵਾਲੇ ਬੋਟਸ (tool-using bots) ਬਣਾ ਰਹੇ ਹਨ, ਕਿਉਂਕਿ ਇੱਕ ਟੁੱਟਿਆ ਹੋਇਆ ਸਟ੍ਰੀਮ ਗੱਲਬਾਤ ਨੂੰ ਰੋਕ ਦਿੰਦਾ ਹੈ ਅਤੇ ਯੂਜ਼ਰ ਅਨੁਭਵ ਨੂੰ ਖਰਾਬ ਕਰ ਦਿੰਦਾ ਹੈ।
ਕਿਉਂ serverless ਅਤੇ AI agents ਆਪਸ ਵਿੱਚ ਟਕਰਾ ਰਹੇ ਹਨ
ਜ਼ਿਆਦਾਤਰ serverless ਪਲੇਟਫਾਰਮ ਤੇਜ਼, 'fire-and-forget' ਕੰਮਾਂ ਲਈ ਬਣਾਏ ਗਏ ਹਨ। ਉਹ ਸਰੋਤਾਂ (resources) ਨੂੰ ਅਨੁਮਾਨਿਤ ਰੱਖਣ ਲਈ ਸਖ਼ਤ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸੀਮਾਵਾਂ ਲਾਗੂ ਕਰਦੇ ਹਨ—ਅਕਸਰ ਮੁਫ਼ਤ ਤੌਰ 'ਤੇ 10 ਸੈਕਿੰਡ ਅਤੇ ਭੁਗਤਾਨ ਵਾਲੇ ਪਲਾਂ 'ਤੇ 60 ਸੈਕਿੰਡ—ਤਾਂ ਜੋ ਕੰਮ ਨੂੰ ਕੰਟਰੋਲ ਵਿੱਚ ਰੱਖਿਆ ਜਾ ਸਕੇ। ਹਾਲਾਂਕਿ, ਇੱਕ AI agent ਸੋਚਣ, ਬਾਹਰੀ ਟੂਲਸ ਨੂੰ ਕਾਲ ਕਰਨ ਅਤੇ ਟੋਕਨ ਜਨਰੇਟ ਹੋਣ ਦੇ ਨਾਲ-ਨਾਲ ਉਹਨਾਂ ਨੂੰ ਜਾਰੀ ਕਰਨ ਵਿੱਚ ਸਮਾਂ ਬਿਤਾਉਂਦਾ ਹੈ। ਉਹ "ਸੋਚਣ" ਵਾਲਾ ਪੜਾਅ ਅਕਸਰ ਦਸਾਂ ਸੈਕਿੰਡਾਂ ਤੱਕ ਲੰਬਾ ਹੋ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਟੋਕਨ ਸਟ੍ਰੀਮ ਉਦੋਂ ਤੱਕ ਜਾਰੀ ਰਹਿ ਸਕਦੀ ਹੈ ਜਦੋਂ ਤੱਕ ਮਾਡਲ ਆਉਟਪੁੱਟ ਜਾਰੀ ਰੱਖਦਾ ਹੈ। ਜਦੋਂ ਪਲੇਟਫਾਰਮ ਦਾ ਟਾਈਮਰ ਖਤਮ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਹ ਕਨੈਕਸ਼ਨ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ ਅਤੇ ਕਲਾਇੰਟ ਨੂੰ ਇੱਕ ਟੁੱਟਿਆ ਹੋਇਆ ਸਟ੍ਰੀਮ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ।
Neon ਦਾ ਜਵਾਬ: ਡਿਫੌਲਟ ਤੌਰ 'ਤੇ ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਚੱਲਣ ਵਾਲੀ ਸਟ੍ਰੀਮਿੰਗ
Neon Functions ਇਸ ਸਥਿਤੀ ਨੂੰ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਇੱਕ ਫੰਕਸ਼ਨ ਕਾਲ ਬਿਨਾਂ ਕਿਸੇ ਵਿਸ਼ੇਸ਼ ਕੌਂਫਿਗਰੇਸ਼ਨ ਦੇ WebSockets ਜਾਂ Server-Sent Events (SSE) ਰਾਹੀਂ ਡੇਟਾ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹੋਏ ਅਨੰਤ ਕਾਲੇ ਰਹਿ ਸਕਦੀ ਹੈ। ਪਲੇਟਫਾਰਮ ਇੱਕ ਲੰਬੀ ਸਟ੍ਰੀਮ ਨੂੰ ਇੱਕ ਆਮ ਰਿਕਵੈਸਟ ਵਜੋਂ ਮੰਨਦਾ ਹੈ, ਇਸ ਲਈ ਡਿਵੈਲਪਰ ਸਟ੍ਰੀਮ ਜਨਰੇਟ ਕਰਨ ਵਾਲੀ ਲੌਜਿਕ ਲਿਖਦੇ ਹਨ ਅਤੇ ਬਾਕੀ ਕੰਮ Neon 'ਤੇ ਛੱਡ ਦਿੰਦੇ ਹਨ।
ਇੱਕ ਹਾਲੀਆ ਟੈਸਟ ਵਿੱਚ, ਦੋ ਐਂਡਪੁਆਇੰਟਸ (endpoints) ਨੇ ਇਸ ਵਿਵਹਾਰ ਦਾ ਪ੍ਰਦਰਸ਼ਨ ਕੀਤਾ:
- Heartbeat endpoint – ਫੰਕਸ਼ਨ ਨੇ 90 ਸੈਕਿੰਡਾਂ ਲਈ ਹਰ ਸੈਕਿੰਡ ਵਿੱਚ ਇੱਕ ਵਾਰ "tick" ਜਾਰੀ ਕੀਤਾ। ਆਮ serverless ਤੌਰ 'ਤੇ 10 ਜਾਂ 60 ਸੈਕਿੰਡਾਂ ਬਾਅਦ ਰਿਕਵੈਸਟ ਖਤਮ ਹੋ ਜਾਂਦੀ; Neon ਨੇ ਕਨੈਕਸ਼ਨ ਨੂੰ ਉਦੋਂ ਤੱਕ ਜਿਉਂਦਾ ਰੱਖਿਆ ਜਦੋਂ ਤੱਕ ਫੰਕਸ਼ਨ ਆਪਣੇ ਆਪ ਖਤਮ ਨਹੀਂ ਹੋ ਗਿਆ।
- Token-relay endpoint – ਫੰਕਸ਼ਨ ਨੇ ਹਰ ਟੋਕਨ ਦੇ ਬਣਦੇ ਹੀ AI ਮਾਡਲ ਤੋਂ ਕਲਾਇੰਟ ਨੂੰ ਟੋਕਨ ਸਟ੍ਰੀਮ ਕੀਤੇ। ਯੂਜ਼ਰਸ ਨੇ ਪੂਰੇ ਟੈਕਸਟ ਬਲਾਕ ਦੀ ਉਡੀਕ ਕਰਨ ਦੀ ਬਜਾਏ ਜਵਾਬ ਨੂੰ ਸ਼ਬਦ-ਦਰ-ਸ਼ਬਦ ਆਉਂਦੇ ਦੇਖਿਆ।
ਦੋਵਾਂ ਉਦਾਹਰਣਾਂ ਲਈ ਕਲਾਇੰਟ ਤੋਂ ਸਿਰਫ਼ ਇੱਕ ਸਿੰਗਲ ਰਿਕਵੈਸਟ ਦੀ ਲੋੜ ਸੀ; ਕਿਸੇ ਪੋਲਿੰਗ (polling) ਜਾਂ keep-alive ਟ੍ਰਿਕਸ ਦੀ ਲੋੜ ਨਹੀਂ ਸੀ।
ਕਿਸ ਨੂੰ ਫਾਇਦਾ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਕੌਣ ਸਾਵਧਾਨ ਰਹਿੰਦਾ ਹੈ
ਗੱਲਬਾਤ ਕਰਨ ਵਾਲੇ ਸਹਾਇਕਾਂ (conversational assistants), ਟੂਲ-ਵਰਤਣ ਵਾਲੇ agents, ਜਾਂ ਕਿਸੇ ਵੀ ਅਜਿਹੀ ਸੇਵਾ ਨੂੰ ਬਣਾਉਣ ਵਾਲੀਆਂ ਟੀਮਾਂ ਜੋ ਵਾਧੂ (incremental) ਨਤੀਜੇ ਭੇਜਣ ਦੀ ਲੋੜ ਰੱਖਦੀਆਂ ਹਨ, ਉਹਨਾਂ ਨੂੰ ਤੁਰੰਤ ਫਾਇਦਾ ਮਿਲਦਾ ਹੈ: ਟਾਈਮਆਊਟ ਦੀ ਸਮੱਸਿਆ ਖਤਮ ਹੋ ਜਾਂਦੀ ਹੈ। ਇਸਦਾ ਨਤੀਜਾ ਸਰਲ ਕੋਡ, ਘੱਟ ਲੇਟੈਂਸੀ (latency), ਅਤੇ ਇੱਕ ਸੁਚਾਰੂ ਯੂਜ਼ਰ ਅਨੁਭਵ ਹੈ।
ਵਟਾਂਦਰੇ (trade-offs) ਨੋਟ ਕਰਨ ਯੋਗ ਹਨ:
- Request-only model – Neon Functions ਉਹਨਾਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ ਜੋ ਇੱਕ ਸਰਗਰਮ (active) ਰਿਕਵੈਸਟ ਨਾਲ ਜੁੜੀਆਂ ਰਹਿੰਦੀਆਂ ਹਨ। ਉਹ ਬੈਕਗ੍ਰਾਊਂਡ ਜੌਬਸ ਜੋ ਰਿਕਵੈਸਟ ਤੋਂ ਬਾਅਦ ਵੀ ਚੱਲਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ, ਉਹਨਾਂ ਲਈ ਅਜੇ ਵੀ Inngest ਜਾਂ ਕਿਸੇ ਸਮਾਨ ਵਰਕਫਲੋ ਇੰਜਣ ਵਰਗੇ ਵੱਖਰੇ ਸ਼ਡਿਊਲਰ ਦੀ ਲੋੜ ਹੈ।
- Cold starts – ਜੋ ਫੰਕਸ਼ਨ ਵਿਹਲੇ (idle) ਹੁੰਦੇ ਹਨ ਉਹ ਜ਼ੀਰੋ ਤੱਕ ਸਕੇਲ ਹੋ ਸਕਦੇ ਹਨ, ਇਸ ਲਈ ਅਗਲੀ ਰਿਕਵੈਸਟ ਵਿੱਚ cold-start ਦੇਰੀ ਹੋ ਸਕਦੀ ਹੈ। ਇੱਕ ਸਰਗਰਮ ਸਟ੍ਰੀਮ ਸਕੇਲਿੰਗ ਨੂੰ ਘੱਟ ਹੋਣ ਤੋਂ ਰੋਕਦੀ ਹੈ, ਪਰ ਅਣਗਹਿਲੀ (inactivity) ਤੋਂ ਬਾਅਦ ਪਹਿਲੀ ਰਿਕਵੈਸਟ ਵਿੱਚ ਅਜੇ ਵੀ ਸਟਾਰਟ-ਅੱਪ ਲਾਗਤ ਲੱਗਦੀ ਹੈ।
ਅੱਗੇ ਕੀ ਦੇਖਣਾ ਹੈ
ਮੁੱਖ ਗੱਲ: Neon Functions ਉਸ ਟਾਈਮਆਊਟ ਸੀਲਿੰਗ ਨੂੰ ਹਟਾ ਦਿੰਦਾ ਹੈ ਜਿਸ ਨੇ ਲੰਬੇ ਸਮੇਂ ਤੋਂ AI ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਕੰਮ ਚਲਾਉਣ ਲਈ ਵੱਖਰੇ ਤਰੀਕਿਆਂ (workarounds) ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕੀਤਾ ਹੈ। ਇੱਕ ਰਿਕਵੈਸਟ ਨੂੰ ਉਦੋਂ ਤੱਕ ਖੁੱਲ੍ਹਾ ਰੱਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦੇ ਕੇ ਜਿੰਨਾ ਸਮਾਂ agent ਨੂੰ ਸੋਚਣ ਅਤੇ ਗੱਲ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, Neon streaming AI agents ਨੂੰ ਕਿਸੇ ਵੀ ਹੋਰ serverless function ਵਾਂਗ ਡਿਪਲੋਏ ਕਰਨਾ ਸਰਲ ਬਣਾ ਦਿੰਦਾ ਹੈ।
