Kako dodati AI značajke u svoju aplikaciju
Da biste dodali AI značajke aplikaciji, pozovite API velikog jezičnog modela (LLM) s poslužitelja: pošaljite mu jasne upute i relevantne podatke, pa iskoristite ono što se vrati. Većina korisnih značajki spada u jedan od četiri obrasca: sažimanje, chat, izvlačenje strukturiranih podataka i klasifikaciju. Svaki je od njih nekoliko desetaka redaka koda koje AI graditelj može napisati za vas. Posao koji odlučuje hoće li značajka biti dobra događa se oko samog poziva: čuvanje API ključa na poslužitelju, kontrola troška po korisniku i provjera rezultata prije nego mu vjerujete.
Četiri obrasca iza većine AI značajki
| Obrazac | Što radi | Primjeri značajki | Tipični izlaz |
|---|---|---|---|
| Sažimanje | Pretvara dug tekst u kratak | Sažetak bilješki sa sastanka, sažetak tikete, „što se promijenilo“ u dokumentu | Odlomak ili popis s točkama |
| Chat | Odgovara na pitanja u razgovoru, često o vašim podacima | Pomoćnik za pomoć, „pitaj svoju dokumentaciju“, vodič za uvođenje | Tekst koji se prikazuje dok nastaje |
| Izvlačenje | Izvlači strukturirana polja iz neurednog teksta ili slika | Podaci s računa iz PDF-a, kontakti iz potpisa u e-pošti, podaci o poslu iz oglasa | JSON koji odgovara shemi |
| Klasifikacija | Bira iz fiksnog skupa oznaka | Usmjeravanje tiketa podrške, označavanje povratnih informacija po temi, označavanje hitnih poruka, prepoznavanje jezika | Jedna oznaka, možda napomena o pouzdanosti |
Izvlačenje i klasifikacija često su najvrijednije, a najmanje vidljive. Tiho uštede nekome nekoliko minuta na svakom zapisu, a budući da je izlaz fiksnog oblika, možete ga automatski provjeriti. Chat je najvidljiviji, ali ga je najteže dobro izvesti i za njega postoji zaseban vodič: kako izraditi aplikaciju AI chatbota.
Kako se uklapa u vašu aplikaciju
Svaki obrazac ima isti oblik:
- Korisnik djeluje: klikne „Sažmi“, učita datoteku ili pošalje poruku.
- Vaš frontend poziva vaš poslužitelj, a ne pružatelja AI-ja.
- Vaš poslužitelj sastavlja zahtjev: sistemske upute, korisnikov unos i podatke koje model treba iz vaše baze, ali samo podatke koje ovaj korisnik smije vidjeti.
- Vaš poslužitelj poziva LLM API s ključem spremljenim u varijabli okruženja.
- Vaš poslužitelj provjerava odgovor: ispravan JSON, poznata oznaka, razuman duljina, pa ga sprema ili vraća.
- Frontend ga prikazuje, a za dulje odgovore tekst se prikazuje dok stiže.
Ključ u koraku 4 nalazi se na poslužitelju i nikada ne dolazi do preglednika. Ako vam je pojam API-ja nov, što je API je kratak uvod, a kako koristiti LLM API-je detaljnije objašnjava tokene, modele i ključeve.
Odabir pružatelja i modela
Veliki pružatelji, poput OpenAI-ja, Anthropica, Googlea i drugih, nude API-je za tekst sličnog oblika. Korisna pitanja pri odabiru:
- Kvaliteta za vaš zadatak. Isprobajte nekoliko stvarnih primjera iz svoje aplikacije na dva ili tri modela. Razlike su često jasnije na vašim podacima nego na općim mjerilima.
- Veličina naspram troška. Pružatelji nude veće, sposobnije modele i manje, jeftinije i brže. Klasifikacija i jednostavno izvlačenje često dobro rade na malom modelu; dugo zaključivanje ili nijansirano pisanje može zahtijevati veći.
- Strukturirani izlaz. Za izvlačenje i klasifikaciju radije koristite značajku API-ja koja tjera model da vrati JSON prema shemi koju zadate, umjesto da parsirate slobodni tekst.
- Rukovanje podacima. Pročitajte uvjete pružatelja o tome pohranjuju li se ulazni podaci API-ja ili se koriste za treniranje te odgovara li to podacima koje vam korisnici daju.
- Ograničenja. Novi računi često imaju niža ograničenja brzine; provjerite ih prije lansiranja.
Nazivi modela i cijene se često mijenjaju, pa kod neka čita naziv modela iz konfiguracije, a ne da ga tvrdo kodira na više mjesta.
Dodavanje značajke, korak po korak
Uzmite konkretan primjer: mali CRM u kojem svaki kontakt ima dugu povijest bilješki.
1. Spremite ključ. Napravite ključ na nadzornoj ploči pružatelja i spremite ga kao tajnu vrijednost na poslužitelju, na primjer OPENAI_API_KEY ili ANTHROPIC_API_KEY.
2. Zatražite jednu usku značajku:
Dodaj gumb „Sažmi“ na stranicu kontakta. Na poslužitelju pošalji posljednjih 20 bilješki kontakta pružatelju [PROVIDER] koristeći tajnu vrijednost [ENV_NAME], s uputama da napiše tri točke: trenutni status, otvorena pitanja i sljedeći korak. Uključi samo bilješke koje prijavljeni korisnik smije vidjeti. Prikaži stanje učitavanja, spremi sažetak s vremenskom oznakom i prikaži „Trenutno nije moguće sažeti“ ako poziv ne uspije. Nikada ne šalji ključ u preglednik.
3. Dodajte izvlačenje tamo gdje štedi tipkanje:
Kada korisnik zalijepi potpis iz e-pošte u okvir „Brzo dodavanje“, pozovi [PROVIDER] na poslužitelju i vrati JSON s imenom, tvrtkom, nazivom posla, e-poštom i telefonom, koristeći značajku strukturiranog izlaza pružatelja. Potvrdi JSON na poslužitelju, unaprijed popuni obrazac za novi kontakt i neka korisnik uredi prije spremanja. Ostavi polja prazna umjesto da nagađaš.
„Neka korisnik uredi prije spremanja“ je najvažniji dio: model predlaže, a osoba odlučuje.
4. Klasificirajte u pozadini:
Kada stigne novi tiket podrške, klasificiraj ga točno u jednu od oznaka: naplata, greška, zahtjev za funkcijom, pristup računu, ostalo. Koristi mali model niskog troška. Ako odgovor nije jedna od tih oznaka, spremi „ostalo“. Prikaži oznaku kao uređivu značku.
5. Testirajte s neurednim stvarnim podacima: dugim bilješkama, praznim bilješkama, drugim jezicima, potpisom bez broja telefona, i pogledajte dvadeset rezultata jedan uz drugi prije objave.
Pisanje uputa koje rade
Upute koje šaljete uz svaki zahtjev (često se zovu sistemski prompt) mjesto su gdje nastaje kvaliteta.
- Recite kome je namijenjeno i kako izgleda dobro. „Sažetke čita prodavač za 10 sekundi prije poziva“ modelu daje cilj.
- Fiksirajte format. Točan broj točaka, ograničenje duljine, polja, oznake.
- Recite što učiniti kada nije siguran. „Ako bilješke ne spominju sljedeći korak, napiši ‘Sljedeći korak nije zabilježen’.“ Time se smanjuju izmišljeni odgovori.
- Dajte dva ili tri primjera dobrog ulaza i izlaza za izvlačenje i klasifikaciju.
- Držite upute odvojeno od korisničkog sadržaja i jasno označite korisnički sadržaj, da model može razlikovati jedno od drugog.
Prompte držite u datotekama u kodnoj bazi kako bi bili verzionirani i pregledivi kao i svaki drugi kod.
Držanje troškova pod kontrolom
LLM API-ji naplaćuju po tokenima, malim dijelovima teksta, i za ono što šaljete i za ono što se vraća. Trošak raste s količinom konteksta po zahtjevu pomnoženom s učestalošću izvršavanja. Praktične kontrole:
- Šaljite samo ono što treba. Posljednjih 20 bilješki, a ne cijelu povijest. Skratite duge dokumente ili ih podijelite.
- Koristite najmanji model koji obavlja posao. Isprobajte prije nego zadano uzmete najveći.
- Ograničite duljinu izlaza postavkom maksimalnog broja tokena API-ja.
- Predmemorirajte rezultate. Spremite sažetak i ponovno ga generirajte samo kada se izvor promijeni, umjesto pri svakom prikazu stranice.
- Ograničite po korisniku. Dnevna granica po računu ili po paketu sprječava da jedan intenzivan korisnik ili jedna skripta podigne račun.
- Ograničite brzinu zahtjeva na krajnjoj točki kao i na svakoj drugoj skupoj ruti.
- Postavite proračun ili upozorenje u nadzornoj ploči pružatelja i provjeravajte potrošnju tjedno nakon lansiranja.
- Bilježite potrošnju tokena po značajki kako biste znali koja košta koliko.
Ako su AI značajke ključne za vaš proizvod, uračunajte njihov trošak rada u cijenu, umjesto da ga apsorbirate.
Sigurnost i povjerenje
AI izlaz je probabilistički. Može biti pogrešan, a zvučati siguran, i može ga usmjeriti tekst koji čita. Gradite s tim na umu:
- Tretirajte izlaz kao nepouzdan unos. Provjerite strukturu, izbjegnite ga prije prikaza kao HTML i nikada ga ne izvršavajte kao kod niti kao upit bazi.
- Zadržite čovjeka u petlji za sve što ima posljedice: slanje e-pošte, promjenu zapisa, povrat novca. Model nacrta; osoba potvrđuje.
- Čuvajte se prompt injectiona. Dokument ili poruka može sadržavati tekst poput „zanemari svoje upute“. Ograničite što model može vidjeti na ono što trenutni korisnik smije vidjeti i ne dajte mu alate koji mogu izvršiti osjetljive radnje prije nego vaš kod provjeri dopuštenja.
- Označite AI sadržaj kako bi korisnici znali da je sažetak ili prijedlog generiran i da ga mogu provjeriti.
- Elegantno rukujte greškama. Pružatelji imaju prekide i ograničenja brzine. Postavite vremensko ograničenje, prikažite jasnu poruku i neka ostatak aplikacije nastavi raditi.
- Pazite što korisnici šalju. Za otvorene tekstualne unose razmislite o koraku moderiranja i u pravilima privatnosti jasno napišite da sadržaj obrađuje vanjski AI pružatelj.
Šira lista provjera nalazi se u sigurnosnom kontrolnom popisu za aplikacije izrađene AI alatima.
Česte greške
- Početak s općim chatbotom kada bi jedan gumb „Sažmi“ ili „Kategoriziraj“ pomogao većem broju ljudi.
- Ključ u kodu frontenda ili u javnom repozitoriju.
- Slanje cijele baze kao kontekst, što je sporo, skupo i može izložiti podatke drugih korisnika.
- Vjerovanje slobodnom tekstu tamo gdje bi shema ili fiksni skup oznaka omogućili provjeru.
- Nema ograničenja po korisniku, otkriveno kada stigne prva faktura.
Dodavanje AI značajki s Mythexom
Na Mythexu AI dodajete u svoju aplikaciju tako da to zatražite u chatu, koristeći vlastiti ključ pružatelja. Ključ spremite kao tajnu vrijednost projekta: kada agent zatreba jednu, Mythex prikaže karticu sa tajnama u chatu pa ne morate lijepiti ključ u razgovor. Agent zatim piše rutu na poslužitelju, prompte i sučelje. AI potrošnju vaše aplikacije naplaćuje vaš pružatelj, odvojeno od Mythex kredita koje trošite na izradu. Početni prompt pronaći ćete u dokumentaciji pod dodavanje AI značajki s vlastitim API ključevima.
Pitanja
Kako dodati AI u postojeću aplikaciju?
Nabavite API ključ od pružatelja LLM-a, spremite ga kao tajnu vrijednost na poslužitelju i dodajte rutu na poslužitelju koja pružatelju šalje upit s relevantnim podacima te vraća rezultat vašem frontendu. Počnite s jednom uskom značajkom, poput sažimanja zapisa, prije nego što gradite opći chat.
Koliko koštaju AI značajke u radu?
LLM API-ji naplaćuju po tokenu, otprilike po dijelu teksta koji se šalje i prima, po cijenama koje se jako razlikuju ovisno o modelu. Trošak ovisi o tome koliko teksta svaki zahtjev nosi i koliko se često izvršava, pa procijenite prema vlastitoj upotrebi, postavite ograničenje u nadzornoj ploči pružatelja i ograničite korištenje po korisniku u aplikaciji.
Mogu li OpenAI ili Anthropic ključ staviti u frontend?
Ne. Sve što je u kodu frontenda može pročitati svatko tko otvori stranicu, a procurjeli ključ omogućuje strancima da vam napune račun. Pružatelja pozivajte s poslužitelja, gdje ključ ostaje u varijabli okruženja.
Što je prompt injection?
To je kada tekst koji model čita (poruka korisnika, učitani dokument, web-stranica) sadrži upute koje pokušavaju poništiti vaše. Tretirajte izlaz modela kao nepouzdan, nikada ga ne dopustite da pokrene osjetljive radnje bez provjera i ograničite podatke koje vidi na ono što korisnik smije vidjeti.