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 pozwala łączyć modele OpenAI z zewnętrznymi narzędziami i systemami. Jest to przydatne w wielu zastosowaniach, takich jak wyposażanie asystentów AI w dodatkowe możliwości lub tworzenie głębokich integracji między Twoimi aplikacjami a LLM.
Dowiedz się więcej w naszym przewodniku dla deweloperów po wywołaniu funkcji.
W czerwcu 2024 r. uruchomiliśmy ustrukturyzowane dane wyjściowe. Gdy włączysz je, ustawiając strict: true w definicji funkcji, ustrukturyzowane dane wyjściowe gwarantują, że argumenty wygenerowane przez model dla wywołania funkcji dokładnie odpowiadają schematowi JSON podanemu w definicji funkcji.
W październiku 2024 r. uruchomiliśmy funkcję „Wygeneruj cokolwiek”, która pozwala deweloperom opisać funkcję, wkleić ją bezpośrednio albo wkleić kod i wygenerować prawidłowy schemat funkcji. Dowiedz się więcej o funkcji „Wygeneruj cokolwiek” w tym artykule 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)
