Wywoływanie funkcji i używanie narzędzi z LLM
Definiowanie narzędzi jako schematu JSON, obsługa tool_calls w odpowiedzi, wykonywanie i zwracanie wyników.
Wywoływanie funkcji i używanie narzędzi z LLM to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Czym jest wywoływanie funkcji?
Wywoływanie funkcji (nazywane również użyciem narzędzi) umożliwia modelowi LLM zażądanie wykonania funkcji przez Państwa kod. Model sam niczego nie wykonuje — zwraca ustrukturyzowane żądanie w rodzaju „wywołaj tę funkcję z tymi argumentami”. Program wykonuje funkcję i przekazuje wynik z powrotem.
W ten sposób modele LLM pobierają aktualne dane, wykonują obliczenia lub uruchamiają rzeczywiste działania.
Opisywanie narzędzia
Modelowi przekazuje się listę narzędzi. Każde narzędzie ma name, description i parameters zdefiniowane jako JSON Schema. Opis ma kluczowe znaczenie, ponieważ model wykorzystuje go do decydowania, kiedy narzędzie ma zastosowanie.
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather for a city",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "City name"}
},
"required": ["city"]
}
}
}]JSON Schema dla parametrów
Pole parameters jest zgodne ze standardem JSON Schema. Należy zadeklarować obiekt z polami properties, z których każde ma typ type i opis, a także tablicę required. Dzięki temu model dokładnie wie, jakie argumenty ma wygenerować.
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"},
"units": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["city"]
}Przekazywanie narzędzi do modelu
Listę tools należy przekazać do chat.completions.create(). Model może teraz odpowiedzieć tekstem LUB wywołaniem narzędzia, zależnie od żądania użytkownika.
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Weather in Tokyo?"}],
tools=tools
)Wykrywanie wywołania narzędzia
Gdy model chce użyć narzędzia, odpowiedź zawiera message.tool_calls zamiast zwykłego tekstu. Przed założeniem, że otrzymano zwykłą odpowiedź, należy sprawdzić, czy ta lista istnieje.
msg = response.choices[0].message
if msg.tool_calls:
print("Model wants to call a tool")
else:
print(msg.content)Analizowanie argumentów
Każde wywołanie narzędzia zawiera function.name i function.arguments. Argumenty są przekazywane jako ciąg JSON, dlatego przed użyciem należy przeanalizować je za pomocą json.loads().
import json
call = msg.tool_calls[0]
name = call.function.name
args = json.loads(call.function.arguments)
print(name, args) # get_weather {"city": "Tokyo"}Wykonywanie funkcji
Teraz należy wywołać WŁASNĄ funkcję Pythona, przekazując jej przeanalizowane argumenty. LLM jedynie zdecydował, co wywołać — rzeczywistą pracę wykonuje Państwa kod.
def get_weather(city):
return {"city": city, "temp_c": 18, "condition": "Cloudy"}
result = get_weather(**args)Zwracanie wyniku do modelu
Wynik należy odesłać, aby model mógł utworzyć odpowiedź w języku naturalnym. Najpierw należy dopisać oryginalną wiadomość asystenta, a następnie wiadomość z rolą tool, zawierającą wynik i pasujący identyfikator tool_call_id.
messages.append(msg) # the assistant tool-call message
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps(result)
})Generowanie końcowej odpowiedzi
Należy ponownie wywołać model ze zaktualizowanym messages. Teraz, gdy ma już wynik narzędzia, generuje przyjazną końcową odpowiedź dla użytkownika.
final = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools
)
print(final.choices[0].message.content)Pełna pętla użycia narzędzi
Pełny cykl wygląda następująco: (1) wysłanie narzędzi, (2) zwrócenie przez model wywołania narzędzia, (3) przeanalizowanie argumentów, (4) wykonanie funkcji, (5) zwrócenie wyniku jako wiadomości narzędzia, (6) wygenerowanie odpowiedzi przez model. Model może zażądać kilku wywołań narzędzi przed zakończeniem, dlatego należy wykonywać pętlę, dopóki tool_calls nie będzie puste.
Sterowanie wyborem narzędzia
Do sterowania zachowaniem należy użyć parametru tool_choice. Wartość "auto" (domyślna) pozwala modelowi zdecydować, wartość "none" zabrania używania narzędzi, a przekazanie konkretnej nazwy narzędzia wymusza użycie dokładnie tej funkcji. Jest to przydatne, gdy trzeba zagwarantować ustrukturyzowany wynik.
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools,
tool_choice={"type": "function", "function": {"name": "get_weather"}}
)Szybki test
Sprawdź swoją wiedzę o użyciu narzędzi.
Podsumowanie: wywoływanie funkcji
Zdefiniowali Państwo narzędzia za pomocą nazwy, opisu i parametrów w formacie JSON Schema, a następnie przekazali je do modelu. Wykryli Państwo tool_calls, przeanalizowali function.arguments za pomocą json.loads(), wykonali własną funkcję i zwrócili wynik jako wiadomość z rolą tool oraz pasującym identyfikatorem tool_call_id.
Końcowe wywołanie modelu przekształca surowy wynik w naturalną odpowiedź, zamykając pętlę użycia narzędzi.
Często zadawane pytania
Czy lekcja „Wywoływanie funkcji i używanie narzędzi z LLM” jest bezpłatna?
Tak — pełny tekst „Wywoływanie funkcji i używanie narzędzi z LLM” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Wywoływanie funkcji i używanie narzędzi z LLM”?
Definiowanie narzędzi jako schematu JSON, obsługa tool_calls w odpowiedzi, wykonywanie i zwracanie wyników. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Wywoływanie funkcji i używanie narzędzi z LLM”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- OpenAI API: chat.completions i przesyłanie strumieniowe
- Anthropic Claude API w Pythonie
- Wywoływanie funkcji i używanie narzędzi z LLM
- Projektowanie promptów dla produkcyjnych aplikacji LLM