Cvičení – použití vnořených funkcí pro návrhy skladby
V tomto cvičení zkombinujete nativní funkce s výzvou, která požádá LLM o vygenerování doporučené skladby pro uživatele na základě jejich nedávných přehrávání. Pusťme se do toho.
Příprava vývojového prostředí
Pro tato cvičení je k dispozici počáteční projekt, který můžete použít. Pomocí následujících kroků nastavte počáteční projekt:
Důležité
K provedení těchto kroků musíte mít nainstalovaný Visual Studio Code a rozhraní .NET Framework 8.0. Možná budete muset nainstalovat rozšíření Visual Studio Code C# Dev Kit.
Otevřete Visual Studio Code.
V části Start editoru Visual Studio Code vyberte Klonovat úložiště Git.
Na panelu URL zadejte
https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git
V Průzkumník souborů vytvořte novou složku v umístění, které je snadné najít a zapamatovat, například složku v Desktopu.
Klikněte na tlačítko Vybrat jako cíl úložiště.
Abyste mohli projekt úspěšně naklonovat, musíte být přihlášení k GitHubu.
Otevřete projekt v editoru Visual Studio Code.
V Průzkumníku klikněte pravým tlačítkem myši na složku M04-combine-prompts-and-functions/M04-Project a klikněte na Otevřít v integrovaném terminálu.
Rozbalte složku M04-combine-prompts-and-functions/M04-Project.
Měl by se zobrazit soubor "Program.cs".
Otevřete soubor Program.cs a aktualizujte následující proměnné názvem nasazení služby Azure OpenAI Services, klíčem rozhraní API a koncovým bodem.
string yourDeploymentName = ""; string yourEndpoint = ""; string yourKey = "";
Teď jste připraveni zahájit cvičení. Hodně zdaru!
Poskytování doporučení pro přizpůsobenou skladbu
MusicLibraryPlugin.cs
Do souboru přidejte následující funkci:[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; }
Aktualizujte soubor Program.cs následujícím kódem:
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);
V tomto kódu zkombinujete nativní funkce s sémantickou výzvou. Nativní funkce dokážou načíst uživatelská data, ke kterým velký jazykový model (LLM) nemohl získat přístup samostatně, a LLM dokáže vygenerovat doporučení skladby na základě textového vstupu.
Kód otestujete zadáním
dotnet run
do terminálu.Měla by se zobrazit odpověď podobná následujícímu výstupu:
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.
Poznámka:
Vaše vygenerované doporučení skladby se může lišit od doporučení, které vidíte tady.
Nativní funkce jste úspěšně zkombinovali s sémantickou výzvou. Máte začátek hudebního agenta doporučení! Zkuste si pohrát s výzvami a vstupními soubory a podívat se, jaká další doporučení můžete vygenerovat.