Enota 5 / 11

Integracija API-ja Cloud AI in LLM: klepet, pretok in varnost

Dobički:

  • Zmožnost vzpostavitve varne arhitekture LLM v oblaku, ki ne hrani ključa API na odjemalcu, ampak gre skozi zaledni proxy
  • Sposobnost pisanja robustnih integracij, ki povečajo zaznano hitrost s pretakanjem in nežno obravnavajo situacije, kot so časovne omejitve, omrežne napake in omejitve hitrosti
  • Možnost zmanjšanja stroškov s skrajšanjem poslanega žetona in dvoma o nujnosti osebnih podatkov, preden gredo v oblak

AI v napravi je močan, vendar omejen. Ko želite v aplikacijo dodati resnično »pametnega pomočnika za klepet«, dolgo povzemanje besedila ali zapleteno ustvarjalno produkcijo, potrebujete modele, ki so preveliki, da bi jih spravili v telefon. Tu nastopi umetna inteligenca v oblaku: vaša aplikacija se poveže z velikim jezikovnim modelom (LLM) prek API-ja (Application Programming Interface – standardni vmesnik, kjer dve programski opremi pošiljata in prejemata podatke druga drugi). V tej enoti se bomo naučili, kako integrirati oblak LLM v mobilno aplikacijo na varen, hiter in stroškovno premišljen način. Ključni poudarek bo na varnosti: nepravilno nameščena integracija LLM bi lahko povzročila uhajanje vašega ključa API in povzročila račune v vrednosti na tisoče funtov.

Zlato pravilo arhitekture: imejte ključ pri naročniku

Najbolj nevarna napaka, ki jo lahko naredimo pri integraciji umetne inteligence v oblaku, je vdelava ključa API (skrivno geslo, ki dovoljuje uporabo storitve) neposredno v kodo mobilne aplikacije. Mobilne aplikacije se prenesejo v uporabnikovo napravo in kodo je mogoče prebrati z obratnim inženiringom — razčleniti prevedeno aplikacijo in videti, kaj je v njej. Če je vaš ključ v aplikaciji, ga lahko nekdo izvleče in iz vašega računa izvede neomejene zahteve.

Pravilna arhitektura je naslednja: mobilna aplikacija pošilja zahteve vašemu zalednemu strežniku (proxy strežniku, ki ga nadzirate); Ključ se nahaja samo na strežniku; Strežnik gre do storitve LLM in vrne odgovor aplikaciji. Ta vmesna programska oprema zagotavlja tudi omejitev hitrosti, preprečevanje zlorab in nadzor stroškov.

Pristop

kje je ključ

Varnost

Ključ je v aplikaciji (FALSE)

V stranki, javno

Pušča, bankovec eksplodira

Ključ je v ozadju (TRUE)

Na strežniku, skrito

Varen, nadzorovan

Pozor: Ko od umetne inteligence zahtevate integracijo LLM v oblaku, lahko ustvari primer, ki za vaše udobje zapiše ključ neposredno v kodo aplikacije. Tega nikoli ne posnemite v živo. V poziv vključite stavek "Ključ API ne sme biti na odjemalcu, pojdite skozi zaledni proxy".

Pretakanje: povečanje zaznane hitrosti

Odgovori LLM so lahko dolgi in trajajo nekaj sekund, da jih pripravite v celoti. Pustiti uporabnika čakati na praznem zaslonu je slaba izkušnja. Rešitev je pretakanje — prikaz odgovora besedo za besedo, ko je ustvarjen. Uporabnik spremlja črkovanje besedila, kot v ChatGPT; to dramatično poveča zaznano hitrost in tekočnost. Flow on mobile pomeni dodajanje kosov (žetonov — del besedila, ki ga ustvari model) iz strežnika v vmesnik, ko prispejo. Izrecno zahtevajte tok pri integraciji tiskanja v AI.

Namig: dodajte gumb »pavza« v odziv pretakanja. Uporabnik bi moral imeti možnost ustaviti proizvodnjo, ko dobi odgovor, ki ga želi; To izboljša izkušnjo in zmanjša stroške z zmanjšanjem nepotrebnega ustvarjanja žetonov. Na sredini dolgega odgovora je uporabnik morda že našel svoj odgovor.

Upravljanje stroškov, zamud in napak

Cloud LLM nosi denarne stroške (provizija na žeton) in časovne stroške (zakasnitev) z vsako zahtevo. Bistvene so tri discipline. Cost: limit prompt and response length, do not send unnecessarily long system instructions, default to small and cheap model if possible. Zakasnitev: uporabite pretakanje, nastavite časovno omejitev, obvestite uporabnika, če je omrežje počasno. Napaka: izpad omrežja, storitev lahko vrne 429 (preveč zahtev) ali 500 (napaka strežnika); z vsakim ravnajte nežno, ne zrušite aplikacije. Tudi LLM včasih daje nesmiselne ali napačne (halucinacije) odgovore; Dodajte plast preverjanja odgovora na kritičnih področjih.

trije mini kovčki

1. primer – ključ je ušel. Zagonsko podjetje je ključ OpenAI vdelalo neposredno v svojo aplikacijo React Native, da bi hitro izstopilo. Tri tedne po izdaji aplikacije je bil ključ opravljen z obratnim inženiringom in čez noč je bila uporabljena vrednost 2400 $. Ekipa je morala preklicati ključ in nastaviti zaledni proxy. Nauk: bližnjica, ki je bila izbrana zaradi priročnosti, je postala najdražja pot.

Primer 2 – Izpad se je zmanjšal s pretokom. Izobraževalna aplikacija je svojo funkcijo Q&A prvič izdala brez pretakanja; uporabniki so izstopali po 6 sekundah mirovanja. Ko je bil dodan tok, se je prva beseda začela pojavljati v 0,8 sekunde, stopnja opustitve pa je padla z 48 % na 12 %. Isti model, enaka hitrost — le razlika v predstavitvi.

