Aigest.
Poradnik

Czym jest function calling (wywoływanie narzędzi przez AI)?

Dowiedz się, czym jest function calling w AI – mechanizm, dzięki któremu modele językowe mogą korzystać z zewnętrznych narzędzi i API, poszerzając swoje możliwości.

RA

Zaktualizowano · 5 min czytania

Udostępnij
Czym jest function calling (wywoływanie narzędzi przez AI)?
Fot. Unsplash

Function calling, czyli wywoływanie funkcji lub narzędzi, to mechanizm, który pozwala modelom językowym (takim jak GPT-4) na interakcję z zewnętrznym światem poza ich danymi treningowymi. Dzięki niemu sztuczna inteligencja może identyfikować, kiedy potrzebuje użyć konkretnego narzędzia lub API, aby odpowiedzieć na zapytanie użytkownika lub wykonać określone zadanie, a następnie generuje odpowiednie wywołanie tej funkcji.

Nie oznacza to, że model AI samodzielnie wykonuje kod. Zamiast tego, model "sugeruje" systemowi, z którym jest zintegrowany, jaką funkcję należy wywołać i z jakimi argumentami. System ten (często nazywany orkiestratorem lub agentem) następnie wykonuje tę funkcję, a jej wynik przekazuje z powrotem do modelu AI, który wykorzystuje go do sformułowania ostatecznej odpowiedzi lub podjęcia kolejnych kroków.

Jak działa function calling?

Proces function calling można podzielić na kilka etapów, które tworzą pętlę interakcji między użytkownikiem, modelem AI a zewnętrznymi narzędziami.

1. Definicja narzędzi

Zanim model AI będzie mógł skorzystać z jakichkolwiek narzędzi, muszą one zostać mu "przedstawione". Programista definiuje dostępne funkcje, opisując ich przeznaczenie, oczekiwane parametry wejściowe oraz typ zwracanych danych. Te definicje są przekazywane modelowi w formie schematu (często w formacie JSON), który model analizuje i rozumie. Ważne jest, aby opisy były jasne i precyzyjne, ponieważ to na ich podstawie model decyduje o użyciu danej funkcji.

Przykład definicji narzędzia:

Wyobraźmy sobie narzędzie do sprawdzania pogody:

{
  "name": "get_current_weather",
  "description": "Pobiera aktualną pogodę dla podanej lokalizacji.",
  "parameters": {
    "type": "object",
    "properties": {
      "location": {
        "type": "string",
        "description": "Nazwa miasta, np. Warszawa"
      },
      "unit": {
        "type": "string",
        "enum": ["celsius", "fahrenheit"],
        "description": "Jednostka temperatury, domyślnie celsius"
      }
    },
    "required": ["location"]
  }
}

Model "widzi" ten schemat i wie, że istnieje funkcja get_current_weather, która wymaga location i opcjonalnie unit.

2. Zapytanie użytkownika i analiza przez AI

Użytkownik zadaje pytanie lub wydaje polecenie, np. "Jaka jest pogoda w Krakowie?". Model AI otrzymuje to zapytanie wraz z listą dostępnych narzędzi i ich definicjami. Na podstawie treści zapytania i opisów funkcji, model analizuje, czy do udzielenia trafnej odpowiedzi konieczne jest użycie któregoś z narzędzi.

3. Generowanie wywołania funkcji

Jeśli model uzna, że potrzebuje zewnętrznego narzędzia, generuje "propozycję" wywołania funkcji. Ta propozycja to nic innego jak struktura danych (zazwyczaj JSON) zawierająca nazwę funkcji do wywołania i argumenty, które należy do niej przekazać, wyodrębnione z zapytania użytkownika.

Przykład wygenerowanego wywołania:

Na zapytanie "Jaka jest pogoda w Krakowie?", model może wygenerować:

{
  "function_name": "get_current_weather",
  "arguments": {
    "location": "Kraków",
    "unit": "celsius"
  }
}

4. Wykonanie funkcji przez system

