Esercizio - Usare le funzioni annidate per i suggerimenti dei brani
Per questo esercizio, si combinano le funzioni native con un prompt che chiede al modello linguistico di grandi dimensioni di generare un brano musicale consigliato per l'utente in base alle sue ultime riproduzioni. È ora di iniziare.
Preparare l'ambiente di sviluppo
Per questi esercizi è disponibile un progetto iniziale da usare. Per configurare il progetto iniziale, seguire questa procedura:
Importante
Per completare questi passaggi, è necessario che sia installato Visual Studio Code e .NET Framework 8.0. Potrebbe anche essere necessario installare l'estensione Visual Studio Code C# Dev Kit.
Aprire Visual Studio Code.
Nella sezione Avvia di Visual Studio Code selezionare Clona repository Git.
Nella barra dell'URL immettere
https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git
In Esplora file creare una nuova cartella in un percorso facile da trovare e ricordare, ad esempio una cartella sul desktop.
Fare clic sul pulsante Seleziona come destinazione repository.
È necessario accedere a GitHub per clonare correttamente il progetto.
Aprire il progetto in Visual Studio Code.
In Esplora risorse fare clic con il pulsante destro del mouse sulla cartella M04-combine-prompts-and-functions/M04-Project e scegliere Apri nel terminale integrato.
Espandere la cartella M04-combine-prompts-and-functions/M04-Project.
Verrà visualizzato un file "Program.cs".
Aprire il file Program.cs e aggiornare le variabili seguenti con il nome della distribuzione dei Servizi OpenAI di Azure, la chiave API e l'endpoint.
string yourDeploymentName = ""; string yourEndpoint = ""; string yourKey = "";
A questo punto si è pronti per iniziare l'esercizio. Buona fortuna!
Fornire consigli personalizzati per il brano musicale
Nel file
MusicLibraryPlugin.cs
, aggiungere la funzione seguente:[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; }
Aggiornare il file 'Program.cs' con il codice seguente:
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 questo codice, si combinano le funzioni native con un prompt semantico. Le funzioni native sono in grado di recuperare i dati utente a cui il modello linguistico di grandi dimensioni (LLM) non è riuscito ad accedere autonomamente e il modello linguistico è in grado di generare una raccomandazione per un brano musicale, in base all'input di testo.
Per testare il codice, immettere
dotnet run
nel terminale.La risposta dovrebbe essere simile all'output seguente:
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.
Nota
Il brano musicale consigliato generato può essere diverso da quella mostrato qui.
Le funzioni native sono state combinate correttamente con un prompt semantico. L'utente ha dimostrato di avere la stoffa di un agente di suggerimenti musicali. È possibile provare a sperimentare con i prompt e i file di input per vedere quali altre raccomandazioni è possibile generare.