Oefening: functies automatisch aanroepen
In deze oefening oefent u met behulp van prompts om automatisch functies aan te roepen die nummers aan de gebruiker kunnen aanbevelen, of voegt u een nummer toe aan de lijst met onlangs afgespeelde muziek. Laten we beginnen.
Open het Visual Studio Code-project dat u in de vorige oefening hebt gebruikt.
Werk het bestand 'Program.cs' bij met de volgende code:
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);
In deze code maakt u een functie op basis van een prompt die de LLM vertelt hoe u een nummer voorstelt. Daarna roept u een prompt aan met de instelling voor automatisch aanroepen van functies ingeschakeld. De kernel kan de functie uitvoeren en de juiste parameters opgeven om de prompt te voltooien.
Voer in de terminal in
dotnet run
om uw code uit te voeren.De gegenereerde uitvoer moet een nummer aanbevelen aan de gebruiker op basis van hun onlangs afgespeelde muziek. Uw antwoord ziet er mogelijk ongeveer als volgt uit:
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!
Vervolgens gaan we een prompt proberen om de lijst met onlangs afgespeelde nummers bij te werken.
Werk het bestand 'Program.cs' bij met de volgende code:
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);
Voer
dotnet run
in de terminal inDe uitvoer moet er ongeveer als volgt uitzien:
I have added the song 'Touch' by Cat's Eye to the recently played songs list.
Wanneer u het bestand recentlyplayed.txt opent, ziet u dat het nieuwe nummer bovenaan de lijst wordt toegevoegd.
Met behulp van de AutoInvokeKernelFunctions
instelling kunt u zich richten op het bouwen van plug-ins die aansluiten bij de behoeften van uw gebruiker.