Exercício - Escreva o seu próprio prompt

Concluído

Para este exercício, você cria um prompt que pede ao modelo de idioma grande (LLM) para fornecer uma lista de frases úteis em francês. Você também pode testar seu código com diferentes idiomas de sua escolha. Vamos começar!

  1. Abra o projeto Visual Studio Code que você criou no exercício anterior.

  2. Atualize seu arquivo Program.cs com o seguinte código:

    using Microsoft.SemanticKernel;
    using Microsoft.SemanticKernel.Plugins.Core;
    
    var builder = Kernel.CreateBuilder();
    builder..AddAzureOpenAIChatCompletion(
        "your-deployment-name",
        "your-endpoint",
        "your-api-key",
        "deployment-model");
    
    var kernel = builder.Build();
    
    string language = "French";
    string prompt = @$"Create a list of helpful phrases and 
        words in ${language} a traveler would find useful.";
    
    var result = await kernel.InvokePromptAsync(prompt);
    Console.WriteLine(result);
    
  3. Execute o código inserindo dotnet run no terminal.

    Você verá uma resposta semelhante à seguinte saída:

    1. Bonjour - Hello
    2. Merci - Thank you
    3. Oui - Yes
    4. Non - No
    5. S'il vous plaît - Please
    6. Excusez-moi - Excuse me
    7. Parlez-vous anglais? - Do you speak English?
    8. Je ne comprends pas - I don't understand
    9. Pouvez-vous m'aider? - Can you help me? 
    10. Combien ça coûte? - How much does it cost?
    11. Où est la gare? - Where is the train station?
    

    A resposta vem do modelo OpenAI do Azure que você passou para o kernel. O SDK do kernel semântico se conecta ao modelo de linguagem grande (LLM) e executa o prompt. Você pode melhorar esse prompt adicionando instruções mais específicas.

  4. Atualize seu prompt para corresponder ao seguinte texto:

    string prompt = @$"Create a list of helpful phrases and 
        words in ${language} a traveler would find useful.
    
        Group phrases by category. Display the phrases in 
        the following format: Hello - Ciao [chow]";
    

    Neste prompt, você fornece ao LLM instruções específicas para formatar a resposta. Se você executar o novo prompt, verá uma resposta mais detalhada, semelhante à seguinte saída:

    Restaurant Phrases:
    - Water, please - De l'eau, s'il vous plaît [duh loh, seel voo pleh]
    - Check, please - L'addition, s'il vous plaît [lah-di-syo(n), seel voo pleh]
    - Bon appétit - Bon appétit [bohn ah-peh-teet]
    
    Transportation Phrases:
    - Where is the train station? - Où est la gare? [oo-eh lah gahr]
    - How do I get to...? - Comment aller à...? [ko-mahn tah-lay ah]
    - I need a taxi - J'ai besoin d'un taxi [zhay buh-zwan dunn tah-xee]
    

    Você também pode solicitar que o LLM inclua uma categoria específica de frases e considere algumas informações básicas sobre o viajante. Vamos experimentar!

  5. Atualize seu prompt para corresponder ao seguinte texto:

    string language = "French";
    string history = @"I'm traveling with my kids and one of them 
        has a peanut allergy.";
    
    string prompt = @$"Consider the traveler's background:
        ${history}
    
        Create a list of helpful phrases and words in 
        ${language} a traveler would find useful.
    
        Group phrases by category. Include common direction 
        words. Display the phrases in the following format: 
        Hello - Ciao [chow]";
    

    Agora o LLM pode considerar as informações do viajante ao gerar a lista de frases. Você também adicionou instruções para incluir palavras de direção comuns.

    A saída pode ser semelhante à seguinte resposta:

    Phrases for dealing with peanut allergy:
    My child has a peanut allergy - Mon enfant a une allergie aux arachides [mon on-fon ah oon ah-lair-zhee oh a-rah-sheed]
    Is there a peanut-free option available? - Y a-t-il une option sans arachide? [ee ah-teel une oh-pee-syon sahn ah-rah-sheed]
    
    Phrases for directions:
    Turn left - Tournez à gauche [toor-nay ah gohsh]
    Turn right - Tournez à droite [toor-nay ah dwaht]
    

No próximo exercício, você praticará a atribuição de personas ao LLM para melhorar a qualidade das respostas.

Importante

Certifique-se de não excluir nenhum dos códigos que você escreveu até agora, você precisa dele para o próximo exercício.