Jedinica 5 / 11

Cloud AI i LLM API integracija: Chat, protok i sigurnost

Dobici:

  • Sposobnost uspostavljanja sigurne LLM arhitekture u oblaku koja ne zadržava API ključ na klijentu, već prolazi kroz pozadinski proxy
  • Sposobnost pisanja robusnih integracija koje povećavaju percipiranu brzinu sa strujanjem i nježno rješavaju situacije kao što su isteci vremena, mrežne pogreške i ograničenja brzine
  • Mogućnost smanjenja troškova skraćivanjem poslanog tokena i propitivanje nužnosti osobnih podataka prije nego što odu u oblak

AI na uređaju je moćan, ali ograničen. Kada aplikaciji želite dodati doista "pametnog pomoćnika za čavrljanje", dugi sažetak teksta ili složenu kreativnu produkciju, potrebni su vam modeli koji su preveliki da stanu na telefon. Ovo je mjesto gdje AI u oblaku stupa na scenu: vaša se aplikacija povezuje s velikim jezičnim modelom (LLM) putem API-ja (Application Programming Interface – standardno sučelje gdje dva softvera šalju i primaju podatke jedan drugome). U ovoj jedinici naučit ćemo kako integrirati LLM u oblaku u mobilnu aplikaciju na siguran, brz i ekonomičan način. Kritični naglasak bit će na sigurnosti: neispravno instalirana integracija LLM-a mogla bi procuriti vaš API ključ i rezultirati računima vrijednim tisuće funti.

Zlatno pravilo arhitekture: držite ključ kod klijenta

Najopasnija pogreška koja se može napraviti u integraciji AI-ja u oblak je ugraditi API ključ (tajna lozinka koja autorizira korištenje usluge) izravno u kod mobilne aplikacije. Mobilne aplikacije preuzimaju se na uređaj korisnika, a kod se može pročitati obrnutim inženjeringom — analiziranjem kompajlirane aplikacije i gledanjem što je u njoj. Ako je vaš ključ unutar aplikacije, netko ga može izdvojiti i postavljati neograničene zahtjeve s vašeg računa.

Ispravna arhitektura je sljedeća: mobilna aplikacija šalje zahtjeve vašem vlastitom pozadinskom poslužitelju (proxy poslužitelju koji kontrolirate); Ključ se nalazi samo na poslužitelju; Poslužitelj odlazi na LLM uslugu i vraća odgovor aplikaciji. Ovaj međuprogram također pruža ograničenje brzine, sprječavanje zlouporabe i kontrolu troškova.

pristup

gdje je ključ

Sigurnost

Ključ je u aplikaciji (FALSE)

U klijentu, javno

Procuri, novčanica eksplodira

Ključ je u pozadini (ISTINA)

Na serveru, skriveno

Sigurno, kontrolirano

Oprez: kada od umjetne inteligencije tražite integraciju LLM-a u oblaku, može proizvesti primjer koji upisuje ključ izravno u kod aplikacije radi vaše udobnosti. Nikad ovo ne snimajte uživo. Obavezno uključite rečenicu "Ključ API-ja ne bi trebao biti na klijentu, prođite kroz pozadinski proxy" u upit.

Streaming: povećanje percipirane brzine

LLM odgovori mogu biti dugi i potrebno im je nekoliko sekundi da se proizvedu u cijelosti. Ostaviti korisnika da čeka na praznom ekranu je loše iskustvo. Rješenje je strujanje — prikazivanje odgovora riječ po riječ, kako se generira. Korisnik prati pravopis teksta, kao u ChatGPT-u; to dramatično povećava percipiranu brzinu i tečnost. Protok na mobilnom uređaju znači dodavanje dijelova (tokena — dijela teksta koji proizvodi model) s poslužitelja na sučelje kako stignu. Izričito zahtijevajte tijek prilikom integracije ispisa u AI.

Savjet: Dodajte gumb "pauza" u odgovor strujanja. Korisnik bi trebao biti u mogućnosti zaustaviti proizvodnju kada dobije odgovor koji želi; Ovo poboljšava iskustvo i smanjuje troškove smanjenjem nepotrebnog generiranja tokena. Usred dugog odgovora, korisnik je možda već pronašao svoj odgovor.

Upravljanje troškovima, kašnjenjima i pogreškama

Cloud LLM nosi novčane troškove (naknada po tokenu) i vremenske troškove (kašnjenje) sa svakim zahtjevom. Bitne su tri discipline. Cost: limit prompt and response length, do not send unnecessarily long system instructions, default to small and cheap model if possible. Latencija: koristite strujanje, postavite vrijeme čekanja, obavijestite korisnika ako je mreža spora. Pogreška: prekid mreže, usluga može vratiti 429 (previše zahtjeva) ili 500 (pogreška poslužitelja); pažljivo postupajte sa svakim, nemojte srušiti aplikaciju. Također, LLM ponekad daje besmislene ili netočne (halucinacije) odgovore; Dodajte sloj provjere odgovora u kritičnim područjima.

tri mini kućišta

Slučaj 1 — ključ je procurio. Startup je ugradio OpenAI ključ izravno u svoju aplikaciju React Native kako bi brzo izašao. Tri tjedna nakon što je aplikacija objavljena, ključ je obrnutim inženjeringom i preko noći je iskorišteno 2400 dolara. Tim je morao opozvati ključ i postaviti pozadinski proxy. Pouka: prečac korišten zbog praktičnosti postao je najskuplji put.

Slučaj 2 — Ispuštanje se smanjilo s protokom. Obrazovna aplikacija prva je objavila značajku pitanja i odgovora bez strujanja; korisnici su izlazili nakon 6 sekundi čekanja u mirovanju. Kada je protok dodan, prva se riječ počela pojavljivati ​​za 0,8 sekundi, a stopa napuštanja pala je s 48% na 12%. Isti model, ista brzina — samo razlika u prezentaciji.

