Exercice – Appeler automatiquement des fonctions

Effectué

Dans cet exercice, vous vous entraînerez à utiliser des invites pour appeler automatiquement des fonctions qui peuvent recommander des chansons à l’utilisateur ou ajouter une chanson à la liste des musiques écoutées récemment. C’est parti !

  1. Ouvrez le projet Visual Studio Code utilisé dans l’exercice précédent.

  2. Mettez à jour votre fichier « Program.cs » avec le code suivant :

    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);
    

    Dans ce code, vous créez une fonction à partir d’une invite qui indique au grand modèle de langage (LLM) comment suggérer une chanson. Ensuite, vous appelez une invite avec le paramètre d’appel automatique activé. Le noyau est en mesure d’exécuter la fonction et de fournir les paramètres appropriés pour terminer l’invite.

  3. Dans le terminal, entrez dotnet run pour exécuter votre code.

    La sortie générée doit recommander une chanson aux utilisateurs en fonction de leur musique récemment écoutée. Votre réponse doit ressembler à la sortie suivante :

    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!  
    

    Ensuite, essayons une invite pour mettre à jour la liste des chansons récemment lues.

  4. Mettez à jour votre fichier « Program.cs » avec le code suivant :

    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. Entrez dotnet run dans le terminal.

    La sortie doit ressembler à ce qui suit :

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

    Lorsque vous ouvrez le fichier recentlyplayed.txt, vous devez voir la nouvelle chanson ajoutée en haut de la liste.

Utiliser le paramètre AutoInvokeKernelFunctions vous permet de vous concentrer sur la création de plug-ins pour répondre aux besoins de votre utilisateur.