voltar aos documentos

Conjuntos de habilidades

Visão geral de como funcionam os conjuntos de habilidades e as instruções do conjunto de habilidades do chatbot. Saiba como personalizar as habilidades do seu chatbot e melhorar seu desempenho.

Skillsets are instructions to your chatbot that are defined in natural language. They allow your chatbot to understand user intent and propose a suitable action based on the conversation. For example, if a user asks your chatbot to fetch the weather forecast for a specific location, the skillset will tell the chatbot how to extract the location from the conversation and use it to search for the weather forecast.

To access a skillset, you must specify the skillset id when starting a conversation with a chatbot. Typically the skillset is configured into the bot. There is only one skillset allowed per conversation / bot. The number of skillset you can have is determined by your monthly membership or subscription plan. If you need more skillsets, you can upgrade your plan or contact customer service for more information.

Compreensão das habilidades

Skillsets are made of abilities. Each ability has a number of fields which define the name, the purpose of the ability as well as how the ability will be used during the conversation:

  • nome - um nome curto, mas descritivo, para a habilidade
  • descrição - uma breve descrição da habilidade
  • instrução - instruções específicas sobre como aplicar a habilidade

Os campos de nome e descrição são usados durante o estágio de detecção de intenção da conversa, ou seja, quando seu bot está tentando descobrir o que precisa fazer para atender ao usuário final. O campo de instrução só é usado quando essa habilidade específica é selecionada. A instrução é aplicada com a conversa em mente para atender à solicitação do usuário final.

É essencial manter os campos de nome e descrição descritivos, mas não muito longos, pois eles serão usados em todos os estágios da conversa, consumindo tokens. O campo de instrução pode ser muito mais longo. Ele será usado apenas uma vez por solicitação do usuário, mas ainda assim contribui para o uso total de tokens.

Entendendo as ações

Um componente essencial de uma habilidade é executar uma ação, como buscar uma página da Web. A ação precisa ser especificada em um bloco de código no estilo markdown (bloco de código cercado) com a notação de três backticks. Você deve especificar o nome da ação após os três primeiros backticks. Isso é semelhante à forma como você usa blocos de código com identificadores de idioma. Por exemplo:

```fetch POST https://some/url HTTP/1.1 Content-Type: application/json { "param": "value" } ```

A ação pode ser combinada com instruções de texto de formato livre. Essas instruções definem como a ação precisa ser aplicada. Recomenda-se que sejam tão descritivas quanto possível para garantir que a ação seja aplicada da forma mais consistente possível.

Considere a tabela a seguir, que resume a lista de ações e propriedades disponíveis:

AçãoPropriedadeDescrição
pesquisa-Pesquisa um conjunto de dados com uma frase específica.
datasetIdO Id do conjunto de dados a ser pesquisado.
buscar-Obtém um URL. Você também pode usar uma solicitação HTTP completa. A ação tem lógica integrada de tempo limite e nova tentativa.
tempo limiteUm parâmetro que controla o tempo limite máximo em milissegundos. Por padrão, a ação de busca espera 10 segundos (10.000 ms) antes de abortar a solicitação.
formatoEspecifica o formato de saída das ações. As opções disponíveis são texto, markdown e json. Por exemplo, faz sentido converter (formatar) a página HTML em markdown para que ela possa ser facilmente interpretada pelo seu bot.
jsonpathÉ possível usar um JSONPath para extrair uma seção específica de um documento JSON retornado pela solicitação da Web executada pela ação fetch.
jmespathÉ possível usar um JMESPath para extrair uma seção específica de um documento JSON retornado pela solicitação da Web executada pela ação fetch.
e-mail-Envia um e-mail.
paraO endereço de e-mail para o qual enviar a mensagem.
replyToO endereço de e-mail a ser usado no campo de e-mail de resposta.
assuntoO assunto do e-mail. Se não for fornecido, será usado um assunto padrão.
visualização-Use vision model to describe an image from external URL. The input for the action must contain a URL string and optionally some description.
texto-Gera texto usando o texto de entrada como um prompt.
modeloAny of the supported ChatBotKit language models can be used as the base model for the text: i.e. gpt-3.5-turbo, gpt4, mistral-largeetc.
imagem-Gera uma imagem usando o texto de entrada como um prompt.
modeloQualquer um dos modelos de imagem compatíveis com o ChatBotKit pode ser usado como modelo de base para a imagem, ou seja stablediffusion, dalle2 ou dalle3etc.
tamanhoQualquer um dos tamanhos suportados: 256x256 , 512x512 ou 1024x1024

