Wywoływanie funkcji i integracja z API
Opanuj tworzenie promptów, które skłaniają LLM do wywoływania zewnętrznych funkcji lub API i umożliwiają im interakcję z rzeczywistymi systemami.
Wywoływanie funkcji i integracja z API to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 1 z 3. 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 AI Prompt Engineering, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Prompt Engineering zawiera 3 lekcji w sumie.
Wywoływanie zewnętrznych narzędzi
LLM są potężne, ale działają głównie w świecie tekstu. Co zrobić, gdy potrzebują informacji ze świata rzeczywistego lub muszą wykonać działania?
Wywoływanie funkcji umożliwia LLM interakcję z zewnętrznymi narzędziami i interfejsami API! Łączy to język z działaniem, umożliwiając AI:
- Uzyskiwanie aktualnych informacji (pogoda, ceny akcji)
- Wykonywanie działań (wysyłanie wiadomości e-mail, rezerwowanie wizyt)
- Łączenie się z bazami danych lub niestandardowymi narzędziami
Otwiera to przed systemami AI nowe możliwości.
Rola LLM: sugerowanie wywołań
Po włączeniu wywoływania funkcji należy przekazać LLM opisy dostępnych narzędzi (funkcji).
Zamiast odpowiadać bezpośrednio, LLM może uznać, że pomocne będzie narzędzie. Następnie generuje ustrukturyzowaną „sugestię” wywołania funkcji, zawierającą nazwę funkcji i jej argumenty.
Ważne: LLM nie wykonuje funkcji samodzielnie. Informuje jedynie aplikację, którą funkcję należy wywołać i jakie dane wejściowe jej przekazać.
Definiowanie narzędzi
Aby korzystać z wywoływania funkcji, należy zdefiniować narzędzia (funkcje) w sposób zrozumiały dla LLM. Zwykle wymaga to podania:
- nazwy funkcji (np.
get_current_weather) - opisu jej działania (ma on kluczowe znaczenie przy wyborze właściwej funkcji przez LLM)
- parametrów, które przyjmuje, wraz z ich typami i opisami (np.
location: string)
Ten „schemat” przekazuje LLM wszystkie informacje potrzebne do zasugerowania prawidłowego wywołania.
Definicja narzędzia pogodowego
Oto koncepcyjna definicja narzędzia pogodowego w Pythonie. Należy zwrócić uwagę na jasny opis i parametry. To właśnie udostępnia się LLM.
Funkcja ta reprezentuje zewnętrzne narzędzie, które LLM mogłoby w praktyce „wywołać”.
def get_current_weather(location: str, unit: str = "celsius"):
"""
Get the current weather in a given location.
Args:
location (str): The city and state, e.g. "London, UK"
unit (str): The unit of temperature, "celsius" or "fahrenheit"
Returns:
dict: Weather information.
"""
# In a real app, this would call a weather API
if location == "London, UK":
return {"temperature": "15", "unit": unit, "forecast": "cloudy"}
elif location == "New York, USA":
return {"temperature": "20", "unit": unit, "forecast": "sunny"}
else:
return {"temperature": "N/A", "unit": unit, "forecast": "unknown"}
Formułowanie promptów dla narzędzi
Aby zachęcić LLM do korzystania z narzędzi, prompt musi jasno określać intencję użytkownika. Następnie LLM decyduje, czy narzędzie może pomóc.
Nie należy bezpośrednio instruować LLM: „wywołaj get_weather”. Zamiast tego należy zadać pytanie, które to sugeruje:
- „Jaka jest pogoda w Londynie?”
- „Czy możesz zarezerwować dla mnie spotkanie na jutro?”
Mając do dyspozycji opisy narzędzi, LLM wywnioskuje, że konieczne jest wywołanie funkcji.
Sugestia wywołania przez LLM
Gdy LLM decyduje się użyć narzędzia, nie udziela bezpośredniej odpowiedzi. Zamiast tego zwraca ustrukturyzowany obiekt, zazwyczaj w formacie JSON, wskazujący funkcję do wywołania i jej argumenty.
Aplikacja następnie analizuje ten wynik.
Oto sugestia, jaką LLM może zwrócić po otrzymaniu pytania „Jaka jest pogoda w Londynie?”:
{
"tool_calls": [
{
"id": "call_abc123",
"function": {
"name": "get_current_weather",
"arguments": "{\"location\": \"London, UK\", \"unit\": \"celsius\"}"
},
"type": "function"
}
]
}Aplikacja uruchamia narzędzie
Po otrzymaniu sugestii wywołania funkcji od LLM aplikacja przejmuje działanie:
- Identyfikuje żądaną funkcję, np.
get_current_weather. - Wydobywa argumenty, np.
"London, UK". - Wykonuje właściwą funkcję Pythona lub wywołuje API w środowisku aplikacji.
W tym miejscu, poza LLM, następuje działanie w świecie rzeczywistym.
LLM przetwarza wynik działania narzędzia
Po wykonaniu funkcji przez aplikację otrzymuje ona wynik, np. {"temperature": "15", ...}.
Wynik ten przekazuje się następnie z powrotem do LLM wraz z pierwotną historią konwersacji i żądaniem wywołania funkcji.
LLM wykorzystuje te nowe informacje do wygenerowania odpowiedzi w języku naturalnym na pierwotne pytanie użytkownika.
Interakcja od początku do końca
Połączmy wszystkie elementy. Ten przykład pokazuje przebieg, w którym pytanie użytkownika skłania LLM do zasugerowania wywołania funkcji, aplikacja je wykonuje, a następnie LLM udziela ostatecznej odpowiedzi.
Jest to uproszczone przedstawienie pętli interakcji.
def get_current_weather(location, unit="celsius"):
if location == "London, UK":
return {"temp": "15", "unit": unit, "forecast": "cloudy"}
return {"temp": "N/A", "unit": unit, "forecast": "unknown"}
def simulate_llm_response(user_query):
# LLM 'thinks' and decides to call a tool
if "weather in London" in user_query:
return {
"type": "tool_call",
"function": "get_current_weather",
"args": {"location": "London, UK"}
}
return {"type": "text", "content": "I cannot help with that."}
def simulate_llm_final_response(tool_output):
# LLM processes tool output and gives natural language
temp = tool_output.get("temp", "N/A")
forecast = tool_output.get("forecast", "unknown")
return f"The weather in London is {temp} degrees and {forecast}."
def main():
user_input = "What is the weather in London, UK?"
print(f"User: {user_input}")
llm_output = simulate_llm_response(user_input)
if llm_output["type"] == "tool_call":
func_name = llm_output["function"]
func_args = llm_output["args"]
print(f"LLM suggested calling: {func_name}({func_args})")
# Execute the function
tool_result = get_current_weather(**func_args)
print(f"Tool output: {tool_result}")
# Feed result back to LLM
final_answer = simulate_llm_final_response(tool_result)
print(f"LLM's final answer: {final_answer}")
else:
print(f"LLM: {llm_output['content']}")
if __name__ == "__main__":
main()
Sprawdzenie wywoływania funkcji
Proszę sobie wyobrazić, że LLM zwraca żądanie wywołania funkcji. Jaki jest następny bezpośredni krok, który powinna wykonać aplikacja?
Podsumowanie: narzędzia w działaniu
W tej lekcji omówiliśmy, jak LLM mogą wchodzić w interakcje ze światem rzeczywistym dzięki wywoływaniu funkcji i integracji z API.
Dowiedzieliśmy się, że:
- Narzędzia (funkcje) definiuje się za pomocą opisów i parametrów.
- LLM sugeruje, które narzędzie wywołać i z jakimi argumentami.
- Aplikacja wykonuje właściwe narzędzie i przekazuje wynik z powrotem.
- LLM wykorzystuje następnie wynik do sformułowania ostatecznej, opartej na aktualnych informacjach odpowiedzi.
Ta potężna technika pozwala LLM wyjść poza samo generowanie tekstu, umożliwiając im wykonywanie działań i pobieranie aktualnych informacji.
Często zadawane pytania
Czy lekcja „Wywoływanie funkcji i integracja z API” jest bezpłatna?
Tak — pełny tekst „Wywoływanie funkcji i integracja z API” 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 AI Prompt Engineering, przejdź na CoddyKit PRO. Kurs AI Prompt Engineering zawiera 3 lekcji w sumie.
Co nauczysz się w „Wywoływanie funkcji i integracja z API”?
Opanuj tworzenie promptów, które skłaniają LLM do wywoływania zewnętrznych funkcji lub API i umożliwiają im interakcję z rzeczywistymi systemami. Ćwiczysz AI Prompt Engineering 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ąć AI Prompt Engineering?
Nie wymagamy żadnego doświadczenia. AI Prompt Engineering 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 1 z 3.
Ile czasu zajmuje lekcja „Wywoływanie funkcji i integracja z API”?
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 AI Prompt Engineering?
Tak. Każda lekcja AI Prompt Engineering 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
- Wywoływanie funkcji i integracja z API
- Systemy promptowania wieloagentowego
- Niestandardowe narzędzia i wtyczki dla LLM