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.
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
- Lähetätte viestit ja työkalumääritykset
- Malli palauttaa joko lopullisen vastauksen TAI tool_call-kutsun
- Suoritatte työkalun mallin antamilla argumenteilla
- Lisäätte tuloksen työkaluvistiin
- 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.
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
- Miten funktion kutsuminen toimii
- Työkalujen skeemojen määrittäminen (JSON Schema)
- Työkalujen valitseminen ajonaikaisesti
- Tulosten palauttaminen mallille