Ieguvumi:
- Spēja izveidot drošu mākoņa LLM arhitektūru, kas neglabā API atslēgu klientam, bet iet caur aizmugures starpniekserveri
- Spēja rakstīt spēcīgas integrācijas, kas palielina uztverto ātrumu ar straumēšanu un maigi risina tādas situācijas kā taimauta, tīkla kļūdas un ātruma ierobežojumi
- Iespēja samazināt izmaksas, saīsinot nosūtīto marķieri un apšaubīt personas datu nepieciešamību, pirms tie nonāk mākonī
Ierīces AI ir jaudīgs, taču ierobežots. Ja vēlaties programmai pievienot patiesi “viedo tērzēšanas palīgu”, garu teksta kopsavilkumu vai sarežģītu radošu veidošanu, ir nepieciešami modeļi, kas ir pārāk lieli, lai ietilptu tālrunī. Šeit tiek izmantots mākoņa mākslīgais intelekts: jūsu lietojumprogramma izveido savienojumu ar lielas valodas modeli (LLM), izmantojot API (Application Programming Interface — standarta saskarne, kurā divas programmatūras sūta un saņem datus viena otrai). Šajā nodaļā mēs uzzināsim, kā integrēt mākoņdatošanas LLM mobilajā lietojumprogrammā drošā, ātri un izmaksu ziņā apzinātā veidā. Galvenais uzsvars tiks likts uz drošību: nepareizi instalēta LLM integrācija var nopludināt jūsu API atslēgu un radīt rēķinus tūkstošiem mārciņu vērtībā.
Arhitektūras zelta likums: turiet atslēgu klientam
Bīstamākā kļūda, ko var pieļaut mākoņa AI integrācijā, ir API atslēgas (slepenās paroles, kas ļauj izmantot pakalpojumu) iegulšana tieši mobilās lietojumprogrammas kodā. Mobilās aplikācijas tiek lejupielādētas lietotāja ierīcē, un kodu var nolasīt, izmantojot reverso inženieriju — parsējot apkopoto lietojumprogrammu un apskatot, kas tajā atrodas. Ja jūsu atslēga atrodas lietotnē, kāds var to izvilkt un veikt neierobežotus pieprasījumus no jūsu konta.
Pareizā arhitektūra ir šāda: mobilā lietojumprogramma nosūta pieprasījumus uz jūsu aizmugursistēmas serveri (jūsu kontrolētais starpniekserveris); Atslēga atrodas tikai serverī; Serveris pāriet uz LLM pakalpojumu un atgriež lietojumprogrammai atbildi. Šī starpprogrammatūra nodrošina arī ātruma ierobežošanu, ļaunprātīgas izmantošanas novēršanu un izmaksu kontroli.
Pieeja
kur ir atslēga
Drošība
Atslēga atrodas lietojumprogrammā (FALSE)
Klientā, publiski
Tas noplūst, rēķins eksplodē
Atslēga atrodas aizmugursistēmā (TRUE)
Serverī, paslēpts
Drošs, vadāms
Uzmanību! Ja AI lūdzat mākoņa LLM integrāciju, tas var radīt piemēru, kas jūsu ērtībām ieraksta atslēgu tieši lietojumprogrammas kodā. Nekad neuzņemiet to tiešraidē. Uzvednē noteikti iekļaujiet teikumu "API atslēgai nevajadzētu būt klientam, izmantojiet aizmugursistēmas starpniekserveri".
Straumēšana: uztveramā ātruma palielināšana
LLM atbildes var būt garas, un to pilnīga sagatavošana var aizņemt sekundes. Lietotāja atstāšana tukšā ekrānā gaida ir slikta pieredze. Risinājums ir straumēšana — atbildes parādīšana pa vārdam, tiklīdz tā tiek ģenerēta. Lietotājs uzrauga teksta pareizrakstību, tāpat kā ChatGPT; tas ievērojami palielina uztveramo ātrumu un plūdumu. Plūsma mobilajā ierīcē nozīmē daļu (žetonu — modeļa izveidotā teksta fragmenta) pievienošanu no servera saskarnei, tiklīdz tie tiek saņemti. Skaidri pieprasiet plūsmu, drukājot integrāciju ar AI.
Padoms: straumēšanas atbildē pievienojiet pogu "pauze". Lietotājam ir jāspēj pārtraukt ražošanu, kad viņš saņem vajadzīgo atbildi; Tas gan uzlabo pieredzi, gan samazina izmaksas, samazinot nevajadzīgu marķieru ģenerēšanu. Garās atbildes vidū lietotājs, iespējams, jau ir atradis savu atbildi.
Izmaksu, kavējumu un kļūdu pārvaldība
Cloud LLM katram pieprasījumam ietver naudas izmaksas (maksa par marķieri) un laika izmaksas (latents). Trīs disciplīnas ir būtiskas. Cost: limit prompt and response length, do not send unnecessarily long system instructions, default to small and cheap model if possible. Latentums: izmantojiet straumēšanu, iestatiet taimautu, paziņojiet lietotājam, ja tīkls ir lēns. Kļūda: tīkla pārtraukums, pakalpojums var atgriezt 429 (pārāk daudz pieprasījumu) vai 500 (servera kļūda); ar katru rīkojieties uzmanīgi, nesabojājiet lietotni. Tāpat LLM dažkārt sniedz bezjēdzīgas vai nepareizas (halucinācijas) atbildes; Pievienojiet atbildes pārbaudes slāni kritiskajās vietās.
trīs mini futrāļi
1. gadījums — noplūdusi atslēga. Startēšanas uzņēmums OpenAI atslēgu iegulst tieši savā React Native lietotnē, lai ātri izkļūtu no tās. Trīs nedēļas pēc lietotnes izlaišanas atslēga tika apgriezta un vienas nakts laikā tika izmantota 2400 USD vērtībā. Komandai bija jāatsauc atslēga un jāiestata aizmugures starpniekserveris. Nodarbība: ērtības labad izmantotais saīsne kļuva par visdārgāko maršrutu.
2. gadījums — atbirums samazinājās līdz ar plūsmu. Izglītības lietotne pirmo reizi izlaida savu jautājumu un atbilžu funkciju bez straumēšanas; lietotāji izgāja pēc 6 sekunžu dīkstāves. Pievienojot plūsmu, pirmais vārds sāka parādīties pēc 0,8 sekundēm, un atmešanas rādītājs samazinājās no 48% līdz 12%. Tas pats modelis, vienāds ātrums — tikai atšķirība prezentācijā.
3. gadījums — izmaksu kontrole. Viena lietotne modelim nosūtīja visu tērzēšanas vēsturi ar katru lietotāja ziņojumu; Garās sarunās viens pieprasījums sasniedza 8000 žetonu, palielinot izmaksas. Nosūtot tikai dažus pēdējos ziņojumus un kopsavilkumu, komanda samazināja marķierus katram pieprasījumam par 70%, samazinot ikmēneša rēķinu līdz trešdaļai. Nodarbība: izmēriet to, ko sūtāt.
Vāja uzvedne / spēcīga uzvedne
Vāja uzvedne: "Pievienojiet manai lietotnei tādu tērzēšanu kā ChatGPT."
Spēcīga uzvedne: "Pievienot tērzēšanas palīgu manai iOS/Swift lietojumprogrammai. Arhitektūra: lietojumprogramma nosūta pieprasījumu uz manu aizmugursistēmu, LLM API atslēga NAV KLIENTA, tā iet caur starpniekserveri. - Atbilde tiek straumēta, tiek parādīta vārds pa vārdam - Poga "Apturēt" pārtrauc ražošanu - Rīkojieties ar taimautu, tīkla kļūdu9 un pilnībā 50:2 nosūtiet pēdējos 6 ziņojumus + kopsavilkumu (izmaksu kontrole) Vispirms izskaidrojiet arhitektūras shēmu, pēc tam atsevišķi norādiet klienta un starpniekservera kodu."
Kopējamas veidnes
Drošas arhitektūras veidne: "Izstrādājiet mākoņa LLM integrāciju manā [platformas] lietojumprogrammā. Noteikums: API atslēga tikai aizmugursistēmā. Klients -> mans starpniekserveris -> LLM. Starpniekserverī: autentifikācija, katra lietotāja ātruma ierobežojums, pieprasījumu reģistrēšana. Atsevišķi uzskaitiet klienta un starpniekservera pienākumus, pēc tam eksportējiet kodu."
Straumēšanas veidne: "Pievienojiet straumēšanas atbildi šim tērzēšanas ekrānam: - pievienojiet fragmentus ziņojuma burbulim, tiklīdz tie pienāk - Rādīt kursoru/animāciju rakstīšanas laikā - Nospiediet pogu "Apturēt", lai atceltu straumi - Saglabājiet daļēju tekstu un brīdinātu, ja straumes beigšanas laikā rodas kļūda [esošs kods]."
Izmaksu latentuma veidne: "Samaziniet izmaksas un latentumu šajā LLM integrācijā:- Kā samazināt nosūtīto marķieri (vēstures saīsinājums, kopsavilkums)?- Tādā gadījumā pietiek ar mazāku/lētu modeli?- Ieteikt taimautu un mēģināt vēlreiz stratēģiju[kods]."
Kļūdu tolerances veidne: "Padariet šo LLM zvanu elastīgu: - atsevišķa darbība bez tīkla, noildze, 429 (likmju ierobežojums), 500 (serveris) - Netehnisks, pieklājīgs ziņojums lietotājam - Verifikācijas piezīme pret halucināciju risku kritiskās atbildēs[kods]"
Biežas kļūdas
- API atslēgas iegulšana lietojumprogrammā. Dārgākā un izplatītākā drošības kļūda; Atslēga noteikti atrodas aizmugurē.
- Neizmantojot plūsmu. Ja lietotājs gaida ilgas atbildes, lietotājs tiks padzīts.
- Ar katru pieprasījumu tiek nosūtīta visa tērzēšanas vēsture. Tas reizina marķiera izmaksas un latentumu.
- Kļūdu apstākļu apiešana. Ja 429/500/taimauts netiek risināts, lietojumprogramma avarē vai iesaldēs.
- Uzskatot LLM atbildi par pareizu bez jautājuma. Halucinācijas ir reālas; Pievienojiet verifikācijas slāni kritiskajā apgabalā.
- Lietotāja datu nosūtīšana uz nevajadzīgu LLM. Jautājiet, vai personas dati ir nepieciešami vai ir jāslēpj, pirms tie nonāk mākonī.
Rezumējot
Cloud LLM nodrošina lieliskas iespējas, kas neietilpst ierīcē, mobilajā ierīcē, bet prasa drošību un izmaksu disciplīnu. Zelta likums: API atslēga nekad nav uz klienta, tā iet caur aizmugursistēmas starpniekserveri. Plūsma ievērojami palielina uztverto ātrumu un saglabāšanu; Atbalstīts ar "stop" pogu. Izmaksas tiek noteiktas, saīsinot nosūtīto marķieri; Izturība tiek panākta, graciozi apstrādājot visus kļūdu gadījumus. LLM atbildes var ietvert halucinācijas; Kritiskās jomās verifikācija ir būtiska, un personas dati tiek pārskatīti pirms to nosūtīšanas uz mākoni.
Lietojumprogrammas uzdevums
Pieprasiet klienta + aizmugursistēmas starpniekservera dizainu no AI, izmantojot “Drošas arhitektūras veidni” “teksta kopsavilkuma” vai “tērzēšanas” funkcijai. Pārbaudiet, vai API atslēga atrodas tikai ģenerētā dizaina aizmugursistēmā. Pēc tam izņemiet vismaz divus veidus, kā samazināt marķieri, kas nosūtīts ar "Izmaksu aizkaves modeli", un uzrakstiet lietotājam pieklājīgu ziņojumu, kas jāparāda kļūdas gadījumā (piemēram, 429).
kontrolsaraksts
- [ ] Es pārbaudīju, vai API atslēga atrodas aizmugursistēmā, nevis klientā
- [ ] Es veicu atbildes straumēšanu un pievienoju pogu "pauze".
- [ ] Es apstrādāju taimautu, tīkla kļūdu, 429 un 500 situācijas
- [ ] Es samazināju iesniegto marķieri ar pagātnes saīsinājumu/kopsavilkumu
- [ ] LLM atbildē es apsvēru apstiprinājumu pret halucināciju risku
- [ ] Pirms došanās uz mākoni pārbaudīju personas datu nepieciešamību/maskēšanu