Rate limiting ਕੀ ਹੈ? ਐਪ ਬਣਾਉਣ ਵਾਲਿਆਂ ਲਈ ਸਧਾਰਨ ਗਾਈਡ
Rate limiting ਇੱਕ ਨਿਯਮ ਹੈ ਜੋ ਕਿਸੇ ਸਿਸਟਮ ਨੂੰ ਤੈਅ ਸਮੇਂ ਵਿੱਚ ਭੇਜੀਆਂ ਜਾ ਸਕਣ ਵਾਲੀਆਂ ਬੇਨਤੀਆਂ ਦੀ ਗਿਣਤੀ ਦੀ ਹੱਦ ਲਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਇੱਕ ਮਿੰਟ ਵਿੱਚ 5 ਲੌਗਇਨ ਕੋਸ਼ਿਸ਼ਾਂ, ਜਾਂ ਇੱਕ ਘੰਟੇ ਵਿੱਚ 100 API ਕਾਲਾਂ। ਹੱਦ ਪੂਰੀ ਹੋਣ ’ਤੇ ਹੋਰ ਬੇਨਤੀਆਂ ਰੱਦ ਹੋ ਜਾਂਦੀਆਂ ਹਨ (ਆਮ ਤੌਰ ’ਤੇ ਗ਼ਲਤੀ ਕੋਡ 429 Too Many Requests ਨਾਲ) ਜਦ ਤੱਕ ਸਮਾਂ-ਸੀਮਾ ਮੁੜ ਸ਼ੁਰੂ ਨਾ ਹੋਵੇ। ਇਹ ਐਪਾਂ ਨੂੰ ਦੁਰਵਰਤੋਂ ਤੋਂ ਬਚਾਉਂਦਾ ਹੈ, ਇੱਕ ਭਾਰੀ ਯੂਜ਼ਰ ਨੂੰ ਸਭ ਲਈ ਹੌਲੀ ਹੋਣ ਤੋਂ ਰੋਕਦਾ ਹੈ, ਅਤੇ ਬੇਕਾਬੂ ਖ਼ਰਚੇ ਰੋਕਦਾ ਹੈ।
ਤੁਸੀਂ rate limiting ਨੂੰ ਦੋ ਪਾਸਿਆਂ ਤੋਂ ਵੇਖਦੇ ਹੋ: ਜਿਹੜੀਆਂ ਸੇਵਾਵਾਂ ਤੁਸੀਂ ਬੁਲਾਉਂਦੇ ਹੋ ਉਹ ਤੁਹਾਨੂੰ ਸੀਮਿਤ ਕਰਦੀਆਂ ਹਨ, ਅਤੇ ਤੁਹਾਡੀ ਆਪਣੀ ਐਪ ਨੂੰ ਆਪਣੇ ਯੂਜ਼ਰਾਂ ਨੂੰ ਸੀਮਿਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
AI ਨਾਲ ਬਣਾਉਂਦੇ ਸਮੇਂ rate limiting ਕਿਉਂ ਮਾਇਨੇ ਰੱਖਦੀ ਹੈ
AI ਨਾਲ ਬਣੀਆਂ ਐਪਾਂ ਅਕਸਰ ਪੈਸੇ ਵਾਲੀਆਂ ਸੇਵਾਵਾਂ ਨਾਲ ਜੁੜਦੀਆਂ ਹਨ, ਜਿਵੇਂ AI ਮਾਡਲ, ਈਮੇਲ, SMS, ਨਕਸ਼ੇ, ਅਤੇ ਹਰ ਕਾਲ ਦਾ ਖ਼ਰਚਾ ਹੁੰਦਾ ਹੈ। ਇਸ ਲਈ rate limiting ਸੁਰੱਖਿਆ ਅਤੇ ਬਜਟ ਦੋਵਾਂ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ।
- ਖ਼ਰਚੇ ’ਤੇ ਕਾਬੂ। ਜੇ ਤੁਹਾਡੀ ਐਪ ਵਿੱਚ “AI ਨੂੰ ਪੁੱਛੋ” ਬਾਕਸ ਹੈ ਅਤੇ ਕੋਈ ਹੱਦ ਨਹੀਂ, ਤਾਂ ਇੱਕ ਬੌਟ ਰਾਤੋ-ਰਾਤ ਹਜ਼ਾਰਾਂ ਬੇਨਤੀਆਂ ਭੇਜ ਸਕਦਾ ਹੈ। ਹਰ ਇੱਕ ਦਾ ਪੈਸਾ ਤੁਸੀਂ ਦਿੰਦੇ ਹੋ।
- ਸੁਰੱਖਿਆ। ਲੌਗਇਨ ਫ਼ਾਰਮ ’ਤੇ ਹੱਦ ਨਾ ਹੋਵੇ ਤਾਂ ਹਮਲਾਵਰ ਕਿਸੇ ਖਾਤੇ ਦੇ ਹਜ਼ਾਰਾਂ ਪਾਸਵਰਡ ਅਜ਼ਮਾ ਸਕਦਾ ਹੈ। ਪ੍ਰਤੀ ਮਿੰਟ ਕੁਝ ਕੋਸ਼ਿਸ਼ਾਂ ਦੀ ਹੱਦ ਇਹ ਅਸੰਭਵ ਬਣਾ ਦਿੰਦੀ ਹੈ।
- ਚਾਲੂ ਰਹਿਣਾ। ਇੱਕ ਗ਼ਲਤ ਚੱਲਦੀ ਸਕ੍ਰਿਪਟ, ਕਈ ਵਾਰ ਤੁਹਾਡਾ ਆਪਣਾ ਕੋਡ ਜੋ ਲੂਪ ਵਿੱਚ ਫਸ ਗਿਆ ਹੋਵੇ, ਤੁਹਾਡੇ ਡਾਟਾਬੇਸ ਨੂੰ ਭਾਰੀ ਕਰ ਕੇ ਐਪ ਬੰਦ ਕਰ ਸਕਦੀ ਹੈ।
- ਹੋਰ ਸੇਵਾਵਾਂ ਦੀਆਂ ਹੱਦਾਂ ਦਾ ਸਤਿਕਾਰ। ਜਦੋਂ ਤੁਹਾਡੀ ਐਪ ਕਿਸੇ ਬਾਹਰੀ API ਨੂੰ ਬਹੁਤ ਵਾਰ ਬੁਲਾਉਂਦੀ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ 429 ਗ਼ਲਤੀਆਂ ਮਿਲਦੀਆਂ ਹਨ ਅਤੇ ਤੁਹਾਡੇ ਯੂਜ਼ਰਾਂ ਲਈ ਫ਼ੀਚਰ ਟੁੱਟ ਜਾਂਦੇ ਹਨ।
AI ਬਿਲਡਰ ਉਹੀ ਬਣਾਉਂਦੇ ਹਨ ਜੋ ਤੁਸੀਂ ਮੰਗਦੇ ਹੋ। ਜੇ ਤੁਸੀਂ ਹੱਦਾਂ ਦਾ ਜ਼ਿਕਰ ਨਾ ਕਰੋ, ਤਾਂ ਅਕਸਰ ਉਹ ਛੱਡ ਦਿੱਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।
ਰੋਜ਼ਾਨਾ ਦੀ ਮਿਸਾਲ
ਇੱਕ ਕੌਫ਼ੀ ਦੀ ਦੁਕਾਨ ਦੀ ਮੁਫ਼ਤ ਰੀਫ਼ਿੱਲ ਨੀਤੀ ਸੋਚੋ: “ਹਰ ਗਾਹਕ ਨੂੰ ਇੱਕ ਫੇਰੀ ’ਤੇ ਇੱਕ ਮੁਫ਼ਤ ਰੀਫ਼ਿੱਲ।”
- ਇਹ ਕਿਸੇ ਨੂੰ ਕੌਫ਼ੀ ਦਾ ਆਨੰਦ ਲੈਣ ਤੋਂ ਨਹੀਂ ਰੋਕਦੀ।
- ਇਹ ਕਿਸੇ ਇੱਕ ਬੰਦੇ ਨੂੰ ਪੂਰਾ ਦਿਨ ਕਾਊਂਟਰ ’ਤੇ ਖੜ੍ਹ ਕੇ ਪੂਰੇ ਦਫ਼ਤਰ ਲਈ ਫਲਾਸਕ ਭਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ।
- ਜਦੋਂ ਕੋਈ ਚੌਥੀ ਰੀਫ਼ਿੱਲ ਮੰਗਦਾ ਹੈ, ਤਾਂ ਬਰਿਸਤਾ ਨਰਮੀ ਨਾਲ ਕਹਿੰਦਾ ਹੈ “ਹੁਣ ਨਹੀਂ” ਇਹੀ
429ਹੈ।
ਚੰਗੀ rate limit ਆਮ ਗਾਹਕਾਂ ਨੂੰ ਨਜ਼ਰ ਨਹੀਂ ਆਉਂਦੀ ਅਤੇ ਸਿਰਫ਼ ਕਿਸੇ ਅਸਾਧਾਰਨ ਕੰਮ ਕਰਨ ਵਾਲੇ ਨੂੰ ਹੀ ਮਹਿਸੂਸ ਹੁੰਦੀ ਹੈ।
rate limiting ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ
ਇੱਕ rate limiter ਨੂੰ ਤਿੰਨ ਚੀਜ਼ਾਂ ਚਾਹੀਦੀਆਂ ਹਨ:
| ਹਿੱਸਾ | ਕਿਹੜਾ ਸਵਾਲ ਹੱਲ ਕਰਦਾ ਹੈ | ਮਿਸਾਲਾਂ |
|---|---|---|
| ਕੌਣ | ਕਿਸ ਦੀਆਂ ਬੇਨਤੀਆਂ ਗਿਣੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ? | ਪ੍ਰਤੀ ਯੂਜ਼ਰ ਖਾਤਾ, ਪ੍ਰਤੀ IP ਐਡਰੈੱਸ, ਪ੍ਰਤੀ API ਕੀਅ |
| ਕਿੰਨੀਆਂ | ਹੱਦ ਕੀ ਹੈ? | 5, 60, 1,000 ਬੇਨਤੀਆਂ |
| ਕਿਸ ਸਮੇਂ ਲਈ | ਕਿਹੜੀ ਸਮਾਂ-ਸੀਮਾ ਵਿੱਚ? | ਪ੍ਰਤੀ ਸਕਿੰਟ, ਮਿੰਟ, ਘੰਟਾ, ਦਿਨ |
ਜਦੋਂ ਬੇਨਤੀ ਆਉਂਦੀ ਹੈ, ਤਾਂ ਐਪ ਉਸ “ਕੌਣ” ਦੀ ਗਿਣਤੀ ਵੇਖਦੀ ਹੈ। ਹੱਦ ਹੇਠਾਂ ਹੋਵੇ ਤਾਂ ਬੇਨਤੀ ਲੰਘਦੀ ਹੈ ਅਤੇ ਗਿਣਤੀ ਵਧਦੀ ਹੈ। ਹੱਦ ਤੋਂ ਉੱਪਰ ਹੋਵੇ ਤਾਂ ਬੇਨਤੀ ਰੱਦ ਹੁੰਦੀ ਹੈ।
ਗਿਣਨ ਦੇ ਕੁਝ ਆਮ ਤਰੀਕੇ ਹਨ:
| ਤਰੀਕਾ | ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ | ਨੁਕਸਾਨ/ਫ਼ਾਇਦਾ |
|---|---|---|
| ਫ਼ਿਕਸਡ ਵਿੰਡੋ | ਗਿਣਤੀ ਘੜੀ ਅਨੁਸਾਰ ਰੀਸੈੱਟ ਹੁੰਦੀ ਹੈ, ਜਿਵੇਂ ਹਰ ਮਿੰਟ ਦੇ ਸ਼ੁਰੂ ’ਤੇ | ਸਾਦਾ, ਪਰ ਦੋ ਵਿੰਡੋਆਂ ਦੀ ਸਰਹੱਦ ’ਤੇ ਇੱਕ ਝਟਕਾ ਲੰਘਣ ਦਿੰਦਾ ਹੈ |
| ਸਲਾਈਡਿੰਗ ਵਿੰਡੋ | ਹੁਣ ਤੋਂ ਪਿਛਲੇ 60 ਸਕਿੰਟ ਵੇਖਦੀ ਹੈ | ਸੁਚਾਰੂ, ਥੋੜ੍ਹਾ ਵੱਧ ਹਿਸਾਬ |
| ਟੋਕਨ ਬਕੇਟ | ਹਰ ਯੂਜ਼ਰ ਕੋਲ ਇੱਕ ਬਾਲਟੀ ਹੁੰਦੀ ਹੈ ਜੋ ਇੱਕਸਾਰ ਰਫ਼ਤਾਰ ਨਾਲ ਭਰਦੀ ਹੈ; ਹਰ ਬੇਨਤੀ ਇੱਕ ਟੋਕਨ ਲੈਂਦੀ ਹੈ | ਛੋਟੇ ਝਟਕਿਆਂ ਦੀ ਇਜਾਜ਼ਤ, ਔਸਤ ਸਥਿਰ ਰੱਖਦੀ ਹੈ |
ਗਿਣਤੀਆਂ ਕਿਸੇ ਤੇਜ਼ ਅਤੇ ਸਾਂਝੀ ਥਾਂ ’ਤੇ ਰੱਖਣੀਆਂ ਪੈਂਦੀਆਂ ਹਨ। ਇੱਕ ਛੋਟੇ ਸਰਵਰ ’ਤੇ ਮੈਮੋਰੀ ਕਾਫ਼ੀ ਹੈ। ਜਦੋਂ ਐਪ ਕਈ ਮਸ਼ੀਨਾਂ ’ਤੇ ਚੱਲਦੀ ਹੈ, ਤਾਂ ਕਾਊਂਟਰ ਆਮ ਤੌਰ ’ਤੇ Redis ਜਾਂ ਡਾਟਾਬੇਸ ਵਰਗੀ ਸਾਂਝੀ ਥਾਂ ’ਤੇ ਹੁੰਦਾ ਹੈ, ਨਹੀਂ ਤਾਂ ਹਰ ਮਸ਼ੀਨ ਆਪਣੀ ਗਿਣਤੀ ਰੱਖਦੀ ਹੈ ਅਤੇ ਅਸਲ ਹੱਦ ਕਈ ਗੁਣਾ ਵੱਧ ਹੋ ਜਾਂਦੀ ਹੈ।
ਰੱਦ ਹੋਈ ਬੇਨਤੀ ਕਿਹੋ ਜਿਹੀ ਦਿਸਦੀ ਹੈ
ਜਦੋਂ ਬੇਨਤੀ ਹੱਦ ਤੋਂ ਵੱਧ ਹੋਵੇ, ਤਾਂ ਇੱਕ ਚੰਗੀ API ਇਹ ਜਵਾਬ ਦਿੰਦੀ ਹੈ:
- ਸਟੇਟਸ ਕੋਡ
429 Too Many Requests। - ਅਕਸਰ
Retry-Afterਹੈਡਰ, ਜੋ ਦੱਸਦਾ ਹੈ ਕਿ ਕਿੰਨੇ ਸਕਿੰਟ ਉਡੀਕਣੇ ਹਨ। - ਕਈ ਵਾਰ ਹੈਡਰ ਜੋ ਹੱਦ ਅਤੇ ਇਸ ਵਿੰਡੋ ਵਿੱਚ ਬਚੀਆਂ ਬੇਨਤੀਆਂ ਦੱਸਦੇ ਹਨ (ਨਾਂ ਪ੍ਰਦਾਤਾ ਅਨੁਸਾਰ ਵੱਖਰੇ ਹੁੰਦੇ ਹਨ)।
ਤੁਹਾਡੀ ਐਪ ਨੂੰ 429 ਦੇ ਜਵਾਬ ਵਿੱਚ ਉਡੀਕ ਕਰ ਕੇ ਬਾਅਦ ਵਿੱਚ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ, ਆਦਰਸ਼ ਤੌਰ ’ਤੇ exponential backoff ਨਾਲ, ਯਾਨੀ ਹਰ ਅਸਫ਼ਲ ਕੋਸ਼ਿਸ਼ ਤੋਂ ਬਾਅਦ ਥੋੜ੍ਹਾ ਹੋਰ ਲੰਮਾ ਇੰਤਜ਼ਾਰ (1 ਸਕਿੰਟ, ਫਿਰ 2, ਫਿਰ 4), ਸੇਵਾ ’ਤੇ ਲਗਾਤਾਰ ਚੋਟਾਂ ਮਾਰਨ ਦੀ ਥਾਂ।
ਕੰਮ ਦੀ ਮਿਸਾਲ: ਇੱਕ AI ਲਿਖਣ ਸਹਾਇਕ
ਮੰਨ ਲਓ ਤੁਸੀਂ ਇੱਕ ਐਪ ਬਣਾਈ ਹੈ ਜਿੱਥੇ ਯੂਜ਼ਰ ਟੈਕਸਟ ਪੇਸਟ ਕਰਦੇ ਹਨ ਅਤੇ AI ਤੋਂ ਨਵਾਂ ਲਿਖਿਆ ਰੂਪ ਲੈਂਦੇ ਹਨ।
ਬਿਨਾਂ ਹੱਦ ਦੇ: ਕੋਈ ਸਕ੍ਰਿਪਟ ਰਾਤੋ-ਰਾਤ 20,000 ਬੇਨਤੀਆਂ ਭੇਜਦੀ ਹੈ। ਤੁਹਾਡਾ AI ਪ੍ਰਦਾਤਾ ਦਾ ਬਿੱਲ ਵੱਧ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਤੁਹਾਡਾ ਖਾਤਾ ਪ੍ਰਦਾਤਾ ਦੀ ਆਪਣੀ rate limit ਤੱਕ ਪਹੁੰਚ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ ਅਸਲ ਯੂਜ਼ਰ ਸਵੇਰੇ ਤੱਕ ਗ਼ਲਤੀਆਂ ਵੇਖਦੇ ਹਨ।
ਸਹੀ ਹੱਦਾਂ ਨਾਲ:
- ਸਾਈਨ ਇਨ ਯੂਜ਼ਰ ਪ੍ਰਤੀ: ਮੁਫ਼ਤ ਪਲਾਨ ’ਤੇ ਪ੍ਰਤੀ ਘੰਟਾ 30 ਰੀਰਾਈਟ, ਪੇਡ ’ਤੇ 300। ਹੱਦ ਪਾਰ ਕਰਨ ’ਤੇ ਯੂਜ਼ਰ ਵੇਖਦਾ ਹੈ: “ਇਸ ਘੰਟੇ ਦੀ ਹੱਦ ਪੂਰੀ ਹੋ ਗਈ। 12 ਮਿੰਟ ਬਾਅਦ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ, ਜਾਂ ਅਪਗ੍ਰੇਡ ਕਰੋ।”
- ਸਾਈਨ-ਅੱਪ ਫ਼ਾਰਮ ’ਤੇ ਪ੍ਰਤੀ IP ਐਡਰੈੱਸ: ਪ੍ਰਤੀ ਘੰਟਾ 5 ਸਾਈਨ-ਅੱਪ, ਤਾਂ ਜੋ ਬੌਟ ਹਜ਼ਾਰਾਂ ਮੁਫ਼ਤ ਖਾਤੇ ਬਣਾ ਕੇ ਯੂਜ਼ਰ ਹੱਦ ਨੂੰ ਟਾਲ ਨਾ ਸਕਣ।
- ਖ਼ਰਚ ਦੀ ਹੱਦ ਤੁਹਾਡੇ AI ਪ੍ਰਦਾਤਾ ਦੇ ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ, ਆਖ਼ਰੀ ਬਚਾਅ ਵਜੋਂ ਜੇ ਬਾਕੀ ਸਭ ਫ਼ੇਲ੍ਹ ਹੋ ਜਾਵੇ।
- ਪ੍ਰਦਾਤਾ ਦੀਆਂ ਹੱਦਾਂ ਸੰਭਾਲਣਾ: ਜੇ AI ਪ੍ਰਦਾਤਾ 429 ਦੇਵੇ, ਤਾਂ ਤੁਹਾਡਾ ਸਰਵਰ ਇੱਕ-ਦੋ ਵਾਰ ਉਡੀਕ ਕਰ ਕੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ, ਫਿਰ “ਰੁੱਝੇ ਹਾਂ, ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ” ਵਾਲਾ ਸੁਨੇਹਾ ਵਿਖਾਉਂਦਾ ਹੈ।
ਹੱਦਾਂ ਸਰਵਰ ’ਤੇ ਜਾਂਚੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਜੋ ਹੱਦ ਸਿਰਫ਼ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਹੋਵੇ, ਜਿਵੇਂ 30 ਕਲਿੱਕਾਂ ਮਗਰੋਂ ਬਟਨ ਬੰਦ ਕਰ ਦੇਣਾ, ਉਸ ਨੂੰ ਕੋਈ ਵੀ ਸਿੱਧਾ ਤੁਹਾਡੀ API ਬੁਲਾ ਕੇ ਟਾਲ ਸਕਦਾ ਹੈ।
ਮੁੱਖ ਸ਼ਬਦ
| ਸ਼ਬਦ | ਮਤਲਬ |
|---|---|
| Rate limit | ਕਿਸੇ ਸਮੇਂ ਵਿੰਡੋ ਵਿੱਚ ਵੱਧ ਤੋਂ ਵੱਧ ਬੇਨਤੀਆਂ। |
| ਕੋਟਾ | ਵੱਡੀ ਹੱਦ, ਅਕਸਰ ਦਿਨ ਜਾਂ ਮਹੀਨੇ ਲਈ, ਕਈ ਵਾਰ ਪੇਡ ਪਲਾਨ ਨਾਲ ਜੁੜੀ। |
| 429 | “ਬਹੁਤ ਬੇਨਤੀਆਂ” ਲਈ HTTP ਸਟੇਟਸ ਕੋਡ। |
| Retry-After | ਜਵਾਬ ਦਾ ਹੈਡਰ ਜੋ ਦੱਸਦਾ ਹੈ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਤੋਂ ਪਹਿਲਾਂ ਕਿੰਨਾ ਉਡੀਕਣਾ ਹੈ। |
| Throttling | ਹੱਦ ਤੋਂ ਵੱਧ ਬੇਨਤੀਆਂ ਨੂੰ ਹੌਲੀ ਕਰਨਾ ਜਾਂ ਰੱਦ ਕਰਨਾ। ਅਕਸਰ ਇਸ ਦਾ ਸਮਾਨਾਰਥੀ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। |
| Exponential backoff | ਮੁੜ ਕੋਸ਼ਿਸ਼ਾਂ ਵਿਚਕਾਰ ਹੌਲੀ-ਹੌਲੀ ਵਧਦਾ ਇੰਤਜ਼ਾਰ। |
| Burst | ਇੱਕੋ ਵੇਲੇ ਬਹੁਤ ਸਾਰੀਆਂ ਬੇਨਤੀਆਂ ਦਾ ਥੋੜ੍ਹੇ ਸਮੇਂ ਦਾ ਝਟਕਾ। |
| Brute-force ਹਮਲਾ | ਵੱਡੀ ਗਿਣਤੀ ਵਿੱਚ ਪਾਸਵਰਡ ਜਾਂ ਕੋਡ ਅਜ਼ਮਾਉਣੇ ਜਦ ਤੱਕ ਕੋਈ ਚੱਲ ਨਾ ਜਾਵੇ। |
ਆਮ ਗ਼ਲਤਫ਼ਹਿਮੀਆਂ
- “Rate limiting ਸਿਰਫ਼ ਵੱਡੀਆਂ ਐਪਾਂ ਲਈ ਹੈ।” ਛੋਟੀਆਂ ਐਪਾਂ ਵੀ ਨਿਸ਼ਾਨਾ ਬਣਦੀਆਂ ਹਨ, ਕਿਉਂਕਿ ਬੌਟ ਖੁੱਲ੍ਹੇ ਫ਼ਾਰਮਾਂ ਅਤੇ AI ਐਂਡਪੌਇੰਟਾਂ ਨੂੰ ਲੱਭਦੇ ਰਹਿੰਦੇ ਹਨ। ਦੁਰਵਰਤੋਂ ਦਾ ਖ਼ਰਚਾ ਤੁਹਾਡੇ ਆਕਾਰ ’ਤੇ ਨਿਰਭਰ ਨਹੀਂ।
- “ਬਟਨ ਲੁਕਾਉਣਾ ਕਾਫ਼ੀ ਹੈ।” ਬਰਾਊਜ਼ਰ ਵਾਲੀਆਂ ਹੱਦਾਂ ਸਿਰਫ਼ ਸ਼ਿਸ਼ਟਾਚਾਰ ਹਨ, ਸੁਰੱਖਿਆ ਨਹੀਂ। ਅਸਲ ਹੱਦਾਂ ਸਰਵਰ ’ਤੇ ਲਾਗੂ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ।
- “ਪ੍ਰਤੀ-IP ਹੱਦਾਂ ਹਮੇਸ਼ਾ ਨਿਆਂਪੂਰਨ ਹੁੰਦੀਆਂ ਹਨ।” ਬਹੁਤ ਲੋਕ ਇੱਕੋ IP ਸਾਂਝਾ ਕਰ ਸਕਦੇ ਹਨ, ਜਿਵੇਂ ਦਫ਼ਤਰ, ਸਕੂਲ ਜਾਂ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ। ਸਾਈਨ ਇਨ ਹੋਣ ’ਤੇ ਪ੍ਰਤੀ-ਯੂਜ਼ਰ ਹੱਦਾਂ ਵੱਧ ਨਿਆਂਪੂਰਨ ਹਨ।
- “429 ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਸੇਵਾ ਟੁੱਟੀ ਹੋਈ ਹੈ।” ਇਸ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਸੀਂ ਬਹੁਤ ਵਾਰ ਬੁਲਾ ਰਹੇ ਹੋ। ਆਪਣਾ ਕੋਡ ਲੂਪਾਂ ਲਈ ਵੇਖੋ, ਅਤੇ ਜੋ ਨਤੀਜੇ ਘੱਟ ਬਦਲਦੇ ਹਨ ਉਨ੍ਹਾਂ ਨੂੰ ਕੈਸ਼ ਕਰੋ; ਵੇਖੋ ਕੈਸ਼ਿੰਗ ਕੀ ਹੈ।
- “Rate limiting ਖ਼ਰਚੇ ਦੀ ਹੱਦ ਦੀ ਥਾਂ ਲੈਂਦੀ ਹੈ।” ਦੋਵੇਂ ਵਰਤੋ। ਐਪ ਵਿੱਚ ਹੱਦਾਂ ਵਿੱਚ ਵੀ ਨੁਕਸ ਹੋ ਸਕਦੇ ਹਨ; ਪ੍ਰਦਾਤਾ ਦੀ ਖ਼ਰਚ ਹੱਦ ਤੁਹਾਡਾ ਬੈਕਅੱਪ ਹੈ।
ਆਪਣੇ AI ਬਿਲਡਰ ਨੂੰ ਕੀ ਮੰਗਣਾ ਹੈ
- “ਲੌਗਇਨ, ਸਾਈਨ-ਅੱਪ, ਪਾਸਵਰਡ ਰੀਸੈੱਟ ਅਤੇ AI ਐਂਡਪੌਇੰਟ ’ਤੇ ਸਰਵਰ-ਸਾਈਡ rate limiting ਜੋੜੋ। ਸਮਝਦਾਰ ਹੱਦਾਂ ਸੁਝਾਓ।”
- “ਹਰ ਸਾਈਨ ਇਨ ਯੂਜ਼ਰ ਨੂੰ ਪ੍ਰਤੀ ਘੰਟਾ [N] AI ਬੇਨਤੀਆਂ ਤੱਕ ਸੀਮਿਤ ਕਰੋ, ਅਤੇ ਹੱਦ ’ਤੇ ਪਹੁੰਚਣ ’ਤੇ ਉਡੀਕ ਦੇ ਸਮੇਂ ਨਾਲ ਸਾਫ਼ ਸੁਨੇਹਾ ਦਿਖਾਓ।”
- “ਜਦੋਂ ਕੋਈ ਬਾਹਰੀ API 429 ਦੇਵੇ, ਤਾਂ exponential backoff ਨਾਲ ਵੱਧ ਤੋਂ ਵੱਧ 3 ਵਾਰ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ, ਫਿਰ ਸੌਖੀ ਗ਼ਲਤੀ ਦਿਖਾਓ।”
- “ਰੇਟ-ਲਿਮਿਟ ਦੇ ਗਿਣਤੀਕਾਰ ਕਿੱਥੇ ਰੱਖੇ ਜਾਂਦੇ ਹਨ? ਜੇ ਐਪ ਇੱਕ ਤੋਂ ਵੱਧ ਮਸ਼ੀਨਾਂ ’ਤੇ ਚੱਲੇ ਤਾਂ ਵੀ ਕੰਮ ਕਰਨਗੇ?”
- “ਜਦੋਂ ਵੀ ਕੋਈ ਯੂਜ਼ਰ ਜਾਂ IP ਹੱਦ ਤੱਕ ਪਹੁੰਚੇ, ਲੌਗ ਕਰੋ, ਤਾਂ ਜੋ ਮੈਂ ਦੁਰਵਰਤੋਂ ਲੱਭ ਸਕਾਂ।”
- “ਇਹ ਐਪ ਕਿਹੜੀਆਂ ਬਾਹਰੀ ਸੇਵਾਵਾਂ ਬੁਲਾਉਂਦੀ ਹੈ, ਅਤੇ ਉਨ੍ਹਾਂ ਦੀਆਂ rate limits ਕੀ ਹਨ?”
Mythex ਵਿੱਚ rate limiting
Mythex ਦੇ ਡੌਕਸ AI ਫ਼ੀਚਰਾਂ ਬਾਰੇ ਸਾਫ਼ ਹਨ: ਤੁਸੀਂ ਜੋ ਐਪਾਂ ਬਣਾਉਂਦੇ ਹੋ ਉਨ੍ਹਾਂ ਵਿੱਚ rate limits, ਸੁਰੱਖਿਆ ਅਤੇ ਖ਼ਰਚੇ ਦੇ ਕੰਟਰੋਲ ਤੁਹਾਡੇ ਆਪਣੇ ਡਿਜ਼ਾਈਨ ਕਰਨੇ ਹਨ। ਵੇਖੋ AI ਐਪ ਬਣਾਉਣਾ। ਏਜੰਟ ਨੂੰ ਫ਼ੀਚਰ ਮੰਗਣ ਵਾਲੇ ਉਸੇ ਸੁਨੇਹੇ ਵਿੱਚ ਹੱਦਾਂ ਜੋੜਨ ਲਈ ਕਹੋ। Pro ’ਤੇ ਇੱਕ ਪ੍ਰਕਾਸ਼ਿਤ ਸੇਵਾ ਭਾਰੀ ਟ੍ਰੈਫ਼ਿਕ ਸਮੇਂ ਤਿੰਨ ਮਸ਼ੀਨਾਂ ਤੱਕ ਚੱਲ ਸਕਦੀ ਹੈ (ਵੇਖੋ ਹੋਸਟਿੰਗ ਦੀਆਂ ਹੱਦਾਂ), ਇਸ ਲਈ ਕਾਊਂਟਰ ਡਾਟਾਬੇਸ ਵਿੱਚ ਰੱਖਣ ਲਈ ਕਹੋ, ਕਿਸੇ ਇੱਕ ਸਰਵਰ ਦੀ ਮੈਮੋਰੀ ਵਿੱਚ ਨਹੀਂ।
ਸੰਬੰਧਤ ਪੜ੍ਹਨ ਲਈ: API ਕੀ ਹੈ, LLM APIs ਕਿਵੇਂ ਵਰਤੀਏ ਅਤੇ AI ਨਾਲ ਬਣੀਆਂ ਐਪਾਂ ਲਈ ਸੁਰੱਖਿਆ ਚੈੱਕਲਿਸਟ।
ਸਵਾਲ
ਸਧਾਰਨ ਸ਼ਬਦਾਂ ਵਿੱਚ rate limiting ਕੀ ਹੈ?
Rate limiting ਇੱਕ ਨਿਯਮ ਹੈ ਜੋ ਕਿਸੇ ਯੂਜ਼ਰ, ਡਿਵਾਈਸ ਜਾਂ ਐਪ ਵੱਲੋਂ ਇੱਕ ਤੈਅ ਸਮੇਂ ਵਿੱਚ ਕੀਤੀਆਂ ਜਾ ਸਕਣ ਵਾਲੀਆਂ ਬੇਨਤੀਆਂ ਦੀ ਗਿਣਤੀ ਦੀ ਹੱਦ ਲਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਇੱਕ ਮਿੰਟ ਵਿੱਚ 5 ਲੌਗਇਨ ਕੋਸ਼ਿਸ਼ਾਂ ਜਾਂ ਇੱਕ ਘੰਟੇ ਵਿੱਚ 100 API ਕਾਲਾਂ। ਹੱਦ ਤੋਂ ਵੱਧ ਬੇਨਤੀਆਂ ਉਦੋਂ ਤੱਕ ਰੱਦ ਹੁੰਦੀਆਂ ਹਨ ਜਦ ਤੱਕ ਸਮਾਂ-ਸੀਮਾ ਮੁੜ ਸ਼ੁਰੂ ਨਾ ਹੋਵੇ।
429 Too Many Requests ਗ਼ਲਤੀ ਦਾ ਕੀ ਮਤਲਬ ਹੈ?
HTTP ਸਟੇਟਸ 429 ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਸੀਂ ਬਹੁਤ ਥੋੜ੍ਹੇ ਸਮੇਂ ਵਿੱਚ ਬਹੁਤ ਬੇਨਤੀਆਂ ਭੇਜ ਦਿੱਤੀਆਂ ਅਤੇ ਰੇਟ ਲਿਮਿਟ ਤੱਕ ਪਹੁੰਚ ਗਏ। ਜਵਾਬ ਵਿੱਚ ਅਕਸਰ Retry-After ਹੈਡਰ ਹੁੰਦਾ ਹੈ ਜੋ ਦੱਸਦਾ ਹੈ ਕਿ ਕਿੰਨਾ ਇੰਤਜ਼ਾਰ ਕਰਨਾ ਹੈ। ਹੱਲ ਇਹ ਹੈ ਕਿ ਰਫ਼ਤਾਰ ਘਟਾਓ, ਥੋੜ੍ਹਾ ਰੁਕ ਕੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ, ਜਾਂ ਉਸ ਸੇਵਾ ਨੂੰ ਬੁਲਾਉਣ ਦੀ ਗਿਣਤੀ ਘਟਾਓ।
ਮੇਰੀ AI-ਚਲਾਈ ਐਪ ਨੂੰ rate limiting ਦੀ ਕਿਉਂ ਲੋੜ ਹੈ?
ਹਰ AI ਬੇਨਤੀ ਟੋਕਨਾਂ ਵਿੱਚ ਤੁਹਾਡਾ ਪੈਸਾ ਲਾਉਂਦੀ ਹੈ। ਬਿਨਾਂ ਹੱਦ ਦੇ ਇੱਕ ਯੂਜ਼ਰ ਜਾਂ ਬੌਟ ਹਜ਼ਾਰਾਂ ਬੇਨਤੀਆਂ ਭੇਜ ਕੇ ਵੱਡਾ ਬਿੱਲ ਬਣਾ ਸਕਦਾ ਹੈ ਜਾਂ ਪ੍ਰਦਾਤਾ ਦਾ ਕੋਟਾ ਖ਼ਤਮ ਕਰ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਫ਼ੀਚਰ ਸਭ ਲਈ ਬੰਦ ਹੋ ਜਾਂਦਾ ਹੈ। ਯੂਜ਼ਰ-ਅਨੁਸਾਰ ਹੱਦਾਂ ਖ਼ਰਚੇ ਨੂੰ ਅਨੁਮਾਨਯੋਗ ਰੱਖਦੀਆਂ ਹਨ।
ਕੀ rate limiting ਅਤੇ throttling ਇੱਕੋ ਹਨ?
ਇਹ ਆਪਸ ਵਿੱਚ ਬਹੁਤ ਜੁੜੇ ਹੋਏ ਹਨ ਅਤੇ ਅਕਸਰ ਇੱਕ-ਦੂਜੇ ਦੀ ਥਾਂ ਵਰਤੇ ਜਾਂਦੇ ਹਨ। Rate limiting ਆਮ ਤੌਰ ’ਤੇ ਹੱਦ ਤੋਂ ਵੱਧ ਬੇਨਤੀਆਂ ਨੂੰ ਰੱਦ ਕਰਨ ਦਾ ਮਤਲਬ ਰੱਖਦੀ ਹੈ, ਜਦਕਿ throttling ਦਾ ਮਤਲਬ ਉਨ੍ਹਾਂ ਨੂੰ ਹੌਲੀ ਕਰਨਾ ਜਾਂ ਕਤਾਰ ਵਿੱਚ ਲਾਉਣਾ ਵੀ ਹੋ ਸਕਦਾ ਹੈ, ਸਿੱਧਾ ਰੱਦ ਕਰਨ ਦੀ ਥਾਂ।
ਕੀ rate limiting DDoS ਹਮਲਿਆਂ ਨੂੰ ਰੋਕਦੀ ਹੈ?
ਇਹ ਛੋਟੇ ਹੜ੍ਹਾਂ ਅਤੇ ਕਿਸੇ ਇੱਕ ਯੂਜ਼ਰ ਜਾਂ IP ਐਡਰੈੱਸ ਦੀ ਦੁਰਵਰਤੋਂ ਵਿਰੁੱਧ ਮਦਦ ਕਰਦੀ ਹੈ, ਪਰ ਵੱਡਾ ਵੰਡਿਆ ਹਮਲਾ ਕਈ ਐਡਰੈੱਸਾਂ ਤੋਂ ਇੱਕੋ ਵੇਲੇ ਆਉਂਦਾ ਹੈ। ਉਸ ਤੋਂ ਬਚਾਅ ਆਮ ਤੌਰ ’ਤੇ ਨੈੱਟਵਰਕ ਜਾਂ CDN ਪੱਧਰ ’ਤੇ ਹੁੰਦਾ ਹੈ, ਟ੍ਰੈਫ਼ਿਕ ਤੁਹਾਡੀ ਐਪ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ।