Tekoälyagentit · Oppitunti

Miten funktion kutsuminen toimii

Ymmärtäkää koko edestakainen kulku: malli valitsee työkalun, koodinne suorittaa sen, lähetätte tuloksen takaisin ja malli jatkaa.

Oppitunti 1/413 vaihetta

Miten funktion kutsuminen toimii on ilmainen Tekoälyagentit-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.

Function calling: perusmalli

Function calling on protokolla, joka muuttaa LLM:n agentiksi. Malli valitsee antamastanne luettelosta funktion, täyttää sen argumentit ja te suoritatte funktion.

Tätä mallia tukevat OpenAI, Anthropic, Google, Cohere, Mistral ja useimmat suuret OSS-mallit, kun niitä varten on tehty sopivat hienosäädöt.

Viisivaiheinen edestakainen kutsu

  1. Lähetätte viestit ja työkalumääritykset
  2. Malli palauttaa joko lopullisen vastauksen TAI tool_call-kutsun
  3. Suoritatte työkalun mallin antamilla argumenteilla
  4. Lisäätte tuloksen työkaluvistiin
  5. Kutsutte mallia uudelleen päivitetyllä keskusteluhistorialla

Toistakaa vaiheet 2–5, kunnes malli palauttaa lopullisen vastauksen.

Vaihe 1: Työkalujen määrittäminen

Työkalumääritykset ovat JSON-skeemoja, jotka kuvaavat kukin yhden funktion:

tools = [{
    'type': 'function',
    'function': {
        'name': 'get_weather',
        'description': 'Current weather for a city',
        'parameters': {
            'type': 'object',
            'properties': {
                'city': {'type': 'string'}
            },
            'required': ['city']
        }
    }
}]
import json
print(json.dumps(tools, indent=2))

Vaihe 2: Ensimmäinen mallikutsu

Lähettäkää viestit ja työkalut:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': 'Weather in Paris?'}],
    tools=tools,
)
message = response.choices[0].message
print(message.tool_calls)
# [ToolCall(name='get_weather', arguments='{"city": "Paris"}')]

Vaihe 3: Työkalun suorittaminen

Ohjatkaa kutsu Python-funktiollenne:

import json

def get_weather(city: str) -> dict:
    # ...call your weather API...
    return {'city': city, 'temp_c': 18, 'condition': 'cloudy'}

tool_call = message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
result = get_weather(**args)

Vaihe 4: Työkalutuloksen lisääminen

Lisätkää työkaluvisti, jossa on vastaava tunnus:

messages.append(message)  # the assistant message with tool_calls
messages.append({
    'role': 'tool',
    'tool_call_id': tool_call.id,
    'content': json.dumps(result)
})

Vaihe 5: Toinen mallikutsu

Kutsukaa mallia uudelleen — nyt sillä on työkalutulos, ja se tuottaa käyttäjälle näytettävän vastauksen:

final = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
)
print(final.choices[0].message.content)
# 'It is currently 18 degrees and cloudy in Paris.'

Agenttisilmukka

Ympäröikää tämä while-silmukalla — malli saattaa kutsua useita työkaluja peräkkäin:

while True:
    response = client.chat.completions.create(model=MODEL, messages=messages, tools=tools)
    msg = response.choices[0].message
    messages.append(msg)
    if not msg.tool_calls:
        return msg.content  # final answer
    for tc in msg.tool_calls:
        result = dispatch(tc)
        messages.append({'role': 'tool', 'tool_call_id': tc.id, 'content': json.dumps(result)})

Rinnakkaiset työkalukutsut

Nykyaikaiset mallit palauttavat useita tool_calls-kutsuja yhdessä vastauksessa. Suorittakaa ne rinnakkain, jos se on turvallista:

import asyncio

async def run_tools(tool_calls):
    coros = [dispatch_async(tc) for tc in tool_calls]
    return await asyncio.gather(*coros)

finish_reason: tool_calls

Voitte myös tarkistaa finish_reason-arvon sen sijaan, että etsisitte tool_calls-kutsuja:

if response.choices[0].finish_reason == 'tool_calls':
    # the model wants to call tools
    ...
elif response.choices[0].finish_reason == 'stop':
    # done
    ...

Yleiset virheet

  • Avustajan viestin unohtaminen ennen työkalutulosta
  • Väärän tool_call_id-tunnuksen käyttäminen
  • Työkalutulosten lähettäminen käyttäjäviesteinä
  • Silmukan päästäminen jatkumaan rajatta — asettakaa MAX_STEPS

Silmukan päättyminen

Mistä tiedätte, että agentti on valmis?

Kertaus

Function calling on koko tämän kurssin tärkein malli. Hallitkaa se ennen kuin jatkatte eteenpäin.

Aloita maksutta

Opi Tekoälyagentit tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
60
Oppitunnit
239

Usein kysytyt kysymykset

Onko oppitunti ”Miten funktion kutsuminen toimii” ilmainen?

Kyllä – oppitunnin ”Miten funktion kutsuminen toimii” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Miten funktion kutsuminen toimii”?

Ymmärtäkää koko edestakainen kulku: malli valitsee työkalun, koodinne suorittaa sen, lähetätte tuloksen takaisin ja malli jatkaa. Harjoittelet Tekoälyagentit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Tekoälyagentit-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Miten funktion kutsuminen toimii”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyagentit-oppitunnilla?

Kyllä. Jokainen Tekoälyagentit-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Miten funktion kutsuminen toimii
  2. Työkalujen skeemojen määrittäminen (JSON Schema)
  3. Työkalujen valitseminen ajonaikaisesti
  4. Tulosten palauttaminen mallille
← Takaisin: Tekoälyagentit