Slučaj 3 — Kontrola troškova. Jedna je aplikacija slala cijelu povijest razgovora modelu sa svakom korisničkom porukom; U dugim razgovorima, jedan je zahtjev dosegao 8000 tokena, povećavajući cijenu. Slanjem samo zadnjih nekoliko poruka i sažetka, tim je smanjio tokene po zahtjevu za 70%, smanjujući mjesečni račun na trećinu. Pouka: mjeri ono što šalješ.

Slab upit / Jak upit

Slab upit: "Dodaj chat kao što je ChatGPT u moju aplikaciju."

Snažan upit: "Dodaj pomoćnika za chat u moju iOS/Swift aplikaciju. Arhitektura: aplikacija šalje zahtjev mojoj vlastitoj pozadini, LLM API ključ NIJE na KLIJENTU, ide kroz proxy. - Odgovor dolazi strujanjem, prikazan riječ po riječ - Gumb 'Stop' prekida proizvodnju - Graciozno rješavanje vremenskog ograničenja, mrežne pogreške, 429 i 500 situacija - Skratite povijest razgovora: pošaljite zadnjih 6 poruka + sažetak (kontrola troškova) Prvo objasnite arhitektonski dijagram, a zatim dajte klijentski i proxy kod odvojeno."

Predlošci koji se mogu kopirati

Predložak sigurne arhitekture: "Dizajnirajte LLM integraciju oblaka u moju [platformsku] aplikaciju. Pravilo: API ključ samo u pozadini. Klijent -> moj proxy -> LLM. U proxyju: autentifikacija, ograničenje stope po korisniku, bilježenje zahtjeva. Odvojeno navedite odgovornosti klijenta i proxyja, a zatim izvezite kod."

Predložak za strujanje: "Dodajte odgovor za strujanje na ovaj zaslon za chat: - Dodajte isječke u oblačić poruke čim stignu - Prikažite kursor/animaciju dok tipkate - Imajte gumb 'Stop' da otkažete strujanje - Sačuvajte djelomični tekst i upozorite ako postoji pogreška dok se tok završava [postojeći kod]"

Predložak kašnjenja troškova: "Smanjite troškove i kašnjenje u ovoj integraciji LLM-a: - Kako da smanjim broj poslanih tokena (kratica povijesti, sažetak)? - U kojem je slučaju dovoljan manji/jeftiniji model? - Predložite vremensko ograničenje i strategiju ponovnog pokušaja [kod]"

Predložak tolerancije grešaka: "Učinite ovaj LLM poziv otpornim: - Odvojeno ponašanje za nepostojanje mreže, vremensko ograničenje, 429 (ograničenje brzine), 500 (poslužitelj) - Netehnička, pristojna poruka korisniku - Napomena o provjeri rizika od halucinacija u kritičnim odgovorima [kod]"

Uobičajene greške

  • Ugradnja API ključa u aplikaciju. Najskuplji i najčešći sigurnosni bug; Ključ definitivno leži na stražnjoj strani.
  • Ne koristi protok. Ostavljanje korisnika da čeka duge odgovore otjerat će korisnika.
  • Slanje cijele povijesti razgovora sa svakim zahtjevom. Umnožava trošak tokena i kašnjenje.
  • Zaobilaženje uvjeta pogreške. Ako se 429/500/timeout ne riješi, aplikacija će se srušiti ili zamrznuti.
  • Uzimajući u obzir odgovor LLM-a točnim bez pitanja. Halucinacija je stvarna; Dodajte verifikacijski sloj u kritično područje.
  • Slanje korisničkih podataka nepotrebnom LLM-u. Pitajte jesu li osobni podaci potrebni ili ih treba maskirati prije nego što odu u oblak.

Ukratko

Cloud LLM donosi sjajne mogućnosti koje ne stanu na uređaj na mobilni, ali zahtijevaju sigurnost i disciplinu troškova. Zlatno pravilo: API ključ nikada nije na klijentu, on ide kroz pozadinski proxy. Protok uvelike povećava percipiranu brzinu i zadržavanje; Podržano gumbom "stop". Trošak se utvrđuje skraćivanjem poslanog tokena; Otpornost se postiže elegantnim rukovanjem svim slučajevima pogreške. LLM odgovori mogu uključivati ​​halucinacije; U kritičnim područjima provjera je neophodna, a osobni podaci se pregledavaju prije slanja u oblak.

Zadatak aplikacije

Zatražite dizajn klijenta + pozadinskog proxyja od umjetne inteligencije koristeći "predložak sigurne arhitekture" za značajku "sažimanja teksta" ili "čavrljanja". Provjerite nalazi li se API ključ samo u pozadini u generiranom dizajnu. Zatim izdvojite najmanje dva načina za smanjenje tokena poslanog s "Cost-delay pattern" i napišite uljudnu poruku koja će se prikazati korisniku za stanje pogreške (npr. 429).

popis za provjeru

  • [ ] Potvrdio sam da se API ključ nalazi u pozadini, a ne na klijentu
  • [ ] Napravio sam strujanje odgovora i dodao gumb 'pauza'
  • [ ] Rješavao sam vremensko ograničenje, mrežnu pogrešku, situacije 429 i 500
  • [ ] Smanjio sam poslani token s prošlom kraticom/sažetkom
  • [ ] Razmotrio sam potvrdu protiv rizika od halucinacija u odgovoru na LLM
  • [ ] Provjerio sam nužnost/maskiranje osobnih podataka prije odlaska u oblak