Übung: automatisches Aufrufen von Funktionen
In dieser Übung üben Sie die Verwendung von Prompts zum automatischen Aufrufen von Funktionen, die dem Benutzer Songs empfehlen oder der Liste der zuletzt wiedergegebenen Musik einen Song hinzufügen können. Legen wir los.
Öffnen Sie das Visual Studio Code-Projekt, das Sie in der vorigen Übung verwendet haben.
Aktualisieren Sie Ihre Datei „Program.cs“ mit dem folgenden 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 diesem Code erstellen Sie eine Funktion aus einem Prompt, der das LLM anweist, wie ein Song vorgeschlagen werden soll. Anschließend rufen Sie einen Prompt mit aktivierter Einstellung für den automatischen Funktionsaufruf auf. Der Kernel kann die Funktion ausführen und die richtigen Parameter angeben, um den Prompt zu vervollständigen.
Geben Sie im Terminal
dotnet run
ein, um Ihren Code auszuführen.Die generierte Ausgabe sollte dem Benutzer basierend auf seiner kürzlich wiedergegebenen Musik einen Song empfehlen. Ihre Antwort sieht möglicherweise ähnlich wie die folgende Ausgabe aus:
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!
Als Nächstes probieren wir einen Prompt aus, um die Liste der zuletzt wiedergegebenen Songs zu aktualisieren.
Aktualisieren Sie Ihre Datei „Program.cs“ mit dem folgenden 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);
Geben Sie im Terminal
dotnet run
ein.Die Ausgabe sollte ähnlich der Folgenden aussehen:
I have added the song 'Touch' by Cat's Eye to the recently played songs list.
Wenn Sie die Datei „recentlyplayed.txt“ öffnen, sollte der neue Song am Anfang der Liste hinzugefügt worden sein.
Mithilfe der Einstellung AutoInvokeKernelFunctions
können Sie sich auf das Erstellen von Plug-Ins konzentrieren, um Benutzeranforderungen zu erfüllen.