Partilhar via


AI: Gerando Completações

Além do recurso de linguagem natural para SQL, você também pode usar o Azure OpenAI em Modelos de Fundição para gerar mensagens de email e SMS para melhorar a produtividade do usuário e simplificar os fluxos de trabalho de comunicação. Ao utilizar os recursos de geração de linguagem do Azure OpenAI, os usuários podem definir regras específicas, como "O pedido está atrasado 5 dias" e o sistema gerará automaticamente mensagens de email e SMS contextualmente apropriadas com base nessas regras.

Esse recurso serve como um ponto de partida para os usuários, fornecendo-lhes um modelo de mensagem cuidadosamente criado que eles podem personalizar facilmente antes de enviar. O resultado é uma redução significativa no tempo e esforço necessários para compor mensagens, permitindo que os usuários se concentrem em outras tarefas importantes. Além disso, a tecnologia de geração de linguagem do Azure OpenAI pode ser integrada em fluxos de trabalho de automação, permitindo que o sistema gere e envie mensagens de forma autônoma em resposta a gatilhos predefinidos. Esse nível de automação não apenas acelera os processos de comunicação, mas também garante mensagens consistentes e precisas em vários cenários.

Neste exercício, você irá:

  • Experimente diferentes prompts.
  • Use prompts para gerar finalizações para mensagens de e-mail e SMS.
  • Explore o código que permite a conclusão de IA.
  • Saiba mais sobre a importância da engenharia imediata e inclua regras em seus prompts.

Vamos começar experimentando diferentes regras que podem ser usadas para gerar mensagens de e-mail e SMS.

