OpenAI
Ta strona została przetłumaczona maszynowo. Wyświetl oryginalny artykuł w języku angielskim.

Wywołanie funkcji w interfejsie API OpenAI

Czym jest wywołanie funkcji i jak działa w interfejsie API OpenAI?

Zaktualizowano: 13 days ago

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 json w 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)

Czy ten artykuł był pomocny?