Wygenerowana propozycja wywołania funkcji nie jest wykonywana przez sam model AI. Jest ona przekazywana do zewnętrznego systemu (np. serwera aplikacji, który hostuje model). Ten system odbiera propozycję, weryfikuje ją i faktycznie wywołuje odpowiednią funkcję (np. wysyła zapytanie do API pogodowego dla Krakowa).

5. Przekazanie wyniku z powrotem do AI

Po wykonaniu funkcji, zewnętrzny system otrzymuje jej wynik (np. "W Krakowie jest 15 stopni Celsjusza, słonecznie"). Ten wynik jest następnie przekazywany z powrotem do modelu AI. Dla modelu jest to po prostu kolejna część kontekstu rozmowy.

6. Sformułowanie ostatecznej odpowiedzi

Model AI, mając teraz dostęp do oryginalnego zapytania użytkownika, definicji narzędzi, swojego własnego wywołania funkcji oraz wyniku jej wykonania, może sformułować spójną i trafną odpowiedź dla użytkownika. Może przetworzyć surowe dane z narzędzia na bardziej naturalny język.

Przykład ostatecznej odpowiedzi:

"Aktualnie w Krakowie jest 15 stopni Celsjusza i jest słonecznie."

Po co AI wywołuje zewnętrzne narzędzia?

Function calling znacząco rozszerza możliwości modeli AI, przekraczając ich wrodzone ograniczenia:

1. Dostęp do aktualnych danych

Modele językowe są trenowane na ogromnych zbiorach danych, ale te dane są statyczne i mają datę odcięcia (knowledge cutoff). Oznacza to, że modele nie posiadają wiedzy o najnowszych wydarzeniach, aktualnych kursach walut, wynikach sportowych czy pogodzie. Dzięki function calling, AI może "na żywo" pobierać te informacje z zewnętrznych API.

  • Przykłady: Sprawdzanie aktualnej pogody, kursów akcji, wyników meczów, najnowszych wiadomości, dostępności produktów w sklepie.

2. Wykonywanie akcji w świecie rzeczywistym

Modele AI same w sobie są pasywne – generują tekst. Function calling pozwala im stać się aktywnymi agentami, zdolnymi do inicjowania działań poza generowaniem tekstu. Mogą w ten sposób wpływać na zewnętrzne systemy i wchodzić w interakcje z cyfrowym światem.

  • Przykłady: Wysyłanie e-maili, planowanie spotkań w kalendarzu, rezerwowanie stolików w restauracji, sterowanie urządzeniami inteligentnego domu, dodawanie zadań do listy.

3. Dostęp do specjalistycznej wiedzy i obliczeń

Czasami odpowiedź na pytanie wymaga specjalistycznej wiedzy, której model nie posiada, lub skomplikowanych obliczeń, które wykraczają poza jego możliwości. Function calling pozwala na delegowanie tych zadań do wyspecjalizowanych narzędzi.

  • Przykłady: Wykonywanie złożonych obliczeń matematycznych, przeszukiwanie baz danych, generowanie wykresów, tłumaczenie tekstu za pomocą dedykowanego API, analiza danych finansowych.

4. Personalizacja i kontekst

Narzędzia mogą dostarczać dane specyficzne dla użytkownika lub kontekstu rozmowy, co pozwala AI na udzielanie bardziej spersonalizowanych i trafnych odpowiedzi.

  • Przykłady: Dostęp do historii zamówień użytkownika, preferencji, danych profilowych.

Związek z agentami AI

Function calling jest fundamentalnym elementem w budowie agentów AI. Agent AI to system, który potrafi nie tylko rozumieć i generować tekst, ale także planować, wykonywać akcje i iteracyjnie rozwiązywać złożone problemy, często wymagające wielu kroków i interakcji z różnymi narzędziami.

Bez function calling, agent AI byłby ograniczony do swojej wewnętrznej wiedzy. Dzięki niemu, agent może:

  • Analizować problem: Zrozumieć, co użytkownik chce osiągnąć.
  • Planować: Określić, jakie kroki należy podjąć i jakie narzędzia będą potrzebne do realizacji celu.
  • Wybierać narzędzia: Na podstawie planu, agent decyduje, które z dostępnych funkcji są najbardziej odpowiednie.
  • Wywoływać narzędzia: Generuje odpowiednie wywołania funkcji z prawidłowymi argumentami.
  • Interpretować wyniki: Przetwarza dane zwrócone przez narzędzia.
  • Iterować: W razie potrzeby, na podstawie wyników, modyfikuje plan i wywołuje kolejne narzędzia, aż do osiągnięcia celu.