Primer 3 – Nadzor stroškov. Ena aplikacija je pošiljala celotno zgodovino klepeta modelu z vsakim uporabniškim sporočilom; V dolgih pogovorih je ena zahteva dosegla 8000 žetonov, kar je povečalo stroške. S pošiljanjem le zadnjih nekaj sporočil in povzetka je ekipa zmanjšala žetone na zahtevo za 70 %, s čimer se je mesečni račun znižal na tretjino. Lekcija: izmerite, kar pošiljate.

Šibek poziv/močan poziv

Šibek poziv: "Dodaj klepet, kot je ChatGPT, v mojo aplikacijo."

Zmogljiv poziv: »Dodaj pomočnika za klepet v mojo aplikacijo iOS/Swift. Arhitektura: aplikacija pošlje zahtevo mojemu lastnemu zaledju, ključ API-ja LLM NI na ODJEMALCU, gre prek proxyja. - Odgovor se pretaka, prikazan beseda za besedo - Gumb 'Ustavi' prekine produkcijo - Uglajeno obravnavajte časovno omejitev, omrežno napako, situacije 429 in 500 - Skrajšajte zgodovino klepeta: pošljite zadnjih 6 sporočil + povzetek (nadzor stroškov) Najprej razložite arhitekturni diagram, nato ločeno podajte kodo odjemalca in posrednika."

Kopirane predloge

Predloga za varno arhitekturo: "Oblikujte integracijo LLM v oblaku v mojo aplikacijo [platforma]. Pravilo: ključ API samo v zaledju. Odjemalec -> moj proxy -> LLM. V proxyju: preverjanje pristnosti, omejitev stopnje na uporabnika, beleženje zahtev. Ločeno navedite odgovornosti odjemalca in proxyja, nato izvozite kodo."

Predloga za pretakanje: »Na ta zaslon za klepet dodajte pretočni odgovor: – Dodajte izrezke v oblaček sporočila, ko prispejo – Pokažite kazalec/animacijo med tipkanjem – Gumb »Ustavi« prekliče tok – Ohranite delno besedilo in opozorite, če pride do napake, ko se tok konča [obstoječa koda]«

Predloga za zakasnitev stroškov: "Zmanjšajte stroške in zakasnitev v tej integraciji LLM: - Kako zmanjšam poslani žeton (okrajšava zgodovine, povzetek)? - V katerem primeru zadostuje manjši/cenejši model? - Predlagajte časovno omejitev in poskusite strategijo [koda]"

Predloga za toleranco napak: "Naredite ta klic LLM odporen: - Ločeno vedenje za brez omrežja, časovna omejitev, 429 (omejitev hitrosti), 500 (strežnik) - Netehnično, vljudno sporočilo uporabniku - Opomba o preverjanju pred tveganjem halucinacije v kritičnih odgovorih [koda]"

Pogoste napake

  • Vdelava ključa API v aplikacijo. Najdražja in pogosta varnostna napaka; Ključ vsekakor leži na zadnji strani.
  • Brez uporabe toka. Če boste uporabnika pustili čakati na dolge odgovore, ga boste odgnali stran.
  • Pošiljanje celotne zgodovine klepetov z vsako zahtevo. Pomnoži stroške žetonov in zakasnitev.
  • Obhod pogojev napak. Če 429/500/časovna omejitev ni obravnavana, se bo aplikacija zrušila ali zamrznila.
  • Upoštevanje odgovora LLM kot pravilnega brez vprašanja. Halucinacija je resnična; Dodajte plast za preverjanje v kritičnem območju.
  • Pošiljanje uporabniških podatkov nepotrebnemu LLM. Vprašajte, ali so osebni podatki potrebni ali jih je treba prikriti, preden gredo v oblak.

Če povzamem

Cloud LLM prinaša odlične zmogljivosti, ki se ne prilegajo napravi na mobilni telefon, zahteva pa varnost in stroškovno disciplino. Zlato pravilo: Ključ API nikoli ni na odjemalcu, gre skozi zaledni proxy. Pretok močno poveča zaznano hitrost in zadrževanje; Podprto z gumbom "stop". Strošek se določi s skrajšanjem poslanega žetona; Odpornost je dosežena z elegantnim obravnavanjem vseh primerov napak. Odgovori LLM lahko vključujejo halucinacije; Na kritičnih področjih je preverjanje bistvenega pomena in osebni podatki se pregledajo, preden se pošljejo v oblak.

Aplikacijska naloga

Zahtevajte zasnovo odjemalca + zalednega posrednika od umetne inteligence z uporabo »predloge za varno arhitekturo« za funkcijo »povzemanja besedila« ali »klepeta«. Preverite, ali se ključ API nahaja samo v ozadju ustvarjenega dizajna. Nato izvlecite vsaj dva načina za zmanjšanje žetona, poslanega z "vzorcem zakasnitve stroškov", in napišite vljudno sporočilo, ki bo prikazano uporabniku za stanje napake (npr. 429).

kontrolni seznam

  • [ ] Preveril sem, da se ključ API nahaja v ozadju in ne v odjemalcu
  • [ ] Naredil sem pretakanje odgovora in dodal gumb 'pavza'
  • [ ] Obravnaval sem časovno omejitev, omrežno napako, situacije 429 in 500
  • [ ] Poslani žeton sem zmanjšal s preteklo okrajšavo/povzetkom
  • [ ] V odgovoru na LLM sem razmišljal o validaciji tveganja halucinacij
  • [ ] Pred odhodom v oblak sem preveril nujnost/prikrivanje osebnih podatkov