練習 - 使用巢狀函式推薦歌曲
在此練習中,您會將原生函式與提示結合,以要求 LLM 根據使用者最近的播放歌曲,為使用者產生建議的歌曲。 現在就開始吧!
準備您的開發環境
針對這些練習,您可以使用入門專案。 使用下列步驟來設定入門專案:
重要
您必須安裝 Visual Studio Code 和 .NET Framework 8.0,才能完成這些步驟。 您可能也需要安裝 Visual Studio Code C# 開發套件延伸模組。
打開 Visual Studio Code。
在 Visual Studio Code [開始] 區段之下,選取 [複製 Git 存放庫]。
在 URL 列中,輸入
https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git
在 [檔案總管] 中,在容易尋找和記住的位置建立新的資料夾,例如桌面中的資料夾。
按一下 [選取作為存放庫目的地] 按鈕。
您必須登入 GitHub 才能成功複製專案。
在 Visual Studio Code 中開啟專案。
在 [總管] 中,以滑鼠右鍵按一下 M04-combine-prompts-and-functions/M04-Project 資料夾,然後按一下 [在整合式終端中開啟]。
展開 M04-combine-prompts-and-functions/M04-Project 資料夾。
您應該會看到「Program.cs」檔案。
開啟 Program.cs 檔案,並使用 Azure OpenAI 服務部署名稱、API 金鑰和端點更新下列變數。
string yourDeploymentName = ""; string yourEndpoint = ""; string yourKey = "";
現在您已準備好開始練習。 祝您好運!
提供個人化歌曲建議
在您的
MusicLibraryPlugin.cs
檔案中,新增下列函式:[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; }
使用下列程式碼來更新 'Program.cs' 檔案:
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);
在此程式碼中,您會將原生函式與語意提示結合。 原生函式能夠擷取大型語言模型 (LLM) 無法自行存取的使用者資料,讓 LLM 能夠根據文字輸入產生歌曲建議。
若要測試您的程式碼,請在終端機輸入
dotnet run
。您應該會看到類似下列輸出的回應:
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.
注意
您產生的歌曲建議可能與此處顯示的歌曲建議不同。
您已成功將原生函式與語意提示結合。 您已經有了音樂建議代理程式作為開始! 請嘗試使用提示和輸入檔案來看看您可以產生哪些其他建議。