Integracja OpenAI GPT z Spring Boot w 4 Krokach!

bykowski.pl 5 dni temu

Spring Boot daje nam ogromne możliwości, a kiedy połączymy go ze sztuczną inteligencją, zaczynają się dziać prawdziwe cuda. Dzisiaj pokażę Ci, jak zintegrować OpenAI GPT z aplikacją Spring Boot i stworzyć coś, co może w pełni wykorzystać moc AI.

I choć Spring IA to znacznie więcej niż często utożsamiany wrapper na ChatGPT, dziś właśnie od tego zaczniemy, a na koniec artykułu przedstawię Ci źródła z bardziej zaawansowanymi przykładami użycia Spring IA.

1. Klucz do sukcesu to klucz do OpenAI API

Zarejestruj się na stronie OpenAI i pobierz swój klucz API z https://platform.openai.com/api-keys. Wiąże się to z podpięciem karty kredytowej i konfiguracją płatności. Każde wywołanie API obliguje Cię do opłaty. Kiedyś OpenAI oferowało darmowy pakiet startowy – ale niestety, nie załapałeś się

W zależności od wybranego modelu opłaty są różne, a dokładny cennik znajdziesz na ich stronie. W sieci są przydatne kalkulatory, które na podstawie zapytania potrafią wyliczyć koszt użycia API.

Pamiętaj, iż brane są pod uwagę zarówno Twoje dane wejściowe (czyli zapytanie do API), jak i dane wyjściowe (czyli odpowiedź). Zapytania są rozliczane w tokenach.

Zgrubnie przyjmuje się, iż 750 słów zużywa około 1000 tokenów.
W modelu GPT-4 zapłacisz:

  • Tokeny wejściowe: około 0,03 USD za 1000 tokenów.
  • Tokeny wyjściowe: około 0,06 USD za 1000 tokenów.

Więc jeżeli Twoje zapytanie zawiera 750 słów i odpowiedź będzie tej samej długości, zapłacisz około 0,09 USD.

Pamiętaj, iż ta kalkulacja jest baaaaardzo przybliżona i dokładna jak pośliniony palec na wietrze. Koszt tokenów zależy od takich rzeczy jak model, jaki wykorzystasz, kodowanie znaków, cache, i kilka innych czynników. Dlatego do dokładnych obliczeń odsyłam do kalkulatorów, np. takich jak GPTForWork.

2. Stwórz projekt w Spring Boot

Wystarczy, iż dodasz zależność spring-starter-web, oraz:

<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> </dependency>

którą możesz wybrać z listy dostępnych zależności przy zakładaniu projektu.

3. Ustaw swój klucz

W pliku application.properties wstaw swój klucz API. Możesz też tutaj zarządzać modelem, który chcesz wykorzystać do obsługi swoich zapytań:

spring.ai.openai.api-key=kluczApiTutaj spring.ai.openai.chat.options.model=gpt-4

4. Utwórz obiekt ChatModel

Możesz stworzyć prosty kontroler, który będzie obsługiwał Twoje zapytania. Stwórz w nim obiekt ChatModel. Metoda call służy do wywołania zapytań, które chcesz przekazać do modelu. W odpowiedzi dostaniesz wynik:

@RestController public class ChatController { private final ChatModel chatModel; public ChatController(ChatModel chatModel) { this.chatModel = chatModel; } @GetMapping("/chat") public String get(@RequestParam(value = "message") String message) { return chatModel.call(message); } }

Open IA + Spring Boot w boju!

I teraz po przejściu pod adres:

localhost:8080/chat?message=Podaj dokładną kwotę w PLN, która odzwierciedla koszt wykonania tego zapytania przez API

dostaniemy:

więc w dogrywce:

localhost:8080/chat?message=to chociaż opowiedz kawał

I choć moja wymiana wiadomości z modelem może wyglądać jak konwersacja, to pamiętaj, iż API nie przechowuje historii. Każde zapytanie jest wykonywane niezależnie (w odróżnieniu od chatu, który zna i bazuje na historii rozmowy).

Dlatego bardziej rozbudowane przykłady, wraz z praktycznymi projektami, przedstawiam na moich LiveStreamach, które regularnie prowadzę na EduFlow.pl.

Jeden z ciekawszych projektów, w którym wykorzystałem Spring IA Functions, polegał na tym, aby sztuczna inteligencja zeskanowała i przeanalizowała moje CV, automatycznie pobierała najnowsze oferty pracy, analizowała je pod kątem CV i przygotowywała listy motywacyjne na najlepiej dopasowane stanowiska pracy – wszystko w pełni automatycznie! Nie tylko sztuczna inteligencja, ale również automatyzacja, która wykonuje za nas ciężką pracę. To wszystko w materiale: Czym Jest i Jak Działa Spring AI? Praktyczny Projekt Krok Po Kroku.

Idź do oryginalnego materiału