Function calling

Evnen hos en sprogmodel til at generere strukturerede kald til eksterne funktioner eller API'er baseret på brugerens hensigt.

Kort fortalt

Function calling gør det muligt for en AI at bede om at udføre specifikke handlinger, som f.eks. at hente data eller beregne noget, ved at kalde en foruddefineret funktion.

Kategori
teknik
Niveau
øvet
Udtale
/ˈfʌŋkʃən ˈkɔːlɪŋ/

Betydninger

2
  1. 1

    Generel evne hos en sprogmodel til at udvælge og parametrisere et funktionskald baseret på en tekstforespørgsel.

    • Modellen brugte function calling til at slå vejret op i København.
    • Ved at definere funktioner til databasetræk kan modellen udføre strukturerede forespørgsler via function calling.
  2. 2

    Specifik API-funktion i OpenAI's API, der lader modellen returnere et JSON-objekt med funktionsnavn og argumenter i stedet for et tekstsvar.

    • I OpenAI's chat completion API aktiveres function calling via parameteren 'functions'.OpenAI API documentation

Hvornår bruges det

Function calling anvendes typisk i chat-assistenter, der skal interagere med eksterne systemer som databaser, vejrtjenester eller regnemaskiner. Udvikleren definerer funktioner med beskrivelser, og modellen beslutter, hvornår og med hvilke parametre de skal kaldes.

Kodeeksempel

import openai

response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[{"role": "user", "content": "What's the weather in Copenhagen?"}],
  functions=[{
    "name": "get_weather",
    "description": "Get the current weather",
    "parameters": {
      "type": "object",
      "properties": {
        "location": {"type": "string", "description": "City name"}
      },
      "required": ["location"]
    }
  }]
)

# Check if function call was requested
if response.choices[0].message.get("function_call"):
    print(response.choices[0].message["function_call"])

Eksempel på function calling med OpenAI's API: modellen beder om at kalde funktionen get_weather med location='Copenhagen'.

Oprindelse

Udtrykket er lånt direkte fra engelsk, hvor 'function' betyder funktion og 'calling' betyder kald. Det refererer til programmeringskonceptet at kalde en funktion, men anvendes her om sprogmodellers evne til at generere sådanne kald.

Afledte ord

2

Kilder

1