Cvičení – použití filtrů důvěryhodnosti
V tomto cvičení používáte předchozí chatovou konverzaci mezi uživatelem a asistentem, abyste vygenerovali novou odpověď. K tomu je potřeba důvěřovat výsledku funkce. Pojďme začít!
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 Visual Studio Code Start vyberte Naklonovat ú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íku 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.
Otevřete soubor appsettings.json a aktualizujte hodnoty pomocí ID modelu Azure OpenAI Services, koncového bodu a klíče rozhraní API.
{ "modelId": "gpt-35-turbo-16k", "endpoint": "", "apiKey": "" }
V Průzkumníku klikněte pravým tlačítkem na složku M04-apply-filters-on-functions/M04-Project a zvolte Otevřít v Integrovaném Terminálu.
Rozbalte složku M04-apply-filters-on-functions/M04-Project.
Měl by se zobrazit soubor "Program.cs".
Teď jste připraveni zahájit cvičení. Hodně zdaru!
Důvěřovat výsledku volání funkce
V tomto úkolu zaregistrujete modul plug-in, který přečte předchozí konverzaci mezi uživatelem a asistentem.
V souboru Program.cs přejděte k metodě
SyncPreviousChat
.Přidejte do jádra
PreviousChatPlugin
následujícím kódem:async Task SyncPreviousChat() { kernel.Plugins.AddFromType<PreviousChatPlugin>("PreviousChatPlugin"); }
Vytvořte výzvu k chatu a konfiguraci šablony výzvy s následujícím kódem:
async Task SyncPreviousChat() { kernel.Plugins.AddFromType<PreviousChatPlugin>("PreviousChatPlugin"); var chatPrompt = @"{{PreviousChatPlugin.get_previous_conversation}}"; var promptConfig = new PromptTemplateConfig(chatPrompt) { }; }
Přidejte následující kód, který důvěřuje veškerému obsahu v šabloně výzvy:
var promptConfig = new PromptTemplateConfig(chatPrompt) { AllowDangerouslySetContent = true };
Nakonec přidejte kód pro vytvoření a vyvolání funkce ze šablony výzvy:
async Task SyncPreviousChat() { kernel.Plugins.AddFromType<PreviousChatPlugin>("PreviousChatPlugin"); var chatPrompt = @"{{PreviousChatPlugin.get_previous_conversation}}"; var promptConfig = new PromptTemplateConfig(chatPrompt) { AllowDangerouslySetContent = true }; var function = KernelFunctionFactory.CreateFromPrompt(promptConfig); var result = await kernel.InvokeAsync(function, []); Console.WriteLine(result); }
Zadáním
dotnet run
spusťte kód.Mohli byste vidět nějaká doporučení ohledně destinace pro romantickou cestu k výročí.
Můžete zkusit upravit šablonu výzvy, abyste viděli rozdíl, například:
var chatPrompt = @" <message role='user'>I need some destination recommendations for a company event. Our budget is $21,000</message> {{PreviousChatPlugin.get_previous_conversation}} "; var promptConfig = new PromptTemplateConfig(chatPrompt);
Pokud spustíte aktualizovanou funkci, měli byste, aby AI ignorovala předchozí konverzaci a místo toho navrhuje doporučení pro firemní události.
Teď jste úspěšně procvičili použití nastavení důvě na šablony podnětů. Skvělá práce! Můžete odebrat volání funkce SyncPreviousChat
a připravit se na další cvičení.