Övning – Anropa funktioner automatiskt
I den här övningen övar du på att använda prompter för att automatiskt anropa funktioner som kan rekommendera låtar till användaren, eller lägga till en låt i listan över nyligen spelad musik. Nu sätter vi igång!
Öppna Visual Studio Code-projektet som du använde i föregående övning.
Uppdatera filen "Program.cs" med följande kod:
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);
I den här koden skapar du en funktion från en uppmaning som talar om för LLM hur en låt ska föreslås. Efteråt anropar du en uppmaning med inställningen för automatisk funktionsanrop aktiverad. Kerneln kan köra funktionen och ange rätt parametrar för att slutföra prompten.
I terminalen anger du
dotnet run
för att köra koden.Utdata som genereras bör rekommendera en låt till användaren baserat på deras nyligen spelade musik. Svaret kan se ut ungefär så här:
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!
Nu ska vi prova en uppmaning om att uppdatera listan över senast spelade låtar.
Uppdatera filen "Program.cs" med följande kod:
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);
Ange
dotnet run
i terminalenResultatet bör likna följande:
I have added the song 'Touch' by Cat's Eye to the recently played songs list.
När du öppnar filen recentlyplayed.txt bör den nya låten läggas till överst i listan.
Med inställningen AutoInvokeKernelFunctions
kan du fokusera på att skapa plugin-program som passar användarens behov.