Esercizio - Usare i plug-in predefiniti

Completato

Per questo esercizio, si aggiunge un plug-in esistente al progetto Kernel semantico e si apprende come usare il primo plug-in per eseguire un'attività. È 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.

  1. Aprire Visual Studio Code.

  2. Nella sezione Avvia di Visual Studio Code selezionare Clona repository Git.

  3. Nella barra dell'URL immettere https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git

  4. In Esplora file creare una nuova cartella in un percorso facile da trovare e ricordare, ad esempio una cartella sul desktop.

  5. Fare clic sul pulsante Seleziona come destinazione repository.

    È necessario accedere a GitHub per clonare correttamente il progetto.

  6. Aprire il progetto in Visual Studio Code.

  7. In Explorer, fare clic con il pulsante destro del mouse sulla cartella M02-create-plugins-for-semantic-kernel/M02-Project e scegliere Apri nel terminale integrato.

  8. Espandere la cartella M02-create-plugins-for-semantic-kernel/M02-Project.

    Verrà visualizzato un file "Program.cs".

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

Ottenere l’intento dell’utente

  1. Nel terminale integrato aggiungere i plug-in del kernel semantico. Per aggiungere il pacchetto di base al progetto, eseguire il comando seguente: dotnet add package Microsoft.SemanticKernel.Plugins.Core --version 1.2.0-alpha

    Nota

    Attualmente il pacchetto è una versione non definitiva. È consigliabile verificare la disponibilità dell’ultima versione https://www.nuget.org/packages/Microsoft.SemanticKernel.Plugins.Core/1.2.0-alpha

  2. Aggiungere il codice seguente al file Program.cs:

    builder.Plugins.AddFromType<ConversationSummaryPlugin>();
    var kernel = builder.Build();
    
    string input = @"I'm a vegan in search of new recipes. I love spicy food! 
    Can you give me a list of breakfast recipes that are vegan friendly?";
    
    var result = await kernel.InvokeAsync(
        "ConversationSummaryPlugin", 
        "GetConversationActionItems", 
        new() {{ "input", input }});
    
    Console.WriteLine(result);
    

    In questo codice si importa l'oggetto ConversationSummaryPlugin dal pacchetto Core.Plugins. Si crea un nuovo generatore di kernel e quindi si aggiunge il plug-in al generatore. ConversationSummaryPlugin supporta diverse azioni: GetConversationActionItems, SummarizeConversation e GetConversationTopics.

    Si crea una stringa con una conversazione di esempio, quindi si chiama il plug-in con il nome della funzione e si passa la stringa di conversazione. Il plug-in restituisce un riepilogo della conversazione.

    Nota

    Poiché il plug-in è ancora in anteprima, potrebbe essere necessario aggiungere elimina l'avviso usando #pragma warning disable SKEXP0050 nella parte superiore del file.

  3. Eseguire il codice immettendo dotnet run nel terminale.

    La risposta dovrebbe essere simile all'output seguente:

    {
        "actionItems": [
            {
                "owner": "",
                "actionItem": "Provide a list of vegan-friendly spicy breakfast recipes",
                "dueDate": "",
                "status": "Open",
                "notes": ""
            }
        ]
    }
    

    Si noti che il plug-in è stato in grado di identificare un intento semplificato dalla stringa di input.

Questo esempio è solo l'inizio delle operazioni che è possibile eseguire con l’SDK Kernel semantico. Nell'unità successiva verranno illustrati altri modi per personalizzare i plug-in ed eseguire le funzioni.

Importante

Assicurarsi di non eliminare nulla del codice scritto finora perché sarà necessario per gli esercizi successivi.