Latihan - Memanggil fungsi secara otomatis
Dalam latihan ini, Anda berlatih menggunakan perintah untuk memanggil fungsi secara otomatis yang dapat merekomendasikan lagu kepada pengguna, atau menambahkan lagu ke daftar musik yang baru diputar. Mari kita mulai!
Buka proyek Visual Studio Code yang Anda gunakan di latihan sebelumnya.
Perbarui file 'Program.cs' Anda dengan kode berikut:
OpenAIPromptExecutionSettings settings = new() { ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions }; var songSuggesterFunction = kernel.CreateFunctionFromPrompt( promptTemplate: @"Based on the user's recently played music: {{$recentlyPlayedSongs}} recommend a song to the user from the music library: {{$musicLibrary}}", functionName: "SuggestSong", description: "Recommend a song from the library" ); kernel.Plugins.AddFromFunctions("SuggestSong", [songSuggesterFunction]); string prompt = @"Can you recommend a song from the music library?"; var result = await kernel.InvokePromptAsync(prompt, new(settings)); Console.WriteLine(result);Dalam kode ini, Anda membuat fungsi dari perintah yang memberi tahu LLM cara menyarankan lagu. Setelah itu, Anda memanggil perintah dengan pengaturan panggilan fungsi otomatis diaktifkan. Kernel dapat menjalankan fungsi dan menyediakan parameter yang benar untuk menyelesaikan perintah.
Di terminal, masukkan
dotnet rununtuk menjalankan kode Anda.Output yang dihasilkan harus merekomendasikan lagu kepada pengguna berdasarkan musik yang baru diputar. Respons Anda mungkin terlihat mirip dengan output berikut:
Based on your recently played music, I recommend you listen to the song "Luv(sic)". It falls under the genres of hiphop and rap, which aligns with some of your recently played songs. Enjoy!Selanjutnya, mari kita coba perintah untuk memperbarui daftar lagu yang baru diputar.
Perbarui file 'Program.cs' Anda dengan kode berikut:
string prompt = @"Add this song to the recently played songs list: title: 'Touch', artist: 'Cat's Eye', genre: 'Pop'"; var result = await kernel.InvokePromptAsync(prompt, new(settings)); Console.WriteLine(result);Masukkan
dotnet rundi terminalOutput harus sama dengan berikut ini.
I have added the song 'Touch' by Cat's Eye to the recently played songs list.Saat membuka file recentlyplayed.txt, Anda akan melihat lagu baru ditambahkan ke bagian atas daftar.
Menggunakan pengaturan ini AutoInvokeKernelFunctions memungkinkan Anda untuk fokus membangun plugin agar sesuai dengan kebutuhan pengguna Anda.