Üksus 5 / 11

Pilve AI ja LLM API integreerimine: vestlus, voog ja turvalisus

Kasu:

  • Võimalus luua turvaline pilv-LLM-arhitektuur, mis ei hoia API-võtit kliendil, vaid läbib taustapuhverserveri
  • Võimalus kirjutada tugevaid integratsioone, mis suurendavad voogesituse tajutavat kiirust ja käsitlevad õrnalt olukordi, nagu ajalõpud, võrguvead ja kiiruspiirangud
  • Võimalus vähendada kulusid, lühendades saadetud luba ja seada kahtluse alla isikuandmete vajalikkus enne pilve minekut

Seadmesisene AI on võimas, kuid piiratud. Kui soovite lisada rakendusele tõeliselt "nutika vestlusabilise", pika teksti kokkuvõtte või keeruka loomingulise tootmise, vajate mudeleid, mis on telefoni jaoks liiga suured. Siin tuleb mängu pilve tehisintellekt: teie rakendus ühendub suure keelemudeliga (LLM) API (Application Programming Interface) kaudu – standardliides, kus kaks tarkvara saadavad ja võtavad vastu üksteisele andmeid. Selles õppetükis õpime, kuidas integreerida pilv LLM-i turvalisel, kiirel ja kuluteadlikul viisil mobiilirakendusse. Kriitiline rõhk on turvalisusel: valesti installitud LLM-i integratsioon võib teie API-võtme lekkida ja tuua kaasa tuhandete naelte väärtuses arveid.

Arhitektuuri kuldreegel: hoia võti kliendil

Kõige ohtlikum viga, mida pilve AI integreerimisel teha saab, on API võtme (salajane parool, mis lubab teenuse kasutamist) manustada otse mobiilirakenduse koodi. Mobiilirakendused laaditakse kasutaja seadmesse ja koodi saab lugeda pöördprojekteerimise teel — kompileeritud rakendust sõeludes ja selle sees olevat. Kui teie võti on rakenduses, saab keegi selle välja võtta ja teie kontolt piiramatult päringuid teha.

Õige arhitektuur on järgmine: mobiilirakendus saadab päringud teie enda taustaserverisse (teie juhitav puhverserver); Võti asub ainult serveris; Server läheb LLM-teenusesse ja tagastab rakendusele vastuse. See vahevara pakub ka kiiruse piiramist, väärkasutuse vältimist ja kulude kontrolli.

Lähenemine

kus on võti

Turvalisus

Võti on rakenduses (FALSE)

Kliendis, avalikult

Lekib, arve plahvatab

Võti on taustaprogrammis (TRUE)

Serveris, peidetud

Ohutu, juhitav

Ettevaatust. Kui küsite AI-lt pilve LLM-i integreerimist, võib see luua näite, mis kirjutab võtme teie mugavuse huvides otse rakenduse koodi. Ärge kunagi tehke seda otseülekandes. Lisage viipale kindlasti lause "API võti ei tohiks olla kliendil, minge läbi taustaprogrammi puhverserveri".

Voogesitus: tajutava kiiruse suurendamine

LLM-i vastused võivad olla pikad ja nende täielikuks esitamiseks kulub sekundeid. Kasutaja tühjale ekraanile ootama jätmine on halb kogemus. Lahendus on voogedastus — vastuse kuvamine sõna haaval nii, nagu see genereeritakse. Kasutaja jälgib teksti õigekirja, nagu ChatGPT puhul; see suurendab märgatavalt tajutavat kiirust ja sujuvust. Mobiilivoog tähendab tükkide (märgid – mudeli toodetud tekstiosa) lisamist serverist liidesesse, kui need saabuvad. AI-ga integreerimise printimisel taotlege selgesõnaliselt voogu.

Näpunäide. Lisage voogesituse vastusesse nupp "paus". Kasutajal peaks olema võimalik tootmine peatada, kui ta saab soovitud vastuse; See parandab kasutuskogemust ja vähendab kulusid, vähendades tarbetut märgi genereerimist. Pika vastuse keskel võib kasutaja oma vastuse juba leidnud.

Kulude, viivituste ja vigade haldamine

Cloud LLM kannab iga päringu puhul rahakulu (tasu märgi kohta) ja ajakulu (latentsus). Kolm distsipliini on hädavajalikud. Cost: limit prompt and response length, do not send unnecessarily long system instructions, default to small and cheap model if possible. Latentsus: kasutage voogesitust, määrake ajalõpp, teavitage kasutajat, kui võrk on aeglane. Viga: võrgukatkestus, teenus võib tagastada 429 (liiga palju taotlusi) või 500 (serveri viga); käsitsege neid õrnalt, ärge ajage rakendust kokku. Samuti annab LLM mõnikord mõttetuid või ebaõigeid (hallutsinatsiooni) vastuseid; Lisage kriitilistes piirkondades vastuse kontrollimise kiht.

kolm minikarpi

Juhtum 1 – võti lekkis. Käivitusettevõte manustas OpenAI võtme otse oma rakendusse React Native, et sealt kiiresti väljuda. Kolm nädalat pärast rakenduse avaldamist pöördprojekteeriti võti ja seda kasutati üleöö 2400 dollari väärtuses. Meeskond pidi võtme tühistama ja seadistama taustapuhverserveri. Õppetund: mugavuse huvides võetud otsetee sai kõige kallimaks marsruudiks.

Juhtum 2 – väljalangevus vähenes koos vooluga. Haridusrakendus avaldas esmakordselt oma küsimuste ja vastuste funktsiooni ilma voogesituseta; kasutajad lahkusid pärast 6-sekundilist jõudeolekut ootamist. Voo lisamisel hakkas esimene sõna ilmuma 0,8 sekundi pärast ja loobumismäär langes 48%-lt 12%-le. Sama mudel, sama kiirus – lihtsalt erinevus esitusviisis.

