તમારો AI એજન્ટ પ્રતિસાદ (response) ગુમાવવાથી ડબલ-ચાર્જ કરી શકે છે
જો તમારો AI એજન્ટ કાર્ડ ચાર્જ કરવા માટે કોઈ ટૂલને કોલ કરે અને નેટવર્ક પ્રતિસાદ (response) ગુમાવી દે, તો તમારો એજન્ટ ખરાબ રીતે નિષ્ફળ જાય છે. તે જાણ્યા વગર જ ગ્રાહક પાસેથી બે વાર ચાર્જ કરી લે છે.
પૈસા પહેલેથી જ ટ્રાન્સફર થઈ ગયા છે. એજન્ટે ક્યારેય "ok" સાંભળ્યું નથી. તે એ જ કરે છે જે દરેક રીટ્રાય લૂપ (retry loop) કરે છે: તે ફરીથી પ્રયાસ કરે છે. તે એ જ પ્રોમ્પ્ટ અને એ જ આર્ગ્યુમેન્ટ્સ (arguments) નો ઉપયોગ કરે છે. આના કારણે બીજી વાર ચાર્જ થઈ જાય છે.
રીટ્રાય (retry) એ નેટવર્ક ઇવેન્ટ નથી. તે એવા સાઇડ ઇફેક્ટ (side effect) વિશેનો નિર્ણય છે જે કદાચ પહેલેથી જ થઈ ગઈ હોય.
backoff અને jitter જેવા સ્ટાન્ડર્ડ રીટ્રાય ટૂલ્સ રીટ્રાયને વ્યવસ્થિત બનાવે છે. તેઓ ડબલ-ચાર્જ રોકવા માટે કંઈ જ નથી કરી શકતા.
તમારે એક આઈડેમપોટન્સી લેજર (idempotency ledger) ની જરૂર છે. આ એક યુનિક કી (unique key) નો ઉપયોગ કરીને સુનિશ્ચિત કરે છે કે કોઈ ક્રિયા વધુમાં વધુ એક જ વાર થાય.
ટૂલ કોલ નિષ્ફળ જવાની બે રીતો છે:
- રિક્વેસ્ટ (request) ગુમાવાઈ ગઈ હતી. ક્રિયા ક્યારેય થઈ જ નથી. ફરીથી પ્રયાસ કરવો (retrying) સુરક્ષિત છે.
- પ્રતિસાદ (response) ગુમાવાઈ ગયો હતો. ક્રિયા પહેલેથી જ થઈ ગઈ છે. ફરીથી પ્રયાસ કરવાથી ડુપ્લીકેટ (duplicate) થઈ જાય છે.
એજન્ટ માટે, આ બંને સમાન લાગે છે. બંને ટાઈમઆઉટ (timeout) અથવા ડ્રોપ્ડ કનેક્શન (dropped connection) જેવા લાગે છે.
જો કોઈ ટૂલની સાઇડ ઇફેક્ટ પેમેન્ટ, ઈમેલ અથવા રિફંડ જેવી હોય, તો તમે સાદા રીટ્રાય પર આધાર રાખી શકતા નથી. તમારે આઈડેમપોટન્સી કી (idempotency key) નો ઉપયોગ કરવો જ પડશે.
આ કેવી રીતે સુધારવું:
- તમારા ટૂલ્સને ટેગ કરો. ઓળખો કે કયા ટૂલ્સની સાઇડ ઇફેક્ટ્સ અફર (irreversible) છે.
- ડેટરમિનિસ્ટિક કીઝ (deterministic keys) નો ઉપયોગ કરો. વર્કફ્લો ID, સ્ટેપ અને આર્ગ્યુમેન્ટ્સના આધારે એક સ્ટેબલ કી બનાવો. LLM આર્ગ્યુમેન્ટ્સ બદલી નાખે તે પહેલાં આ કરો.
- પ્રોવાઈડર કીઝનો ઉપયોગ કરો. જો તમે Stripe નો ઉપયોગ કરો છો, તો તેમની આઈડેમપોટન્સી કી પાસ કરો. ચાર્જ રોકવા માટે પ્રોવાઈડરે તે પુનરાવર્તનને ઓળખવું જરૂરી છે.
- તમારા પોતાના ટૂલ્સ માટે લેજર બનાવો. તમે જે સાઇડ ઇફેક્ટ્સના માલિક છો, તેના માટે યુનિક કન્સ્ટ્રેન્ટ (unique constraint) સાથેનું ડેટાબેઝ ટેબલ વાપરો. આ સુનિશ્ચિત કરે છે કે તમારું સિસ્ટમ ફરીથી પ્રયાસ કરતા પહેલા પરિણામ રેકોર્ડ કરે છે.
"at-least-once" ને "exactly-once" સમજવાની ભૂલ ન કરો. ડિસ્ટ્રિબ્યુટેડ સિસ્ટમ્સમાં, તમે at-most-once ડિલિવરીને at-least-once રીટ્રાય અને deduplication લેજર સાથે જોડીને "exactly-once" મેળવી શકો છો.
રાઈટ્સ (writes) ને રીડ્સ (reads) ની જેમ લેવાનું બંધ કરો. રીડને રીટ્રાય કરવું મફત છે. રાઈટને રીટ્રાય કરવા માટે પૈસા ખર્ચાય છે.
સ્ત્રોત: https://dev.to/0012303/your-ai-agent-will-double-charge-on-a-lost-response-5eed
વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi