యూనిట్లు
1. మొబైల్ డెవలప్‌మెంట్‌లో AIకి పరిచయం: పాత్రలు, సరిహద్దులు, ప్రమాణీకరణ మరియు భద్రత 2. ఆర్టిఫిషియల్ ఇంటెలిజెన్స్‌తో మొబైల్ కోడ్ జనరేషన్: కోట్లిన్, స్విఫ్ట్ మరియు క్రాస్-ప్లాట్‌ఫారమ్ డెవలప్‌మెంట్ 3. ఆర్టిఫిషియల్ ఇంటెలిజెన్స్‌తో ఇంటర్‌ఫేస్ డిజైన్ మరియు UI కోడ్ జనరేషన్ 4. ఆన్-డివైస్ AI: కోర్ ML, TensorFlow Lite మరియు ML కిట్ 5. క్లౌడ్ AI మరియు LLM API ఇంటిగ్రేషన్: చాట్, ఫ్లో మరియు సెక్యూరిటీ 6. కృత్రిమ మేధస్సుతో పరీక్ష జనరేషన్: యూనిట్, ఇంటర్‌ఫేస్ మరియు ఆటోమేషన్ పరీక్షలు 7. ఆర్టిఫిషియల్ ఇంటెలిజెన్స్‌తో డీబగ్గింగ్ మరియు క్రాష్ అనాలిసిస్ 8. పనితీరు మరియు బ్యాటరీ ఆప్టిమైజేషన్: కృత్రిమ మేధస్సుతో వేగవంతమైన మరియు సమర్థవంతమైన అప్లికేషన్లు 9. గోప్యత, అనుమతులు మరియు సురక్షిత ఉపయోగం 10. స్టోర్ విడుదల: యాప్ స్టోర్, Google Play మరియు AI అనుకూలత 11. ఎండ్-టు-ఎండ్ ప్రాజెక్ట్, వృత్తిలో ఆర్టిఫిషియల్ ఇంటెలిజెన్స్ మరియు రోడ్‌మ్యాప్ యొక్క బాధ్యతాయుత వినియోగం
యూనిట్ 5 / 11

క్లౌడ్ AI మరియు LLM API ఇంటిగ్రేషన్: చాట్, ఫ్లో మరియు సెక్యూరిటీ

లాభాలు:

  • క్లయింట్‌లో API కీని ఉంచకుండా బ్యాక్-ఎండ్ ప్రాక్సీ ద్వారా వెళ్లే సురక్షిత క్లౌడ్ LLM ఆర్కిటెక్చర్‌ను ఏర్పాటు చేయగల సామర్థ్యం
  • స్ట్రీమింగ్‌తో గ్రహించిన వేగాన్ని పెంచే బలమైన ఇంటిగ్రేషన్‌లను వ్రాయగల సామర్థ్యం మరియు సమయం ముగిసినట్లు, నెట్‌వర్క్ లోపాలు మరియు వేగ పరిమితులు వంటి పరిస్థితులను సున్నితంగా నిర్వహించగల సామర్థ్యం
  • పంపిన టోకెన్‌ను తగ్గించడం ద్వారా ఖర్చును తగ్గించగల సామర్థ్యం మరియు క్లౌడ్‌కు వెళ్లే ముందు వ్యక్తిగత డేటా యొక్క ఆవశ్యకతను ప్రశ్నించడం

పరికరంలో AI శక్తివంతమైనది కానీ పరిమితం. మీరు యాప్‌కి నిజంగా “స్మార్ట్ చాట్ అసిస్టెంట్,” సుదీర్ఘ వచన సారాంశం లేదా సంక్లిష్టమైన సృజనాత్మక ఉత్పత్తిని జోడించాలనుకున్నప్పుడు, మీకు ఫోన్‌లో సరిపోయేంత పెద్ద మోడల్‌లు అవసరం. ఇక్కడే క్లౌడ్ AI అమలులోకి వస్తుంది: మీ అప్లికేషన్ API (అప్లికేషన్ ప్రోగ్రామింగ్ ఇంటర్‌ఫేస్ - రెండు సాఫ్ట్‌వేర్‌లు ఒకదానికొకటి డేటాను పంపుకునే మరియు స్వీకరించే ప్రామాణిక ఇంటర్‌ఫేస్) ద్వారా పెద్ద భాషా మోడల్ (LLM)కి కనెక్ట్ అవుతుంది. ఈ యూనిట్‌లో క్లౌడ్ LLMని మొబైల్ అప్లికేషన్‌లో సురక్షితమైన, వేగవంతమైన మరియు ఖర్చుతో కూడిన పద్ధతిలో ఎలా ఇంటిగ్రేట్ చేయాలో నేర్చుకుంటాము. కీలకమైన ప్రాధాన్యత భద్రతపై ఉంటుంది: తప్పుగా ఇన్‌స్టాల్ చేయబడిన LLM ఇంటిగ్రేషన్ మీ API కీని లీక్ చేసి వేల పౌండ్ల విలువైన బిల్లులకు దారితీయవచ్చు.

ఆర్కిటెక్చర్ యొక్క గోల్డెన్ రూల్: క్లయింట్‌పై కీని ఉంచండి

క్లౌడ్ AI ఇంటిగ్రేషన్‌లో చేయగలిగే అత్యంత ప్రమాదకరమైన తప్పు ఏమిటంటే, మొబైల్ అప్లికేషన్ కోడ్‌లో నేరుగా API కీ (సేవను ఉపయోగించడాన్ని అనుమతించే రహస్య పాస్‌వర్డ్) పొందుపరచడం. మొబైల్ అప్లికేషన్‌లు వినియోగదారు పరికరానికి డౌన్‌లోడ్ చేయబడతాయి మరియు కోడ్ రివర్స్ ఇంజనీరింగ్ ద్వారా చదవబడుతుంది — కంపైల్ చేసిన అప్లికేషన్‌ను అన్వయించడం మరియు దానిలో ఏముందో చూడడం. మీ కీ యాప్‌లో ఉంటే, ఎవరైనా దాన్ని సంగ్రహించి, మీ ఖాతా నుండి అపరిమిత అభ్యర్థనలను చేయవచ్చు.

సరైన నిర్మాణం ఇది: మొబైల్ అప్లికేషన్ మీ స్వంత బ్యాకెండ్ సర్వర్‌కు అభ్యర్థనలను పంపుతుంది (మీరు నియంత్రించే ప్రాక్సీ సర్వర్); కీ సర్వర్‌లో మాత్రమే ఉంటుంది; సర్వర్ LLM సేవకు వెళ్లి అప్లికేషన్‌కు ప్రతిస్పందనను అందిస్తుంది. ఈ మిడిల్‌వేర్ స్పీడ్ క్యాపింగ్, దుర్వినియోగ నివారణ మరియు వ్యయ నియంత్రణను కూడా అందిస్తుంది.

అప్రోచ్

కీ ఎక్కడ ఉంది

భద్రత

కీ అప్లికేషన్‌లో ఉంది (FALSE)

క్లయింట్‌లో, పబ్లిక్

అది లీక్ అవుతుంది, బిల్లు పేలుతుంది

కీ బ్యాకెండ్‌లో ఉంది (TRUE)

సర్వర్‌లో, దాచబడింది

సురక్షితమైనది, నియంత్రించదగినది

హెచ్చరిక: మీరు క్లౌడ్ LLM ఇంటిగ్రేషన్ కోసం AIని అడిగినప్పుడు, అది మీ సౌలభ్యం కోసం నేరుగా అప్లికేషన్ కోడ్‌లో కీని వ్రాసే ఉదాహరణను అందించవచ్చు. దీన్ని ఎప్పుడూ ప్రత్యక్ష ప్రసారం చేయవద్దు. ప్రాంప్ట్‌లో "API కీ క్లయింట్‌లో ఉండకూడదు, బ్యాకెండ్ ప్రాక్సీ ద్వారా వెళ్లండి" అనే వాక్యాన్ని తప్పకుండా చేర్చండి.

స్ట్రీమింగ్: గ్రహించిన వేగాన్ని పెంచడం

LLM సమాధానాలు చాలా పొడవుగా ఉంటాయి మరియు వాటిని పూర్తిగా రూపొందించడానికి సెకన్లు పట్టవచ్చు. వినియోగదారుని ఖాళీ స్క్రీన్‌పై వేచి ఉంచడం ఒక చెడ్డ అనుభవం. పరిష్కారం స్ట్రీమింగ్ - సమాధానం పదం ద్వారా ఉత్పత్తి చేయబడినట్లుగా ప్రదర్శిస్తుంది. వినియోగదారు ChatGPTలో వలె టెక్స్ట్ స్పెల్లింగ్‌ను పర్యవేక్షిస్తారు; ఇది ఊహించిన వేగం మరియు పటిమను నాటకీయంగా పెంచుతుంది. మొబైల్‌లో ఫ్లో అంటే సర్వర్ నుండి ఇంటర్‌ఫేస్‌కు అవి వచ్చినప్పుడు ముక్కలు (టోకెన్‌లు - మోడల్ ఉత్పత్తి చేసిన టెక్స్ట్ ముక్క) జోడించడం. AIకి ఇంటిగ్రేషన్‌ను ప్రింట్ చేస్తున్నప్పుడు ఫ్లోను స్పష్టంగా అభ్యర్థించండి.

చిట్కా: స్ట్రీమింగ్ ప్రతిస్పందనలో "పాజ్" బటన్‌ను జోడించండి. వినియోగదారు తనకు కావలసిన సమాధానం వచ్చినప్పుడు ఉత్పత్తిని ఆపగలగాలి; ఇది అనుభవాన్ని మెరుగుపరుస్తుంది మరియు అనవసరమైన టోకెన్ ఉత్పత్తిని తగ్గించడం ద్వారా ఖర్చును తగ్గిస్తుంది. సుదీర్ఘ సమాధానం మధ్యలో, వినియోగదారు ఇప్పటికే వారి సమాధానాన్ని కనుగొన్నారు.

ఖర్చు, ఆలస్యం మరియు లోపం నిర్వహణ

క్లౌడ్ LLM ప్రతి అభ్యర్థనతో డబ్బు ఖర్చు (టోకెన్‌కు రుసుము) మరియు సమయ ఖర్చు (లేటెన్సీ)ని కలిగి ఉంటుంది. మూడు విభాగాలు తప్పనిసరి. Cost: limit prompt and response length, do not send unnecessarily long system instructions, default to small and cheap model if possible. జాప్యం: స్ట్రీమింగ్‌ని ఉపయోగించండి, గడువు ముగిసింది, నెట్‌వర్క్ నెమ్మదిగా ఉంటే వినియోగదారుకు తెలియజేయండి. లోపం: నెట్‌వర్క్ అంతరాయం, సేవ 429 (చాలా ఎక్కువ అభ్యర్థనలు) లేదా 500 (సర్వర్ లోపం); ప్రతిదాన్ని సున్నితంగా నిర్వహించండి, యాప్‌ను క్రాష్ చేయవద్దు. అలాగే, LLM కొన్నిసార్లు అర్థరహితమైన లేదా తప్పు (భ్రాంతి) సమాధానాలను ఇస్తుంది; క్లిష్టమైన ప్రాంతాల్లో సమాధానం యొక్క ధృవీకరణ పొరను జోడించండి.

మూడు చిన్న కేసులు

కేసు 1 - లీక్ చేయబడిన కీ. ఒక స్టార్టప్ త్వరగా బయటపడేందుకు OpenAI కీని నేరుగా దాని రియాక్ట్ నేటివ్ యాప్‌లో పొందుపరిచింది. యాప్ విడుదలైన మూడు వారాల తర్వాత, కీ రివర్స్ ఇంజినీరింగ్ చేయబడింది మరియు రాత్రిపూట $2,400 విలువైన వినియోగం చేయబడింది. బృందం కీని ఉపసంహరించి, బ్యాకెండ్ ప్రాక్సీని సెటప్ చేయాల్సి వచ్చింది. పాఠం: సౌలభ్యం కోసం తీసుకున్న సత్వరమార్గం అత్యంత ఖరీదైన మార్గంగా మారింది.

కేసు 2 - ప్రవాహంతో డ్రాప్అవుట్ తగ్గింది. ఒక ఎడ్యుకేషన్ యాప్ మొదట స్ట్రీమింగ్ లేకుండానే దాని Q&A ఫీచర్‌ని విడుదల చేసింది; 6 సెకన్ల నిష్క్రియ నిరీక్షణ తర్వాత వినియోగదారులు నిష్క్రమిస్తున్నారు. ప్రవాహాన్ని జోడించినప్పుడు, మొదటి పదం 0.8 సెకన్లలో కనిపించడం ప్రారంభించింది మరియు విడిచిపెట్టే రేటు 48% నుండి 12%కి పడిపోయింది. అదే మోడల్, అదే వేగం — ప్రదర్శనలో తేడా మాత్రమే.

కేసు 3 - వ్యయ నియంత్రణ. ఒక యాప్ ప్రతి వినియోగదారు సందేశంతో మొత్తం చాట్ చరిత్రను మోడల్‌కు పంపుతోంది; సుదీర్ఘ సంభాషణలలో, ఒక అభ్యర్థన 8,000 టోకెన్‌లకు చేరుకుంది, దీనితో ఖర్చు పెరిగింది. చివరి కొన్ని సందేశాలు మరియు సారాంశాన్ని పంపడం ద్వారా, బృందం ప్రతి అభ్యర్థనకు టోకెన్‌లను 70% తగ్గించి, నెలవారీ బిల్లును మూడవ వంతుకు తగ్గించింది. పాఠం: మీరు పంపిన వాటిని కొలవండి.

బలహీనమైన ప్రాంప్ట్ / బలమైన ప్రాంప్ట్

బలహీనమైన ప్రాంప్ట్: "నా యాప్‌కి ChatGPT వంటి చాట్‌ని జోడించండి."

శక్తివంతమైన ప్రాంప్ట్: "నా iOS/Swift అప్లికేషన్‌కు చాట్ అసిస్టెంట్‌ని జోడించండి. ఆర్కిటెక్చర్: అప్లికేషన్ నా స్వంత బ్యాకెండ్‌కి అభ్యర్థనను పంపుతుంది, LLM API కీ క్లయింట్‌లో లేదు, అది ప్రాక్సీ ద్వారా వెళుతుంది. - ప్రతిస్పందన స్ట్రీమింగ్ వస్తుంది, పదం పదం ప్రదర్శించబడుతుంది - 'స్టాప్' బటన్ ఉత్పత్తిని అంతరాయం కలిగిస్తుంది - 5040 సమయంలో లోపం ఏర్పడుతుంది, నెట్‌వర్క్ 5042 సమయ వ్యవధిని తగ్గిస్తుంది. చాట్ చరిత్ర: చివరి 6 సందేశాలను పంపండి + సారాంశం (ధర నియంత్రణ) ముందుగా నిర్మాణ రేఖాచిత్రాన్ని వివరించండి, ఆపై క్లయింట్ మరియు ప్రాక్సీ కోడ్‌ను విడిగా ఇవ్వండి."

కాపీ చేయగల టెంప్లేట్లు

సురక్షిత ఆర్కిటెక్చర్ టెంప్లేట్:"నా [ప్లాట్‌ఫారమ్] అప్లికేషన్‌లో క్లౌడ్ LLM ఇంటిగ్రేషన్‌ని డిజైన్ చేయండి. రూల్: API కీ బ్యాకెండ్‌లో మాత్రమే. క్లయింట్ -> నా ప్రాక్సీ -> LLM. ప్రాక్సీలో: ప్రామాణీకరణ, ప్రతి వినియోగదారు ధర పరిమితి, లాగింగ్‌ను అభ్యర్థించండి. క్లయింట్ జాబితా మరియు ప్రాక్సీ కోడ్‌ని విడిగా ఎగుమతి చేయండి."

స్ట్రీమింగ్ టెంప్లేట్: "ఈ చాట్ స్క్రీన్‌కు స్ట్రీమింగ్ ప్రతిస్పందనను జోడించండి:- మెసేజ్ బబుల్‌కు స్నిప్పెట్‌లను జోడించండి- టైప్ చేస్తున్నప్పుడు కర్సర్/యానిమేషన్‌ను చూపండి- 'ఆపు' బటన్ స్ట్రీమ్‌ను రద్దు చేయండి- పాక్షిక వచనాన్ని భద్రపరుచుకోండి మరియు స్ట్రీమ్ ముగుస్తున్నప్పుడు లోపం ఉంటే హెచ్చరిస్తుంది[ఉన్న కోడ్]"

కాస్ట్-లేటెన్సీ టెంప్లేట్:"ఈ LLM ఇంటిగ్రేషన్‌లో ఖర్చు మరియు జాప్యాన్ని తగ్గించండి:- నేను పంపిన టోకెన్‌ను ఎలా తగ్గించగలను (చరిత్ర సంక్షిప్తీకరణ, సారాంశం)?- ఏ సందర్భంలో చిన్నది/చౌకైన మోడల్ సరిపోతుంది?- గడువు ముగియడం మరియు వ్యూహాన్ని మళ్లీ ప్రయత్నించండి[కోడ్]"

ఫాల్ట్ టాలరెన్స్ టెంప్లేట్: "ఈ LLM కాల్‌ను స్థితిస్థాపకంగా మార్చండి:- నెట్‌వర్క్ లేకుండా ప్రత్యేక ప్రవర్తన, గడువు ముగిసింది, 429 (రేటు పరిమితి), 500 (సర్వర్)- సాంకేతికత లేని, వినియోగదారుకు మర్యాదపూర్వక సందేశం- క్లిష్టమైన ప్రత్యుత్తరాలలో[కోడ్] భ్రాంతి ప్రమాదానికి వ్యతిరేకంగా ధృవీకరణ గమనిక"

