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
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
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.