Pemanggilan alat dalam Model Bahasa Besar (LLM) adalah kemampuan LLM untuk berinteraksi dengan alat eksternal, layanan, atau antarmuka pemrograman aplikasi (API) untuk melaksanakan tugas. Hal ini memungkinkan LLM untuk memperluas fungsionalitasnya, meningkatkan kemampuannya dalam menangani tugas-tugas dunia nyata yang mungkin memerlukan akses ke data eksternal, informasi real-time, atau aplikasi spesifik. Ketika sebuah LLM menggunakan alat pencarian web, ia dapat mengakses web untuk mengambil data real-time yang tidak tersedia dalam data pelatihan model. Jenis alat lain yang mungkin digunakan meliputi Python untuk perhitungan, analisis data, atau visualisasi, atau memanggil titik akhir layanan untuk data. Pemanggilan alat dapat membuat chatbot lebih dinamis dan mudah beradaptasi, memungkinkannya memberikan tanggapan yang lebih akurat, relevan, dan terperinci berdasarkan data langsung atau tugas khusus di luar basis pengetahuan langsungnya. Kerangka kerja populer untuk pemanggilan alat termasuk Langchain dan sekarang ollama.
Ollama adalah platform yang menawarkan model AI sumber terbuka untuk digunakan pada perangkat pribadi sehingga pengguna dapat menjalankan LLM langsung di komputer mereka. Tidak seperti layanan seperti OpenAI API, Ollama tidak memerlukan akun karena modelnya ada di mesin lokal Anda. Ollama berfokus pada privasi, kinerja, dan kemudahan penggunaan, memungkinkan pengguna untuk mengakses dan berinteraksi dengan model AI tanpa mengirim data ke server eksternal. Hal ini dapat menjadi pilihan yang menarik bagi mereka yang peduli dengan privasi data atau ingin menghindari ketergantungan pada API eksternal. Platform Ollama dirancang agar mudah disiapkan dan digunakan, dan mendukung berbagai model, memberi pengguna berbagai alat untuk pemrosesan bahasa alami, pembuatan kode, dan tugas AI lainnya langsung di perangkat keras mereka sendiri. Arsitektur ini sangat cocok untuk arsitektur berbasis alat karena dapat mengakses semua kemampuan lingkungan lokal, termasuk data, program, dan perangkat lunak kustom.
Dalam tutorial ini, Anda akan belajar cara menyiapkan pemanggilan alat menggunakan Ollama untuk menjelajahi sistem file lokal, suatu tugas yang akan sulit dilakukan dengan LLM jarak jauh. Banyak model Ollama tersedia untuk pemanggilan alat dan membangun agen AI seperti Mistral dan Llama 3.2, daftar lengkapnya tersedia di situs web Ollama. Dalam hal ini kita akan menggunakan IBM Granite 3.2 Dense yang memiliki dukungan alat. Model 2B dan 8B adalah LLM padat hanya teks yang dilatih untuk mendukung contoh penggunaan berbasis alat dan untuk generasi dengan dukungan pengambilan data (RAG), menyederhanakan pembuatan kode, terjemahan, dan perbaikan bug.
Notebook untuk tutorial ini dapat diunduh dari Github di sini.
Pertama, Anda akan mengunduh ollama dari https://ollama.com/download dan menginstalnya untuk sistem operasi Anda. Pada OSX, langkah ini dilakukan melalui file .dmg, di Linux melalui perintah shell tunggal, dan di Windows dengan penginstal. Anda mungkin memerlukan akses admin pada mesin Anda untuk menjalankan penginstal.
Anda dapat menguji apakah ollama diinstal dengan benar dengan membuka terminal atau command prompt dan memasukkan:
Selanjutnya, Anda akan menambahkan impor awal. Demo ini akan menggunakan pustaka python ollama untuk berkomunikasi dengan ollama dan pustaka pymupdf untuk membaca file PDF dalam sistem file.
Selanjutnya Anda akan mengambil model yang akan Anda gunakan sepanjang tutorial ini. Langkah ini akan mengunduh bobot model dari ollama ke komputer lokal Anda dan menyimpannya untuk digunakan tanpa perlu melakukan panggilan API jarak jauh di waktu berikutnya.
Sekarang Anda akan menentukan alat yang akan diakses oleh instance alat ollama. Karena tujuan dari alat ini adalah untuk membaca file dan melihat-lihat gambar di sistem file lokal, Anda akan membuat dua fungsi python untuk masing-masing alat tersebut. Yang pertama disebut
Anda dapat menggunakan pencocokan string sederhana untuk melihat apakah kata kunci ada dalam dokumen. Namun, karena ollama membuat pemanggilan LLM lokal dengan mudah,
Jika model merespons 'yes', maka fungsi menampilkan nama file yang berisi kata kunci yang ditunjukkan pengguna dalam prompt. Jika tidak ada file yang tampaknya berisi informasi, maka fungsi menampilkan 'None' sebagai string.
Fungsi ini mungkin berjalan lambat pertama kali karena ollama akan mengunduh Granite 3.2 Dense.
Alat kedua disebut
Fungsi
menampilkan sebuah string, yaitu nama file yang deskripsi
-nya berisi kata kunci yang ditunjukkan pengguna dalam prompt.
Setelah fungsi yang akan dipanggil ollama telah ditentukan, Anda akan mengonfigurasi informasi alat untuk ollama itu sendiri. Langkah pertama adalah membuat objek yang memetakan nama alat ke fungsi untuk pemanggilan fungsi ollama:
Selanjutnya, konfigurasikan array alat untuk memberi tahu ollama alat apa yang akan diaksesnya dan apa yang dibutuhkan alat tersebut. Array ini berisi satu skema objek per alat yang memberi tahu kerangka kerja pemanggilan alat ollama cara memanggil alat dan apa yang ditampilkannya.
Terkait kedua alat yang Anda buat sebelumnya, keduanya adalah fungsi yang memerlukan parameter
Anda akan menggunakan definisi alat ini ketika Anda memanggil ollama dengan input pengguna.
Sekarang saatnya untuk meneruskan input pengguna ke ollama dan membuatnya menampilkan hasil panggilan alat. Pertama, pastikan bahwa ollama berjalan di sistem Anda:
Jika berjalan, Ollama akan menampilkan:
Sekarang minta input dari
pengguna. Anda juga dapat melakukan hardcode input atau mengambil dari antarmuka
obrolan, tergantung konfigurasi aplikasi Anda. Fungsi
Sebagai contoh, jika pengguna memasukkan "Information about dogs (Informasi tentang anjing)" sel ini akan mencetak:
Sekarang permintaan pengguna diteruskan ke ollama. Pesan ini membutuhkan peran untuk pengguna dan konten yang diinput pengguna. Pesan ini diteruskan ke ollama menggunakan fungsi
Fungsi
Sekarang setelah model menghasilkan panggilan alat di output, jalankan semua panggilan alat dengan parameter yang dihasilkan model dan periksa outputnya. Dalam aplikasi ini, Granite 3.2 Dense digunakan untuk menghasilkan output akhir juga, sehingga hasil panggilan alat ditambahkan ke input pengguna awal dan kemudian diteruskan ke model.
Beberapa panggilan alat dapat menampilkan kecocokan file, sehingga respons dikumpulkan dalam array yang kemudian diteruskan ke Granite 3.2 untuk menghasilkan respons. Prompt yang mendahului data memberi instruksi untuk model tentang cara merespons:
Output akhir kemudian dihasilkan menggunakan nama file yang ditunjukkan atau
Menggunakan file yang disediakan untuk tutorial ini, prompt " Information about dogs (Informasi tentang anjing" akan menampilkan:
Anda dapat melihat bahwa Granite 3.2 memilih kata kunci yang benar dari input, 'dogs', dan mencari melalui file di folder, kemudian menemukan kata kunci dalam file PDF. Karena hasil LLM tidak sepenuhnya deterministik, Anda mungkin mendapatkan hasil yang sedikit berbeda dengan prompt yang sama atau prompt yang sangat mirip.
Bangun, terapkan, dan kelola asisten dan agen AI yang kuat yang mengotomatiskan alur kerja dan proses dengan AI generatif.
Bangun masa depan bisnis Anda dengan solusi AI yang dapat Anda percaya.
Layanan IBM Consulting AI membantu merancang ulang cara kerja bisnis dengan AI untuk transformasi.