volver a docs

Competencias

Descripción general del funcionamiento de los conjuntos de habilidades y las instrucciones de los conjuntos de habilidades del chatbot. Aprende a personalizar las habilidades de tu chatbot y a mejorar su rendimiento.

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.

Comprender las capacidades

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:

  • nombre - un nombre corto pero descriptivo para la habilidad
  • descripción - una breve descripción de la habilidad
  • instrucción - instrucciones específicas sobre cómo aplicar la habilidad

Tanto el campo de nombre como el de descripción se utilizan durante la fase de detección de intenciones de la conversación, es decir, cuando tu bot está intentando averiguar qué tiene que hacer para atender al usuario final. El campo de instrucción sólo se utiliza una vez seleccionada esta habilidad específica. La instrucción se aplica teniendo en cuenta la conversación para satisfacer la petición del usuario final.

Es esencial que los campos de nombre y descripción sean descriptivos pero no demasiado largos, ya que se utilizarán en todas las fases de la conversación, consumiendo así tokens. El campo de instrucciones puede ser mucho más largo. Sólo se utilizará una vez por solicitud de usuario, pero sigue contribuyendo al consumo total de tokens.

Comprender las acciones

Un componente clave de una habilidad es realizar una acción, como obtener una página web. La acción debe especificarse en un bloque de código de estilo "markdown" (bloque de código cercado) con notación de triple backtick. Debe especificar el nombre de la acción después de las 3 primeras marcas. Esto es similar a cómo se utilizan los bloques de código con identificadores de idioma. Por ejemplo:

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

La acción puede mezclarse con instrucciones de texto libre. Estas instrucciones definen cómo debe aplicarse la acción. Se recomienda ser lo más descriptivo posible para garantizar que la acción se aplica de la forma más coherente posible.

Considere la siguiente tabla que resume la lista de acciones y propiedades disponibles:

AcciónPropiedadDescripción
busque en-Busca un conjunto de datos con una frase específica.
datasetIdId del conjunto de datos a buscar.
buscar-Obtiene una URL. También puede utilizar una solicitud HTTP completa. La acción tiene lógica de tiempo de espera y reintento.
tiempo de esperaUn parámetro que controla el tiempo máximo de espera en milisegundos. Por defecto la acción fetch espera 10 segundos (10000 ms) antes de abortar la petición.
formatoEspecifica el formato de salida de las acciones. Las opciones disponibles son text, markdown y json. Por ejemplo, tiene sentido convertir (formato) página HTML a markdown para que puedan ser fácilmente interpretados por su bot.
jsonpathPuede utilizar un JSONPath para extraer una sección específica de un documento JSON devuelto por la petición web realizada por la acción fetch.
jmespathPuede utilizar un JMESPath para extraer una sección específica de un documento JSON devuelto por la solicitud web realizada por la acción fetch.
correo electrónico-Envía un correo electrónico.
aLa dirección de correo electrónico a la que enviar el mensaje.
replyToLa dirección de correo electrónico que se utilizará para el campo de correo electrónico de respuesta.
temaEl asunto del correo electrónico. Si no se indica, se utilizará un asunto por defecto.
ver-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-Genera texto utilizando el texto de entrada como indicador.
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.
imagen-Genera una imagen a partir del texto introducido.
modeloComo modelo base para la imagen se puede utilizar cualquiera de los modelos de imagen ChatBotKit soportados, es decir stablediffusion, dalle2 o dalle3etc.
tallaCualquiera de los tamaños admitidos: 256x256 , 512x512 o 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

Las acciones pueden parametrizarse utilizando varios ${name} {{name}} $[nombre] y [[nombre]] sintaxis. La dirección ${name} y {{name}} puede utilizarse para acceder a secretos e información de la conversación durante la ejecución de la acción. La dirección $[nombre] y [[nombre]] puede construir parámetros de entrada que serán rellenados por el usuario (automáticamente a través de la conversación).

Considere la siguiente tabla como una guía:

EjemploDescripción
${SECRET_NAME} o {{SECRET_NAME}}Utiliza un secreto definido por nombre.
${CONVERSATION_ID} o {{CONVERSATION_ID}}Utiliza el identificador de conversación actual.
${CONVERSATION_META_FIELD} o {{CONVERSATION_META_FIELD}}Accede a un "campo" desde las meta propiedades de una conversación.
`$[paramdescripción del parámetro]o[[param

Ejemplos de introducción

Búsqueda de páginas

Considere la siguiente instrucción de habilidad que permite a su chatbot buscar y mostrar páginas web cuando el usuario lo solicita:

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 ```