Usando o recurso de conclusão de IA

  1. Em um exercício anterior , você iniciou o banco de dados, as APIs e o aplicativo. Você também atualizou o .env arquivo. Se você não concluiu essas etapas, siga as instruções no final do exercício antes de continuar.

  2. Volte para o navegador (http://localhost:4200) e selecione Entrar em contato com o cliente em qualquer linha na grade de dados seguida por E-mail/SMS Cliente para chegar à tela do Gerador de mensagens .

  3. Isso usa o Azure OpenAI para converter regras de mensagem definidas em mensagens de email/SMS. Execute as seguintes tarefas:

    • Insira uma regra como Ordem atrasada 5 dias após a entrada e selecione o botão Gerar e-mail/mensagens SMS .

      Gerador de mensagens de email/SMS do Azure OpenAI.

    • Você verá um assunto e corpo gerados para o e-mail e uma mensagem curta gerada para o SMS.

    Observação

    Como os Serviços de Comunicação do Azure ainda não estão habilitados, você não poderá enviar as mensagens de email ou SMS.

  4. Feche a janela de diálogo e-mail/SMS no navegador. Agora que você já viu esse recurso em ação, vamos examinar como ele é implementado.

Explorando o código de conclusão de IA

Sugestão

Se você estiver usando o Visual Studio Code, poderá abrir arquivos diretamente selecionando:

  • Windows/Linux: Ctrl + P
  • Mac: Cmd + P

Em seguida, digite o nome do arquivo que deseja abrir.

  1. Abra o arquivo server/apiRoutes.ts e localize a completeEmailSmsMessages rota. Essa API é chamada pela parte front-end do aplicativo quando o botão Gerar mensagens de e-mail/SMS é selecionado. Ele recupera os valores de prompt do usuário, empresa e nome de contato do corpo e os passa para a completeEmailSMSMessages() função no arquivo servidor/openAI.ts . Os resultados são então devolvidos ao cliente.

    router.post('/completeEmailSmsMessages', async (req, res) => {
        const { prompt, company, contactName } = req.body;
    
        if (!prompt || !company || !contactName) {
            return res.status(400).json({ 
                status: false, 
                error: 'The prompt, company, and contactName parameters must be provided.' 
            });
        }
    
        let result;
        try {
            // Call OpenAI to get the email and SMS message completions
        result = await completeEmailSMSMessages(prompt, company, contactName);
        }
        catch (e: unknown) {
            console.error('Error parsing JSON:', e);
        }
    
        res.json(result);
    });
    
  2. Abra o arquivo server/openAI.ts e localize a completeEmailSMSMessages() função.

    async function completeEmailSMSMessages(prompt: string, company: string, contactName: string) {
        console.log('Inputs:', prompt, company, contactName);
    
        const systemPrompt = `
        Assistant is a bot designed to help users create email and SMS messages from data and 
        return a JSON object with the email and SMS message information in it.
    
        Rules:
        - Generate a subject line for the email message.
        - Use the User Rules to generate the messages. 
        - All messages should have a friendly tone and never use inappropriate language.
        - SMS messages should be in plain text format and NO MORE than 160 characters. 
        - Start the message with "Hi <Contact Name>,\n\n". Contact Name can be found in the user prompt.
        - Add carriage returns to the email message to make it easier to read. 
        - End with a signature line that says "Sincerely,\nCustomer Service".
        - Return a valid JSON object with the emailSubject, emailBody, and SMS message values in it:
    
        { "emailSubject": "", "emailBody": "", "sms": "" }
    
        - The sms property value should be in plain text format and NO MORE than 160 characters.
        `;
    
        const userPrompt = `
        User Rules: 
        ${prompt}
    
        Contact Name: 
        ${contactName}
        `;
    
        let content: EmailSmsResponse = { status: true, email: '', sms: '', error: '' };
        let results = '';
        try {
            results = await callOpenAI(systemPrompt, userPrompt, 0.5);
            if (results) {
                const parsedResults = JSON.parse(results);
                content = { ...content, ...parsedResults, status: true };
            }
        }
        catch (e) {
            console.log(e);
            content.status = false;
            content.error = results;
        }
    
        return content;
    }
    

    Esta função tem as seguintes características:

    • systemPrompt é usado para definir que um assistente de IA capaz de gerar mensagens de e-mail e SMS é necessário. O systemPrompt também inclui:
      • Regras para o assistente seguir para controlar o tom das mensagens, o formato de início e fim, o comprimento máximo das mensagens SMS e muito mais.
      • Informações sobre dados que devem ser incluídos na resposta - um objeto JSON neste caso.
    • userPrompt é usado para definir as regras e o nome de contato que o usuário final gostaria de incluir à medida que as mensagens de e-mail e SMS são geradas. A regra Encomenda está atrasada 5 dias que introduziu anteriormente está incluída em userPrompt.
    • A função chama a callOpenAI() função que você explorou anteriormente para gerar as finalizações de e-mail e SMS.
  3. Volte para o navegador, atualize a página e selecione Entrar em contato com o cliente em qualquer linha seguida por E-mail/SMS Cliente para acessar a tela do Gerador de mensagens novamente.

  4. Insira as seguintes regras na entrada do Gerador de Mensagens :

    • A encomenda está adiantada.
    • Diga ao cliente para nunca mais encomendar connosco, não queremos o seu negócio.
  5. Selecione Gerar mensagens de e-mail/SMS e anote a mensagem. A All messages should have a friendly tone and never use inappropriate language. regra no prompt do sistema está substituindo a regra negativa no prompt do usuário.

  6. Volte para o servidor/openAI.ts* no seu editor e remova a All messages should have a friendly tone and never use inappropriate language. regra do prompt na completeEmailSMSMessages() função. Salve o arquivo.

  7. Volte para o gerador de mensagens de e-mail / SMS no navegador e execute as mesmas regras novamente:

    • A encomenda está adiantada.
    • Diga ao cliente para nunca mais encomendar connosco, não queremos o seu negócio.
  8. Selecione Gerar mensagens de e-mail/SMS e observe a mensagem que é retornada.

  9. O que está a acontecer nestes cenários? Ao usar o Azure OpenAI, a filtragem de conteúdo pode ser aplicada para garantir que a linguagem apropriada seja sempre usada. Se você estiver usando OpenAI, a regra definida no prompt do sistema é usada para garantir que a mensagem retornada seja apropriada.

    Observação

    Isso ilustra a importância de projetar seus prompts com as informações e regras corretas para garantir que os resultados adequados sejam retornados. Leia mais sobre esse processo na Introdução à documentação de engenharia imediata .

  10. Desfaça as alterações feitas systemPrompt no completeEmailSMSMessages(), salve o arquivo e execute-o novamente, mas use apenas a Order is ahead of schedule. regra (não inclua a regra negativa). Desta vez, você deve ver as mensagens de e-mail e SMS retornadas conforme o esperado.

  11. Alguns pontos finais a considerar antes de passar para o próximo exercício:

    • É importante ter um humano no loop para rever as mensagens geradas. Neste exemplo, as finalizações do Azure OpenAI retornam mensagens de email e SMS sugeridas, mas o usuário pode substituí-las antes de serem enviadas. Se você planeja automatizar e-mails, ter algum tipo de processo de revisão humana para garantir que as mensagens aprovadas estejam sendo enviadas é importante. Veja a IA como sendo um copiloto, não um piloto automático.
    • As finalizações serão tão boas quanto as regras que você adicionar ao prompt. Reserve um tempo para testar seus prompts e as conclusões que são retornadas. Considere o uso do fluxo de prompt para criar uma solução abrangente que simplifique a criação de protótipos, a experimentação, a iteração e a implantação de aplicativos de IA. Convide outras partes interessadas do projeto para revisar as conclusões também.
    • Talvez seja necessário incluir o código de pós-processamento para garantir que os resultados inesperados sejam tratados corretamente.
    • Use prompts do sistema para definir as regras e informações que o assistente de IA deve seguir. Use prompts do usuário para definir as regras e informações que o usuário final gostaria de incluir nas conclusões.

Próximo Passo