Claude Code ਡਿਵੈਲਪਰ ਹੁਣ ਤਿੰਨ ਖਾਸ ਤਰੀਕਿਆਂ ਨੂੰ ਅਪਣਾ ਕੇ ਅਚਾਨਕ ਵਧਦੇ ਬਿੱਲਾਂ ਨੂੰ ਰੋਕ ਸਕਦੇ ਹਨ, ਜੋ ਇਨਵੌਇਸ ਆਉਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਟੋਕਨਾਂ ਦੇ ਵਾਧੇ ਨੂੰ ਰੋਕ ਦਿੰਦੇ ਹਨ। ਇੱਕ ਡਿਵੈਲਪਰ-ਕੇਂਦ੍ਰਿਤ ਸਾਈਟ 'ਤੇ ਇੱਕ ਤਾਜ਼ਾ ਗਾਈਡ ਸਖ਼ਤ ਟੋਕਨ ਬਜਟ, ਅਨੁਸ਼ਾਸਿਤ ਪ੍ਰੋਂਪਟ ਕੈਸ਼ਿੰਗ ਅਤੇ ਇੱਕ ਲਾਗਤ-ਜਾਣੂ ਕੰਟੈਕਸਟ ਮੈਨੇਜਰ ਬਾਰੇ ਦੱਸਦੀ ਹੈ, ਜੋ ਇਹ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਮਹੀਨਾਵਾਰ ਖਰਚੇ ਨੂੰ ਚੁੱਪਚਾਪ ਦੁੱਗਣਾ ਹੋਣ ਤੋਂ ਕਿਵੇਂ ਰੋਕਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਟੋਕਨਾਂ ਦੇ ਵਾਧੇ ਦਾ ਮਹੱਤਵ ਕਿਉਂ ਹੈ
Claude Code ਦੀ ਕੀਮਤ ਮਾਡਲ ਨੂੰ ਭੇਜੇ ਗਏ ਅਤੇ ਵਾਪਸ ਪ੍ਰਾਪਤ ਕੀਤੇ ਗਏ ਟੋਕਨਾਂ—ਲਿਖਤ ਦੇ ਟੁਕੜਿਆਂ—ਦੀ ਗਿਣਤੀ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ। ਬਿਲਿੰਗ ਡੈਸ਼ਬੋਰਡ ਵਰਤੋਂ ਨੂੰ “input” ਅਤੇ “cached” ਟੋਕਨਾਂ ਵਿੱਚ ਵੰਡਦਾ ਹੈ, ਪਰ ਇਹ ਕਦੇ ਵੀ ਕਿਸੇ ਸੈਸ਼ਨ ਦੇ ਅੰਦਰੂਨੀ ਟੋਕਨ ਰੇਖਾ (trajectory) ਨੂੰ ਨਹੀਂ ਦਿਖਾਉਂਦਾ। ਅਸਲ ਵਿੱਚ, ਡਿਵੈਲਪਰ ਅਕਸਰ ਦੇਖਦੇ ਹਨ ਕਿ ਕੋਡ ਦੀ ਇੱਕ ਲਾਈਨ ਵੀ ਬਦਲੇ ਬਿਨਾਂ ਉਨ੍ਹਾਂ ਦਾ ਟੋਕਨ ਖਰਚਾ ਹਰ ਮਹੀਨੇ ਦੁੱਗਣਾ ਹੋ ਰਿਹਾ ਹੈ। ਇਸਦਾ ਗੁਪਤ ਕਾਰਨ ਕੰਟੈਕਸਟ ਇਨਫਲੇਸ਼ਨ (context inflation) ਹੈ: ਗੱਲਬਾਤ ਦਾ ਇਤਿਹਾਸ ਕੁਝ ਹਜ਼ਾਰ ਟੋਕਨਾਂ ਤੋਂ ਲੱਖਾਂ ਟੋਕਨਾਂ ਤੱਕ ਵਧ ਸਕਦਾ ਹੈ, ਅਤੇ ਸੈਸ਼ਨ ਦੇ ਵਿਚਕਾਰ ਕੈਸ਼ ਮਿਸ (cache misses) ਹੋ ਸਕਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਮਾਡਲ ਨੂੰ ਉਹ ਕੰਮ ਦੁਬਾਰਾ ਕਰਨਾ ਪੈਂਦਾ ਹੈ ਜੋ ਪਹਿਲਾਂ ਹੀ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਸੀ।
ਜਦੋਂ ਲਾਗਤ ਦਾ ਵਾਧਾ ਦਿਖਾਈ ਨਹੀਂ ਦਿੰਦਾ, ਤਾਂ ਟੀਮਾਂ ਇਨਵੌਇਸ ਆਉਣ ਤੋਂ ਬਾਅਦ ਹੀ ਹਫੜਾ-ਦਫੜੀ ਕਰਦੀਆਂ ਹਨ, ਜਿਸ ਨਾਲ ਦਬਾਅ ਹੇਠ ਕੰਮ ਘਟਾਉਣਾ ਜਾਂ ਆਰਕੀਟੈਕਚਰ ਨੂੰ ਬਦਲਣਾ ਪੈਂਦਾ ਹੈ। ਗਾਈਡ ਦਾ ਕਹਿਣਾ ਹੈ ਕਿ ਇਸਦਾ ਇੱਕੋ ਇੱਕ ਭਰੋਸੇਯੋਗ ਹੱਲ ਰਿਐਕਟਿਵ ਮਾਨੀਟਰਿੰਗ (reactive monitoring) ਤੋਂ ਹਟ ਕੇ API ਬਾਰਡਰ 'ਤੇ ਪ੍ਰੋਐਕਟਿਵ ਕੰਟਰੋਲ (proactive control) ਵੱਲ ਵਧਣਾ ਹੈ।
1. ਸਖ਼ਤ ਟੋਕਨ ਬਜਟ ਸੈੱਟ ਕਰੋ
ਇੱਕ ਨਰਮ ਚੇਤਾਵਨੀ ਜੋ ਸਿਰਫ਼ ਵਾਧੂ ਵਰਤੋਂ ਨੂੰ ਲੌਗ ਕਰਦੀ ਹੈ, ਉਹ ਅਜੇ ਵੀ ਰਿਕਵੈਸਟ ਨੂੰ ਅੱਗੇ ਵਧਣ ਦਿੰਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਬਜਟ ਤੋਂ ਵੱਧ ਜਾਣ ਦੀ ਸੰਭਾਵਨਾ ਰਹਿੰਦੀ ਹੈ। ਇਸਦੇ ਉਲਟ, ਇੱਕ ਸਖ਼ਤ ਬਜਟ ਕਿਸੇ ਵੀ API ਕਾਲ ਤੋਂ ਪਹਿਲਾਂ ਰਿਕਵੈਸਟ ਨੂੰ ਰੱਦ ਕਰ ਦਿੰਦਾ ਹੈ ਜਾਂ ਘਟਾ ਦਿੰਦਾ ਹੈ।
- ਪਹਿਲਾਂ ਅੰਦਾਜ਼ਾ ਲਗਾਓ – ਟੋਕਨਾਂ ਦੀ ਗਿਣਤੀ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਲਈ ਪੈਂਡਿੰਗ ਪੇਲੋਡ (payload) 'ਤੇ ਇੱਕ ਤੇਜ਼ ਹਿਊਰਿਸਟਿਕ (heuristic) ਚਲਾਓ।
- ਪੁਰਾਣੇ ਸੁਨੇਹੇ ਘਟਾਓ – ਗੱਲਬਾਤ ਦੇ ਸ਼ੁਰੂਆਤੀ ਹਿੱਸੇ ਨੂੰ ਹਟਾ ਕੇ ਸਭ ਤੋਂ ਹਾਲੀਆ ਗੱਲਬਾਤ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖੋ।
- ਸਰਕਟ-ਬ੍ਰੇਕਰ ਪ੍ਰਭਾਵ – ਜਿਵੇਂ ਹੀ ਅਨੁਮਾਨਿਤ ਟੋਕਨਾਂ ਦੀ ਗਿਣਤੀ ਨਿਰਧਾਰਤ ਸੀਮਾ ਤੱਕ ਪਹੁੰਚਦੀ ਹੈ, ਕਾਲ ਨੂੰ ਰੋਕ ਦਿਓ ਜਾਂ ਕੰਟੈਕਸਟ ਨੂੰ ਛੋਟਾ ਕਰ ਦਿਓ, ਤਾਂ ਜੋ ਅਲਾਟ ਕੀਤੇ ਗਏ ਕ੍ਰੈਡਿਟਸ ਦੀ ਰੱਖਿਆ ਕੀਤੀ ਜਾ ਸਕੇ।
ਇਸਦਾ ਨੁਕਸਾਨ ਲੰਬੇ ਸਮੇਂ ਦੇ ਕੰਟੈਕਸਟ ਦਾ ਖ਼ਤਮ ਹੋਣਾ ਹੋ ਸਕਦਾ ਹੈ। ਟੀਮਾਂ ਨੂੰ ਇਹ ਫੈਸਲਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਯੂਜ਼ਰ ਅਨੁਭਵ ਲਈ ਕਿੰਨਾ ਇਤਿਹਾਸ ਜ਼ਰੂਰੀ ਹੈ ਅਤੇ ਉਸ ਸੀਮਾ ਨੂੰ ਲਗਾਤਾਰ ਲਾਗੂ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
2. ਪ੍ਰੋਂਪਟ ਕੈਸ਼ਿੰਗ ਨੂੰ ਸੁਧਾਰੋ
Claude Code ਪ੍ਰੋਂਪਟ ਦੇ “prefix” (ਆਮ ਤੌਰ 'ਤੇ ਸਿਸਟਮ ਪ੍ਰੋਂਪਟ ਅਤੇ ਕੋਈ ਵੀ ਸਥਿਰ ਨਿਰਦੇਸ਼) ਨੂੰ ਕੈਸ਼ ਕਰ ਸਕਦਾ ਹੈ, ਤਾਂ ਜੋ ਅਗਲੀਆਂ ਕਾਲਾਂ ਉਸ ਕੰਮ ਨੂੰ ਦੁਬਾਰਾ ਕਰਨ ਦੀ ਬਜਾਏ ਉਸੇ ਨੂੰ ਦੁਬਾਰਾ ਵਰਤ ਸਕਣ। ਜਦੋਂ ਕੈਸ਼ ਕੰਮ ਕਰਦਾ ਹੈ, ਤਾਂ ਗਾਈਡ ਲਾਗਤ ਵਿੱਚ 90% ਤੱਕ ਦੀ ਕਮੀ ਦਰਸਾਉਂਦੀ ਹੈ।
- ਸਿਸਟਮ ਪ੍ਰੋਂਪਟ ਨੂੰ ਸਥਿਰ ਰੱਖੋ – ਸੈਸ਼ਨ ਦੌਰਾਨ ਸਿਸਟਮ ਪ੍ਰੋਂਪਟ ਨੂੰ ਕਦੇ ਵੀ ਨਾ ਬਦਲੋ; ਕੋਈ ਵੀ ਤਬਦੀਲੀ ਕੈਸ਼ ਨੂੰ ਅਯੋਗ ਕਰ ਦਿੰਦੀ ਹੈ।
- Append-only message arrays – ਪਿਛਲੇ ਸੁਨੇਹਿਆਂ ਨੂੰ ਦੁਬਾਰਾ ਵਿਵਸਥਿਤ ਕਰਨ ਜਾਂ ਐਡਿਟ ਕਰਨ ਤੋਂ ਬਚੋ। ਕੈਸ਼ ਇੱਕ ਅਨੁਮਾਨਿਤ, ਮੋਨੋਟੋਨਿਕ (monotonic) ਕ੍ਰਮ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ।
- ਹਿੱਟ ਰੇਟ 'ਤੇ ਨਜ਼ਰ ਰੱਖੋ – ਕੈਸ਼ ਹਿੱਟਸ (hits) ਬਨਾਮ ਮਿਸਸ (misses) ਨੂੰ ਰਿਕਾਰਡ ਕਰਨ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਇੰਸਟ੍ਰੂਮੈਂਟੇਸ਼ਨ ਕਰੋ। ਅਚਾਨਕ ਗਿਰਾਵਟ ਇਹ ਸੰਕੇਤ ਦਿੰਦੀ ਹੈ ਕਿ ਪ੍ਰੈਫਿਕਸ ਹੁਣ ਸਥਿਰ ਨਹੀਂ ਹੈ, ਜੋ ਅਕਸਰ ਅਣਜਾਣੇ ਪ੍ਰੋਂਪਟ ਬਦਲਾਅ ਕਾਰਨ ਹੁੰਦਾ ਹੈ।
ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਡਾਇਨਾਮਿਕ ਪ੍ਰੋਂਪਟ ਦੀ ਸਹੂਲਤ ਅਤੇ ਕੈਸ਼ ਸਥਿਰਤਾ ਨੂੰ ਤੋੜਨ ਦੇ ਲਾਗਤ ਦੰਦ (cost penalty) ਵਿਚਕਾਰ ਸੰਤੁਲਨ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ।
3. ਇੱਕ ਲਾਗਤ-ਜਾਣੂ ਕੰਟੈਕਸਟ ਮੈਨੇਜਰ ਬਣਾਓ
ਕੰਟੈਕਸਟ ਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਰੋਕ-ਟੋਕ ਦੇ ਵਧਣ ਦੇਣ ਨਾਲ ਟੋਕਨਾਂ ਦੇ ਵਾਧੇ ਦੀ ਗਾਰੰਟੀ ਮਿਲਦੀ ਹੈ। ਇੱਕ ਸਮਰਪਿਤ ਮੈਨੇਜਰ ਹਰੇਕ ਸੈਸ਼ਨ ਦੇ ਕੁੱਲ ਟੋਕਨਾਂ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਸੀਮਾ ਲੰਘਣ 'ਤੇ ਦਖਲ ਦੇ ਸਕਦਾ ਹੈ।
- ਹਰੇਕ ਸੈਸ਼ਨ ਲਈ ਟੋਕਨਾਂ ਨੂੰ ਟਰੈਕ ਕਰੋ – ਇਨਪੁਟ ਅਤੇ ਆਉਟਪੁੱਟ ਦੋਵਾਂ ਟੋਕਨਾਂ ਦੀ ਲਗਾਤਾਰ ਗਿਣਤੀ ਰੱਖੋ।
- ਲੋੜ ਪੈਣ 'ਤੇ ਸਾਰ (summarize) ਬਣਾਓ – ਇੱਕ ਵਾਰ ਨਿਰਧਾਰਤ ਸੀਮਾ ਤੱਕ ਪਹੁੰਚਣ 'ਤੇ, ਗੱਲਬਾਤ ਦੇ ਪੁਰਾਣੇ ਹਿੱਸੇ ਨੂੰ ਇੱਕ ਸਮਰਾਈਜ਼ਰ (summarizer) ਰਾਹੀਂ ਭੇਜੋ, ਫਿਰ ਕੱਚੇ ਸੁਨੇਹਿਆਂ ਨੂੰ ਸੰਖੇਪ ਸਾਰ ਨਾਲ ਬਦਲ ਦਿਓ।
- ਨਿਰੰਤਰਤਾ ਬਣਾਈ ਰੱਖੋ – ਸਾਰ ਜ਼ਰੂਰੀ ਜਾਣਕਾਰੀ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਦਾ ਹੈ ਅਤੇ ਨਾਲ ਹੀ ਨਵੀਂ ਗੱਲਬਾਤ ਲਈ ਟੋਕਨਾਂ ਦਾ ਇੱਕ ਵੱਡਾ ਹਿੱਸਾ ਖਾਲੀ ਕਰ ਦਿੰਦਾ ਹੈ।
ਸਾਰ ਬਣਾਉਣ ਨਾਲ ਸੂਖਮਤਾ (nuance) ਗੁਆਉਣ ਦਾ ਖਤਰਾ ਹੁੰਦਾ ਹੈ, ਖਾਸ ਕਰਕੇ ਤਕਨੀਕੀ ਜਾਂ ਕਾਨੂੰਨੀ ਚਰਚਾਵਾਂ ਵਿੱਚ। ਟੀਮਾਂ ਨੂੰ ਇਸਨੂੰ ਪ੍ਰੋਡਕਸ਼ਨ ਡਿਫੌਲਟ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਅਸਲ-ਦੁਨੀਆ ਦੇ ਦ੍ਰਿਸ਼ਟਾਂਤਾਂ ਦੇ ਵਿਰੁੱਧ ਸਾਰ ਦੀ ਗੁਣਵੱਤਾ ਦੀ ਜਾਂਚ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ।
ਉਹ ਇੰਸਟ੍ਰੂਮੈਂਟੇਸ਼ਨ ਜੋ ਡੈਸ਼ਬੋਰਡ ਨਹੀਂ ਦਿਖਾਉਂਦਾ
ਬਿਲਟ-ਇਨ ਬਿਲਿੰਗ ਵਿਊ ਸਾਰੇ ਯੂਜ਼ਰਾਂ ਅਤੇ ਮਾਡਲਾਂ ਦੀ ਵਰਤੋਂ ਨੂੰ ਇਕੱਠਾ ਕਰਦਾ ਹੈ, ਪਰ ਇਹ ਕਦੇ ਵੀ ਪ੍ਰਤੀ-ਸੈਸ਼ਨ ਵਾਧੇ ਦੀ ਰੇਖਾ ਨੂੰ ਨਹੀਂ ਦਿਖਾਉਂਦਾ। ਗਾਈਡ ਅਜਿਹੇ ਕਸਟਮ ਲੌਗਸ (custom logs) ਜੋੜਨ ਦੀ ਸਿਫਾਰਸ਼ ਕਰਦੀ ਹੈ ਜੋ ਇਹ ਕੈਪਚਰ ਕਰਨ:
- ਹਰੇਕ ਸੈਸ਼ਨ ਲਈ ਸ਼ੁਰੂਆਤੀ ਬਨਾਮ ਅੰਤਿਮ ਟੋਕਨ ਗਿਣਤੀ
- ਕੈਸ਼ ਹਿੱਟ ਰੇਟ (Cache hit rates)
- ਮਾਡਲ ਚੋਣ ਅਨੁਪਾਤ (ਜ
