Lær AI med Python · leksjon

Funksjonskall og verktøybruk med LLM-er

Definering av verktøy som JSON-skjema, håndtering av tool_calls i svaret samt kjøring og returnering av resultater.

Leksjon 3 av 413 trinn

Funksjonskall og verktøybruk med LLM-er er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Hva er funksjonskall?

Funksjonskall (også kalt verktøybruk) lar en LLM be koden din om å kjøre en funksjon. Modellen utfører ikke noe selv, men returnerer en strukturert forespørsel som sier «kall denne funksjonen med disse argumentene». Programmet ditt kjører funksjonen og sender resultatet tilbake.

Slik kan LLM-er hente oppdaterte data, utføre beregninger eller utløse handlinger i den virkelige verden.

Beskrive et verktøy

Du gir modellen en liste med verktøy. Hvert verktøy har et name, en description og parameters definert som et JSON Schema. Beskrivelsen er avgjørende, fordi modellen bruker den til å avgjøre når verktøyet passer.

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "City name"}
            },
            "required": ["city"]
        }
    }
}]

JSON Schema for parametere

Feltet parameters følger standarden JSON Schema. Du erklærer et objekt med properties, der hvert element har en type og en beskrivelse, samt en required-liste. Dette forteller modellen nøyaktig hvilke argumenter den skal produsere.

"parameters": {
    "type": "object",
    "properties": {
        "city": {"type": "string"},
        "units": {"type": "string", "enum": ["celsius", "fahrenheit"]}
    },
    "required": ["city"]
}

Sende verktøy til modellen

Send tools-listen til chat.completions.create(). Modellen kan nå svare med tekst ELLER med et verktøykall, avhengig av brukerens forespørsel.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Weather in Tokyo?"}],
    tools=tools
)

Oppdage et verktøykall

Når modellen vil bruke et verktøy, inneholder svaret message.tool_calls i stedet for vanlig tekst. Kontroller om denne listen finnes før du antar at du har et vanlig svar.

msg = response.choices[0].message

if msg.tool_calls:
    print("Model wants to call a tool")
else:
    print(msg.content)

Tolke argumentene

Hvert verktøykall har en function.name og function.arguments. Argumentene kommer som en JSON-streng, så tolk dem med json.loads() før bruk.

import json

call = msg.tool_calls[0]
name = call.function.name
args = json.loads(call.function.arguments)
print(name, args)  # get_weather {"city": "Tokyo"}

Kjøre funksjonen

Kjør nå DIN faktiske Python-funksjon med de tolkede argumentene. LLM-en bestemte bare hva som skulle kalles; det er koden din som utfører det virkelige arbeidet.

def get_weather(city):
    return {"city": city, "temp_c": 18, "condition": "Cloudy"}

result = get_weather(**args)

Returnere resultatet til modellen

Send resultatet tilbake slik at modellen kan skrive et svar på naturlig språk. Legg først til den opprinnelige assistentmeldingen og deretter en melding med rollen tool som inneholder resultatet og den samsvarende tool_call_id.

messages.append(msg)  # the assistant tool-call message
messages.append({
    "role": "tool",
    "tool_call_id": call.id,
    "content": json.dumps(result)
})

Generere det endelige svaret

Kall modellen på nytt med den oppdaterte messages-listen. Nå som den har verktøyresultatet, produserer den et vennlig, endelig svar til brukeren.

final = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    tools=tools
)
print(final.choices[0].message.content)

Hele verktøybruksprosessen

Hele forløpet er: (1) send verktøy, (2) modellen returnerer et verktøykall, (3) tolk argumentene, (4) kjør funksjonen, (5) returner resultatet som en verktøymelding, (6) modellen skriver svaret. En modell kan be om flere verktøykall før den avslutter, så fortsett i en løkke til tool_calls er tom.

Styre valg av verktøy

Bruk parameteren tool_choice til å styre atferden. "auto" (standard) lar modellen bestemme, "none" forbyr verktøy, og hvis du sender inn et bestemt verktøynavn, tvinger du frem akkurat den funksjonen. Dette er nyttig når du må garantere strukturert utdata.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    tools=tools,
    tool_choice={"type": "function", "function": {"name": "get_weather"}}
)

Hurtigsjekk

Test forståelsen din av verktøybruk.

Oppsummering: Funksjonskall

Du definerte verktøy med navn, beskrivelse og JSON-Schema-parametere, og sendte dem til modellen. Du oppdaget tool_calls, tolket function.arguments med json.loads(), kjørte den faktiske funksjonen din og returnerte resultatet som en tool-melding med samsvarende tool_call_id.

Et siste modellkall gjør det rå resultatet om til et naturlig svar og fullfører verktøybruksprosessen.

Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
53
Leksjoner
225

Ofte stilte spørsmål

Er leksjonen «Funksjonskall og verktøybruk med LLM-er» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «Funksjonskall og verktøybruk med LLM-er», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Hva lærer jeg i «Funksjonskall og verktøybruk med LLM-er»?

Definering av verktøy som JSON-skjema, håndtering av tool_calls i svaret samt kjøring og returnering av resultater. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Lær AI med Python?

Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Funksjonskall og verktøybruk med LLM-er»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?

Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. OpenAI API: chat.completions og strømming
  2. Anthropic Claude API i Python
  3. Funksjonskall og verktøybruk med LLM-er
  4. Promptutvikling for LLM-apper i produksjon
← Tilbake til Lær AI med Python