Opublikowano

Integracje z API za pomocą GPT Actions

Autorzy

Wprowadzenie

Ostatnio temat agentów AI zaczął mnie coraz bardziej interesować. Coraz więcej informacji pojawia się na ten temat. Postanowiłem zebrać informacje na ten temat w kontekście ChatGPT. Przeglądając różne artykuły, natrafiłem na informacje o GPT Actions. Postanowiłem dowiedzieć się więcej na temat tej funkcji.

Co to jest GPT Actions?

GPT Actions to funkcja, która pozwala na integrację zewnętrznych serwisów z ChatGPT. Dzięki temu możliwe jest tworzenie bardziej zaawansowanych interakcji z ChatGPT. Funkcja ta umożliwia automatyzację zadań, takich jak wysyłanie wiadomości w Microsoft Teams, tworzenie obiektów w systemie Jira czy Notion, albo do pozyskiwania danych z API oraz zaprezentowanie ich w interesujący sposób, np. za pomocą wykresów czy tabel.

Jak działa GPT Actions?

Poniżej przedstawiam diagram sekwencyjny, który pokazuje, jak działa GPT Actions:

Diagram sekwencyjny

Wyjaśnienie kroków:

  1. Użytkownik wysyła zapytanie w języku naturalnym.
  2. GPT analizuje zapytanie i określa odpowiednie działanie API.
    1. Nie każde zapytanie wymaga wywołania API. W przypadku zapytań, które nie wymagają wywołania API, GPT samodzielnie generuje odpowiedź.
  3. GPT generuje schemat JSON wymagany dla wywołania API.
    1. Ten schemat jest zgodny z dokumentacją API, a dokładniej standardem OpenAPI.
    2. W przypadku braku schematu można wykorzystać dedykowaną customową wersje GPT do jego wygenerowania.
  4. GPT uwierzytelnia się i wykonuje wywołanie API do API Zewnętrznego.
    1. W przypadku danych firmowych uwierzytelnienie musi obejmować dodatkowe kroki, takie jak generowanie tokena JWT, albo klucza API.
  5. API Zewnętrzne zwraca odpowiedź do GPT.
  6. GPT przetwarza i formatuje odpowiedź w przystępnej formie.

Przykłady zastosowań GPT Actions

Zaprezentuję przykład utylizacji GPT Actions w praktyce. Wykorzystam jsonplaceholder, które udostępnia darmowe API do testowania.

Przykład użycia to obliczenie odległości każdego użytkownika od zadanego punktu, oraz zwizualizowanie tego na mapie.

Przykład użycia GPT Actions

Krok 1: Utworzenie customowej wersji GPT.

W tym kroku tworzymy customową wersję GPT, w której definiujemy zadanie do wykonania.. W naszym przypadku chcemy obliczyć odległość każdego użytkownika od zadanego punktu. Tutaj można wpaść w pułapkę, ponieważ naszym zadaniem nie jest pobranie danych z API, a obliczenie odległości.

Zapraszam do zapoznania się z artykułem Tworzenie customowych wersji GPT dla swoich potrzeb w którym opisuję jak stworzyć customową wersję GPT.

Krok 2: Dodanie GPT Actions do customowej wersji GPT.

Ten krok jest kluczowy, ponieważ dodajemy do naszej customowej wersji GPT funkcję wywołania API. W tym przypadku wywołamy API, które zwróci nam listę użytkowników. Najpierw musimy posiadać schemat OpenAPI naszego API. Gdy jednak go nie posiadamy, rekomenduję skorzystanie z OpenAPI GPT, który wygeneruje schemat na podstawie obiektu JSON, lub OpenAPI Designer, który pozwala na stworzenie schematu wizualnie.

OpenAPI Schema

Po wygenerowaniu schematu, dodajemy go do naszej customowej wersji GPT.

W panelu tworzenia customowej wersji GPT, znajduję się opcja "Actions". Klikamy na nią.

Otwieranie okna GPT action

Następnie wprowadzamy schemat OpenAPI do naszej akcji.

Dodawnie OpenAPI schema do GPT action

Krok 3: Wywołanie API

Teraz możemy skupić się na zrealizowaniu naszego zadania. W tym przypadku chcemy obliczyć odległość każdego użytkownika od zadanego punktu.

Najlepsze jest to, że w promptach nie trzeba umieszczać informacji o wywołaniu API. ChatGPT sam zrozumie, że musi wywołać API. Dzieje się tam, ponieważ obecne modele potrafią analizować kontekst i zrozumieć, co użytkownik chce osiągnąć. Gdy ChatGPT zrozumie, że musi wywołać API, wykorzysta schemat OpenAPI, który dodaliśmy do naszej customowej wersji GPT.

Mój prompt wygląda następująco:

Calculate the location from point 52.230347, 20.984000 for all users

GPT zrozumie, że musi wywołać API, a następnie obliczyć odległość każdego użytkownika od zadanego punktu.

Odpowiedź:

idnamedistance_km
7Kurtis Weissnat3040.8891131646697
5Chelsey Dietrich10180.774839543426
10Clementina DuBuque10653.683920961876
4Patricia Lebsack10917.261942854237
9Glenna Reichert11412.913258496767
1Leanne Graham11531.04761955838
2Ervin Howell11938.886699883235
6Mrs. Dennis Schulist14315.634339653436
3Clementine Bauch14536.805037188149
8Nicholas Runolfsdottir V14620.856754078086

To nie są losowe dane, te dane pochodzą z API jsonplaceholder.

Krok 4: Przetworzenie odpowiedzi

Ostatni krok to przetworzenie odpowiedzi i wygenerowanie wykresu, który przedstawia odległość każdego użytkownika od zadanego punktu, oraz zwizualizujmy to na mapie.

Mój prompt wygląda następująco:

Visualize it

Odpowiedź: Dodawnie OpenAPI schema do GPT action

Kolejny prompt:

Show distance data on a map.

Odpowiedź: Mapa z punktami

Kolejny prompt:

Draw a lines from users to point

Odpowiedź: Mapa z liniami

Podsumowanie

Zaprezentowałem sposób wykorzystania GPT Actions do integracji z API. Ta funkcjonalność umożliwia budowanie bardziej zaawansowanych interakcji z ChatGPT, co daje możliwość automatyzacji zadań, takich jak przesyłanie wiadomości w Microsoft Teams, tworzenie elementów w systemach Jira czy Notion, a także pobieranie danych z API i ich przedstawienie w ciekawej formie, z opcją dodatkowej wizualizacji.

Wyobraź sobie możliwości, jakie oferuje GPT Actions wszystkim tym, którzy pragną usprawnić i zautomatyzować swoje codzienne zadania:

  • Menadżer opracowujący raporty: Może zautomatyzować zbieranie danych z różnych źródeł, a następnie przekształcić je w przejrzyste i atrakcyjne wizualnie raporty.
  • Product owner zarządzający zadaniami w systemie Jira: Ma możliwość automatycznego przekształcania surowych notatek w zadania oraz przypisywania ich do odpowiednich członków zespołu.

W mojej opinii GPT Actions jest obiecującą funkcjonalnością, która doskonale wpisuje się w trend automatyzacji i agentów AI. Warto zainteresować się tą funkcją i zacząć ją wykorzystywać w praktyce.