Jak dodać funkcje AI do aplikacji
Aby dodać funkcje AI do aplikacji, wywołuj API dużego modelu językowego (LLM) z serwera: wyślij mu jasne instrukcje wraz z odpowiednimi danymi i wykorzystaj to, co wróci. Większość przydatnych funkcji to jeden z czterech wzorców — streszczanie, czat, wyodrębnianie danych ustrukturyzowanych i klasyfikacja — a każdy z nich to kilkadziesiąt linii kodu, które narzędzie do budowy aplikacji AI może napisać za ciebie. To, czy funkcja będzie dobra, decyduje się wokół wywołania: klucz API zostaje na serwerze, koszt kontrolujesz na użytkownika, a wynik sprawdzasz, zanim mu zaufasz.
Cztery wzorce stojące za większością funkcji AI
| Wzorzec | Co robi | Przykładowe funkcje | Typowy wynik |
|---|---|---|---|
| Streszczanie | Zamienia długi tekst na krótszy | Podsumowanie notatek ze spotkania, streszczenie zgłoszenia, „co się zmieniło” w dokumencie | Akapit lub lista punktów |
| Czat | Odpowiada na pytania w rozmowie, często o twoich danych | Asystent pomocy, „zapytaj swoje dokumenty”, przewodnik wdrożeniowy | Tekst strumieniowany |
| Wyodrębnianie | Wyciąga pola ustrukturyzowane z chaotycznego tekstu lub obrazów | Dane z faktury w PDF, kontakty z podpisu e-mail, dane ze ogłoszenia o pracę | JSON zgodny ze schematem |
| Klasyfikacja | Wybiera jedną etykietę ze stałego zestawu | Kierowanie zgłoszeń wsparcia, tagowanie opinii według tematu, oznaczanie pilnych wiadomości, wykrywanie języka | Jedna etykieta, ewentualnie informacja o pewności |
Wyodrębnianie i klasyfikacja są często najcenniejsze i najmniej widoczne. Po cichu oszczędzają komuś kilka minut przy każdym rekordzie, a ponieważ wynik ma stały kształt, można go automatycznie sprawdzić. Czat jest najbardziej widoczny, ale najtrudniej go dobrze zrobić, i ma własny przewodnik: jak zbudować aplikację czatbota AI.
Jak to działa w aplikacji
Każdy wzorzec ma ten sam kształt:
- Użytkownik działa — klika „Streszczenie”, przesyła plik, wysyła wiadomość.
- Frontend wywołuje twój serwer, a nie dostawcę AI.
- Serwer buduje żądanie: instrukcje systemowe, dane wejściowe użytkownika i dane potrzebne modelowi z bazy — wyłącznie te, które ten użytkownik może zobaczyć.
- Serwer wywołuje API LLM z kluczem przechowywanym w zmiennej środowiskowej.
- Serwer sprawdza odpowiedź — poprawny JSON, znana etykieta, rozsądna długość — i zapisuje lub zwraca wynik.
- Frontend pokazuje wynik, strumieniując tekst w miarę nadchodzenia przy dłuższych odpowiedziach.
Klucz znajduje się na serwerze w kroku 4 i nigdy nie trafia do przeglądarki. Jeśli pojęcie API jest nowe, czym jest API to krótkie wprowadzenie, a jak używać API LLM omawia tokeny, modele i klucze głębiej.
Wybór dostawcy i modelu
Główni dostawcy — OpenAI, Anthropic, Google i inni — oferują API tekstowe o podobnej budowie. Przydatne pytania przy wyborze:
- Jakość w twoim zadaniu. Wypróbuj kilka prawdziwych przykładów z aplikacji na dwóch–trzech modelach. Różnice często są wyraźniejsze na twoich danych niż w ogólnych testach.
- Rozmiar a koszt. Dostawcy oferują większe, bardziej zdolne modele oraz mniejsze, tańsze i szybsze. Klasyfikacja i proste wyodrębnianie często dobrze działają na małym modelu; długie rozumowanie lub subtelne pisanie może wymagać większego.
- Wyjście ustrukturyzowane. Do wyodrębniania i klasyfikacji wybieraj funkcję API, która sprawia, że model zwraca JSON zgodny z dostarczonym schematem, zamiast parsować swobodny tekst.
- Obsługa danych. Przeczytaj warunki dostawcy dotyczące tego, czy dane z API są przechowywane lub wykorzystywane do trenowania, i czy odpowiada to danym, które przekazują ci użytkownicy.
- Limity. Nowe konta często mają niższe limity żądań; sprawdź je przed startem.
Nazwy modeli i ceny zmieniają się często, więc kod powinien czytać nazwę modelu z konfiguracji, zamiast wpisywać ją na sztywno w wielu miejscach.
Dodawanie funkcji krok po kroku
Konkretny przykład: mały CRM, w którym każdy kontakt ma długą historię notatek.
1. Zapisz klucz. Utwórz klucz w panelu dostawcy i zapisz go jako sekret po stronie serwera, na przykład OPENAI_API_KEY lub ANTHROPIC_API_KEY.
2. Poproś o jedną wąską funkcję:
Dodaj przycisk „Streszczenie” na stronie kontaktu. Na serwerze wyślij ostatnie 20 notatek kontaktu do [DOSTAWCA], używając sekretu [NAZWA_ZMIENNEJ], z instrukcją, by napisać trzy punkty: aktualny status, otwarte pytania, następny krok. Uwzględniaj tylko notatki, które zalogowany użytkownik może zobaczyć. Pokaż stan ładowania, zapisz streszczenie z czasem i pokaż „Nie udało się teraz przygotować streszczenia”, gdy wywołanie się nie powiedzie. Nigdy nie wysyłaj klucza do przeglądarki.
3. Dodaj wyodrębnianie tam, gdzie oszczędza pisanie:
Gdy użytkownik wklei podpis e-mail do pola „Szybkie dodanie”, wywołaj [DOSTAWCA] na serwerze i zwróć JSON z imieniem, firmą, stanowiskiem, e-mailem i telefonem, korzystając z funkcji wyjścia ustrukturyzowanego dostawcy. Zweryfikuj JSON na serwerze, wypełnij nim formularz nowego kontaktu i pozwól użytkownikowi edytować przed zapisem. Pozostaw pola puste zamiast zgadywać.
„Pozwól użytkownikowi edytować przed zapisem” to najważniejsza część: model proponuje, a decyduje człowiek.
4. Klasyfikuj w tle:
Gdy przychodzi nowe zgłoszenie wsparcia, zaklasyfikuj je do dokładnie jednej z kategorii: płatności, błąd, prośba o funkcję, dostęp do konta, inne. Użyj małego, taniego modelu. Jeśli odpowiedź nie jest jedną z tych etykiet, zapisz „inne”. Pokaż etykietę jako edytowalny tag.
5. Testuj na chaotycznych, prawdziwych danych — długie notatki, puste notatki, inne języki, podpis bez numeru telefonu — i przejrzyj dwadzieścia wyników obok siebie przed wdrożeniem.
Pisanie instrukcji, które działają
Instrukcje wysyłane z każdym żądaniem (często nazywane promptem systemowym) to miejsce, w którym bierze się jakość.
- Powiedz, dla kogo to jest i jak wygląda dobry wynik. „Streszczenia czyta handlowiec w 10 sekund przed rozmową” daje modelowi cel.
- Ustal format. Dokładna liczba punktów, limit długości, pola, etykiety.
- Powiedz, co robić, gdy model nie jest pewien. „Jeśli notatki nie wspominają o następnym kroku, napisz »Nie zapisano następnego kroku«”. To ogranicza zmyślone odpowiedzi.
- Dodaj dwa–trzy przykłady dobrego wejścia i wyjścia przy wyodrębnianiu i klasyfikacji.
- Oddziel instrukcje od treści użytkownika i wyraźnie oznacz treść użytkownika, aby model mógł je rozróżnić.
Trzymaj prompty w plikach w bazie kodu, aby były wersjonowane i podlegały przeglądowi jak każdy inny kod.
Kontrola kosztów
API LLM naliczają opłaty za tokeny — małe fragmenty tekstu — zarówno za to, co wysyłasz, jak i za to, co wraca. Koszt rośnie wraz z ilością kontekstu na żądanie pomnożoną przez to, jak często się je wykonuje. Praktyczne sposoby kontroli:
- Wysyłaj tylko to, co potrzebne. Ostatnie 20 notatek, a nie całą historię. Przycinaj długie dokumenty lub dziel je.
- Używaj najmniejszego modelu, który wykonuje zadanie. Przetestuj, zanim domyślnie wybierzesz największy.
- Ogranicz długość wyjścia ustawieniem maksymalnej liczby tokenów w API.
- Buforuj wyniki. Zapisuj streszczenie i generuj je ponownie tylko wtedy, gdy zmieni się źródło, zamiast przy każdym wyświetleniu strony.
- Ustaw limity na użytkownika. Dzienny limit na konto lub plan powstrzyma jednego ciężkiego użytkownika albo jeden skrypt przed nabiciem rachunku.
- Ogranicz liczbę żądań do endpointu jak każdej innej kosztownej trasy.
- Ustaw budżet lub alert w panelu dostawcy i sprawdzaj zużycie co tydzień po starcie.
- Zapisuj zużycie tokenów dla każdej funkcji, abyś wiedział, która ile kosztuje.
Jeśli funkcje AI są kluczowe dla twojego produktu, uwzględnij ich bieżący koszt w cenniku, zamiast go absorbować.
Bezpieczeństwo i zaufanie
Wynik AI jest probabilistyczny. Może być błędny, brzmiąc przy tym pewnie, i może zostać sterowany tekstem, który czyta. Zbuduj rozwiązanie z tym na uwadze:
- Traktuj wynik jako niezaufane wejście. Waliduj strukturę, escapuj go przed renderowaniem jako HTML i nigdy nie uruchamiaj go jako kodu ani zapytania do bazy.
- Zostaw człowieka w pętli przy wszystkim, co ma konsekwencje — wysłaniu e-maila, zmianie rekordu, zwrocie płatności. Model przygotowuje szkic; osoba zatwierdza.
- Chroń przed prompt injection. Dokument lub wiadomość może zawierać tekst w stylu „zignoruj swoje instrukcje”. Ogranicz to, co model widzi, do tego, co obecny użytkownik może zobaczyć, i nie dawaj mu narzędzi, które mogą wykonać wrażliwe działania bez sprawdzenia uprawnień przez twój kod.
- Oznaczaj treści AI, aby użytkownicy wiedzieli, że streszczenie lub sugestia została wygenerowana i mogą ją sprawdzić.
- Obsługuj błędy łagodnie. Dostawcy mają awarie i limity żądań. Ustaw limit czasu, pokaż jasny komunikat i pozwól reszcie aplikacji działać dalej.
- Zwracaj uwagę na to, co wysyłają użytkownicy. Przy otwartych polach tekstowych rozważ etap moderacji i jasno napisz w polityce prywatności, że treść jest przetwarzana przez zewnętrznego dostawcę AI.
Szersza lista kontroli znajduje się w liście kontrolnej bezpieczeństwa dla aplikacji zbudowanych z AI.
Typowe błędy
- Zaczynanie od ogólnego czatbota, gdy pojedynczy przycisk „Streszczenie” albo „Kategoryzuj” pomógłby więcej osobom.
- Klucz w kodzie frontendowym lub w publicznym repozytorium.
- Wysyłanie całej bazy jako kontekstu, co jest wolne, drogie i grozi ujawnieniem danych innych użytkowników.
- Ufanie swobodnemu tekstowi tam, gdzie schemat lub stały zestaw etykiet pozwoliłby to sprawdzić.
- Brak limitów na użytkownika, odkryty przy pierwszej fakturze.
Dodawanie funkcji AI w Mythex
W Mythex dodajesz AI do własnej aplikacji, prosząc o to w czacie, z użyciem własnego klucza dostawcy. Zapisz klucz jako sekret projektu — gdy agent go potrzebuje, Mythex pokazuje w czacie kartę sekretów, dzięki czemu nie wklejasz klucza do rozmowy — a agent napisze trasę serwerową, prompty i interfejs. Użycie AI w twojej aplikacji jest rozliczane przez twojego dostawcę, osobno od kredytów Mythex, które wydajesz na budowanie. Startowy prompt znajdziesz w dokumentacji: dodaj funkcje AI dzięki własnym kluczom API.
Pytania
Jak dodać AI do istniejącej aplikacji?
Zdobądź klucz API od dostawcy modelu językowego, zapisz go jako sekret po stronie serwera i dodaj trasę serwerową, która wysyła dostawcy prompt wraz z odpowiednimi danymi, a wynik zwraca do frontendu. Zacznij od jednej wąskiej funkcji, na przykład streszczenia rekordu, zanim zbudujesz ogólny czat.
Ile kosztuje uruchomienie funkcji AI?
API LLM naliczają opłaty za tokeny, czyli mniej więcej za fragmenty tekstu wysłane i odebrane, a stawki bardzo się różnią w zależności od modelu. Koszt zależy od tego, ile tekstu niesie każde żądanie i jak często jest wykonywane. Oszacuj go na podstawie własnego użycia, ustaw limit w panelu dostawcy i ogranicz zużycie na użytkownika w aplikacji.
Czy mogę umieścić klucz OpenAI lub Anthropic w kodzie frontendowym?
Nie. Wszystko, co znajduje się w kodzie frontendowym, może odczytać każdy, kto otworzy stronę, a wyciekły klucz pozwala obcym generować koszty na twoim rachunku. Wywołuj dostawcę z serwera, gdzie klucz pozostaje w zmiennej środowiskowej.
Czym jest prompt injection?
To sytuacja, w której tekst czytany przez model — wiadomość użytkownika, przesłany dokument, strona internetowa — zawiera instrukcje próbujące nadpisać twoje. Traktuj wynik modelu jako niezaufany, nie pozwól mu uruchamiać wrażliwych działań bez sprawdzeń i ogranicz dane, które model widzi, do tych, które dany użytkownik może zobaczyć.