📈 Capstone: AI API की लागत और भरोसे का पूरा विश्लेषण
500 log rows → cost per endpoint, error rates, p95-ish latency — और आख़िर में एक असली engineering memo
प्रो धारा पूरी कर रहे learners — जो SUMIF/COUNTIF जैसे formulas देख चुके हैं और अब एक पूरा, engineer-जैसा विश्लेषण अपने दम पर करना चाहते हैं
🎯 आपके हाथ में होगा: एक 1-page engineering memo (कुल लागत, top cost drivers, error rates, p95-ish latency और साफ़ सिफ़ारिशें) + पूरी analysis वाली spreadsheet — portfolio या GitHub पर रखने लायक।
डेटासेट: api_usage.csv — 30 दिनों के AI-API logs (500 rows)
नमूना (synthetic) डेटा — अभ्यास के लिए बनाया गया। किसी असली कंपनी या असली दरों का डेटा नहीं है। — api_usage.csv डाउनलोड करें
❝ date ❞→ request की तारीख़ (30 दिनों के logs)❝ endpoint ❞→ API का कौन-सा रास्ता call हुआ — /chat, /summarize, /classify या /translate❝ model_tier ❞→ model का आकार — small (सस्ता, हल्का) या large (महँगा, ताक़तवर)❝ input_tokens ❞→ request में भेजे गए tokens — input जितना लंबा, ख़र्च उतना ज़्यादा❝ output_tokens ❞→ जवाब में मिले tokens — output के tokens अक्सर ज़्यादा महँगे होते हैं❝ latency_ms ❞→ जवाब आने में लगा समय, milliseconds में❝ status ❞→ नतीजा — 200 (सफल), 429 (rate limit: एक साथ बहुत requests), 500 (server error)
क़दम-दर-क़दम
- Step 1: फ़ाइल खोलिए और डेटा को पहचानिए — api_usage.csv को अपने spreadsheet ऐप में खोलिए। गिनकर पक्का कीजिए: header छोड़कर 500 rows और 7 columns — date, endpoint, model_tier, input_tokens, output_tokens, latency_ms, status। किन्हीं 3 rows को ज़ोर से पढ़िए और देखिए कि आप हर value का मतलब बोल पा रहे हैं। छोटी जीत: एक log row अब आपको कहानी जैसी पढ़ने आती है — 'इस दिन /chat पर large model से इतने tokens गए, इतना समय लगा, नतीजा 200'।
- Step 2: हर row की लागत निकालिए (नया column: cost_inr) — Column H में नया column cost_inr बनाइए। इस project की दरें सिर्फ़ EXAMPLE हैं (असली providers की दरें अलग होती हैं और बदलती रहती हैं): small = ₹0.02 प्रति 1K input tokens + ₹0.06 प्रति 1K output tokens; large = ₹0.25 प्रति 1K input + ₹0.75 प्रति 1K output। H2 में लिखिए =IF(C2="small", D2/1000*0.02 + E2/1000*0.06, D2/1000*0.25 + E2/1000*0.75) और नीचे row 501 तक खींचिए, फिर =SUM(H2:H501) से 30 दिनों की कुल लागत देखिए — यही आपकी छोटी जीत है। (पैसे की बात चली है तो एक याद: यह पूरा project मुफ़्त tools से होता है — कोई भी course/app जो OTP, PIN या bank detail माँगे, वह scam है।)
- Step 3: Endpoint-wise लागत — top cost driver ढूँढिए — एक नई summary sheet बनाइए। हर endpoint के लिए कुल लागत =SUMIF(B:B,"/chat",H:H) और requests की गिनती =COUNTIF(B:B,"/chat") निकालिए — यही /summarize, /classify और /translate के लिए भी। कुल लागत ÷ गिनती से per-request लागत निकालिए, और =SUMIFS(H:H,B:B,"/chat",C:C,"large") जैसे formulas से देखिए कि हर endpoint का कितना ख़र्च large tier से आ रहा है। छोटी जीत: आप एक लाइन में कह सकते हैं — 'सबसे ज़्यादा पैसा इस endpoint पर जा रहा है, और उसमें भी large tier पर'।
- Step 4: Error rate — कौन-सा endpoint कितना fail हो रहा है — Summary sheet में हर endpoint के errors गिनिए: =COUNTIFS(B:B,"/chat",G:G,429)+COUNTIFS(B:B,"/chat",G:G,500), और error rate % = errors ÷ कुल requests × 100। 429 (rate limit) और 500 (server error) को अलग-अलग भी गिनिए — क्योंकि दोनों का इलाज अलग है: 429 पर धीमे होकर retry करना समझ आता है, 500 server की अपनी गड़बड़ है। छोटी जीत: चारों endpoints की error rate वाली एक साफ़ table, जिसमें सबसे 'बीमार' endpoint साफ़ दिखता है।
- Step 5: p95-ish latency — small vs large की सच्ची रफ़्तार — Average धोखा दे सकता है — p95 बताता है कि 100 में से 95 requests इससे तेज़ थीं, यानी 'बुरे दिन' कितने बुरे होते हैं। Data को model_tier (column C) से sort या filter कीजिए, फिर small tier की latency_ms values पर =PERCENTILE(range,0.95) लगाइए — और यही large के लिए। PERCENTILE न चले तो देसी तरीक़ा: उस tier की rows को latency_ms से घटते क्रम में sort कीजिए और ऊपर की लगभग 5% rows के ठीक नीचे वाली value पढ़ लीजिए — इसीलिए हम इसे p95-ish कहते हैं। छोटी जीत: दो numbers जो बताते हैं कि large tier धीमा होने पर कितना धीमा होता है।
- Step 6 (वैकल्पिक): pandas से वही जवाब दोबारा निकालिए — यह step पूरी तरह वैकल्पिक है — laptop या मुफ़्त online Python notebook न हो तो बेझिझक छोड़िए, project फिर भी पूरा है। अगर है, तो नीचे वाले prompt से pandas script बनवाइए, चलाइए, और pandas के numbers को अपनी spreadsheet के numbers से मिलाइए। p95 में हल्का-सा फ़र्क़ आ जाए तो घबराइए नहीं — percentile गिनने के तरीक़े थोड़े अलग होते हैं; पर लागत या error rate में बड़ा फ़र्क़ दिखे तो कहीं ग़लती है, और उसे ढूँढ निकालना ही असली engineering है। छोटी जीत: दो अलग रास्तों से एक ही जवाब — अब आपको अपने numbers पर भरोसा है।
- Step 7: Engineering memo लिखिए — यही आपका deliverable है — अब numbers को फ़ैसलों में बदलिए। Cache करने लायक वही endpoint है जहाँ एक जैसी requests बार-बार आती हैं और volume ऊँचा है; और small tier वहाँ काफ़ी हो सकता है जहाँ काम सरल है पर large tier छोटे-छोटे outputs के लिए महँगा पड़ रहा है — Step 3 का tier breakdown यहीं काम आएगा। नीचे वाले prompt में अपने असली numbers भरकर memo का draft बनवाइए, फिर हर आँकड़े को अपनी sheet से खुद मिलाइए — AI draft देता है, ज़िम्मेदारी आपकी है। Memo में 'सीमाएँ' section ज़रूर रखिए: नमूना डेटा, EXAMPLE दरें, और बीते 30 दिनों का विश्लेषण भविष्य की गारंटी नहीं होता।
अपनी जाँच
- क्या मैंने cost formula चलाने से पहले small/large की दरें दोबारा पढ़ीं, और memo में साफ़ लिखा कि ये EXAMPLE दरें हैं?
- क्या चारों endpoints की SUMIF लागतें जोड़ने पर वही number आता है जो =SUM(H2:H501) देता है? (न मिले तो कहीं ग़लती है — पहले उसे ढूँढिए)
- क्या error rate और p95 का हर आँकड़ा मैंने formulas से खुद निकाला — सिर्फ़ AI के बताए number पर भरोसा नहीं किया?
- क्या memo की हर सिफ़ारिश के पीछे मेरी sheet का कोई number है, जिस पर मैं उँगली रखकर दिखा सकता/सकती हूँ?
- क्या memo में साफ़ लिखा है कि यह बीते 30 दिनों का विश्लेषण है — आगे भी ऐसा ही होगा, इसकी गारंटी नहीं?
- क्या मैंने हर जगह डेटा को नमूना (synthetic) बताया और कहीं भी बढ़ा-चढ़ाकर दावा नहीं किया?
यह प्रोजेक्ट इंटरैक्टिव तरीके से कीजिए
क़दमों पर निशान, तैयार AI प्रॉम्प्ट, और पोर्टफ़ोलियो README — सब मुफ़्त, बिना लॉगिन।