Työkalu- ja funktioskeemat
Funktiokutsujen skeemat
Työkalu- ja funktioskeemat on ilmainen Tekoälyn prompt engineering-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Tekoälyn prompt engineering-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyn prompt engineering-kurssilla on yhteensä 4 oppituntia.
Työkalut ovat skeemoja ja käyttötarkoituksia
Funktiokutsujen avulla malli voi pyytää koodianne suorittamaan toiminnon. Jokainen työkalu ilmoitetaan nimellä, kuvauksella (milloin sitä käytetään) ja sen parametrien JSON Scheman määrittelyllä.
Malli ei koskaan suorita koodia; se tuottaa strukturoidun kutsupyynnön, jonka ajoympäristönne välittää suoritettavaksi. Skeema tekee argumenteista jäsennettäviä.
Työkalumäärittelyn rakenne
Työkalumäärittely on skeemalla kuvattu kyvykkyyden ilmoitus.
{
'type': 'function',
'function': {
'name': 'get_weather',
'description': 'Get current weather for a city. Use when the user asks about weather.',
'parameters': {
'type': 'object',
'properties': {
'city': {'type': 'string'},
'units': {'type': 'string', 'enum': ['celsius', 'fahrenheit']}
},
'required': ['city', 'units'],
'additionalProperties': False
}
}
}Kuvaus ohjaa valintaa
Kun käytettävissä on paljon työkaluja, malli valitsee ensisijaisesti kuvauksen perusteella. Kirjoittakaa kuvaukset päätössäännöiksi:
- Ilmoittakaa, milloin työkalua käytetään ja milloin ei.
- Erottakaa se sisarustyökaluista.
- Mainitkaa vaaditut ennakkoehdot.
Huonot kuvaukset johtavat väärän työkalun valintaan useammin kuin huonot skeemat argumenttivirheisiin.
Kutsu–suoritus–palautus-silmukka
Funktiokutsut ovat monivaiheisia. Malli tuottaa kutsun, suoritatte sen, liitätte tuloksen ja malli jatkaa.
resp = client.chat.completions.create(model='gpt-4o', messages=msgs, tools=tools)
call = resp.choices[0].message.tool_calls[0]
args = json.loads(call.function.arguments)
result = dispatch(call.function.name, args)
msgs.append(resp.choices[0].message)
msgs.append({'role': 'tool', 'tool_call_id': call.id,
'content': json.dumps(result)})
# call the model again to continue with the tool resultRinnakkaiset työkalukutsut
Modernit mallit voivat pyytää useita työkalukutsuja yhdellä vuorolla, kun toiminnot ovat toisistaan riippumattomia. Ajoympäristönne pitäisi käydä läpi kaikki tool_calls, suorittaa ne (mieluiten samanaikaisesti) ja palauttaa yksi työkalusanoma kutakin tool_call_id-tunnistetta kohden.
Älkää koskaan olettako, että kutsuja on vain yksi, vaan käykää ne aina silmukassa läpi.
for call in resp.choices[0].message.tool_calls:
args = json.loads(call.function.arguments)
result = dispatch(call.function.name, args)
msgs.append({'role': 'tool', 'tool_call_id': call.id,
'content': json.dumps(result)})Työkalujen käytön pakottaminen ja rajoittaminen
Hallitkaa valintaa tool_choice-määrityksellä:
auto— malli päättää.required— jonkin työkalun kutsuminen on pakollista.{name: ...}— pakottakaa tietty työkalu.none— poistakaa työkalut käytöstä tällä vuorolla.
Tietyn työkalun pakottaminen muuttaa funktiokutsut pelkäksi strukturoiduksi poiminnaksi.
client.chat.completions.create(
model='gpt-4o', messages=msgs, tools=tools,
tool_choice={'type': 'function', 'function': {'name': 'get_weather'}}
)Validoikaa argumentit ennen suoritusta
Vaikka skeemat olisivat tiukkoja, käsitelkää työkalun argumentteja epäluotettavana syötteenä. Validoikaa ne uudelleen skeemaa vasten ja soveltakaa liiketoimintasääntöjä ennen kuin käsittelette oikeita järjestelmiä (tietokannat, maksut, tiedostojen poistot).
def dispatch(name, args):
schema = TOOLS[name]['function']['parameters']
jsonschema.validate(args, schema) # defense in depth
if name == 'refund' and args['amount'] > MAX_AUTO_REFUND:
return {'error': 'requires human approval'}
return HANDLERS[name](**args)Työkalujen virheet ovat osa protokollaa
Kun työkalu epäonnistuu, palauttakaa työkalutuloksena rakenteinen virhe poikkeuksen heittämisen sijaan. Malli voi sitten pyytää anteeksi, yrittää uudelleen korjatuilla argumenteilla tai valita toisen työkalun.
Muotoilkaa virheistä toimintaohjeita sisältäviä: ilmoittakaa syy ja, jos se on turvallista, vihje palautumista varten.
{'status': 'error',
'code': 'CITY_NOT_FOUND',
'message': 'No city named Xyz. Ask the user to clarify the city.'}Pitäkää työkalupinta pienenä
Kymmenet työkalut heikentävät valinnan tarkkuutta ja kasvattavat tokenikustannusta (jokainen skeema on kontekstissa jokaisella vuorolla). Keinoja haitan vähentämiseen:
- Ryhmitelkää toisiinsa liittyvät toiminnot yhden työkalun taakse, jonka
actionon enum. - Tuokaa dynaamisesti näkyviin vain nykytilanteeseen liittyvät työkalut.
- Käyttäkää nimiavaruuksia samankaltaisten työkalujen aiheuttaman sekaannuksen vähentämiseksi.
Skeeman vahvistaminen sivuvaikutuksia varten
Tuhoavien toimintojen kohdalla sisällyttäkää turvallisuus itse skeemaan: vaatikaa erillinen vahvistuskenttä, rajoittakaa arvoalueita ja käyttäkää vapaamuotoisten tunnisteiden sijaan enumeraatioita tai validoituja malleja.
{
'name': 'delete_records',
'parameters': {
'type': 'object',
'properties': {
'table': {'type': 'string', 'enum': ['logs', 'temp_cache']},
'confirm': {'type': 'boolean'},
'max_rows': {'type': 'integer', 'minimum': 1, 'maximum': 1000}
},
'required': ['table', 'confirm', 'max_rows'],
'additionalProperties': False
}
}Työkalumäärittelyjen testaaminen
Käsitelkää työkalun valintaa mitattavana toimintana. Kootkaa arviointijoukko kehotteista, jotka on yhdistetty odotettuun työkaluun ja args-parametreihin, ja varmistakaa, että malli valitsee oikein. Seuratkaa regressioita, kun muotoilette kuvauksia uudelleen tai lisäätte uusia työkaluja.
cases = [
{'prompt': 'Whats it like in Paris?', 'expect_tool': 'get_weather'},
{'prompt': 'Convert 10 USD to EUR', 'expect_tool': 'fx_convert'}
]
for c in cases:
assert run(c['prompt']).tool_name == c['expect_tool']Pikatarkistus
Malli tuottaa yhden assistant-vuoron aikana kaksi toisistaan riippumatonta tool_calls-kutsua. Mitä runtime-ympäristön on tehtävä?
Kertaus
Työkalujen ja funktioiden skeemat käytännössä:
- Kuvaukset ohjaavat valintaa; skeemat määrittävät jäsennettävissä olevat argumentit.
- Käykää läpi kaikki tool_calls-kutsut; tukekaa rinnakkaista suoritusta.
- Ohjatkaa toimintaa tool_choice-parametrilla; pakottakaa työkalu puhtaassa tietojen poiminnassa.
- Validoikaa args-parametrit uudelleen; palauttakaa rakenteiset virheet.
- Pidätte työkalujen määrän pienenä ja vahvistakaa tuhoavien toimintojen suojauksia.
Seuraavaksi: korjaus- ja validointisilmukat tilanteisiin, joissa tulos menee edelleen pieleen.
Opi Tekoälyn prompt engineering 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
- 53
- Oppitunnit
- 199
Usein kysytyt kysymykset
Onko oppitunti ”Työkalu- ja funktioskeemat” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Tekoälyn prompt engineering-oppimispolun 3 oppituntia, myös oppitunnin “Työkalu- ja funktioskeemat”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Tekoälyn prompt engineering-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Työkalu- ja funktioskeemat”?
Funktiokutsujen skeemat Harjoittelet Tekoälyn prompt engineering-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Tekoälyn prompt engineering-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyn prompt engineering-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Työkalu- ja funktioskeemat”-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älyn prompt engineering-oppitunnilla?
Kyllä. Jokainen Tekoälyn prompt engineering-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
- Miksi rakenteinen tuloste
- JSON Schema kehotteissa
- Työkalu- ja funktioskeemat
- Korjaus- ja validointisilmukat