Cvičení – použití filtrů důvěryhodnosti

Dokončeno

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.

  1. Otevřete Visual Studio Code.

  2. V části Visual Studio Code Start vyberte Naklonovat úložiště Git.

  3. Na panelu URL zadejte https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git

  4. 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.

  5. 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.

  6. Otevřete projekt v editoru Visual Studio Code.

  7. 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": ""
    }
    
  8. 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.

  9. 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.

  1. V souboru Program.cs přejděte k metodě SyncPreviousChat.

  2. Přidejte do jádra PreviousChatPlugin následujícím kódem:

    async Task SyncPreviousChat() {
        kernel.Plugins.AddFromType<PreviousChatPlugin>("PreviousChatPlugin");
    }
    
  3. 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)
        {
    
        };
    }
    
  4. 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
    };
    
  5. 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);
    }
    
  6. 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čí.

  7. 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í.