Role w konwersacji
Budowanie zapytania API
Wiadomości
Function / tool calling
Model może „wywoływać” funkcje zdefiniowane przez programistę. Sam ich nie uruchamia: zwraca nazwę funkcji i argumenty, a funkcję wykonuje kod aplikacji. Wynik trafia z powrotem do modelu jako nowa wiadomość. Na tym mechanizmie opierają się agenci i automatyzacje.
1. Zapytanie
+ definicje funkcji
2. Model decyduje
wywołać funkcję?
3. Function call
nazwa + argumenty
4. Wykonanie
robi to Twój kod
5. Wynik
wraca do modelu
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Pobiera aktualną pogodę dla miasta",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Nazwa miasta"
}
},
"required": ["city"]
}
}
}
{
"role": "assistant",
"tool_calls": [{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\": \"Warszawa\"}"
}
}]
}
{
"role": "tool",
"tool_call_id": "call_abc123",
"content": "{\"temp_c\": 12}"
}
Dobre praktyki API
Klucze API: Nadawaj kluczom tylko potrzebne uprawnienia. Trzymaj je na serwerze, nie w kodzie frontendu.
Rate limiting: Przestrzegaj limitów API. Po błędzie 429 (Too Many Requests) ponawiaj zapytanie z coraz dłuższą przerwą (exponential backoff).
Streaming: Przez Server-Sent Events (SSE) odpowiedź spływa token po tokenie. Użytkownik widzi tekst od razu i nie czeka na całość.
Koszty: Śledź zużycie tokenów. API czatu nie pamięta poprzednich zapytań, więc system prompt jest wysyłany z każdym zapytaniem i za każdym razem zużywa tokeny.