← 返回列表

Ringkasan Teknis Function Calling

Ringkasan Teknis Function Calling

1. Definisi

Function Calling adalah mekanisme yang memungkinkan pengembang mendeskripsikan alat eksternal yang tersedia (seperti API) ke Large Language Model (LLM) melalui JSON schema. Ketika model menilai perlu memanggil alat untuk menjawab pertanyaan pengguna, ia menghasilkan data JSON tool_calls terstruktur yang menunjukkan nama fungsi dan parameter yang akan dipanggil. Program host mem-parsing dan mengeksekusi panggilan ini, mengembalikan hasilnya ke model, dan model kemudian menghasilkan jawaban akhir.

2. Prinsip Inti dan Masalah yang Dipecahkan

  • Esensi: Lingkaran tertutup "dua putaran percakapan + eksekusi di antaranya". Putaran pertama: model membuat keputusan dan mengeluarkan permintaan panggilan alat; kode di antaranya mengeksekusi alat; putaran kedua: model menghasilkan jawaban akhir berdasarkan hasil eksekusi.
  • Masalah yang Dipecahkan: Sebelumnya, saat meminta model memanggil alat, diperlukan penguraian bahasa alami yang tidak stabil dan rentan kesalahan (if/else). Dengan output terstruktur, standardisasi dan akurasi meningkat.

3. Pembagian Tugas (Analogi Delegasi Tugas)

  • Pengembang (HR): Mendefinisikan alat, menulis JSON Schema yang mendeskripsikan fungsi, parameter, dll.
  • Model LLM (Manajer): Memahami deskripsi alat, memutuskan apakah perlu memanggil, alat mana yang dipanggil, dan parameter apa, serta menghasilkan permintaan panggilan terstruktur (tool_calls). Model hanya membuat keputusan dan menghasilkan teks, tidak mengeksekusi kode.
  • Eksekutor/Kode Host (Karyawan): Mem-parsing permintaan tool_calls dari model, benar-benar mengeksekusi fungsi atau panggilan API yang sesuai, dan mengembalikan hasilnya.

4. Definisi Alat (JSON Schema)

Schema adalah "buku petunjuk" alat. Informasi kunci meliputi:
- name: Pengidentifikasi unik alat.
- description: Sangat penting, model sepenuhnya bergantung pada deskripsi ini untuk memutuskan apakah akan memanggil alat. Semakin jelas dan akurat deskripsi, semakin tepat keputusan model.
- parameters: Mendefinisikan parameter yang diperlukan alat beserta tipe, deskripsi, dan batasan (misalnya nilai enum, apakah wajib, dll.).

5. Alur Panggilan Lengkap

Artikel ini, melalui contoh kode untuk menanyakan cuaca, menunjukkan seluruh proses mulai dari pertanyaan pengguna, panggilan model pertama dengan definisi alat, model mengembalikan tool_calls, kode mengeksekusi fungsi, hasilnya dimasukkan kembali ke riwayat percakapan sebagai pesan dengan role: "tool", hingga model menghasilkan jawaban akhir dalam bahasa alami.

6. Fitur Lanjutan - Panggilan Alat Paralel

Ketika pertanyaan pengguna memerlukan kerja sama beberapa alat (misalnya, menanyakan cuaca beberapa kota sekaligus), model dapat menghasilkan daftar yang berisi beberapa tool_calls dalam satu respons. Kode host dapat mengeksekusi panggilan ini secara paralel, lalu mengembalikan semua hasil ke model untuk digabungkan, sehingga meningkatkan efisiensi.

评论

暂无已展示的评论。

发表评论(匿名)