Kako dodati AI funkcije u vašu aplikaciju
Da biste dodali AI funkcije u aplikaciju, pozovite API velikog jezičkog modela (LLM) sa svog servera: pošaljite mu jasna uputstva i relevantne podatke, pa iskoristite šta se vrati. Većina korisnih funkcija spada u jedan od četiri obrasca: sažimanje, chat, izvlačenje strukturiranih podataka i klasifikacija. Svaka od njih je nekoliko desetina linija koda koje AI alat za izradu može napisati umjesto vas. Ono što odlučuje da li je funkcija dobra je posao oko poziva: čuvanje API ključa na serveru, kontrola troška po korisniku i provjera izlaza prije nego mu vjerujete.
Četiri obrasca iza većine AI funkcija
| Obrazac | Šta radi | Primjeri funkcija | Tipičan izlaz |
|---|---|---|---|
| Sažimanje | Pretvara dug tekst u kratak | Sažetak sastanka, sažetak tiketa, "šta se promijenilo" u dokumentu | Pasus ili lista tačaka |
| Chat | Odgovara na pitanja u razgovoru, često o vašim podacima | Pomoćnik za korisnike, "pitaj svoju dokumentaciju", vodič za uvođenje | Tekst koji se prikazuje dok stiže |
| Izvlačenje | Izvlači strukturirana polja iz neurednog teksta ili slika | Podaci o fakturi iz PDF-a, kontakti iz potpisa u emailu, podaci iz oglasa za posao | JSON koji odgovara šemi |
| Klasifikacija | Bira iz fiksnog skupa oznaka | Usmjeravanje tiketa podrške, označavanje povratnih informacija po temi, označavanje hitnih poruka, prepoznavanje jezika | Jedna oznaka, eventualno napomena o sigurnosti |
Izvlačenje i klasifikacija su često najvrijedniji, a najmanje vidljivi. Tiho uštede nekome nekoliko minuta na svakom zapisu, a pošto je izlaz fiksnog oblika, možete ga automatski provjeriti. Chat je najvidljiviji, ali ga je najteže uraditi dobro, i za njega postoji poseban vodič: kako napraviti aplikaciju za AI chatbot.
Kako se uklapa u vašu aplikaciju
Svaki obrazac ima isti oblik:
- Korisnik radi nešto: klikne "Sažmi", otpremi fajl, pošalje poruku.
- Vaš frontend poziva vaš server, a ne AI dobavljača.
- Vaš server gradi zahtjev: sistemska uputstva, korisnikov unos i sve podatke koje model treba iz baze, samo one koje ovaj korisnik smije da vidi.
- Vaš server poziva LLM API s ključem sačuvanim u varijabli okruženja.
- Vaš server provjerava odgovor: ispravan JSON, poznata oznaka, razumna dužina, pa ga sačuva ili vrati.
- Frontend ga prikazuje, a za duže odgovore prikazuje tekst dok stiže.
Ključ ostaje na serveru u koraku 4 i nikada ne stiže do preglednika. Ako je ideja API-ja nova, šta je API je kratak uvod, a kako koristiti LLM API-je detaljnije objašnjava tokene, modele i ključeve.
Izbor dobavljača i modela
Glavni dobavljači, kao što su OpenAI, Anthropic, Google i drugi, nude tekstualne API-je sa sličnim oblikom. Korisna pitanja pri izboru:
- Kvalitet 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štim testovima.
- Veličina naspram cijene. Dobavljači 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 koristite API funkciju koja tjera model da vrati JSON prema šemi koju mu date, umjesto da parsirate slobodan tekst.
- Rukovanje podacima. Pročitajte uslove dobavljača o tome da li se ulazni podaci čuvaju ili koriste za treniranje i da li to odgovara podacima koje vam korisnici daju.
- Limiti. Novi računi često imaju niže limite brzine; provjerite ih prije lansiranja.
Nazivi modela i cijene se često mijenjaju, pa kod treba da čita naziv modela iz konfiguracije, a ne da ga tvrdo upisuje na mnogo mjesta.
Dodavanje funkcije, korak po korak
Uzmite konkretan primjer: mali CRM u kojem svaki kontakt ima dugu historiju bilješki.
1. Sačuvajte ključ. Napravite ključ u kontrolnoj tabli dobavljača i sačuvajte ga kao tajnu vrijednost na serveru, na primjer OPENAI_API_KEY ili ANTHROPIC_API_KEY.
2. Zatražite jednu usku funkciju:
Dodaj dugme "Sažmi" na stranicu kontakta. Na serveru pošalji posljednjih 20 bilješki kontakta dobavljaču [PROVIDER] koristeći tajnu [ENV_NAME], s uputstvom da napiše tri tačke: trenutni status, otvorena pitanja i sljedeći korak. Uključi samo bilješke koje prijavljeni korisnik smije da vidi. Prikaži stanje učitavanja, sačuvaj 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 kucanje:
Kada korisnik nalijepi potpis iz emaila u polje "Brzo dodavanje", pozovi [PROVIDER] na serveru i vrati JSON s imenom, kompanijom, nazivom posla, emailom i telefonom, koristeći funkciju strukturiranog izlaza dobavljača. Provjeri JSON na serveru, popuni formu za novi kontakt tim podacima i dozvoli korisniku da izmijeni prije čuvanja. Ostavi polja prazna umjesto da nagađaš.
Važno je "dozvoli korisniku da izmijeni prije čuvanja": model predlaže, a osoba odlučuje.
4. Klasifikujte u pozadini:
Kada stigne novi tiket podrške, klasifikuj ga u tačno jednu od kategorija: naplata, greška, zahtjev za funkciju, pristup nalogu, ostalo. Koristi mali model niske cijene. Ako odgovor nije jedna od tih oznaka, sačuvaj "ostalo". Prikaži oznaku kao oznaku koju korisnik može izmijeniti.
5. Testirajte s neurednim stvarnim podacima: duge bilješke, prazne bilješke, drugi jezici, potpis bez broja telefona. Prije objavljivanja pogledajte dvadeset izlaza jedan pored drugog.
Pisanje uputstava koja rade
Uputstva koja šaljete uz svaki zahtjev (često se zovu sistemski prompt) su mjesto gdje dolazi kvalitet.
- Recite kome je namijenjeno i kako izgleda dobro. "Sažetke čita prodavac za 10 sekundi prije poziva" daje modelu cilj.
- Utvrdite format. Tačan broj tačaka, ograničenje dužine, polja, oznake.
- Recite šta da radi kada nije siguran. "Ako bilješke ne spominju sljedeći korak, napiši 'Nema zabilježenog sljedećeg koraka'." To smanjuje izmišljene odgovore.
- Dajte dva ili tri primjera dobrog ulaza i izlaza za izvlačenje i klasifikaciju.
- Držite uputstva odvojena od korisničkog sadržaja i jasno označite korisnički sadržaj da ga model može razlikovati.
Držite prompte u fajlovima u kodu, tako da su verzionisani i pregledljivi kao i ostali kod.
Držanje troškova pod kontrolom
LLM API-ji naplaćuju po tokenima, malim dijelovima teksta, 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 historiju. Skratite duge dokumente ili ih podijelite.
- Koristite najmanji model koji obavlja posao. Isprobajte prije nego što uzmete najveći.
- Ograničite dužinu izlaza postavkom maksimalnog broja tokena u API-ju.
- Keširajte rezultate. Sačuvajte sažetak i ponovo ga generišite samo kada se izvor promijeni, umjesto pri svakom prikazu stranice.
- Ograničite po korisniku. Dnevni limit po nalogu ili planu sprječava da jedan teški korisnik ili jedna skripta podigne račun.
- Ograničite brzinu zahtjeva na krajnjoj tački kao i na svakoj drugoj skupoj ruti.
- Postavite budžet ili upozorenje u kontrolnoj tabli dobavljača i provjeravajte potrošnju jednom sedmično nakon lansiranja.
- Bilježite potrošnju tokena po funkciji da znate koja košta koliko.
Ako su AI funkcije ključne za vaš proizvod, uračunajte njihov trošak rada u cijenu, umjesto da ga sami snosite.
Sigurnost i povjerenje
Izlaz AI-ja je vjerovatnostan. Može biti pogrešan, a zvučati sigurno, i može ga usmjeriti tekst koji čita. Gradite za to:
- Tretirajte izlaz kao nepouzdan unos. Provjerite strukturu, eskejpujte ga prije prikazivanja kao HTML i nikada ga ne izvršavajte kao kod ili kao upit bazi.
- Zadržite čovjeka u procesu za sve što ima posljedice: slanje emaila, izmjenu zapisa, povrat novca. Model nacrta, osoba potvrđuje.
- Zaštitite se od prompt injection-a. Dokument ili poruka može sadržavati tekst tipa "zanemari svoja uputstva". Ograničite šta model može da vidi na ono što trenutni korisnik smije da vidi i ne dajte mu alate koji mogu izvršiti osjetljive radnje bez da vaš kod prvo provjeri dozvole.
- Označite AI sadržaj da korisnici znaju da je sažetak ili prijedlog generisan i da ga mogu provjeriti.
- Pažljivo rukujte greškama. Dobavljači imaju prekide rada i limite brzine. Postavite vremensko ograničenje, prikažite jasnu poruku i neka ostatak aplikacije nastavi da radi.
- Pazite šta korisnici šalju. Za slobodne tekstualne unose razmislite o koraku moderiranja i jasno napišite u politici privatnosti da sadržaj obrađuje treći dobavljač AI-ja.
Šira lista provjera nalazi se u sigurnosnoj listi za aplikacije pravljene AI-jem.
Česte greške
- Početak s opštim chatbotom kada bi dugme "Sažmi" ili "Kategoriziraj" pomoglo većem broju ljudi.
- Ključ u frontend kodu ili u javnom repozitorijumu.
- Slanje cijele baze kao konteksta, što je sporo, skupo i može otkriti podatke drugih korisnika.
- Vjerovanje slobodnom tekstualnom izlazu tamo gdje bi šema ili fiksni skup oznaka omogućili provjeru.
- Nema limita po korisniku, otkrije se kada stigne prva faktura.
Dodavanje AI funkcija s Mythexom
Na Mythexu dodajete AI u svoju aplikaciju tako što to zatražite u chatu, koristeći sopstveni ključ dobavljača. Sačuvajte ključ kao tajnu projekta. Kada agentu zatreba, Mythex prikaže karticu s tajnama u chatu, pa ne morate lijepiti ključ u razgovor. Agent zatim napiše rutu na serveru, prompte i korisnički interfejs. AI korištenje vaše aplikacije naplaćuje vaš dobavljač, odvojeno od Mythex kredita koje trošite na izradu. Dokumentacija ima početni prompt u dodavanje AI funkcija s vlastitim API ključevima.
Pitanja
Kako dodati AI u postojeću aplikaciju?
Nabavite API ključ od dobavljača LLM-a, sačuvajte ga kao tajnu vrijednost na serveru i dodajte rutu na serveru koja dobavljaču šalje upit s podacima i vraća rezultat vašem frontendu. Počnite s jednom uskom funkcijom, kao što je sažimanje jednog zapisa, prije nego što gradite opšti chat.
Koliko koštaju AI funkcije u radu?
LLM API-ji naplaćuju po tokenu, otprilike po dijelu teksta koji se pošalje i primi, a cijene se jako razlikuju od modela do modela. Trošak zavisi od toga koliko teksta svaki zahtjev nosi i koliko često se izvršava, zato procijenite na osnovu sopstvene upotrebe, postavite limit u kontrolnoj tabli dobavljača i ograničite korištenje po korisniku u svojoj aplikaciji.
Mogu li staviti svoj OpenAI ili Anthropic ključ u frontend?
Ne. Svako ko otvori stranicu može pročitati sve što je u frontend kodu, a procurjeli ključ omogućava nepoznatim ljudima da vam podignu račun. Pozivajte dobavljača sa servera, gdje ključ ostaje u varijabli okruženja.
Šta je prompt injection?
To je kada tekst koji model čita (poruka korisnika, otpremljeni dokument, web stranica) sadrži uputstva koja pokušavaju da poništite vaša. Tretirajte izlaz modela kao nepouzdan, nikada ne dozvolite da on pokreće osjetljive radnje bez provjera i ograničite podatke koje vidi na ono što korisnik smije da vidi.