Model Bahasa Besar (LLM) tidak dapat mengakses data real-time atau sistem eksternal. Pemanggilan Fungsi memungkinkan model memanggil alat eksternal, seperti API, database, dan user-defined function, sehingga mampu mengambil informasi atau melakukan tindakan di luar kemampuan bawaannya.
Cara kerja
Pemanggilan Fungsi bekerja melalui interaksi multi-langkah antara aplikasi Anda dan LLM:
- Lakukan panggilan model pertama Aplikasi mengirim pertanyaan pengguna dan daftar alat yang tersedia ke LLM.
-
Menerima instruksi pemanggilan alat dari model
Jika model memutuskan untuk memanggil alat eksternal, model tersebut mengembalikan instruksi JSON yang menentukan nama fungsi dan parameter input.
Jika model memutuskan untuk tidak memanggil alat, respons akan dikembalikan dalam bahasa alami.
- Jalankan alat dalam aplikasi Aplikasi menjalankan alat yang ditentukan dan mendapatkan output-nya.
- Lakukan panggilan model kedua Tambahkan output alat ke array messages dan panggil model lagi.
- Menerima respons akhir dari model Model menggabungkan output alat dengan pertanyaan pengguna untuk menghasilkan respons dalam bahasa alami.
Model yang didukung
- Qwen
- DeepSeek
- GLM
- Kimi
- MiniMax
-
Model generasi teks
- Qwen-Max: seri Qwen3.8-Max, Qwen3.7-Max, Qwen3.6-Max, Qwen3-Max, dan Qwen-Max
- Qwen-Plus: seri Qwen3.7-Plus, Qwen3.6-Plus, Qwen3.5-Plus, dan Qwen-Plus
- Qwen-Flash: seri Qwen3.7-Flash, Qwen3.6-Flash, Qwen3.5-Flash, dan Qwen-Flash
- Qwen-Coder: seri Qwen3-Coder, Qwen2.5-Coder, dan Qwen-Coder
- Qwen-Turbo: seri Qwen-Turbo
- Seri open source Qwen3.6
- Seri open source Qwen3.5
- Seri open source Qwen3
- Seri open source Qwen2.5
- Seri open source Qwen3.8
-
Model multimodal
- Qwen-VL: seri Qwen3-VL-Plus dan Qwen3-VL-Flash
- Qwen-Omni: seri Qwen3.5-Omni-Plus, Qwen3.5-Omni-Flash, dan Qwen3-Omni-Flash
- Qwen-Omni-Realtime: seri Qwen3.5-Omni-Plus-Realtime dan Qwen3.5-Omni-Flash-Realtime
- Seri open source Qwen3-VL
-
Model obrolan suara
- Qwen-Audio-Realtime: seri Qwen-Audio-3.0-Realtime-Plus dan Qwen-Audio-3.0-Realtime-Flash
Memulai
Sebelum memulai, dapatkan Kunci API dan konfigurasikan sebagai Variabel lingkungan. Jika Anda menggunakan SDK OpenAI atau SDK DashScope, Anda juga harus menginstal SDK.
Contoh berikut menunjukkan alur lengkap Pemanggilan Fungsi untuk skenario kueri cuaca.
- Kompatibel dengan OpenAI
- DashScope
Cara menggunakan
Pemanggilan Fungsi mendukung dua cara untuk meneruskan informasi alat:
- Metode 1: Meneruskan informasi melalui parameter tools (direkomendasikan) Untuk informasi lebih lanjut, lihat Cara menggunakan. Ikuti langkah-langkah untuk mendefinisikan alat, membuat array messages, melakukan Pemanggilan Fungsi, menjalankan fungsi alat, dan meminta LLM merangkum output fungsi alat.
- Metode 2: Meneruskan informasi melalui Pesan Sistem Meneruskan informasi melalui parameter tools memberikan hasil terbaik karena server secara otomatis menyesuaikan dengan templat prompt optimal. Jika Anda menggunakan model Qwen dan tidak ingin menggunakan parameter tools, lihat Meneruskan informasi alat melalui Pesan Sistem.
1. Definisikan alat
Alat menghubungkan LLM ke layanan eksternal. Anda harus terlebih dahulu mendefinisikan alat.
1.1. Buat fungsi alat
Buat dua fungsi alat: alat kueri cuaca dan alat kueri waktu.
-
Alat kueri cuaca
Alat ini menerima parameter
arguments. Formatargumentsadalah{"location": "lokasi yang dikueri"}. Output alat adalah string dalam format:"{lokasi} hari ini {cuaca}".Untuk tujuan demonstrasi, alat kueri cuaca yang didefinisikan di sini tidak benar-benar menanyakan cuaca. Alat ini secara acak memilih dari cerah, berawan, atau hujan. Dalam skenario bisnis nyata, Anda dapat menggantinya dengan alat seperti Amap Weather.
-
Alat kueri waktu
Alat kueri waktu tidak memerlukan parameter input apa pun. Output alat adalah string dalam format:
"Waktu saat ini: {waktu yang dikueri}.".Jika Anda menggunakan Node.js, jalankan
npm install date-fnsuntuk menginstal paket date-fns guna mendapatkan waktu.
1.2. Buat array tools
Sebelum manusia dapat memilih alat, mereka perlu memahami fungsinya, skenario penggunaannya, dan parameter inputnya. Hal yang sama berlaku untuk LLM. Model memilih alat yang sesuai berdasarkan informasi ini. Berikan informasi alat dalam format JSON berikut.
| Untuk alat kueri cuaca, format informasi deskripsi alat adalah sebagai berikut: |
2. Buat array messages
Pemanggilan Fungsi meneruskan instruksi dan konteks ke LLM melalui array messages. Sebelum melakukan panggilan, array messages harus berisi Pesan Sistem dan Pesan Pengguna.
Pesan Sistem
Meskipun fungsi dan skenario penggunaan alat telah dijelaskan saat Anda membuat array tools, lebih menekankan kapan harus memanggil alat dalam Pesan Sistem biasanya meningkatkan akurasi pemanggilan alat. Untuk skenario saat ini, Anda dapat mengatur Prompt Sistem menjadi:
Pesan Pengguna
Pesan Pengguna digunakan untuk meneruskan pertanyaan pengguna. Mengasumsikan pengguna bertanya "Cuaca di Shanghai", array messages pada titik ini adalah:
Karena alat yang tersedia mencakup kueri cuaca dan waktu, Anda juga dapat menanyakan waktu saat ini.
3. Lakukan Pemanggilan Fungsi
Teruskan tools dan messages yang telah dibuat ke LLM untuk melakukan Pemanggilan Fungsi. LLM menentukan apakah akan memanggil alat. Jika iya, LLM mengembalikan nama fungsi alat dan parameternya.
Untuk model yang didukung, lihat Model yang didukung.
"get_current_weather" dan parameter input fungsi sebagai "{\"location\": \"Shanghai\"}".
content. Saat Anda memasukkan "Hello", parameter tool_calls kosong, dan format objek yang dikembalikan adalah:
Jika parametertool_callskosong, program Anda dapat langsung mengembalikancontenttanpa menjalankan langkah-langkah berikutnya.
Jika Anda ingin LLM memilih alat tertentu setiap kali melakukan Pemanggilan Fungsi, lihat Pemanggilan alat paksa.
4. Jalankan fungsi alat
Menjalankan fungsi alat menerjemahkan keputusan model menjadi operasi aktual.
Proses menjalankan fungsi alat diselesaikan oleh lingkungan komputasi Anda, bukan LLM.LLM hanya mengeluarkan string. Sebelum menjalankan fungsi alat, Anda perlu mengurai nama fungsi alat dan parameter inputnya secara terpisah.
-
Fungsi alat
Buat pemetaan
function_mapperdari nama fungsi alat ke entitas fungsi alat untuk memetakan string fungsi alat yang dikembalikan ke entitas fungsi alat. - Parameter input Parameter input yang dikembalikan oleh Pemanggilan Fungsi adalah string JSON. Gunakan alat untuk menguraikannya menjadi objek JSON guna mengekstrak informasi parameter input.
Dalam skenario bisnis nyata, banyak alat melakukan tindakan spesifik (seperti mengirim email atau mengunggah file) daripada menanyakan data, dan tidak mengeluarkan string. Kami merekomendasikan menambahkan informasi deskripsi status (seperti "Email berhasil dikirim" atau "Operasi gagal") untuk alat semacam itu agar membantu LLM memahami status eksekusi.
5. Biarkan LLM merangkum output fungsi alat
Format output fungsi alat relatif tetap. Mengembalikannya langsung kepada pengguna mungkin terdengar kaku. Kirim output alat ke konteks model dan panggil model lagi untuk menghasilkan respons bergaya bahasa alami.
-
Tambahkan Pesan Asisten
Setelah Anda melakukan Pemanggilan Fungsi, Anda akan memperoleh Pesan Asisten melalui
completion.choices[0].message. Pertama, tambahkan pesan tersebut ke array messages. -
Tambahkan Pesan Alat
Tambahkan output alat ke array messages dalam format
{"role": "tool", "content": "output alat", "tool_call_id": completion.choices[0].message.tool_calls[0].id}.- Pastikan output alat dalam format string.
tool_call_idadalah pengenal unik yang dihasilkan sistem untuk setiap permintaan pemanggilan alat. Model mungkin meminta untuk memanggil beberapa alat sekaligus. Saat mengembalikan beberapa hasil alat ke model,tool_call_idmemastikan bahwa hasil output alat dapat dicocokkan dengan maksud pemanggilannya.
content: "Cuaca di Shanghai hari ini berawan. Jika Anda memiliki pertanyaan lain, jangan ragu untuk bertanya."
Penggunaan lanjutan
Tentukan metode pemanggilan alat
Pemanggilan alat paralel
Kueri cuaca kota tunggal hanya memerlukan satu pemanggilan alat. Jika pertanyaan memerlukan beberapa pemanggilan alat, seperti "Bagaimana cuaca di Beijing dan Shanghai?" atau "Bagaimana cuaca di Hangzhou dan jam berapa sekarang?", setelah Anda melakukan Pemanggilan Fungsi, hanya satu informasi pemanggilan alat yang akan dikembalikan. Misalnya, jika Anda bertanya "Bagaimana cuaca di Beijing dan Shanghai?":
parallel_tool_calls ke true saat Anda melakukan Pemanggilan Fungsi.
Pemanggilan alat paralel cocok untuk tugas yang tidak memiliki dependensi. Jika ada dependensi antar tugas (input alat A terkait dengan output alat B), lihat Memulai untuk mengimplementasikan pemanggilan alat serial (memanggil satu alat dalam satu waktu) melalui loop while.
tool_calls dalam objek yang dikembalikan berisi informasi parameter input untuk Beijing dan Shanghai:
Pemanggilan alat paksa
LLM menghasilkan konten dengan tingkat ketidakpastian tertentu dan mungkin memilih alat yang salah. Untuk memaksa penggunaan atau menonaktifkan alat tertentu untuk jenis pertanyaan tertentu, Anda dapat memodifikasi parameter tool_choice. Nilai default parameter tool_choice adalah "auto", yang berarti LLM secara otonom memutuskan cara melakukan pemanggilan alat.
Saat LLM merangkum output fungsi alat, hapus parameter tool_choice. Jika tidak, API akan tetap mengembalikan informasi pemanggilan alat.
-
Paksa penggunaan alat tertentu
Jika Anda ingin Pemanggilan Fungsi memaksa memanggil alat tertentu untuk jenis pertanyaan tertentu, Anda dapat mengatur parameter
tool_choiceke{"type": "function", "function": {"name": "the_function_to_call"}}. LLM tidak akan berpartisipasi dalam pemilihan alat dan hanya akan mengeluarkan informasi parameter input. Mengasumsikan skenario saat ini hanya melibatkan pertanyaan kueri cuaca, Anda dapat memodifikasi kode function_calling menjadi:
get_current_weather.
Sebelum menggunakan strategi ini, pastikan pertanyaan terkait dengan alat yang dipilih. Jika tidak, mungkin mengembalikan hasil yang tidak terduga.
tool_calls dalam objek yang dikembalikan tidak kosong), Anda dapat mengatur parameter tool_choice ke "required". Dengan pengaturan ini, Pemanggilan Fungsi akan selalu mengembalikan informasi alat beserta parameter inputnya.
Jika semua pertanyaan dalam skenario saat ini memerlukan pemanggilan alat, Anda dapat memodifikasi kode function_calling menjadi:
tool_calls dalam objek yang dikembalikan tidak akan pernah kosong, terlepas dari pertanyaan yang dimasukkan.
Sebelum menerapkan strategi ini, pastikan pertanyaan tersebut relevan dengan alat yang tersedia. Jika tidak, hasil yang dikembalikan mungkin tidak sesuai harapan.
-
Paksa tidak menggunakan alat
Jika Anda perlu Pemanggilan Fungsi tidak pernah melakukan pemanggilan alat (objek yang dikembalikan berisi konten respons dalam
contentdan parametertool_callskosong), Anda dapat mengatur parametertool_choiceke"none", atau jangan teruskan parametertools. Parametertool_callsyang dikembalikan oleh Pemanggilan Fungsi akan selalu kosong. Mengasumsikan tidak ada pertanyaan dalam skenario saat ini yang memerlukan pemanggilan alat, Anda dapat memodifikasi kode function_calling menjadi:
Percakapan multi-putaran
Pengguna mungkin bertanya "Cuaca di Beijing" pada putaran pertama, lalu "Bagaimana dengan Shanghai?" pada putaran kedua. Jika konteks model tidak memiliki informasi dari putaran pertama, model tidak dapat menentukan alat mana yang akan dipanggil. Dalam skenario percakapan multi-putaran, pertahankan array messages lengkap setelah setiap putaran. Tambahkan Pesan Pengguna baru ke array ini lalu lakukan Pemanggilan Fungsi dan langkah-langkah selanjutnya. Struktur messages adalah sebagai berikut:
keluaran streaming
Menggunakan keluaran streaming memungkinkan Anda mendapatkan informasi nama fungsi alat dan parameter input secara real-time, yang meningkatkan pengalaman pengguna. Dalam kasus ini:
- Informasi parameter untuk pemanggilan alat dikembalikan dalam potongan sebagai aliran data.
- Nama fungsi alat dikembalikan dalam potongan data pertama dari respons aliran.
arguments):
tool_calls di bawah dengan konten di atas.
Pemanggilan alat dengan API Responses
Contoh sebelumnya didasarkan pada API Chat Completions dan DashScope OpenAI. Jika Anda menggunakan API Responses OpenAI, proses keseluruhan sama, tetapi format API memiliki perbedaan berikut:
| Dimensi | Chat Completions | API Responses |
|---|---|---|
| Format definisi alat | ||
| Output pemanggilan alat | response.choices[0].message.tool_calls | Item dalam response.output di mana type adalah function_call |
| Umpan balik hasil alat | ||
| Respons akhir | response.choices[0].message.content | response.output_text |
Pemanggilan alat untuk model omni-modal
Model omni-modal mendukung pemanggilan alat. Metode pemanggilan untuk seri Qwen-Omni dan seri Qwen-Omni-Realtime berbeda.
Seri Qwen-Omni
Seri Qwen3.5-Omni-Plus, Qwen3.5-Omni-Flash, dan Qwen3-Omni-Flash mendukung pemanggilan alat melalui API kompatibel OpenAI. Tahap mendapatkan informasi alat berbeda dari model lain dalam hal berikut:
- keluaran streaming wajib: Qwen-Omni hanya mendukung keluaran streaming. Saat mendapatkan informasi alat, Anda juga harus mengatur
stream=True. - Output teks saja direkomendasikan: Model hanya memerlukan informasi teks saat mendapatkan informasi alat (nama dan parameter fungsi). Untuk menghindari menghasilkan audio yang tidak perlu, kami merekomendasikan mengatur
modalities=["text"]. Saat output mencakup modalitas teks dan audio, Anda perlu melewati potongan data audio saat mendapatkan informasi alat.
Untuk informasi lebih lanjut tentang Qwen-Omni, lihat Non-real-time (Qwen-Omni).
arguments), lihat keluaran streaming.
Seri Qwen-Omni-Realtime
Seri Qwen3.5-Omni-Plus-Realtime dan Qwen3.5-Omni-Flash-Realtime mendukung pemanggilan alat dan cocok untuk skenario percakapan suara. Anda dapat memanggilnya melalui SDK DashScope atau protokol WebSocket asli.
Alur kerja:
Setelah membuat koneksi WebSocket, teruskan definisi alat melalui session.update untuk memasuki alur interaksi berikut:
Fase 1: Input suara dan pemanggilan alat
- Pengguna mengajukan pertanyaan dengan suara. Klien mengumpulkan audio dan mengirimkannya ke server (sesuai dengan metode
append_audio()). Setelah VAD server mendeteksi akhir ucapan, server melakukan inferensi model dan menentukan bahwa alat perlu dipanggil. - Server mengembalikan informasi pemanggilan alat ke klien (sesuai dengan event
response.function_call_arguments.done), termasuk nama fungsi (name), parameter input fungsi (arguments), dan pengenal panggilan (call_id). Contohnya sebagai berikut:
- Klien menjalankan fungsi alat yang sesuai secara lokal berdasarkan nama fungsi dan parameter input untuk mendapatkan hasil eksekusi.
- Klien mengirim hasil eksekusi alat kembali ke server (sesuai dengan event
conversation.item.create), termasuk pengenal panggilan (call_id) dan hasil eksekusi (output). Contohnya sebagai berikut:
- Klien terus mengirim event
response.createuntuk memicu server menghasilkan jawaban suara akhir berdasarkan hasil eksekusi alat. - Klien menerima suara dan teks yang dikembalikan server (sesuai dengan event
response.audio.deltadanresponse.audio_transcript.delta) dan memutar respons suara ke pengguna.
Seri Qwen-Omni-Realtime tidak mendukung parametertool_choicedanparallel_tool_calls.
Untuk informasi lebih lanjut tentang Qwen-Omni-Realtime, lihat Real-time (Qwen-Omni-Realtime), Event klien, dan Event sisi server.
SDK Python DashScope
Pemanggilan alat untuk model pemikiran mendalam
Model pemikiran mendalam melakukan inferensi sebelum menghasilkan informasi pemanggilan alat, sehingga meningkatkan interpretabilitas dan keandalan keputusan.
- Proses berpikir Model menganalisis maksud pengguna, mengidentifikasi alat yang diperlukan, memverifikasi legalitas parameter, serta merancang strategi pemanggilan langkah demi langkah.
-
Pemanggilan alat
Model menghasilkan satu atau beberapa permintaan pemanggilan fungsi dalam format terstruktur.
Pemanggilan alat paralel didukung.
Untuk informasi lebih lanjut tentang model pemikiran mendalam generasi teks, lihat Pemikiran mendalam. Untuk informasi lebih lanjut tentang model pemikiran mendalam multimodal, lihat Pemahaman gambar dan video dan Non-real-time (Qwen-Omni).
ParameterDalam mode berpikir (tool_choicehanya dapat diatur ke"auto"(nilai default, artinya model memilih alat secara otonom) atau"none"(memaksa model tidak memilih alat).
enable_thinking=True), parameter tool_choice tidak mendukung nilai "required" atau objek (misalnya, {"type": "function", "function": {...}}). Mengatur tool_choice ke salah satu nilai tersebut saat mode berpikir diaktifkan akan menyebabkan permintaan gagal dengan error Parameter tool_choice tidak mendukung diatur ke required atau object dalam mode berpikir. Jangan mengandalkan tool_choice="required" sebagai jaminan bahwa tool_calls tidak kosong dalam mode berpikir. Jika Anda memerlukan pemanggilan alat MCP yang andal saat mode berpikir diaktifkan, gunakan API Responses untuk terhubung ke MCP sebagai gantinya.
- Kompatibel dengan OpenAI
- DashScope
- Python
- Node.js
- HTTP
Kode contoh
Hasil pengembalian
Masukkan "Cuaca di empat kota metropolitan" untuk mendapatkan hasil berikut:Tayang
Uji akurasi pemanggilan alat
- Bangun sistem evaluasi: Buat set data uji yang mencerminkan skenario bisnis dunia nyata dan definisikan metrik evaluasi yang jelas, seperti akurasi pemilihan alat, akurasi ekstraksi parameter, dan tingkat keberhasilan end-to-end.
- Optimalkan prompt Berdasarkan masalah yang diidentifikasi selama pengujian, seperti pemilihan alat atau parameter yang salah, Anda dapat mengoptimalkan prompt sistem, deskripsi alat, dan deskripsi parameter.
-
Tingkatkan model
Jika pengaturan prompt gagal meningkatkan kinerja, meningkatkan ke versi model yang lebih kuat, seperti
qwen3.6-plus, adalah metode yang paling langsung dan efektif.
Kontrol dinamis jumlah alat
Saat aplikasi mengintegrasikan puluhan bahkan ratusan alat, menyediakan semuanya ke model dapat menyebabkan masalah berikut:
- Penurunan kinerja: Kesulitan model dalam memilih alat yang benar dari kumpulan alat yang besar meningkat secara dramatis.
- Biaya dan latensi: Banyak deskripsi alat akan mengonsumsi sejumlah besar token input, yang menyebabkan peningkatan biaya dan respons yang lebih lambat.
-
Pengambilan semantik
Konversi deskripsi alat (
description) menjadi vektor menggunakan model penyematan dan simpan di database vektor. Saat pengguna mengirimkan kueri, Anda dapat melakukan pencarian kemiripan vektor pada vektor kueri untuk mengingat K alat teratas yang paling relevan. -
Pengambilan hibrid
Metode ini menggabungkan pencocokan kabur dari pengambilan semantik dengan pencocokan eksak dari kata kunci tradisional atau tag metadata. Untuk melakukan ini, tambahkan field
tagsataukeywordske alat. Selama pengambilan, melakukan pencarian vektor dan penyaringan kata kunci secara bersamaan dapat secara signifikan meningkatkan akurasi recall, terutama untuk skenario frekuensi tinggi atau spesifik. - Router LLM ringan Untuk logika routing yang lebih kompleks, Anda dapat menggunakan model yang lebih kecil, lebih cepat, dan lebih murah, seperti Qwen-Flash, sebagai model router. Tugas model ini adalah mengeluarkan daftar nama alat yang relevan berdasarkan kueri pengguna.
- Jaga set kandidat tetap ringkas: Terlepas dari metode yang digunakan, kami merekomendasikan menyediakan tidak lebih dari 20 alat ke model utama. Ini memberikan keseimbangan optimal antara beban kognitif model, biaya, latensi, dan akurasi.
- Strategi penyaringan berlapis: Anda dapat membangun strategi routing berbentuk corong. Misalnya, Anda dapat terlebih dahulu menggunakan pencocokan aturan atau kata kunci berbiaya rendah untuk menyaring alat yang jelas tidak relevan. Kemudian, Anda dapat melakukan pengambilan semantik pada alat yang tersisa untuk meningkatkan efisiensi dan kualitas.
Prinsip keamanan alat
Saat memberikan kemampuan eksekusi alat ke LLM, keamanan adalah pertimbangan utama. Prinsip intinya adalah hak istimewa minimal dan konfirmasi manusia.
- Prinsip hak istimewa minimal: Set alat yang disediakan ke model harus secara ketat mematuhi prinsip hak istimewa minimal. Secara default, alat harus read-only, seperti alat untuk menanyakan cuaca atau mencari dokumen. Hindari memberikan izin "write" apa pun yang melibatkan perubahan status atau operasi sumber daya.
- Isolasi alat berbahaya: Jangan berikan alat berbahaya secara langsung ke LLM, seperti alat untuk mengeksekusi kode arbitrer (
code interpreter), mengoperasikan sistem file (fs.delete), melakukan operasi hapus atau perbarui database (db.drop_table), atau menangani transaksi keuangan (payment.transfer). - Keterlibatan manusia: Tinjauan manual dan proses konfirmasi diperlukan untuk semua operasi berhak istimewa tinggi atau tidak dapat dibatalkan. Model dapat menghasilkan permintaan operasi, tetapi tombol "execute" akhir harus diklik oleh pengguna manusia. Misalnya, model dapat menyiapkan email, tetapi pengguna harus mengonfirmasi operasi pengiriman.
Optimasi pengalaman pengguna
Proses pemanggilan fungsi melibatkan beberapa langkah, dan masalah pada langkah apa pun dapat berdampak negatif pada pengalaman pengguna.
Atasi kegagalan eksekusi alat
Kegagalan eksekusi alat umum terjadi. Anda dapat mengadopsi strategi berikut:
- Upaya maksimum: Tetapkan batas upaya ulang yang wajar, seperti 3, untuk menghindari waktu tunggu pengguna yang lama atau pemborosan sumber daya sistem akibat kegagalan berkelanjutan.
- Berikan respons cadangan: Jika upaya ulang habis atau ditemui kesalahan yang tidak dapat diselesaikan, kembalikan prompt yang jelas dan ramah kepada pengguna, seperti: "Maaf, saya tidak dapat menemukan informasi yang relevan saat ini. Layanan mungkin sedang sibuk. Silakan coba lagi nanti."
Atasi latensi pemrosesan
Latensi tinggi dapat mengurangi kepuasan pengguna. Anda dapat mengimplementasikan optimasi di frontend dan backend.
- Tetapkan timeout: Tetapkan timeout yang independen dan wajar untuk setiap langkah proses pemanggilan fungsi. Jika terjadi timeout, operasi harus segera dihentikan dan umpan balik diberikan kepada pengguna.
- Berikan umpan balik instan: Saat pemanggilan fungsi dimulai, kami merekomendasikan menampilkan prompt pada antarmuka, seperti "Menanyakan cuaca untuk Anda..." atau "Mencari informasi yang relevan...". Ini memberikan umpan balik real-time kepada pengguna tentang kemajuan.
Penagihan
Selain token dalam array messages, deskripsi alat juga ditagih sebagai token input.
Meneruskan informasi alat melalui Pesan Sistem
Meneruskan informasi alat melalui Pesan Sistem
Kami merekomendasikan meneruskan informasi alat ke model bahasa besar (LLM) menggunakan parameter tools, seperti yang dijelaskan dalam bagian Cara menggunakan. Untuk meneruskan informasi alat melalui Pesan Sistem, gunakan templat prompt dalam kode berikut untuk kinerja model optimal:
- Kompatibel dengan OpenAI
- DashScope
- Python
- Node.js
Kode contoh
Setelah menjalankan kode di atas, Anda dapat menggunakan parser XML untuk mengekstrak informasi pemanggilan alat—termasuk nama fungsi dan parameter input—dari antara tag <tool_call> dan </tool_call>.