Od 11 marca 2025 r. udostępniliśmy podstawowe elementy naszej nowej platformy agentów. Szczegóły znajdziesz w dokumentacji API dotyczącej Responses API, narzędzi, w tym Web Search, File Search i Computer Use, a także Agents SDK z funkcją Tracing.
Wywołanie funkcji umożliwia łączenie modeli OpenAI z zewnętrznymi narzędziami i systemami. Przydaje się to w wielu zastosowaniach, takich jak rozszerzanie możliwości asystentów AI czy tworzenie zaawansowanych integracji między aplikacjami a dużymi modelami językowymi (LLM).
Więcej informacji znajdziesz w naszym przewodniku dla deweloperów po wywołaniu funkcji.
W czerwcu 2024 roku wprowadziliśmy ustrukturyzowane dane wyjściowe. W obsługiwanych modelach i konfiguracjach żądań, gdy model generuje wywołanie funkcji, ustawienie strict: true w definicji funkcji gwarantuje, że wygenerowane argumenty będą zgodne z dostarczonym schematem — pod warunkiem, że wykorzystuje on obsługiwany podzbiór JSON Schema i spełnia wymagania trybu ścisłego. Żądania z nieobsługiwanymi lub niezgodnymi schematami są odrzucane i zwracają błąd.
W październiku 2024 roku wprowadziliśmy funkcję „Wygeneruj wszystko”, która pozwala deweloperom opisać funkcję, wkleić ją bezpośrednio lub wkleić własny kod i wygenerować prawidłowy schemat funkcji. Więcej informacji o funkcji „Wygeneruj wszystko” znajdziesz w tym artykule w centrum pomocy
Jak używać wywołania funkcji?
Wywołanie funkcji jest przydatne w wielu przypadkach użycia, takich jak:
Umożliwianie asystentom pobierania danych:
Umożliwianie asystentom wykonywania działań:
Umożliwianie asystentom wykonywania obliczeń:
Tworzenie rozbudowanych przepływów pracy:
potok wyodrębniania danych, który pobiera surowy tekst, następnie przekształca go w dane ustrukturyzowane i zapisuje w bazie danych.
Wywołanie funkcji jest obsługiwane w Responses API, które łączy możliwości wcześniej podzielone między API zakończenia czatu i Assistants API.
Jak używać trybu JSON?
Gdy tryb JSON jest włączony, dane wyjściowe modelu są gwarantowane jako prawidłowy JSON, z wyjątkiem niektórych przypadków brzegowych, które należy odpowiednio wykrywać i obsługiwać.
Aby zażądać trybu JSON za pomocą API zakończenia czatu, ustaw response_format na { "type": "json_object" } w obsługiwanych modelach. W Responses API ustaw text.format na { "type": "json_object" }, na przykład text: { "format": { "type": "json_object" } }, tam gdzie ma to zastosowanie. W obu API tryb JSON działa tylko wtedy, gdy spełnione są wymagania wstępne dotyczące modelu, wiadomości i narzędzi (na przykład model obsługuje json_object, konwersacja zawiera instrukcje generowania JSON, a wszelkie ograniczenia narzędzi są zgodne). Co najmniej jedna wiadomość żądania lub wiadomość wejściowa w efektywnym kontekście wejściowym musi zawierać json w formie niezależnej od wielkości liter, takiej jak JSON, json lub Json; w przeciwnym razie API zwróci błąd. W Responses samo pole instrukcji najwyższego poziomu nie spełnia tej walidacji. Gdy wywołanie funkcji jest używane w zgodnych modelach/ścieżkach, ograniczenia JSON są automatycznie stosowane do argumentów wywołania funkcji; niezgodne modele lub kombinacje narzędzia i formatu odpowiedzi mogą zostać odrzucone albo mogą nie używać próbkowania ograniczonego do JSON.
Ważne uwagi:
Podczas korzystania z trybu JSON zawsze musisz poinstruować model, aby generował JSON, za pomocą jakiejś wiadomości w konwersacji, na przykład wiadomości systemowej. Jeśli nie uwzględnisz wyraźnej instrukcji generowania JSON, model może generować niekończący się strumień białych znaków, a żądanie może działać bez przerwy, aż osiągnie limit tokenów. Aby pomóc uniknąć przeoczenia, tryb JSON odrzuca żądania, chyba że odpowiednie wiadomości wejściowe lub instrukcje zawierają słowo
jsonw jakiejś formie, niezależnie od wielkości liter.Tryb JSON nie gwarantuje, że dane wyjściowe będą zgodne z konkretnym schematem — gwarantuje jedynie, że są prawidłowe i parsują się bez błędów. Należy używać ustrukturyzowanych danych wyjściowych, aby zapewnić zgodność z Twoim schematem, a jeśli nie jest to możliwe, użyć biblioteki walidacyjnej i ewentualnie ponownych prób, aby upewnić się, że dane wyjściowe pasują do pożądanego schematu.
Twoja aplikacja musi wykrywać i obsługiwać przypadki brzegowe, które mogą spowodować, że dane wyjściowe modelu nie będą kompletnym obiektem JSON (zobacz poniżej)
