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: 2 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 czy tworzenie głębokich integracji między aplikacjami a LLM-ami.

Dowiedz się więcej w naszym przewodniku dla deweloperów dotyczącym wywołania funkcji.

W czerwcu 2024 roku udostępniliśmy ustrukturyzowane dane wyjściowe. Po włączeniu tej opcji przez ustawienie `strict: true` w definicji funkcji, ustrukturyzowane dane wyjściowe gwarantują, że argumenty wygenerowane przez model dla wywołania funkcji dokładnie odpowiadają schematowi JSON Schema podanemu w definicji funkcji.

W październiku 2024 roku udostępniliśmy funkcję 'Generate Anything', która pozwala deweloperom opisać funkcję, wkleić ją bezpośrednio albo wkleić swój kod i wygenerować prawidłowy schemat funkcji. Więcej o funkcji 'Generate Anything' znajdziesz tutaj w artykule centrum pomocy

Jak mogę używać wywołania funkcji?

Wywołanie funkcji jest przydatne w bardzo wielu zastosowaniach, takich jak:

  • Umożliwienie asystentom pobierania danych:

    • asystent AI musi pobrać najnowsze dane klienta z systemu wewnętrznego, gdy użytkownik pyta: „jakie są moje ostatnie zamówienia?”, zanim będzie mógł wygenerować odpowiedź dla użytkownika

  • Umożliwienie asystentom podejmowania działań:

    • asystent AI musi planować spotkania na podstawie preferencji użytkownika i dostępności w kalendarzu.

  • Umożliwienie asystentom wykonywania obliczeń:

    • asystent korepetytora matematyki musi wykonać obliczenie matematyczne.

  • Tworzenie rozbudowanych przepływów pracy:

    • potok ekstrakcji 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 ujednolica możliwości wcześniej podzielone między API zakończenia czatu a Assistants API.

Jak mogę używać trybu JSON?

Po włączeniu trybu JSON dane wyjściowe modelu są gwarantowanie poprawnym JSON-em, z wyjątkiem niektórych przypadków brzegowych, które należy wykrywać i odpowiednio obsługiwać.

Aby zażądać trybu JSON za pomocą Responses API lub API zakończenia czatu, możesz ustawić response_format na { "type": "json_object" } w obsługiwanych modelach, ale działa to tylko wtedy, gdy spełnione są warunki wstępne modelu/wiadomości/narzędzia (na przykład model obsługuje json_object, rozmowa zawiera instrukcję generowania JSON, a wszelkie ograniczenia narzędzi są zgodne). W przypadku trybu JSON z response_format: {"type": "json_object"} co najmniej jedna wiadomość w żądaniu musi zawierać w jakiejś formie json, na przykład JSON, json lub Json; w przeciwnym razie API zwróci błąd. 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ędzi/formatów odpowiedzi mogą zostać odrzucone albo mogą nie używać próbkowania z ograniczeniami JSON.

Ważne uwagi:

  • Korzystając z trybu JSON, zawsze musisz poinstruować model, aby generował JSON, za pomocą jakiejś wiadomości w rozmowie, na przykład w wiadomości systemowej. Jeśli nie dołączysz jawnej instrukcji generowania JSON, model może zacząć generować niekończący się strumień białych znaków, a żądanie może być wykonywane bez końca, aż osiągnie limit tokenów. Aby zmniejszyć ryzyko przeoczenia tego, tryb JSON odrzuca żądania, jeśli odpowiednie wiadomości wejściowe lub instrukcje nie zawierają słowa json w jakiejkolwiek formie, bez rozróżniania wielkości liter.

  • Tryb JSON nie gwarantuje, że dane wyjściowe będą zgodne z jakimkolwiek konkretnym schematem, a jedynie że będą poprawne i dadzą się sparsować bez błędów. Aby zapewnić zgodność z Twoim schematem, użyj ustrukturyzowanych danych wyjściowych, a jeśli nie jest to możliwe, użyj biblioteki walidacyjnej i w razie potrzeby ponowień, aby mieć pewność, że dane wyjściowe odpowiadają oczekiwanemu schematowi.

  • Twoja aplikacja musi wykrywać i obsługiwać przypadki brzegowe, które mogą spowodować, że dane wyjściowe modelu nie będą kompletnym obiektem JSON (zob. poniżej)

Czy ten artykuł był pomocny?