Construção de Chatbots
...
Nós de Habilidade
Preenchimento de Slot
slots são um conceito significativo no botpress nlu considere os como parâmetros necessários para concluir a ação associada a uma intenção marcação de slot o botpress native nlu marcará cada palavra (token) de entrada do usuário palavras separadas por um hífen são tratadas como um token se o token for identificado corretamente como um slot, ele será anexado ao evento de extração nlu cada slot identificado será acessível no event nlu slots objeto usando seu nome como chave definindo slots para definir um slot para uma intenção específica clique na guia nlu ; abra a " seção intenção "; selecione a intenção à qual deseja adicionar slots e, em seguida, poderá definir seus slots; clique em " criar um slot " vamos usar uma intenção book flight para reservar um voo, definiremos dois slots departure e destination , ambos associados à airport codes entidade de lista personalizada feito isso, precisamos identificar cada slot do aeroporto exemplo o usuário disse i would like to go to sfo from mumbai ( eu gostaria de ir de mumbai a são francisco ) event nlu slots vai parecer como isso slots { airport to { name 'airport to', value 'sfo', // shorthand for entity data value entity \[object] //detailed extracted entity }, airport from { name 'airport from', value 'bom', // shorthand for entity data value entity \[object] //detailed extracted entity } } preenchimento de slot o preenchimento de slot é o processo de coleta de informações exigidas por uma intenção essas informações são definidas como slots, conforme mencionamos na seção acima ele lida com a validação de entrada e a resposta do chatbot quando a entrada é inválida o botpress possui uma habilidade embutida para lidar com o processo de preenchimento de slots criando uma habilidade usaremos os slots que definimos anteriormente neste tutorial na visualização " flow editor ", clique em insert skill > slot ; escolha uma intenção a ser usada para o preenchimento do slot; escolha um slot para preencher; escolha o conteúdo que seu chatbot irá pedir deve ser uma pergunta sobre a informação que você procura, como " de onde você está partindo? " ou " onde você quer ir? " etc escolha o conteúdo da resposta do seu chatbot quando a entrada for inválida deve orientar o usuário para uma resposta válida tipos de validação existem dois tipos de validações validação de entrada a primeira validação é baseada na extração de entidade se as informações fornecidas não corresponderem à entidade do slot, o chatbot notificará o usuário isso não se aplicará quando o slot tiver o tipo @system any nesse caso, o chatbot fornecerá a frase completa do usuário quando não corresponder a um slot com confiança validação de entrada personalizada você pode usar uma ação para adicionar validação personalizada, como regex ou validação de tipo (número, string) a ação deve definir a variável temp valid como true ou false com base no resultado da validação máximo de tentativas de repetição quantas vezes o chatbot deve tentar obter a resposta correta on not found resultado será acionado quando o máximo for atingido resultados três resultados são possíveis on extracted o slot foi extraído com sucesso ele será armazenado em session slots \<slot name> ; on not found o slot não foi extraído isso também acontecerá quando o número máximo de tentativas for atingido ou quando a validação personalizada falhar; on already extracted o slot foi extraído anteriormente um caso de uso para isso seria perguntar ao usuário se as informações anteriores ainda são relevantes ou se ele gostaria de substituí las encadeando vários slots é possível encadear várias habilidades para preencher todos os espaços para uma determinada intenção as habilidades de encadeamento são úteis quando todos os slots em uma determinada intenção são obrigatórios para que um conjunto de dados seja concluído no exemplo de reserva de voo, precisamos do departure city , destination city e time of departure para verificar se um voo está disponível como esses campos são obrigatórios, esse é um bom caso de uso para encadeamento de habilidades esse fluxo resultará em uma conversa como a abaixo observe que na primeira frase, i want to book a flight to nyc , a intenção book flight é correspondida e nyc foi extraído como o to slot em seguida, o chatbot tenta preencher os slots restantes from e when diretrizes ao adicionar slots misture as posições dos slots nos enunciados exemplo evite a duplicação ao usar slots exemplo para evitar limite o número de slots usados para um determinado intent sugestão máximo de 3 tente misturar enunciados com os espaços a serem preenchidos, parcialmente preenchidos ou vazios exemplo exemplos em enunciados devem corresponder à entidade definida exemplo entity list google, slack, github, email intent reset trello password (o valor do slot não faz parte da lista) ao usar slots, devem haver pelo menos cinco enunciados com um exemplo do slot; quanto mais slots, mais enunciados com exemplos