సాధారణ తప్పులు

  • అప్లికేషన్‌లో API కీని పొందుపరచడం. అత్యంత ఖరీదైన మరియు సాధారణ భద్రతా బగ్; కీ ఖచ్చితంగా వెనుక భాగంలో ఉంటుంది.
  • ప్రవాహాన్ని ఉపయోగించడం లేదు. వినియోగదారుని సుదీర్ఘ సమాధానాల కోసం వేచి ఉంచడం వినియోగదారుని దూరం చేస్తుంది.
  • ప్రతి అభ్యర్థనతో మొత్తం చాట్ చరిత్రను పంపుతోంది. ఇది టోకెన్ ధర మరియు జాప్యాన్ని గుణిస్తుంది.
  • దోష పరిస్థితులను దాటవేయడం. 429/500/సమయం ముగియకపోతే అప్లికేషన్ క్రాష్ అవుతుంది లేదా స్తంభింపజేస్తుంది.
  • ప్రశ్న లేకుండా LLM సమాధానాన్ని సరైనదిగా పరిగణించడం. భ్రాంతి నిజమైనది; క్లిష్టమైన ప్రాంతంలో ధృవీకరణ పొరను జోడించండి.
  • వినియోగదారు డేటాను అనవసరమైన LLMకి పంపడం. క్లౌడ్‌కి వెళ్లే ముందు వ్యక్తిగత డేటా అవసరమా లేదా ముసుగు వేయాలా అని అడగండి.

సారాంశంలో

క్లౌడ్ LLM పరికరంలో సరిపోని గొప్ప సామర్థ్యాలను మొబైల్‌కు అందిస్తుంది, అయితే భద్రత మరియు వ్యయ క్రమశిక్షణ అవసరం. గోల్డెన్ రూల్: API కీ క్లయింట్‌లో ఎప్పుడూ ఉండదు, ఇది బ్యాకెండ్ ప్రాక్సీ ద్వారా వెళుతుంది. ప్రవాహం గ్రహించిన వేగం మరియు నిలుపుదలని బాగా పెంచుతుంది; "స్టాప్" బటన్ ద్వారా మద్దతు ఉంది. పంపిన టోకెన్‌ను తగ్గించడం ద్వారా ఖర్చు నిర్ణయించబడుతుంది; అన్ని దోష కేసులను సునాయాసంగా నిర్వహించడం ద్వారా స్థితిస్థాపకత సాధించబడుతుంది. LLM సమాధానాలలో భ్రాంతులు ఉండవచ్చు; క్లిష్టమైన ప్రాంతాల్లో, ధృవీకరణ అవసరం మరియు క్లౌడ్‌కు పంపే ముందు వ్యక్తిగత డేటా సమీక్షించబడుతుంది.

అప్లికేషన్ టాస్క్

“టెక్స్ట్ సారాంశం” లేదా “చాట్” ఫీచర్ కోసం “సెక్యూర్ ఆర్కిటెక్చర్ టెంప్లేట్” ఉపయోగించి AI నుండి క్లయింట్ + బ్యాకెండ్ ప్రాక్సీ డిజైన్‌ను అభ్యర్థించండి. రూపొందించిన డిజైన్‌లోని బ్యాకెండ్‌లో మాత్రమే API కీ ఉందని ధృవీకరించండి. ఆపై "ఖర్చు-ఆలస్యం నమూనా"తో పంపబడిన టోకెన్‌ను తగ్గించడానికి కనీసం రెండు మార్గాలను సంగ్రహించండి మరియు లోపం పరిస్థితి కోసం వినియోగదారుకు ప్రదర్శించబడే మర్యాదపూర్వక సందేశాన్ని వ్రాయండి (ఉదా. 429).

చెక్లిస్ట్

  • [ ] API కీ బ్యాకెండ్‌లో ఉందని మరియు క్లయింట్‌లో లేదని నేను ధృవీకరించాను
  • [ ] నేను ప్రతిస్పందనను ప్రసారం చేసాను మరియు 'పాజ్' బటన్‌ను జోడించాను
  • [ ] నేను సమయం ముగిసింది, నెట్‌వర్క్ లోపం, 429 మరియు 500 పరిస్థితులను నిర్వహించాను
  • [ ] నేను సమర్పించిన టోకెన్‌ని గత సంక్షిప్తీకరణ/సారాంశంతో తగ్గించాను
  • [ ] నేను LLM సమాధానంలో భ్రాంతుల ప్రమాదానికి వ్యతిరేకంగా ధ్రువీకరణను పరిగణించాను
  • [ ] నేను క్లౌడ్‌కి వెళ్లే ముందు వ్యక్తిగత డేటా యొక్క ఆవశ్యకత/మాస్కింగ్‌ని తనిఖీ చేసాను