Øvelse – Aktivér funktioner automatisk

Fuldført

I denne øvelse skal du øve dig i at bruge prompter til automatisk at kalde funktioner, der kan anbefale sange til brugeren, eller føje en sang til listen over nyligt afspillet musik. Lad os komme i gang!

  1. Åbn det Visual Studio Code-projekt, du brugte i den forrige øvelse.

  2. Opdater filen 'Program.cs' med følgende kode:

    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 denne kode opretter du en funktion ud fra en prompt, der fortæller LLM, hvordan en sang foreslås. Bagefter skal du aktivere en prompt, hvor indstillingen for automatisk funktionskald er aktiveret. Kernen kan køre funktionen og angive de korrekte parametre for at fuldføre prompten.

  3. I terminalen skal du angive dotnet run for at køre din kode.

    Det genererede output bør anbefale en sang til brugeren baseret på den senest afspillede musik. Dit svar ligner muligvis følgende output:

    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!  
    

    Lad os derefter prøve at opdatere listen over senest afspillede sange.

  4. Opdater filen 'Program.cs' med følgende kode:

    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);
    
  5. Angiv dotnet run i terminalen

    Outputtet skal ligne følgende:

    I have added the song 'Touch' by Cat's Eye to the recently played songs list.
    

    Når du åbner filen recentlyplayed.txt, kan du se den nye sang, der er føjet til toppen af listen.

Ved hjælp af indstillingen AutoInvokeKernelFunctions kan du fokusere på at bygge plug-ins, der passer til din brugers behov.