Oefening: geneste functies gebruiken voor suggesties voor nummers

Voltooid

Voor deze oefening combineert u uw systeemeigen functies met een prompt waarin de LLM wordt gevraagd om een aanbevolen nummer voor de gebruiker te genereren op basis van hun recente afspelen. Laten we beginnen.

Uw ontwikkelomgeving voorbereiden

Voor deze oefeningen is er een startersproject beschikbaar dat u kunt gebruiken. Gebruik de volgende stappen om het startersproject in te stellen:

Belangrijk

U moet Visual Studio Code en .NET Framework 8.0 hebben geïnstalleerd om deze stappen uit te voeren. Mogelijk moet u ook de Visual Studio Code C# Dev Kit-extensie installeren.

  1. Open Visual Studio Code.

  2. Selecteer Git-opslagplaats klonen in de sectie Start van Visual Studio Code.

  3. Voer in de URL-balk het volgende in https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git

  4. Maak in de Bestandenverkenner een nieuwe map op een locatie die gemakkelijk te vinden en te onthouden is, zoals een map in uw bureaublad.

  5. Klik op de knop Selecteren als opslagplaatsbestemming .

    U moet zijn aangemeld bij GitHub om het project te klonen.

  6. Open het project in Visual Studio Code.

  7. Klik in Explorer met de rechtermuisknop op de map M04-combine-prompts-and-functions/M04-Project en klik op Openen in geïntegreerde terminal.

  8. Vouw de map M04-combine-prompts-and-functions/M04-Project uit.

    Als het goed is, ziet u een bestand met de naam 'Program.cs'.

  9. Open het Program.cs-bestand en werk de volgende variabelen bij met de naam van uw Azure OpenAI Services-implementatie, API-sleutel, eindpunt.

    string yourDeploymentName = "";
    string yourEndpoint = "";
    string yourKey = "";
    

Nu bent u klaar om de oefening te starten. Succes!

Aanbevelingen voor persoonlijke nummers bieden

  1. Voeg in het MusicLibraryPlugin.cs bestand de volgende functie toe:

    [KernelFunction, Description("Get a list of music available to the user")]
    public static string GetMusicLibrary()
    {
        string dir = Directory.GetCurrentDirectory();
        string content = File.ReadAllText($"{dir}/data/musiclibrary.txt");
        return content;
    }
    
  2. Werk het bestand 'Program.cs' bij met de volgende code:

    var kernel = builder.Build();
    kernel.ImportPluginFromType<MusicLibraryPlugin>();
    
    string prompt = @"This is a list of music available to the user:
        {{MusicLibraryPlugin.GetMusicLibrary}} 
    
        This is a list of music the user has recently played:
        {{MusicLibraryPlugin.GetRecentPlays}}
    
        Based on their recently played music, suggest a song from
        the list to play next";
    
    var result = await kernel.InvokePromptAsync(prompt);
    Console.WriteLine(result);
    

    In deze code combineert u uw systeemeigen functies met een semantische prompt. De systeemeigen functies kunnen gebruikersgegevens ophalen waartoe het grote taalmodel (LLM) geen toegang heeft, en de LLM kan een aanbeveling voor het nummer genereren op basis van de tekstinvoer.

  3. Als u uw code wilt testen, voert u dotnet run de terminal in.

    Als het goed is, ziet u een antwoord dat lijkt op de volgende uitvoer:

    Based on the user's recently played music, a suggested song to play next could be "Sabry Aalil" since the user seems to enjoy pop and Egyptian pop music.
    

    Notitie

    Uw gegenereerde aanbeveling voor nummers kan afwijken van de aanbeveling die hier wordt weergegeven.

U hebt uw systeemeigen functies gecombineerd met een semantische prompt. U hebt het begin van een muziekaanvelingsagent! Probeer te experimenteren met de prompts en invoerbestanden om te zien welke andere aanbevelingen u kunt genereren.