Actions and other parts of the ability instruction can be customised with the help of parameters. This feature enables chatbots to perform a wide array of actions more effectively, from fetching data online to processing user requests, by understanding the context and specifics of each command. We support a wide range of flexible syntax, including ${name} or {{name}}, with descriptions added as ${name:A longer description} or using the separator | for alternative formats like ${name|A longer description}.

Uso de parâmetros

As ações podem ser parametrizadas usando vários ${name} {{name}} $[nome] e [[nome]] sintaxe. A ${name} e {{name}} pode ser usada para acessar segredos e informações de conversas durante a execução da ação. A sintaxe $[nome] e [[nome]] pode construir parâmetros de entrada que serão preenchidos pelo usuário (automaticamente por meio de conversa).

Considere a tabela a seguir como um guia:

ExemploDescrição
${SECRET_NAME} ou {{SECRET_NAME}}Use um segredo definido pelo nome.
${CONVERSATION_ID} ou {{CONVERSATION_ID}}Use o ID da conversa atual.
${CONVERSATION_META_FIELD} ou {{CONVERSATION_META_FIELD}}Acesse um "campo" das propriedades meta de uma conversa.
`$[paramdescrição do parâmetro]ou[[param

Exemplos de introdução

Obtenção de páginas

Considere a seguinte instrução de habilidade de conjunto de habilidades que permite que o seu chatbot busque e exiba páginas da Web quando solicitado pelo usuário:

When the user asks the bot to read, fetch, or pull a web page, the bot must only output the URL of the root webpage as a markdown code block, with the language specified as "fetch". For example: ```fetch/format=markdown URL of the webpage, e.g https://... or HTTP request ```

Essa instrução do Skillset diz ao chatbot para ouvir as solicitações do usuário para buscar páginas da Web. Quando o chatbot detectar essa solicitação, ele emitirá o URL da página da Web solicitada em um bloco de código markdown, usando o identificador especificado como buscar. Se o usuário fizer uma pergunta que não esteja relacionada à busca de uma página da Web, o chatbot responderá com uma mensagem indicando que não pode atender à solicitação.

Recuperação da previsão do tempo

Considere a seguinte instrução de habilidade de conjunto de habilidades que permite que seu chatbot busque a previsão do tempo mais recente em um determinado local:

To get the weather you need to perform the following request: ```fetch GET https://wttr.in/{location}?format=4 HTTP/1.1 User-Agent: curl/7.61.1 ``` The {location} parameter could be any city. For example: ```fetch GET https://wttr.in/London?format=4 HTTP/1.1 User-Agent: curl/7.61.1 ``` Multiple locations can be requested like this: ```fetch GET https://wttr.in/{London,Paris}?format=4 HTTP/1.1 User-Agent: curl/7.61.1 ``` The response is a text document with weather information.

Observe que descrevemos vários exemplos de como obter a previsão do tempo com base na entrada fornecida pelo usuário. A previsão do tempo será obtida de acordo com essas instruções.

Pesquisa de conjunto de dados

A seguinte habilidade de conjunto de habilidades pode ser usada para pesquisar um conjunto de dados específico para obter mais informações. Observe o campo datasetId que aponta para o conjunto de dados específico a ser pesquisado. Também usamos uma entrada parametrizada chamada query que também tem uma descrição para ajudar o modelo subjacente a escolher a frase de pesquisa correta.

```search/datasetId=clvmk6ksl0039vsm3k5wve3pp ${query|The search query related to search for information} ```

Envio de e-mail de suporte

A seguinte habilidade de conjunto de habilidades pode ser usada para resumir a conversa atual e enviar um e-mail de suporte. Observe que usamos o campo replyTo para poder responder ao usuário:

To email customer support use need to use the following action: ```email/to=contact@acme.com/replyTo={user email} [The summary of the conversation] ``` For example, if the user is asking for help and their email is test@test.com the action will be: ```email/to=contact@acme.com/replyTo=test@test.com [The summary of the conversation] ```

Geração de texto

Considere a seguinte instrução de habilidade de conjunto de habilidades que permite ao seu chatbot gerar texto com base na entrada do usuário:

