ప్రొడక్షన్ AI API వైఫల్యాలు
మీ AI ఫీచర్ తెల్లవారుజామున 2 గంటలకు పనిచేయడం ఆగిపోయినప్పుడు, ఎర్రర్ మెసేజ్లు పూర్తి విషయాన్ని చెప్పలేవు. నేను ఒక సంవత్సరం పాటు OpenAI మరియు Anthropic ఇంటిగ్రేషన్లను నిర్వహించాను. డీబగ్గింగ్ కోసం వైఫల్యాలను వాటి అర్థం ఆధారంగా ఎలా వర్గీకరించాలో నేను నేర్చుకున్నాను.
రేట్ లిమిట్లను (Rate Limits) హ్యాండిల్ చేయడం
OpenAI 429 ఎర్రర్లకు వేర్వేరు కారణాలు ఉంటాయి. మీరు ఎలా స్పందించాలో తెలుసుకోవడానికి తప్పనిసరిగా ఎర్రర్ కోడ్ను తనిఖీ చేయాలి.
- Requests-per-minute (RPM) లిమిట్లు సెకన్లలో కోలుకుంటాయి.
- Tokens-per-minute (TPM) లిమిట్లు 60 సెకన్లలో కోలుకుంటాయి.
- మంత్లీ కోటా (Monthly quota) అయిపోతే, మీరు క్రెడిట్లను జోడించే వరకు లేదా బిల్లింగ్ సైకిల్ రీసెట్ అయ్యే వరకు అది పనిచేయదు.
కోటా సమస్యల కోసం exponential backoff ఉపయోగించకండి. అది మీ సమయాన్ని వృధా చేస్తుంది.
Anthropic 529 ఎర్రర్లు అంటే ప్రొవైడర్ ఓవర్లోడ్ అయిందని అర్థం. దీనిని 503 ఎర్రర్లా పరిగణించండి. సమస్య వారి వైపు ఉంది. కాసేపు ఆగి (Back off) మీ టీమ్కు అలర్ట్ చేయండి.
400 ఎర్రర్లను హ్యాండిల్ చేయడం
ఈ వైఫల్యాలు సాధారణంగా మీ వల్ల జరుగుతాయి. ఈ మూడు ప్యాటర్న్లను గమనించండి:
- మోడల్ వెర్షన్ మిస్మ్యాచ్లు (Model version mismatches). మీరు ఒక చోట పేరును అప్డేట్ చేసి, మీ retry handlerలో చేయకపోవచ్చు.
- కాంటెక్స్ట్ విండో ఓవర్ఫ్లో (Context window overflow). సంభాషణ చరిత్ర (conversation history) చాలా పెద్దదిగా పెరిగిపోయింది. ఇది తరచుగా తప్పుడు truncation logic వల్ల జరుగుతుంది.
- స్కీమా వాలిడేషన్ వైఫల్యాలు (Schema validation failures). మీ JSON స్ట్రక్చర్లో సపోర్ట్ చేయని రకాలు లేదా రికర్సివ్ రిఫరెన్స్లు ఉండవచ్చు.
వీటిని పరిష్కరించడానికి, 400 ఎర్రర్ల కోసం పూర్తి రిక్వెస్ట్ పేలోడ్ను (request payload) లాగ్ చేయండి. ముందుగా యూజర్ డేటాను మాస్క్ చేయండి (Redact). ఏ ఫీల్డ్ విఫలమైందో రెస్పాన్స్ బాడీ మీకు ఖచ్చితంగా చెబుతుంది.
టైమ్ అవుట్లను (Timeouts) హ్యాండిల్ చేయడం
టైమ్ అవుట్లను ట్రాక్ చేయడం కష్టం, ఎందుకంటే ప్రొవైడర్ వైపు ఎలాంటి తప్పు కనిపించదు.
- కనెక్ట్ టైమ్ అవుట్ (Connect timeout). హ్యాండ్షేక్ విఫలమైంది. ఇది ప్రొవైడర్ బ్రౌనౌట్స్ (brownouts) లేదా DNS సమస్యల సమయంలో జరుగుతుంది. మీ అవుట్బౌండ్ నెట్వర్క్ను తనిఖీ చేయండి.
- రీడ్ టైమ్ అవుట్ (Read timeout). మోడల్ ప్రారంభమైంది కానీ పూర్తి కాలేదు. మీ యాప్ పార్షియల్ స్ట్రీమింగ్ అవుట్పుట్లను (partial streaming outputs) హ్యాండిల్ చేయాలి.
- గేట్వే టైమ్ అవుట్ (504). మీ ప్రాక్సీ ముందుగా టైమ్ అవుట్ అయింది. రిక్వెస్ట్ ఇంకా ప్రొవైడర్ వద్ద నడుస్తూ ఉండవచ్చు. మీరు మళ్ళీ ప్రయత్నించే ముందు deduplication ఉపయోగించండి.
డీబగ్ చేయడానికి, మీ కనెక్ట్ టైమ్ అవుట్ను రీడ్ టైమ్ అవుట్ నుండి వేరు చేయండి. లేటెన్సీ (latency) ఎక్కడ ఉందో తెలుసుకోవడానికి time-to-first-token ను లాగ్ చేయండి.
ప్రొవైడర్ సమస్యలను హ్యాండిల్ చేయడం
- 500 ఎర్రర్ తరచుగా రెండు సెకన్ల తర్వాత ఒకసారి రిట్రై చేయడం ద్వారా పరిష్కరించబడుతుంది.
- 503 ఎర్రర్ అంటే సర్వీస్ క్షీణించిందని (degraded) అర్థం. ప్రొవైడర్ స్టేటస్ పేజీలో ఏదైనా సమస్య (incident) కనిపిస్తే, circuit breaker ఉపయోగించండి.
- ఏ మోడల్ వెర్షన్ విఫలమైందో ఎల్లప్పుడూ రికార్డ్ చేయండి. వేర్వేరు మోడల్లకు వేర్వేరు విశ్వసనీయత స్థాయిలు (reliability levels) ఉంటాయి.
లాగ్ల నుండి నేరుగా Slack కి వెళ్లడం ఆపండి. ముందుగా ప్రొవైడర్ స్టేటస్ పేజీని తనిఖీ చేయండి. ఇది మీ 20 నిమిషాల ఆందోళనను తగ్గిస్తుంది.
Optional learning community: https://t.me/GyaanSetuAi