Przykład agenta AI z function calling:

Użytkownik: "Zaplanuj mi podróż do Rzymu na przyszły weekend. Sprawdź pogodę, znajdź loty i zarezerwuj hotel."

Agent AI:

  1. Plan: Potrzebuję sprawdzić daty przyszłego weekendu, pogodę w Rzymie, znaleźć loty i hotele.
  2. Narzędzie 1 (data): Użyję funkcji get_current_date i add_days do określenia dat.
  3. Narzędzie 2 (pogoda): Wywołam get_current_weather(location="Rzym", date="[przyszły weekend]").
  4. Narzędzie 3 (loty): Wywołam find_flights(origin="[moje miasto]", destination="Rzym", date="[przyszły weekend]").
  5. Narzędzie 4 (hotele): Wywołam find_hotels(location="Rzym", check_in="[data]", check_out="[data]").
  6. Synteza: Po otrzymaniu wszystkich wyników, agent skompiluje kompletną propozycję podróży dla użytkownika.

Podsumowanie

Function calling to kluczowa technologia, która transformuje modele językowe z pasywnych generatorów tekstu w aktywne, interaktywne systemy. Umożliwia im dostęp do dynamicznych danych i wykonywanie realnych akcji, co jest fundamentem dla rozwoju zaawansowanych agentów AI. Dzięki temu, sztuczna inteligencja staje się znacznie bardziej użyteczna i potężna, zdolna do pomocy w coraz szerszym zakresie zadań, które wykraczają poza samą konwersację.

Najczęstsze pytania

Czy model AI sam pisze kod, gdy używa function calling?

Nie, model AI nie pisze ani nie wykonuje kodu. On jedynie generuje sugestię wywołania funkcji w formie struktury danych (np. JSON), którą przekazuje do zewnętrznego systemu. Ten system jest odpowiedzialny za faktyczne wykonanie zdefiniowanej funkcji.

Jakie są główne korzyści z function calling dla użytkowników?

Dla użytkowników oznacza to, że systemy AI mogą udzielać bardziej aktualnych i precyzyjnych odpowiedzi, wykonywać realne zadania (np. rezerwacje, wysyłka e-maili) oraz integrować się z innymi aplikacjami, co czyni je znacznie bardziej użytecznymi i wszechstronnymi.

Czy function calling jest bezpieczne? Czy AI może zrobić coś bez mojej wiedzy?

Bezpieczeństwo zależy od implementacji. To zewnętrzny system kontroluje, które funkcje są dostępne i czy wymagają potwierdzenia użytkownika przed wykonaniem. Dobrze zaprojektowane systemy zawsze proszą o zgodę na wykonanie krytycznych akcji (np. zakup, wysłanie wiadomości), zanim faktycznie je zrealizują.

Czy function calling to to samo co wtyczki (plugins) dla ChatGPT?

Tak, wtyczki dla ChatGPT są przykładem zastosowania mechanizmu function calling. Wtyczki to po prostu predefiniowane narzędzia (funkcje) z opisami, które model ChatGPT może wywoływać, aby rozszerzyć swoje możliwości, np. do wyszukiwania informacji w internecie czy rezerwacji lotów.

Czy mogę samemu zdefiniować narzędzia dla modelu AI?

Tak, jeśli korzystasz z API dostawców modeli AI (np. OpenAI, Google), możesz zdefiniować własne narzędzia, opisując ich schemat (nazwę, opis, parametry wejściowe). Następnie przekazujesz te definicje modelowi, aby mógł z nich korzystać w swoich interakcjach.

Więcej poradników

Bądź na bieżąco ze światem AI

Najważniejsze newsy, recenzje i poradniki — raz w tygodniu, prosto na maila. Bez spamu.