Esta instrucción Skillset indica al chatbot que escuche las solicitudes del usuario para obtener páginas web. Cuando el chatbot detecta una solicitud de este tipo, mostrará la URL de la página web solicitada en un bloque de código markdown, utilizando el identificador especificado como buscar. Si el usuario hace una pregunta que no está relacionada con la obtención de una página web, el chatbot responderá con un mensaje indicando que no puede satisfacer la petición.

Recuperación de la previsión meteorológica

Considere la siguiente instrucción de habilidad que permite a su chatbot obtener la última previsión meteorológica dada una ubicación:

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 hemos descrito en varios ejemplos cómo obtener la previsión meteorológica a partir de los datos introducidos por el usuario. La previsión meteorológica se obtendrá de acuerdo con estas instrucciones.

Búsqueda en el conjunto de datos

La siguiente habilidad puede utilizarse para buscar más información en un conjunto de datos específico. Fíjese en el campo datasetId, que indica el conjunto de datos específico que se va a buscar. También utilizamos una entrada parametrizada llamada query que también tiene una descripción para ayudar al modelo subyacente a elegir la frase de búsqueda correcta.

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

Enviar correo electrónico de asistencia

La siguiente habilidad se puede utilizar para resumir la conversación actual y enviar un correo electrónico de soporte. Observe que utilizamos el campo replyTo para poder responder al usuario:

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] ```

Generar texto

Considere la siguiente instrucción de habilidad que permite a su chatbot generar texto basado en la entrada del usuario:

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 ```

Si el usuario pide a un bot que escriba una canción, su aportación se combinará con las instrucciones de la habilidad para crear la acción final.

Generar una imagen

Considere la siguiente instrucción de habilidad que permite a su chatbot generar una imagen basada en la entrada del usuario:

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

Puede especificar otras mejoras en el aviso utilizado para generar la imagen. Eche un vistazo a los siguientes ejemplos de concentradores:

  • Creador de logo tipos - Un conjunto de habilidades que le ayuda a crear logotipos utilizando 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 - Fashion AI powered by DALL-E 2 utiliza un conjunto de habilidades para crear atuendos elegantes sin esfuerzo.

Uso de parámetros

Considere la siguiente instrucción de habilidad de conjunto de habilidades que utiliza parámetros para proporcionar más pistas sobre qué entrada se espera para realizar la acción de obtención:

```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.}" } ```

En este ejemplo llamamos a la acción fetch como hacemos normalmente, pero hay una pequeña diferencia. En lugar de dejar los parámetros de la petición abiertos a la interpretación, podemos proporcionar pistas adicionales. Observe que tanto el parámetro nombre y correo electrónico Los campos JSON se especifican claramente con el nombre de campo y la descripción correspondientes.

Este proceso no sólo mejora el rendimiento del modelo, sino que también enriquece la experiencia del usuario al garantizar interacciones más pertinentes y precisas.

Cómo crear un conjunto de competencias

Siga estas instrucciones para crear un nuevo conjunto de competencias.

  1. Ve a "Habilidades" en la barra de navegación.
  2. Haga clic en el botón "Crear conjunto de competencias".
  3. Nombra tus habilidades y proporciona una descripción.
  4. Guarde el conjunto de competencias haciendo clic en el botón "Crear".

Ahora tienes un conjunto de habilidades vacío pero no tienes ninguna habilidad. Crear habilidades también es muy fácil.

  1. Con el conjunto de habilidades seleccionado, haz clic en el botón "Crear habilidad".
  2. Especifique el nombre y la descripción de la capacidad.
  3. Especifique la instrucción de habilidad, tenga en cuenta el recuento total de fichas.
  4. Guarda la nueva habilidad haciendo clic en el botón "Crear".

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

Resumen

En general, los conjuntos de habilidades son una potente herramienta para personalizar las capacidades de su chatbot y mejorar su rendimiento. Le permiten definir instrucciones específicas para su chatbot en lenguaje natural, lo que le permite comprender y responder mejor a las solicitudes de los usuarios. Al crear y gestionar Skillsets, puede asegurarse de que su chatbot esté siempre listo para satisfacer las necesidades de sus usuarios.

Solución de problemas

¿Proporciona algún registro que detalle la ejecución de las acciones?

Sí, proporcionamos registros detallados que rastrean la ejecución de las acciones. Estos registros pueden ser extremadamente útiles para depurar y entender cómo está funcionando su chatbot. Se puede acceder a los registros en los eventos del conjunto de habilidades o en los eventos que aparecen en la capacidad de acción.

¿La acción de búsqueda admite reintentos automáticos?

Sí, la acción fetch tiene una lógica de reintento incorporada. Si la solicitud inicial falla, la acción reintentará automáticamente 3 veces con un retardo exponencial de 1 segundo.