Mensajes de bot con contenido generado por IA
Las etiquetas de inteligencia artificial, las citas, los botones de comentarios y las etiquetas de confidencialidad de los mensajes del bot mejoran la interacción del usuario y fomentan la transparencia y la confianza.
- La etiqueta de IA permite a los usuarios identificar que el mensaje se generó mediante IA.
- Citas permite a los usuarios hacer referencia al origen del mensaje del bot a través de citas y referencias en texto.
- Los botones de comentarios permiten a los usuarios proporcionar comentarios positivos o negativos a los mensajes del bot.
- La etiqueta de confidencialidad permite a los usuarios comprender la confidencialidad del mensaje del bot.
En las capturas de pantalla siguientes se muestra cómo se pueden mejorar los mensajes de bot con etiquetas de inteligencia artificial, citas, botones de comentarios y etiquetas de confidencialidad:
Nota:
- La etiqueta de inteligencia artificial, las citas, los botones de comentarios y las etiquetas de confidencialidad están disponibles en la versión preliminar del desarrollador público para chats uno a uno y grupales, pero no se admiten en canales.
- Las etiquetas de inteligencia artificial, citas, botones de comentarios y etiquetas de confidencialidad solo están disponibles en los clientes web y de escritorio de Teams.
- Las etiquetas de inteligencia artificial, citas, botones de comentarios y etiquetas de confidencialidad están disponibles en los entornos de Government Community Cloud (GCC), GCC High y Department of Defense (DOD).
Etiqueta de IA
Una etiqueta de IA agregada al mensaje del bot especifica que el mensaje lo genera la inteligencia artificial. Los bots de inteligencia artificial usan modelos de lenguaje grande (LLM) que suelen ser confiables, pero al agregar una etiqueta de inteligencia artificial se evita la confusión sobre el origen de la información.
Agregar etiqueta de IA
En el caso de un bot creado mediante la biblioteca de inteligencia artificial de Teams, se habilita automáticamente una etiqueta de inteligencia artificial para todos los mensajes de bot con tecnología de inteligencia artificial en el ai
módulo dentro de la PredictedSayCommand
acción. Para obtener más información, vea Interfaz de AIEntity.
Si usa Microsoft Bot Framework SDK para compilar el bot, incluya additionalType
en la entities
matriz del message
objeto de entidad. A continuación se muestra un fragmento de código de ejemplo:
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
}
]
});
Propiedad | Tipo | Obligatorio | Descripción |
---|---|---|---|
additionalType |
Matriz | Yes | Habilita la etiqueta de IA en el mensaje del bot. El único valor permitido es AIGeneratedContent . |
Después de agregar una etiqueta de IA, el mensaje del bot muestra una etiqueta generada por IA junto al nombre del bot con un aviso de declinación de responsabilidades que indica que el contenido generado por IA puede ser incorrecto. La etiqueta de IA y la declinación de responsabilidades no se pueden personalizar para los bots con tecnología de inteligencia artificial.
Nota:
La etiqueta generada por IA solo está disponible cuando se envía un nuevo mensaje mediante SendActivity
. Si actualiza un mensaje con UpdateActivity
, se agrega la etiqueta Editado .
Control de errores
Código de error | Descripción |
---|---|
400 | Varias entidades de mensaje raíz que se encuentran en la entities matriz |
400 | Error al analizar la entidad de mensaje de la entities matriz |
Citas
Es importante citar los orígenes del mensaje del bot para ayudar a los usuarios a formular preguntas de seguimiento o realizar investigaciones independientes. Cite orígenes de datos, como archivos, mensajes, correos electrónicos y elementos de trabajo, para proporcionar información valiosa a los usuarios. Las citas son importantes para los bots que usan técnicas como la generación aumentada de recuperación (RAG).
Las citas al mensaje del bot incluyen citas en texto, detalles de referencia de citas y etiquetas de confidencialidad para el contenido al que se hace referencia.
- Las citas en texto denotan los números de cita agregados al mensaje de bot en el formato [#], cada uno correspondiente a una referencia. Una cita se puede insertar en cualquier parte del texto.
- Entre los detalles de la referencia de cita se incluyen el título, las palabras clave, una información abstracta, de hipervínculo y de confidencialidad. Las referencias aparecen como ventanas emergentes para cada cita en texto.
- Las etiquetas de confidencialidad de las citas indican la confidencialidad del contenido de cita al que se hace referencia y no se agregan automáticamente. Para agregar etiquetas de confidencialidad para citas, consulte Agregar etiqueta de confidencialidad.
Nota:
- Un máximo de 10 citas se muestran en un mensaje.
- Las tarjetas adaptables no se representan en la ventana emergente de citas. Sin embargo, las tarjetas adaptables se pueden representar en el mensaje del bot.
Agregar citas
En el caso de los bots creados con la biblioteca de inteligencia artificial de Teams, las citas se agregan a un mensaje de bot de inteligencia artificial automáticamente a través de PredictedSayCommand
la acción. También puede modificar la PredictedSayCommand
acción para agregar citas al mensaje del bot. Para obtener más información, vea Interfaz ClientCitation.
Si usa bot framework SDK para compilar el bot, incluya citation
en la entities
matriz. A continuación se muestra un fragmento de código de ejemplo:
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
},
},
],
},
],
})
Propiedad | Tipo | Obligatorio | Descripción |
---|---|---|---|
citation |
Objeto | Sí | Detalles de la cita. |
citation.@type |
Cadena | Sí | Objeto de la cita. El único valor permitido es Claim . |
citation.position |
Entero | Yes | Muestra el número de cita. Los valores están limitados a menos de ocho. |
citation.appearance |
Objeto | Sí | Información sobre la apariencia de la cita. |
citation.appearance.@type |
Cadena | Sí | Objeto de la apariencia de la cita. El único valor permitido es DigitalDocument . |
citation.appearance.name |
Cadena | Sí | Título del contenido al que se hace referencia. |
citation.appearance.url |
Cadena | No | Dirección URL del contenido al que se hace referencia. |
citation.appearance.abstract |
Cadena | No | Extracción del contenido al que se hace referencia y está limitado a menos de 1000 caracteres. |
citation.appearance.keywords |
Matriz | No | Palabras clave del contenido al que se hace referencia. No puede agregar más de tres palabras clave. |
Después de habilitar las citas, el mensaje del bot incluye citas y referencias en texto. Las citas en texto muestran los detalles de referencia cuando los usuarios mantienen el puntero sobre la cita.
Control de errores
Código de error | Descripción |
---|---|
400 | Varias entidades de mensaje raíz que se encuentran en la entities matriz |
400 | Error al analizar la entidad de mensaje de la entities matriz |
400 | Mensaje de bot con más de 10 citas |
400 | El appearance objeto está vacío |
400 | Error al analizar la entidad de cita con el identificador: X |
Botones de comentarios
Los botones de comentarios en los mensajes de bot son fundamentales para medir la interacción del usuario, identificar errores y obtener información sobre el rendimiento del bot. Estas conclusiones pueden dar lugar a mejoras específicas y eficaces de las funcionalidades conversacionales del bot. Habilite los botones de comentarios para permitir que a los usuarios les gusten o no les gusten los mensajes y proporcionen comentarios detallados.
Cuando el usuario selecciona un botón de comentarios, aparece un formulario de comentarios correspondiente en función de la selección del usuario.
Los botones de comentarios se encuentran en el pie de página del mensaje del bot e incluyen un 👍 botón (pulgar hacia arriba) y un 👎 botón (pulgar hacia abajo) para que el usuario elija. Puede recopilar comentarios sobre las respuestas del bot de chats uno a uno y de grupo.
Agregar botones de comentarios
En el caso de un bot creado mediante la biblioteca de inteligencia artificial de Teams, Teams habilita los botones de comentarios para todos los mensajes de bot cuando enable_feedback_loop
se establece true
en en el ai
módulo.
export const app = new Application<ApplicationTurnState>({
ai: {
planner: planner,
enable_feedback_loop: true
},
Para obtener más información, consulte la variable de aplicación const.
Después de habilitar los botones de comentarios, todos los comandos SAY del bot se han feedbackLoopEnabled
establecido true
automáticamente en en el channelData
objeto .
Para habilitar los botones de comentarios en un bot creado mediante bot Framework SDK, agregue un channelData
objeto en el mensaje del bot y establezca el valor de feedbackLoopEnabled
true
en .
await context.sendActivity({
type: ActivityTypes.Message,
text: `Hey! I'm a friendly AI bot!`,
channelData: {
feedbackLoopEnabled: true // Enable feedback buttons
},
});
Propiedad | Tipo | Obligatorio | Descripción |
---|---|---|---|
feedbackLoopEnabled |
Booleano | Sí | Habilita los botones de comentarios en el mensaje del bot. |
Control de comentarios
El bot recibe la entrada del usuario, recibida en el formulario de comentarios, a través de un flujo de invocación de bot.
En el caso de un bot creado mediante la biblioteca de inteligencia artificial de Teams, la invocación del bot recibida se controla automáticamente. Para controlar los comentarios, use el app.feedbackLoop
método para registrar un controlador de bucles de comentarios al que se llama cuando el usuario proporciona comentarios.
app.feedbackLoop(async (context, state, feedbackLoopData) => {
// custom logic here...
});
Para obtener más información, vea la función de devolución de llamada asincrónica.
Para un bot creado con Bot Framework SDK, debe tener un onInvokeActivity
controlador para procesar los comentarios. Asegúrese de devolver un código de estado 200 con un objeto JSON vacío como respuesta.
El siguiente fragmento de código muestra cómo controlar los comentarios recibidos en una invocación de bot y devolver una respuesta con el código de estado 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 };
};
Es importante almacenar los comentarios después de recibirlos. Por lo tanto, asegúrese de almacenar los identificadores de mensaje y el contenido de los mensajes que el bot envía y recibe. Cuando el bot recibe una invocación que contiene comentarios, haga coincidir el identificador de mensaje del mensaje del bot con los comentarios correspondientes.
Nota:
Teams ni almacena ni procesa comentarios, ni proporciona una API o un mecanismo de almacenamiento.
Si un usuario desinstala el bot y sigue teniendo acceso al chat del bot, Teams quita los botones de comentarios de los mensajes del bot para evitar que el usuario proporcione comentarios al bot.
Control de errores
Código de error | Descripción |
---|---|
400 |
message/submitAction invoke response no está vacío. |
Etiqueta de confidencialidad
Las respuestas de bots pueden contener información confidencial o accesible solo para determinadas personas dentro de la organización. Debe agregar una etiqueta de confidencialidad para ayudar a los usuarios a identificar la confidencialidad de un mensaje, lo que les permite tener precaución al compartir el mensaje.
Nota:
Agregue una etiqueta de confidencialidad a los mensajes del bot solo cuando contengan información confidencial.
Agregar etiqueta de confidencialidad
En el caso de los bots creados con la biblioteca de inteligencia artificial de Teams, las etiquetas de confidencialidad se pueden agregar a través de PredictedSayCommand
la acción. Para obtener más información, vea SensitivityUsageInfo (interfaz).
En el caso de los bots creados con Bot Framework SDK, agregue una etiqueta de confidencialidad al mensaje del bot modificando el mensaje para incluirlo usageInfo
en el entities
objeto.
El siguiente fragmento de código muestra cómo agregar etiquetas de confidencialidad a los mensajes de bot y a la referencia de citas:
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",
},
},
],
});
Propiedad | Tipo | Obligatorio | Descripción |
---|---|---|---|
usageInfo.@type |
Cadena | Sí | Habilita la etiqueta de confidencialidad en el mensaje del bot. |
citation.usageInfo.@id |
Cadena | Sí | Habilita la etiqueta de confidencialidad en la referencia de cita. Es necesario al agregar la etiqueta de confidencialidad a la referencia de cita. |
usageInfo.name |
Cadena | Sí | Especifica el título de la etiqueta de confidencialidad. |
usageInfo.description |
Cadena | No | Especifica el mensaje de ventana emergente que aparece cuando un usuario mantiene el puntero sobre la etiqueta de confidencialidad. |
Una vez agregada la etiqueta de confidencialidad, el mensaje del bot contiene un icono de escudo. Los usuarios pueden mantener el puntero sobre el icono para encontrar una declinación de responsabilidades sobre la confidencialidad del mensaje.
Control de errores
Código de error | Descripción |
---|---|
400 | Varias entidades de mensaje raíz que se encuentran en la entities matriz |
400 | Error al analizar la entidad de mensaje de la entities matriz |
400 | El valor de nivel usageInfo.@id de cita no coincide con el nivel usageInfo.@id de mensaje en al menos una instancia |
400 | Hay varias propiedades de nivel usageInfo de cita con el mismo @id , pero sus name propiedades y description son diferentes. |
Modificar PredictedSayCommand
Para un bot creado mediante la PredictedSayCommand
biblioteca de inteligencia artificial de Teams, proporciona control sobre cómo se agregan etiquetas de inteligencia artificial, citas, botones de comentarios y etiquetas de confidencialidad a la actividad del bot. A continuación se muestra el 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 obtener más información sobre PredictedSayCommand
, vea PredictedSayCommand interface.
Ejemplo de código
Ejemplo de nombre | Descripción | Node.js | C# |
---|---|---|---|
Bot de conversación de Teams | Esta aplicación de ejemplo muestra la etiqueta de IA, las citas, los botones de comentarios y las etiquetas de confidencialidad en los mensajes. | View | |
TeamsAzureOpenAI | Este bot conversacional usa la biblioteca de inteligencia artificial de Teams y contiene la etiqueta de IA, los botones de comentarios, la etiqueta de confidencialidad y las citas en sus mensajes generados. | Ver |