0Pricing
AI Prompt Engineering · Pelajaran

Skema Alat/Fungsi

Skema untuk pemanggilan fungsi.

Skema Alat/Fungsi adalah pelajaran AI Prompt Engineering gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Prompt Engineering, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Prompt Engineering mencakup 4 pelajaran total.

Alat adalah Skema Ditambah Maksud

Pemanggilan fungsi memungkinkan model meminta kode Anda menjalankan suatu tindakan. Setiap alat dideklarasikan dengan nama, deskripsi (kapan alat digunakan), dan JSON Schema untuk parameternya.

Model tidak pernah menjalankan kode; model menghasilkan permintaan pemanggilan terstruktur yang dikirim oleh runtime Anda. Skemalah yang membuat argumen dapat diurai.

Anatomi Definisi Alat

Definisi alat adalah deklarasi kemampuan yang dibungkus skema.

{
  '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
    }
  }
}

Deskripsi Mendorong Pemilihan

Ketika tersedia banyak alat, model memilih terutama berdasarkan deskripsi. Tulis deskripsi sebagai aturan keputusan:

  • Nyatakan kapan alat digunakan dan kapan tidak.
  • Bedakan alat tersebut dari alat serupa.
  • Sebutkan prasyarat yang diperlukan.

Deskripsi yang buruk lebih sering menyebabkan pemilihan alat yang salah daripada skema yang buruk menyebabkan kesalahan argumen.

Siklus Panggil-Jalankan-Kembalikan

Pemanggilan fungsi berlangsung dalam beberapa giliran. Model menghasilkan panggilan, Anda menjalankannya, Anda menambahkan hasilnya, lalu model melanjutkan.

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 result

Pemanggilan Alat Paralel

Model modern dapat meminta beberapa pemanggilan alat dalam satu giliran ketika tindakannya tidak saling bergantung. Runtime Anda harus mengiterasi semua tool_calls, menjalankannya (idealnya secara bersamaan), dan mengembalikan satu pesan alat untuk setiap tool_call_id.

Jangan pernah mengasumsikan hanya ada satu panggilan; selalu gunakan perulangan.

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)})

Memaksa dan Membatasi Penggunaan Alat

Kontrol pemilihan dengan tool_choice:

  • auto — model memutuskan.
  • required — harus memanggil suatu alat.
  • {name: ...} — memaksa alat tertentu.
  • none — menonaktifkan alat untuk giliran ini.

Memaksa alat tertentu mengubah pemanggilan fungsi menjadi ekstraksi terstruktur murni.

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

Validasi Argumen Sebelum Eksekusi

Bahkan dengan skema ketat, perlakukan argumen alat sebagai input yang tidak tepercaya. Validasi ulang terhadap skema dan terapkan aturan bisnis sebelum menyentuh sistem nyata (basis data, pembayaran, penghapusan berkas).

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)

Kesalahan Alat adalah Bagian dari Protokol

Ketika alat gagal, kembalikan kesalahan terstruktur sebagai hasil alat, bukan dengan melemparkan kesalahan. Model kemudian dapat meminta maaf, mencoba lagi dengan argumen yang diperbaiki, atau memilih alat lain.

Buat kesalahan yang dapat ditindaklanjuti: sertakan alasan dan, jika aman, petunjuk untuk pemulihan.

{'status': 'error',
 'code': 'CITY_NOT_FOUND',
 'message': 'No city named Xyz. Ask the user to clarify the city.'}

Jaga Permukaan Alat Tetap Kecil

Puluhan alat menurunkan akurasi pemilihan dan meningkatkan biaya token (setiap skema berada dalam konteks pada setiap giliran). Mitigasi:

  • Kelompokkan tindakan terkait di balik satu alat dengan enum action.
  • Tampilkan secara dinamis hanya alat yang relevan dengan keadaan saat ini.
  • Gunakan penamaan ruang untuk mengurangi kebingungan di antara alat yang serupa.

Memperkuat Skema untuk Efek Samping

Untuk tindakan yang bersifat merusak, tanamkan keselamatan dalam skema itu sendiri: wajibkan bidang konfirmasi yang eksplisit, batasi rentang nilai, dan hindari pengenal berupa teks bebas dengan memilih enum atau pola yang tervalidasi.

{
  '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
  }
}

Menguji Definisi Alat

Perlakukan pemilihan alat sebagai perilaku yang dapat diukur. Buat kumpulan evaluasi berisi prompt yang dipetakan ke alat dan argumen yang diharapkan, lalu pastikan model memilih dengan benar. Lacak regresi ketika Anda mengubah susunan deskripsi atau menambahkan alat baru.

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']

Pemeriksaan Singkat

Sebuah model menghasilkan dua tool_calls yang independen dalam satu giliran asisten. Apa yang harus dilakukan oleh runtime Anda?

Ringkasan

Skema alat/fungsi dalam praktik:

  • Deskripsi mengarahkan pemilihan; skema mengarahkan argumen yang dapat diuraikan.
  • Ulangi semua tool_calls; dukung eksekusi paralel.
  • Kontrol perilaku dengan tool_choice; paksa penggunaan alat untuk ekstraksi murni.
  • Validasi ulang argumen; kembalikan kesalahan terstruktur.
  • Jaga agar permukaan alat tetap kecil dan perkuat perlindungan untuk tindakan yang merusak.

Berikutnya: alur perbaikan dan validasi ketika keluaran masih salah.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Skema Alat/Fungsi” gratis?

Ya — teks lengkap “Skema Alat/Fungsi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Prompt Engineering, upgrade ke CoddyKit PRO. Kursus AI Prompt Engineering mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Skema Alat/Fungsi”?

Skema untuk pemanggilan fungsi. Kamu berlatih AI Prompt Engineering dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Prompt Engineering?

Tidak diperlukan pengalaman sebelumnya. AI Prompt Engineering di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Skema Alat/Fungsi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Prompt Engineering ini?

Ya. Setiap pelajaran AI Prompt Engineering menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mengapa Keluaran Terstruktur
  2. Skema JSON dalam Prompt
  3. Skema Alat/Fungsi
  4. Siklus Perbaikan dan Validasi
← Kembali ke AI Prompt Engineering