edulab

LLM przez API

Większość LLM jest dostępna przez REST API. Kto buduje na nich aplikację, musi znać budowę zapytania, role wiadomości i function calling.

Role w konwersacji

Budowanie zapytania API

Wiadomości

system Jesteś pomocnym asystentem.
user Czym jest tokenizacja?
Podgląd JSON

                

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

Definicja funkcji (pole tools):
{
  "type": "function",
  "function": {
    "name": "get_weather",
    "description": "Pobiera aktualną pogodę dla miasta",
    "parameters": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string",
          "description": "Nazwa miasta"
        }
      },
      "required": ["city"]
    }
  }
}
Model odpowiada:
{
  "role": "assistant",
  "tool_calls": [{
    "id": "call_abc123",
    "type": "function",
    "function": {
      "name": "get_weather",
      "arguments": "{\"city\": \"Warszawa\"}"
    }
  }]
}
Twój kod odsyła wynik:
{
  "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.