Compartilhar via


Bot messages with AI-generated content (Mensagens de bot com conteúdo gerado por IA)

As etiquetas de IA, citações, botões de feedback e etiquetas de confidencialidade nas mensagens do bot melhoram o envolvimento do utilizador e promovem a transparência e a confiança.

  • A etiqueta de IA permite que os utilizadores identifiquem que a mensagem foi gerada com IA.
  • As citações permitem que os utilizadores consultem a origem da mensagem do bot através de citações e referências em texto.
  • Os botões de feedback permitem que os utilizadores forneçam feedback positivo ou negativo às mensagens do bot.
  • A etiqueta de confidencialidade permite que os utilizadores compreendam a confidencialidade da mensagem do bot.

As capturas de ecrã seguintes mostram como as mensagens de bot podem ser melhoradas com etiquetas de IA, citações, botões de feedback e etiquetas de confidencialidade:

Observação

  • As etiquetas de IA, citações, botões de feedback e etiquetas de confidencialidade estão disponíveis na pré-visualização do programador público para conversas um-a-um e de grupo, mas não são suportadas em canais.
  • A etiqueta de IA, citações, botões de feedback e etiquetas de confidencialidade só estão disponíveis em clientes web e de ambiente de trabalho do Teams.
  • As etiquetas de IA, citações, botões de feedback e etiquetas de confidencialidade estão disponíveis em ambientes GCC (Government Community Cloud), GCC High e Department of Defense (DOD ).

Etiqueta de IA

Uma etiqueta de IA adicionada à mensagem do bot especifica que a mensagem é gerada pela IA. Os bots de IA utilizam Modelos de Linguagem Grande (LLMs) que são geralmente fiáveis, no entanto, adicionar uma etiqueta de IA impede a confusão sobre a origem das informações.

Captura de ecrã a mostrar uma etiqueta de IA numa mensagem de bot.

Adicionar etiqueta de IA

Para um bot criado com a biblioteca de IA do Teams, uma etiqueta de IA é ativada automaticamente para todas as mensagens de bot com tecnologia de IA no ai módulo dentro da ação PredictedSayCommand . Para obter mais informações, veja Interface AIEntity.

Se estiver a utilizar Microsoft Bot Framework SDK para criar o bot, inclua additionalType na entities matriz do message objeto de entidade. Segue-se um fragmento de código de exemplo:

await context.sendActivity({
  type: ActivityTypes.Message,
  text: `Hey! I'm a friendly AI bot. This message is generated by AI.`,
  entities: [
    {
     type: "https://schema.org/Message",
     "@type": "Message",
     "@context": "https://schema.org",
     additionalType: ["AIGeneratedContent"], // Enables AI label
    }
  ]
});
Propriedade Tipo Obrigatório Descrição
additionalType Matriz Sim Ativa a etiqueta de IA na mensagem do bot. O único valor permitido é AIGeneratedContent.

Depois de uma etiqueta de IA ser adicionada, a mensagem do bot apresenta uma etiqueta gerada por IA junto ao nome do bot com uma exclusão de responsabilidade que indica que o conteúdo gerado pela IA pode estar incorreto. A etiqueta de IA e a exclusão de responsabilidade não podem ser personalizadas para bots baseados em IA.

Observação

A etiqueta gerada pela IA só está disponível quando envia uma nova mensagem com SendActivity. Se atualizar uma mensagem com UpdateActivity, a etiqueta Editada é adicionada.

Tratamento de erros

Código de erro Descrição
400 Várias entidades de mensagens de raiz encontradas na entities matriz
400 Erro ao analisar a entidade da mensagem da entities matriz

Citações

É importante citar as fontes da mensagem do bot para ajudar os utilizadores a fazer perguntas de seguimento ou a realizar pesquisas independentes. Cite origens de dados, como ficheiros, mensagens, e-mails e itens de trabalho, para fornecer informações valiosas aos utilizadores. As citações são importantes para bots que utilizam técnicas como a Geração Aumentada de Obtenção (RAG).

Captura de ecrã a mostrar uma resposta do bot de IA com citação em texto.

As citações à sua mensagem de bot incluem citações em texto, detalhes da referência de citação e etiquetas de confidencialidade para o conteúdo referenciado.

  • As citações em texto indicam os números de citação adicionados à mensagem de bot no formato [#], cada uma correspondente a uma referência. Uma citação pode ser inserida em qualquer parte do texto.
  • Os detalhes da referência de citação incluem o título, palavras-chave, uma informação abstrata, hiperligação e confidencialidade. As referências aparecem como janelas de pop-up para cada citação em texto.
  • Os rótulos de confidencialidade das citações indicam a confidencialidade do conteúdo da citação referenciado e não são adicionados automaticamente. Para adicionar etiquetas de confidencialidade para citações, consulte Adicionar etiqueta de confidencialidade.

Observação

  • Um máximo de 10 citações são apresentadas numa mensagem.
  • Os Cartões Ajustáveis não são compostos na janela de pop-up de citação. No entanto, os Cartões Ajustáveis podem ser compostos na mensagem do bot.

Adicionar citações

Para bots criados com a biblioteca de IA do Teams, as citações são adicionadas automaticamente a uma mensagem de bot de IA através da PredictedSayCommand ação. Também pode modificar a ação PredictedSayCommand para adicionar citações à sua mensagem de bot. Para obter mais informações, veja ClientCitation interface (Interface clientCitation).

Se estiver a utilizar o SDK do Bot Framework para criar o bot, inclua citation na entities matriz. Segue-se um fragmento de código de exemplo:

await context.sendActivity({
  type: ActivityTypes.Message,
  text: `Hey I'm a friendly AI bot. This message is generated through AI [1]`, // cite with [1],
  entities: [
  {
    type: "https://schema.org/Message",
    "@type": "Message",
    "@context": "https://schema.org",
    citation: [
    {
      "@type": "Claim",
      position: 1, // Required. Must match the [1] in the text above
      appearance: {
        "@type": "DigitalDocument",
        name: "AI bot", // Title
        url: "https://example.com/claim-1", // Hyperlink on the title
        abstract: "Excerpt description", // Appears in the citation pop-up window
        keywords: ["keyword 1", "keyword 2", "keyword 3"], // Appears in the citation pop-up window
        },
      },
    ],
  },
],
})
Propriedade Tipo Obrigatório Descrição
citation Objeto Sim Detalhes da citação.
citation.@type Cadeia de caracteres Sim Objeto da citação. O único valor permitido é Claim.
citation.position Número inteiro Sim Apresenta o número da citação. Os valores estão limitados a menos de oito.
citation.appearance Objeto Sim Informação sobre o aparecimento da citação.
citation.appearance.@type Cadeia de caracteres Sim Objeto do aspeto da citação. O único valor permitido é DigitalDocument.
citation.appearance.name Cadeia de caracteres Sim Título do conteúdo referenciado.
citation.appearance.url Cadeia de caracteres Não URL do conteúdo referenciado.
citation.appearance.abstract Cadeia de caracteres Não Extração do conteúdo referenciado e está limitado a menos de 1000 carateres.
citation.appearance.keywords Matriz Não Palavras-chave do conteúdo referenciado. Não pode adicionar mais do que três palavras-chave.

Depois de ativar as citações, a mensagem do bot inclui citações e referências em texto. As citações em texto apresentam os detalhes de referência quando os utilizadores pairam o cursor sobre a citação.

Tratamento de erros

Código de erro Descrição
400 Várias entidades de mensagens de raiz encontradas na entities matriz
400 Erro ao analisar a entidade da mensagem da entities matriz
400 Mensagem de bot com mais de 10 citações
400 O appearance objeto está vazio
400 Erro ao analisar a entidade de citação com o ID: X

Botões de comentários

Os botões de feedback nas mensagens do bot são cruciais para medir o envolvimento do utilizador, identificar erros e obter informações sobre o desempenho do bot. Estas informações podem levar a melhoramentos direcionados e eficazes das capacidades de conversação do bot. Ative os botões de feedback para permitir que os utilizadores gostem ou não gostem de mensagens e forneçam comentários detalhados.

Captura de ecrã a mostrar os botões de feedback num bot.

Quando o utilizador seleciona um botão de feedback, é apresentado um respetivo formulário de feedback com base na seleção do utilizador.

Captura de ecrã a mostrar o formulário de feedback num bot.

Os botões de feedback estão localizados no rodapé da mensagem do bot e incluem um 👍 botão (polegar para cima) e um 👎 botão (polegar para baixo) para o utilizador escolher. Pode recolher feedback sobre as respostas do bot a partir de conversas um-para-um e de grupo.

Adicionar botões de feedback

Para um bot criado com a biblioteca de IA do Teams, o Teams ativa botões de feedback para todas as mensagens de bot quando enable_feedback_loop está definido como true no ai módulo.

export const app = new Application<ApplicationTurnState>({
    ai: {
        planner: planner,
        enable_feedback_loop: true
    },

Para obter mais informações, veja a variável da aplicação const.

Depois de ativar os botões de feedback, todos os comandos SAY do bot são feedbackLoopEnabled definidos automaticamente como true no channelData objeto.

Para ativar os botões de feedback num bot criado com o SDK do Bot Framework, adicione um channelData objeto na mensagem do bot e defina o valor de feedbackLoopEnabled como true.

await context.sendActivity({
  type: ActivityTypes.Message,
  text: `Hey! I'm a friendly AI bot!`,
  channelData: {
    feedbackLoopEnabled: true // Enable feedback buttons
  },
});
Propriedade Tipo Obrigatório Descrição
feedbackLoopEnabled Booliano Sim Ativa os botões de feedback na mensagem do bot

Processar comentários

O bot recebe a entrada do utilizador, recebida no formulário de feedback, através de um fluxo de invocação de bot.

Para um bot criado com a biblioteca de IA do Teams, a invocação do bot recebida é processada automaticamente. Para processar comentários, utilize o app.feedbackLoop método para registar um processador de ciclos de comentários chamado quando o utilizador fornecer feedback.

app.feedbackLoop(async (context, state, feedbackLoopData) => {
  // custom logic here...
});

Para obter mais informações, veja a função de chamada de retorno assíncrona.

Para um bot criado com o SDK do Bot Framework, tem de ter um onInvokeActivity processador para processar o feedback. Certifique-se de que devolve um código status 200 com um objeto JSON vazio como resposta.

O fragmento de código seguinte mostra como processar os comentários recebidos num bot invocando e devolvendo uma resposta com o código de status 200:

public async onInvokeActivity(context: TurnContext): Promise<InvokeResponse> {
    try {
      switch (context.activity.name) {
        case "message/submitAction":
           console.log('Your feedback is ' + JSON.stringify(context.activity.value))
           // Your feedback is {"actionName":"feedback","actionValue":{"reaction":"like","feedback":"{\"feedbackText\":\"This is my feedback.\"}"}}
           return CreateInvokeResponse(200, {});
        default:
          return {
            status: 200,
            body: `Unknown invoke activity handled as default- ${context.activity.name}`,
          };
      }
    } catch (err) {
      console.log(`Error in onInvokeActivity: ${err}`);
      return {
        status: 500,
        body: `Invoke activity received- ${context.activity.name}`,
      };
    }
  }

 export const CreateInvokeResponse = (
  status: number,
  body?: unknown
 ): InvokeResponse => {
    return { status, body };
 };

É importante armazenar comentários depois de o receber. Assim, certifique-se de que armazena os IDs da mensagem e o conteúdo das mensagens que o bot envia e recebe. Quando o bot recebe uma invocação que contém comentários, corresponda ao ID da mensagem do bot com o feedback correspondente.

Observação

O Teams não armazena nem processa comentários, nem fornece uma API ou um mecanismo de armazenamento.

Se um utilizador desinstalar o bot e continuar a ter acesso ao chat do bot, o Teams remove os botões de feedback das mensagens do bot para impedir que o utilizador forneça comentários ao bot.

Tratamento de erros

Código de erro Descrição
400 message/submitAction A resposta de invocação não está vazia.

Rótulo de confidencialidade

As respostas do bot podem conter informações confidenciais ou apenas acessíveis a determinadas pessoas na organização. Tem de adicionar uma etiqueta de confidencialidade para ajudar os utilizadores a identificar a confidencialidade de uma mensagem, permitindo-lhes ter cuidado ao partilhar a mensagem.

Captura de ecrã a mostrar uma etiqueta de confidencialidade do bot de IA.

Observação

Adicione uma etiqueta de confidencialidade às mensagens do bot apenas quando contêm informações confidenciais.

Adicionar etiqueta de confidencialidade

Para bots criados com a biblioteca de IA do Teams, as etiquetas de confidencialidade podem ser adicionadas através da PredictedSayCommand ação. Para obter mais informações, veja SensitivityUsageInfo interface (Interface SensitivityUsageInfo).

Para bots criados com o SDK do Bot Framework, adicione uma etiqueta de confidencialidade à mensagem do bot ao modificar a mensagem a incluir usageInfo no entities objeto.

O fragmento de código seguinte mostra como adicionar etiquetas de confidencialidade a mensagens de bot e referência de citação:

await context.sendActivity({
  type: ActivityTypes.Message,
  text: `Hey, I'm a friendly AI bot. This message is generated through AI [1]`,
  entities: [
    {
      type: "https://schema.org/Message",
      "@type": "Message",
      "@context": "https://schema.org",
      usageInfo: {
        "@type": "CreativeWork",
        name: "Sensitivity title",
        description: "Sensitivity description",
      },
    },
  ],
});
Propriedade Tipo Obrigatório Descrição
usageInfo.@type Cadeia de caracteres Sim Ativa a etiqueta de confidencialidade na mensagem do bot.
citation.usageInfo.@id Cadeia de caracteres Sim Ativa a etiqueta de confidencialidade na referência de citação. É necessário ao adicionar a etiqueta de confidencialidade à referência de citação.
usageInfo.name Cadeia de caracteres Sim Especifica o título da etiqueta de confidencialidade.
usageInfo.description Cadeia de caracteres Não Especifica a mensagem de janela de pop-up que é apresentada quando um utilizador passa o rato sobre a etiqueta de confidencialidade.

Depois de adicionar a etiqueta de confidencialidade, a mensagem do bot contém um ícone de escudo. Os utilizadores podem pairar o rato sobre o ícone para encontrar uma exclusão de responsabilidade sobre a confidencialidade da mensagem.

Tratamento de erros

Código de erro Descrição
400 Várias entidades de mensagens de raiz encontradas na entities matriz
400 Erro ao analisar a entidade da mensagem da entities matriz
400 O valor de nível usageInfo.@id de citação não corresponde ao nível usageInfo.@id da mensagem em, pelo menos, uma instância
400 Existem várias propriedades ao nível usageInfo da citação com o mesmo @id, mas as respetivas name propriedades e description são diferentes.

Modificar PredictedSayCommand

Para um bot criado com a biblioteca de IA do Teams, o PredictedSayCommand fornece controlo sobre como as etiquetas de IA, citações, botões de feedback e etiquetas de confidencialidade são adicionadas à atividade do bot. Segue-se o fragmento de código para modificar PredictedSayCommand:

app.ai.action<PredictedSayCommand>(AI.SayCommandActionName, async (context, state, data, action) => {
  // custom logic here...
  await context.sendActivity(data.content);
  return "";
});

Para obter mais informações sobre PredictedSayCommando , veja PredictedSayCommand interface (Interface PredictedSayCommand).

Exemplo de código

Nome do exemplo Descrição Node.js C#
Bot de conversas do Teams Esta aplicação de exemplo apresenta a etiqueta de IA, citações, botões de feedback e etiquetas de confidencialidade nas mensagens. View
TeamsAzureOpenAI Este bot de conversação utiliza a biblioteca de IA do Teams e contém a etiqueta de IA, os botões de feedback, a etiqueta de confidencialidade e as citações nas mensagens geradas. Exibir

Confira também