ਮੇਰੇ ਦੋ AI ਟਾਸਕ ਇੱਕੋ ਮਾਊਸ ਲਈ ਲੜਦੇ ਰਹੇ
ਪੈਰਲਲ ਏਜੰਟ ਡੈਮੋ ਉਦੋਂ ਤੱਕ ਵਧੀਆ ਲੱਗਦੇ ਹਨ ਜਦੋਂ ਤੱਕ ਦੋ ਟਾਸਕ ਇੱਕੋ ਮਾਊਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਨਹੀਂ ਕਰਦੇ।
ਇੱਕ ਟਾਸਕ ਕਿਸੇ ਸਾਈਟ ਵਿੱਚ ਲੌਗਇਨ ਕਰਦਾ ਹੈ। ਦੂਜਾ ਬ੍ਰਾਊਜ਼ਰ ਖੋਲ੍ਹਦਾ ਹੈ। ਤੀਜਾ ਟਾਸਕ ਇੱਕ ਸਧਾਰਨ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦੇਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ। ਅਚਾਨਕ, ਸਿਸਟਮ ਗਲਤ ਜਗ੍ਹਾ ਕਲਿੱਕ ਕਰਦਾ ਹੈ ਜਾਂ ਫੇਲ੍ਹ ਹੋਣ ਦੀ ਰਿਪੋਰਟ ਦਿੰਦਾ ਹੈ। ਇਹ ਬੁੱਧੀ (intelligence) ਦੀ ਸਮੱਸਿਆ ਨਹੀਂ ਹੈ। ਇਹ ਇੱਕ ਸਰੋਤ (resource) ਦੀ ਸਮੱਸਿਆ ਹੈ।
CliGate ਬਣਾਉਂਦੇ ਸਮੇਂ, ਮੈਂ ਡੈਸਕਟਾਪ ਆਟੋਮੇਸ਼ਨ ਬਾਰੇ ਇੱਕ ਸਖ਼ਤ ਸਬਕ ਸਿੱਖਿਆ।
ਕੋਡ ਟਾਸਕ ਪੈਰਲਲ ਚੱਲ ਸਕਦੇ ਹਨ। ਜਦੋਂ ਇੱਕ ਰਨਟਾਈਮ ਸੈਸ਼ਨ ਕੰਮ ਕਰ ਰਿਹਾ ਹੋਵੇ, ਤੁਸੀਂ ਮੌਸਮ ਦੀ ਜਾਣਕਾਰੀ ਲੈ ਸਕਦੇ ਹੋ। ਬੈਕਗ੍ਰਾਊਂਡ ਸਮਰੀਆਂ (summaries) ਨੂੰ ਕਿਸੇ ਵੀ ਚੀਜ਼ ਨੂੰ ਰੋਕਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।
ਡੈਸਕਟਾਪ ਵੱਖਰਾ ਹੈ। ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਕੀਬੋਰਡ, ਇੱਕ ਮਾਊਸ ਅਤੇ ਇੱਕ ਸਕ੍ਰੀਨ ਹੁੰਦੀ ਹੈ। ਜੇਕਰ ਦੋ ਏਜੰਟਾਂ ਨੂੰ ਲੱਗਦਾ ਹੈ ਕਿ ਉਹ ਉਸ ਸਤਹ ਦੇ ਮਾਲਕ ਹਨ, ਤਾਂ ਉਹ ਇੱਕ ਦੂਜੇ ਨੂੰ ਖਰਾਬ ਕਰ ਦਿੰਦੇ ਹਨ।
ਮੇਰੀ ਪਹਿਲੀ ਪ੍ਰਤੀਕਿਰਿਆ ਇਹ ਸੀ ਕਿ ਜਦੋਂ ਕੋਈ ਨਵਾਂ ਟਾਸਕ ਆਵੇ ਤਾਂ ਪੁਰਾਣੇ ਟਾਸਕ ਨੂੰ ਰੱਦ ਕਰ ਦਿੱਤਾ ਜਾਵੇ। ਇਹ ਗਲਤ ਸੀ।
ਇੱਕ ਉਪਭੋਗਤਾ ਜੋ ਪੁੱਛ ਰਿਹਾ ਹੈ "ਇਹ ਕਿੱਥੇ ਤੱਕ ਪਹੁੰਚਿਆ?" ਉਸ ਨੂੰ ਲੌਗਇਨ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਖਤਮ ਨਹੀਂ ਕਰਨਾ ਚਾਹੀਦਾ। ਮੌਸਮ ਬਾਰੇ ਪੁੱਛਣ ਵਾਲੇ ਉਪਭੋਗਤਾ ਨੂੰ ਡੈਸਕਟਾਪ ਟਾਸਕ ਨੂੰ ਨਹੀਂ ਰੋਕਣਾ ਚਾਹੀਦਾ। ਸਭ ਤੋਂ ਮਾੜਾ ਬੱਗ (bug) ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਇੱਕ ਏਜੰਟ ਦੂਜੇ ਸਰਗਰਮ ਰਨ ਨੂੰ ਦੇਖਦਾ ਹੈ ਅਤੇ ਅਚਾਨਕ ਆਪਣੇ ਆਪ ਨੂੰ ਹੀ ਰੱਦ ਕਰ ਲੈਂਦਾ ਹੈ।
ਮੈਨੂੰ ਕੰਕਰੈਂਸੀ (concurrency) ਨੂੰ ਪ੍ਰੋਂਪਟ ਸਮੱਸਿਆ ਵਜੋਂ ਦੇਖਣਾ ਬੰਦ ਕਰਨਾ ਪਿਆ। ਮੈਨੂੰ ਇਸਨੂੰ ਇੱਕ ਸਰੋਤ ਸਮੱਸਿਆ ਵਜੋਂ ਦੇਖਣਾ ਪਿਆ।
ਮੈਂ ਤਿੰਨ ਨਵੇਂ ਨਿਯਮ ਬਣਾਏ:
- ਸੁਤੰਤਰ ਟਾਸਕ ਪੈਰਲਲ ਚੱਲਦੇ ਹਨ।
- ਡੈਸਕਟਾਪ ਦੀ ਲੋੜ ਵਾਲੇ ਟਾਸਕਾਂ ਨੂੰ ਕਤਾਰ (queue) ਵਿੱਚ ਲੱਗਣਾ ਚਾਹੀਦਾ ਹੈ।
- ਰੱਦ ਕਰਨਾ (Cancellation) ਉਦੋਂ ਹੀ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਉਪਭੋਗਤਾ ਇਸ ਲਈ ਕਹਿੰਦਾ ਹੈ।
CliGate ਵਿੱਚ, ਡੈਸਕਟਾਪ ਇਨਪੁਟ ਇੱਕ ਲੀਜ਼ (lease) ਵਾਂਗ ਕੰਮ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਕੋਈ ਟਾਸਕ ਮਾਊਸ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਤਾਂ ਉਹ ਲੀਜ਼ ਰੱਖਦਾ ਹੈ। ਦੂਜੇ ਟਾਸਕਾਂ ਨੂੰ ਇੰਤਜ਼ਾਰ ਕਰਨਾ ਪਵੇਗਾ।
ਨਵਾਂ ਲੌਜਿਕ ਇਸ ਫਲੋਅ (flow) ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ:
- ਇੱਕ ਨਵਾਂ ਟਾਸਕ ਆਉਂਦਾ ਹੈ।
- ਕੀ ਇਸਨੂੰ ਡੈਸਕਟਾਪ ਦੀ ਲੋੜ ਹੈ?
- ਜੇਕਰ ਨਹੀਂ, ਤਾਂ ਇਸਨੂੰ ਪੈਰਲਲ ਚਲਾਓ।
- ਜੇਕਰ ਹਾਂ ਅਤੇ ਡੈਸਕਟਾਪ ਖਾਲੀ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਲੈ ਲਓ।
- ਜੇਕਰ ਹਾਂ ਅਤੇ ਡੈਸਕਟਾਪ ਰੁੱਝਿਆ ਹੋਇਆ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਕਤਾਰ ਵਿੱਚ ਪਾ ਦਿਓ।
- ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਰੱਦ ਕਰੋ ਜਦੋਂ ਉਪਭੋਗਤਾ ਰੋਕਣ ਲਈ ਕਹੇ।
ਇਸ ਤਬਦੀਲੀ ਨੇ ਉਲਝਣ ਵਾਲੀਆਂ ਅਸਫਲਤਾਵਾਂ ਨੂੰ ਅਨੁਮਾਨਿਤ ਵਿਵਹਾਰ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ। ਕਲਿੱਕ ਨੂੰ ਦੁਬਾਰਾ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਅਤੇ ਹੋਰ ਦਖਲਅੰਦਾਜ਼ੀ ਕਰਨ ਦੀ ਬਜਾਏ, ਸਹਾਇਕ (assistant) ਹੁਣ ਸੱਚ ਬੋਲਦਾ ਹੈ: "ਡੈਸਕਟਾਪ ਰੁੱਝਿਆ ਹੋਇਆ ਹੈ। ਮੈਂ ਕਤਾਰ ਵਿੱਚ ਹਾਂ ਅਤੇ ਜਦੋਂ ਇਹ ਖਾਲੀ ਹੋਵੇਗਾ ਤਾਂ ਸ਼ੁਰੂ ਹੋ ਜਾਵਾਂਗਾ।"
ਮੈਂ ਆਪਣੇ ਆਪ ਨੂੰ ਰੱਦ ਕਰਨ ਤੋਂ ਰੋਕਣ ਲਈ ਇੱਕ ਨਿਯਮ ਵੀ ਜੋੜਿਆ। ਇੱਕ ਏਜੰਟ ਨੂੰ ਕਦੇ ਵੀ ਆਪਣੇ ਆਪ ਦੇ ਸਰਗਰਮ ਰਨ ਨੂੰ ਰੱਦ ਕਰਨ ਦੇ ਟਾਰਗੇਟ ਵਜੋਂ ਸੂਚੀਬੱਧ ਨਹੀਂ ਕਰਨਾ ਚਾਹੀਦਾ।
AI ਟੂਲਿੰਗ ਬਣਾਉਣਾ ਅਕਸਰ ਉਦੋਂ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਚਲਾਕ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋ। ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਜਾਦੂ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਉਹਨਾਂ ਨੂੰ ਸਧਾਰਨ ਲੌਜਿਕ ਦੀ ਲੋੜ ਹੈ:
- ਜੇਕਰ ਟਾਸਕਾਂ ਵਿੱਚ ਕੋਈ ਟਕਰਾਅ ਨਹੀਂ ਹੈ, ਤਾਂ ਉਹਨਾਂ ਨੂੰ ਚੱਲਣ ਦਿਓ।
- ਜੇਕਰ ਉਹਨਾਂ ਵਿੱਚ ਕਿਸੇ ਭੌਤਿਕ ਸਰੋਤ (physical resource) ਨੂੰ ਲੈ ਕੇ ਟਕਰਾਅ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਉਹਨਾਂ ਨੂੰ ਕਤਾਰ ਵਿੱਚ ਪਾ ਦਿਓ।
- ਜੇਕਰ ਉਪਭੋਗਤਾ ਸਟੇਟਸ ਪੁੱਛਦਾ ਹੈ, ਤਾਂ ਉਹ ਪ੍ਰਦਾਨ ਕਰੋ।
- ਜੇਕਰ ਉਪਭੋਗਤਾ ਰੋਕਣ ਲਈ ਕਹਿੰਦਾ ਹੈ, ਤਾਂ ਰੋਕ ਦਿਓ।
ਜੇਕਰ ਤੁਹਾਡਾ AI ਡੈਸਕਟਾਪ ਨੂੰ ਛੂਹਦਾ ਹੈ, ਤਾਂ ਇਹ ਯਾਦ ਰੱਖੋ: ਪੈਰਲਲ ਟਾਸਕ ਠੀਕ ਹਨ, ਪਰ ਭੌਤਿਕ ਸਰੋਤਾਂ ਨੂੰ ਮਾਲਕੀ (ownership) ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
Source: https://dev.to/codekingai/my-two-ai-tasks-kept-fighting-for-the-same-mouse-1hij