To generate a song based on user input, perform the following action: ```text/model=gpt-3.5-turbo The user's input text converted to a prompt suitable for song generation ```

Se o usuário pedir a um bot que escreva uma música, sua entrada será combinada com as instruções na capacidade de criar a ação final.

Geração de uma imagem

Considere a seguinte instrução de habilidade de conjunto de habilidades que permite ao seu chatbot gerar uma imagem com base na entrada do usuário:

To generate an image based on user input, perform the following action: ```image/model=stablediffusion The user's input text ```

Você pode especificar outros aprimoramentos para o prompt usado para gerar a imagem. Dê uma olhada nos exemplos de hub a seguir:

  • Logo Maker - um conjunto de habilidades que o ajuda a criar logotipos usando o DALL-3.
  • Fashion AI 2.0 - Fashion AI is an advanced tool that leverages DALL-E 3 to enhance your ability to create stylish outfits with its comprehensive skillset.
  • Fashion AI 1.0 - O Fashion AI, desenvolvido pelo DALL-E 2, utiliza um conjunto de habilidades para selecionar roupas elegantes sem esforço.

Uso de parâmetros

Considere a seguinte instrução de habilidade de conjunto de habilidades que usa parâmetros para fornecer mais dicas sobre qual entrada é esperada para executar a ação de busca:

```fetch POST https://httpbin.org/anything/collect/details Content-Type: application/json Test: Token ${SECRET_TEST} { "name": "${name: The name of the user.}" "email": "${email: The email of the user.}" } ```

Neste exemplo, chamamos a ação fetch como fazemos normalmente, mas há uma pequena diferença. Em vez de deixar os parâmetros da solicitação abertos à interpretação, podemos fornecer dicas adicionais. Observe que tanto o parâmetro nome e e-mail Os campos JSON são claramente especificados com o nome e a descrição do campo correspondente.

Esse processo não apenas aprimora o desempenho do modelo, mas também enriquece a experiência do usuário, garantindo interações mais relevantes e precisas.

Como criar um conjunto de habilidades

Siga estas instruções para criar um novo conjunto de habilidades.

  1. Vá para "Skillsets" (Conjuntos de habilidades ) na barra de navegação.
  2. Clique no botão "Create Skillset" (Criar conjunto de habilidades ).
  3. Nomeie seu conjunto de habilidades e forneça uma descrição.
  4. Salve o conjunto de habilidades clicando no botão "Criar".

Agora você tem um conjunto de habilidades vazio, mas não tem nenhuma habilidade. Criar habilidades também é muito fácil.

  1. Com seu conjunto de habilidades selecionado, clique no botão "Create Ability" (Criar habilidade ).
  2. Especifique o nome e a descrição da capacidade.
  3. Especifique a instrução de habilidade, esteja ciente da contagem total de tokens.
  4. Salve a nova habilidade do conjunto de habilidades clicando no botão "Create" (Criar ).

Ability Instruction Templates

The Skillset Template feature is directly accessible within the Instructions input field of the ChatBotKit interface. By simply clicking on the “Templates” button, you will be greeted by a new dialog box that showcases a variety of pre-designed templates. These templates cater to diverse needs and applications, allowing you to either employ them as-is or modify them as needed to achieve tailored results.

Template Library

You can contribute to ChatBotKit Instructions Template Library on our GitHub Template Repositor

Resumo

Em geral, os conjuntos de habilidades são uma ferramenta poderosa para personalizar as habilidades do seu chatbot e melhorar seu desempenho. Eles permitem que você defina instruções específicas para o seu chatbot em linguagem natural, permitindo que ele entenda melhor e responda às solicitações dos usuários. Ao criar e gerenciar os Skillsets, você pode garantir que o seu chatbot esteja sempre pronto para atender às necessidades dos seus usuários.

Solução de problemas

Você fornece algum registro detalhando a execução das ações?

Sim, nós fornecemos registros detalhados que rastreiam a execução de ações. Esses registros podem ser extremamente úteis para depurar e entender o desempenho do seu chatbot. Os registros podem ser acessados nos eventos do conjunto de habilidades ou nos eventos listados na capacidade de ação.

A ação de busca suporta novas tentativas automáticas?

Sim, a ação de busca tem uma lógica de repetição integrada. Se a solicitação inicial falhar, a ação tentará automaticamente três vezes com um atraso exponencial de um segundo.