Compartilhar via


Perguntas frequentes sobre o Bot Framework

Este artigo apresenta respostas a perguntas frequentes.

APLICA-SE A: SDK v4

Por que a atividade de Digitação não gera nenhuma ação?

Alguns canais não oferecem suporte a atualizações transitórias de digitação dos clientes.

Qual é a diferença entre a biblioteca do conector e a biblioteca do construtor no SDK?

A biblioteca do Connector é a exposição da API REST. A biblioteca do Builder inclui o modelo de programação de diálogo de conversação e outros recursos, como prompts, cascatas, cadeias e preenchimento de formulário guiado. A biblioteca do construtor também fornece acesso a serviços de IA do Azure, como reconhecimento de linguagem natural.

Como as mensagens do usuário estão relacionadas às chamadas de método HTTPS?

Quando o usuário enviar uma mensagem através de um canal, o serviço Web do Bot Framework emitirá um HTTPS POST para o ponto de extremidade do serviço Web do bot. O bot pode enviar zero, uma ou muitas mensagens de volta ao usuário naquele canal, emitindo um HTTPS POST separado para o Bot Framework para cada mensagem que envia.

Qual é a diferença entre "proativo" e "reativo"?

Do ponto de vista do bot, "reativo" significa que o usuário inicia a conversa enviando uma mensagem para o bot e o bot reage respondendo a essa mensagem. Em contraste, "proativo" significa que o bot inicia a conversa, enviando a primeira mensagem ao usuário. Por exemplo, um bot pode enviar uma mensagem proativa para notificar um usuário quando um temporizador expirar ou ocorrer um evento.

Como enviar mensagens proativas ao usuário?

Para obter exemplos que mostram como enviar mensagens proativas, confira Exemplos em C# V4 e Exemplos em Node.js V4 no repositório BotBuilder-Samples no GitHub.

O que é um ETag? Qual a relação disso com o armazenamento de recipiente de dados de bot?

Um ETag é um mecanismo para controle de simultaneidade otimista. O armazenamento de recipiente de dados de bot usa ETags para impedir atualizações conflitantes nos dados. Um erro de ETag com o código de status HTTP 412 "Falha na pré-condição" indica que foram recebidas várias mensagens em paralelo antes que o bot pudesse concluir a primeira operação. O estado e a pilha de diálogo são armazenados em recipientes de dados de bot. Por exemplo, será possível ver o erro de ETag "Falha na Pré-Condição" se o bot ainda estiver processando uma mensagem anterior quando receber uma nova mensagem para essa conversa.

O que é a limitação de taxa?

O Bot Framework Service precisa proteger a si próprio e a seus clientes contra padrões de chamada abusivos (por exemplo, ataque de negação de serviço), de modo que nenhum bot possa prejudicar o desempenho de outros bots. Para obter esse tipo de proteção, adicionamos limites de taxa (também conhecidos como limitação) aos nossos pontos de extremidade. Impondo um limite de taxa, podemos restringir a frequência com a qual um cliente ou bot pode fazer uma chamada específica. Por exemplo: com a limitação de taxa habilitada, se um bot desejar postar um grande número de atividades, ele precisará espaçá-las por um período. A finalidade da limitação de fluxo não é limitar o volume total de um bot. Ela se destina a prevenir abusos da infraestrutura de conversa que não seguem os padrões de conversa humana. Por exemplo, inundar duas conversas com mais conteúdo do que duas pessoas jamais poderiam consumir.

Quais são os limites de taxa?

Estamos continuamente ajustando os limites de taxa para torná-los os mais brandos possíveis, ao mesmo tempo em que protegemos nosso serviço e nossos usuários. Como os limites serão alterados ocasionalmente, não estamos publicando os números no momento. Por fim, se você estiver hospedando seu bot em um Serviço de Aplicativo, o bot estará vinculado às limitações do Serviço de Aplicativo. Para obter mais informações, confira Resumo do SLA para serviços do Azure Se você for afetado pela limitação de fluxo, sinta-se à vontade para entrar em contato conosco em bf-reports@microsoft.com.

Qual é o limite de tamanho de um arquivo transferido usando canais?

Alguns canais têm limites no tamanho ou no tipo de arquivos que podem ser enviados. Por exemplo, o Direct Line e o Facebook limitam as cargas de atividade a 262.144 bytes, enquanto o Bot Framework Emulator não tem limite. Tais limites são impostos pelo canal. Se você enviar uma mensagem que exceda esse limite, poderá receber um erro, como: O comprimento do conteúdo da solicitação excedeu o limite de 262.144 bytes. No entanto, você pode fornecer um link para o recurso como um anexo da Internet. Para obter mais informações sobre como enviar anexos, confira como adicionar mídia a mensagens.

Como fazer para saber se fui afetado pela limitação de fluxo?

É improvável que você enfrente a limitação de fluxo, mesmo com um alto volume. A maior parte da limitação de taxa só ocorrerá devido ao envio em massa de atividades (de um bot ou de um cliente), um teste de carga extrema ou um bug. Quando uma solicitação é limitada, uma resposta HTTP 429 (Número Excessivo de Solicitações) é retornada juntamente com um cabeçalho Retry-After, que indica o tempo (em segundos) que é necessário aguardar antes do êxito da nova tentativa da solicitação. Colete essas informações habilitando a análise no bot por meio do Azure Application Insights. Se preferir, adicione um código ao bot para registrar mensagens em log.

Como ocorre a limitação de taxa?

A limitação de fluxo é causada por qualquer uma das seguintes condições:

  • Um bot envia mensagens com muita frequência
  • Um cliente de um bot envia mensagens com muita frequência
  • Os clientes do Direct Line solicitam um novo Soquete da Web com muita frequência

Como implementar a entrega humana?

Às vezes, é necessário transferir (entregar) uma conversa de um bot para um ser humano, como quando o bot não entende o usuário ou a solicitação não pode ser automatizada. Nesses casos, o bot fornece uma transição para seres humanos. O SDK do Bot Framework oferece suporte à entrega para um ser humano. Existem alguns tipos de eventos para sinalizar operações de entrega. Esses eventos são trocados entre um bot e um hub do agente, também chamado de hub de compromisso. Esse hub do agente é definido como um aplicativo ou um sistema que permite que agentes, geralmente seres humanos, recebam e manipulem solicitações de usuários e solicitações de escalonamento de bots. Para obter informações detalhadas, confira o artigo Transição de conversas de bot para um ser humano.