Juhtum 3 – kulude kontroll. Üks rakendus saatis mudelile iga kasutajasõnumiga kogu vestlusajaloo; Pikkade vestluste käigus jõudis üks taotlus 8000 märgini, mis suurendas kulusid. Vaid paar viimast sõnumit ja kokkuvõtet saates vähendas meeskond ühe päringu žetoone 70%, vähendades igakuist arvet kolmandikuni. Õppetund: mõõtke seda, mida saadate.

Nõrk viip / Tugev viip

Nõrk viip: "Lisage minu rakendusse vestlus nagu ChatGPT."

Võimas viip: "Lisage minu iOS-i/Swifti rakendusele vestlusassistent. Arhitektuur: rakendus saadab päringu minu enda taustaprogrammi, LLM API võti EI OLE KLIENDIL, see läheb läbi puhverserveri. - Vastus tuleb voogesitusena, kuvatakse sõna-sõnalt - Nupp "Stopp" katkestab tootmise - Käsitlege ajalõppu, võrgu ajalugu ja lühidalt, 50 -0 saatke viimased 6 sõnumit + kokkuvõte (kulukontroll) Selgitage esmalt arhitektuurset skeemi, seejärel andke kliendi ja puhverserveri kood eraldi."

Kopeeritavad mallid

Turvalise arhitektuuri mall: "Kujundage pilv LLM-i integreerimine minu [platvormi] rakendusse. Reegel: API-võti ainult taustaprogrammis. Klient -> minu puhverserver -> LLM. Puhverserveris: autentimine, kasutajate kiiruspiirang, taotluste logimine. Loetlege kliendi ja puhverserveri kohustused eraldi, seejärel eksportige kood."

Voogesituse mall: "Lisage sellele vestlusekraanile voogesituse vastus: - Lisage sõnumimullile katkendeid nende saabumisel - Näita kursorit/animatsiooni tippimise ajal - Kas nupp "Stopp" tühistab voo - Säilitage osaline tekst ja hoiatage, kui voo lõppedes ilmneb tõrge [olemasolev kood]"

Kulude latentsusmall: "Vähendage kulusid ja latentsust selles LLM-i integratsioonis:- Kuidas vähendada saadetud luba (ajaloo lühend, kokkuvõte)?- Millisel juhul piisab väiksemast/odavamast mudelist?- Soovitage ajalõpu ja proovige uuesti strateegiat[kood]"

Veataluvuse mall: "Muuda see LLM-kõne vastupidavaks: - Eraldi käitumine võrgu puudumisel, ajalõpp, 429 (kiiruse piirang), 500 (server) - Mittetehniline, viisakas sõnum kasutajale - Kontrollmärkus hallutsinatsiooniohu vastu kriitiliste vastuste korral[kood]"

Levinud vead

  • API võtme manustamine rakendusse. Kõige kallim ja levinum turvaviga; Võti on kindlasti tagaosas.
  • Voolu ei kasutata. Kui jätate kasutaja pikki vastuseid ootama, ajab see kasutaja minema.
  • Kogu vestlusajaloo saatmine iga päringuga. See mitmekordistab märgi maksumust ja latentsust.
  • Veatingimustest möödahiilimine. Kui 429/500/timeout ei käsitleta, jookseb rakendus kokku või hangub.
  • Pidades LLM-i vastust ilma küsimusteta õigeks. Hallutsinatsioon on tõeline; Lisage kriitilises piirkonnas kinnituskiht.
  • Kasutajaandmete saatmine mittevajalikule LLM-ile. Enne pilve minekut küsige, kas isikuandmeid on vaja või tuleks need varjata.

Kokkuvõttes

Cloud LLM toob mobiilile suurepärased võimalused, mis seadmesse ei mahu, kuid nõuavad turvalisust ja kuludistsipliini. Kuldne reegel: API võti ei ole kunagi kliendil, see läheb läbi taustapuhverserveri. Vooluhulk suurendab oluliselt tajutavat kiirust ja kinnipidamist; Toetab "stopp" nupp. Maksumus määratakse saadetud märgi lühendamise teel; Vastupidavus saavutatakse, käsitledes kõiki veajuhtumeid graatsiliselt. LLM-i vastused võivad sisaldada hallutsinatsioone; Kriitilistes piirkondades on kontrollimine hädavajalik ja isikuandmed vaadatakse enne pilve saatmist üle.

Rakenduse ülesanne

Taotlege AI-lt kliendi + taustaprogrammi puhverserveri kujundust, kasutades "teksti kokkuvõtte" või "vestluse" funktsiooni "Turvalise arhitektuuri malli" abil. Veenduge, et API võti asub loodud kujunduses ainult taustaprogrammis. Seejärel eraldage vähemalt kaks võimalust "Kulu viivitusmustriga" saadetud märgi vähendamiseks ja kirjutage kasutajale kuvatav viisakas sõnum veaolukorra (nt 429) korral.

kontrollnimekiri

  • [ ] Kontrollisin, et API võti asub taustaprogrammis, mitte kliendis
  • [ ] Tegin vastuse voogesituse ja lisasin pausi nupu
  • [ ] Tegelesin ajalõpu, võrguvea, 429 ja 500 olukordadega
  • [ ] Vähendasin esitatud märgist mineviku lühendi/kokkuvõttega
  • [ ] Kaalusin LLM-i vastuses kontrollimist hallutsinatsioonide riski vastu
  • [ ] Kontrollisin enne pilve minekut isikuandmete vajalikkust/maskimist