𝗗𝗲𝗯𝘂𝗴𝗴𝗶𝗻𝗴 𝗔𝗜 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴: 𝗖𝗵𝘂𝗻𝗸𝘀 𝗮𝗻𝗱 𝗧𝗶𝗺𝗲𝗼𝘂𝘁𝘀

ਮੈਂ ਇੱਕ AI ਚੈਟ ਇੰਟਰਫੇਸ ਬਣਾਇਆ। ਮੈਂ ਸ਼ਬਦ-ਦਰ-ਸ਼ਬਦ ਜਵਾਬ ਚਾਹੁੰਦਾ ਸੀ। ਇਹ ਫੇਲ ਹੋ ਗਿਆ। ਜਵਾਬ ਸ਼ਬਦ ਦੇ ਵਿਚਕਾਰ ਹੀ ਕੱਟੇ ਜਾ ਰਹੇ ਸਨ।

ਮੈਂ timeout ਵਧਾ ਦਿੱਤਾ। ਇਸ ਨਾਲ ਕੋਈ ਫਾਇਦਾ ਨਹੀਂ ਹੋਇਆ। ਮੈਂ retry loops ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਇਸ ਨਾਲ ਸ਼ਬਦ ਦੁਹਰਾਏ ਜਾਣ ਲੱਗੇ। ਮੈਂ buffering ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਇਸ ਨਾਲ ਐਪ ਸੁਸਤ ਹੋ ਗਈ।

ਇਸਦਾ ਕਾਰਨ parsing error ਸੀ। API JSON-LD ਲਾਈਨਾਂ ਭੇਜਦਾ ਹੈ। ਮੇਰਾ ਕੋਡ stream ਖਤਮ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਰੁਕ ਗਿਆ। ਇਸਨੇ end signal ਨੂੰ ਅਣਗੌਲਿਆ ਕਰ ਦਿੱਤਾ।

ਹੱਲ:

  • ਲਾਈਨਾਂ ਦੀ ਬਜਾਏ bytes ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • buffer ਨੂੰ manually ਮੈਨੇਜ ਕਰੋ।
  • [DONE] signal ਦੀ ਭਾਲ ਕਰੋ।
  • connection ਨੂੰ ਖੁੱਲ੍ਹਾ ਰੱਖੋ।

ਫਿਰ frontend ਫ੍ਰੀਜ਼ ਹੋ ਗਿਆ। React ਬਹੁਤ ਤੇਜ਼ੀ ਨਾਲ ਅਪਡੇਟ ਹੋ ਰਿਹਾ ਸੀ। ਇਸਨੂੰ ਠੀਕ ਕਰਨ ਲਈ ਮੈਂ server ਨੂੰ throttle ਕੀਤਾ।

ਤੁਹਾਡੇ ਲਈ ਸੁਝਾਅ:

  • streaming spec ਪੜ੍ਹੋ।
  • explicit end event ਲੱਭੋ।
  • SSE libraries ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • ਆਪਣੇ data ਨੂੰ track ਕਰੋ।

ਕਿਸੇ ਵੀ stream 'ਤੇ ਕਦੇ ਵੀ ਭਰੋਸਾ ਨਾ ਕਰੋ ਕਿ ਉਹ ਆਪਣੇ ਆਪ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਖਤਮ ਹੋ ਜਾਵੇਗੀ।

ਤੁਹਾਡਾ ਸਭ ਤੋਂ ਅਜੀਬ streaming bug ਕਿਹੜਾ ਹੈ?

Source: https://dev.to/__c1b9e06dc90a7e0a676b/debugging-ai-streaming-a-tale-of-chunks-and-timeouts-1p6m