Integrar el asistente¶
Resumen¶
Esta página explica cómo integrar el asistente en el frontend web de otras aplicaciones: mostrar el resultado de una tarea, ejecutar una tarea con OCA.Assistant.openAssistantForm y sus opciones, y rellenar la entrada a partir de un archivo. Está dirigida a quienes desarrollan apps.
Fuente: documentación de Nextcloud, «developer_manual/digging_deeper/assistant_integration», versión 3ad9158, licencia CC BY 3.0; traducida y adaptada para APS Conecta Gestión.
Esta sección trata la integración del asistente de APS Conecta Gestión en el frontend web de otras aplicaciones de APS Conecta Gestión. Para la integración en el backend mediante la API OCP de procesamiento de tareas, ver Procesamiento de tareas. Para la API OCS, ver API OCS del Asistente.
Mostrar el resultado de una tarea¶
Hay dos formas de mostrar el resultado de una tarea con el asistente.
Abrir el modal del asistente¶
Si se tiene un objeto de tarea obtenido del endpoint OCS /ocs/v2.php/apps/assistant/api/v1/task/TASK_ID o /ocs/v2.php/apps/assistant/api/v1/tasks, pasarlo a la función auxiliar OCA.Assistant.openAssistantTask. Esto abre el modal del asistente con el tipo de tarea, la entrada y la salida ya cargados.
Ver la página del resultado de la tarea¶
Hay una página independiente disponible en /apps/assistant/task/view/TASK_ID. Renderiza el mismo contenido que el modal del asistente.
Ejecutar una tarea¶
Usar OCA.Assistant.openAssistantForm para abrir el modal del asistente desde la aplicación. La función acepta un único objeto de configuración con las siguientes claves:
Clave |
Obligatoria |
Descripción |
|---|---|---|
|
Sí |
ID de la aplicación que hace la llamada. |
|
No |
Identificador personalizado de la tarea; útil para correlacionar el evento de backend |
|
No |
Tipo de tarea seleccionado inicialmente (p. ej., |
|
No |
Objeto que contiene los valores iniciales de entrada, específicos de cada tipo de tarea. El valor predeterminado es |
|
No |
Establecer en |
|
No |
Si es |
|
No |
Lista de botones adicionales que se muestran en el formulario de resultados. Solo se usa cuando |
La función devuelve una Promise que se resuelve cuando se cierra el modal, ya sea porque se programó una tarea o porque una tarea síncrona se ejecutó y produjo resultados. La promesa se resuelve con un objeto de tarea:
{
appId: 'text',
id: 310,
customId: 'my custom identifier',
input: { input: 'give me a short summary of a simple settings section about GitHub' },
ocpTaskId: 152,
output: { output: 'blabla' },
status: 'STATUS_SUCCESSFUL',
type: 'core:text2text',
lastUpdated: 1711545305,
scheduledAt: 1711545301,
startedAt: 1711545302,
endedAt: 1711545303,
userId: 'janedoe',
}
Los valores posibles de status son: STATUS_UNKNOWN (0), STATUS_SCHEDULED (1), STATUS_RUNNING (2), STATUS_SUCCESSFUL (3), STATUS_FAILED (4).
Ejemplo completo:
OCA.Assistant.openAssistantForm({
appId: 'my_app_id',
customId: 'my custom identifier',
taskType: 'core:text2text',
inputs: { input: 'count to 3' },
actionButtons: [
{
label: 'Label 1',
title: 'Title 1',
variant: 'warning',
iconSvg: cogSvg,
onClick: (output) => { console.debug('first button clicked', output) },
},
{
label: 'Label 2',
title: 'Title 2',
onClick: (output) => { console.debug('second button clicked', output) },
},
],
}).then(task => {
console.debug('assistant promise success', task)
}).catch(error => {
console.debug('assistant promise failure', error)
})
Rellenar la entrada a partir de un archivo¶
Se puede rellenar de antemano un campo de entrada de la tarea con el contenido de un archivo pasando un fileId o un filePath en lugar de un valor de cadena simple:
OCA.Assistant.openAssistantForm({
appId: 'my_app_id',
customId: 'my custom identifier',
taskType: 'core:text2text',
inputs: { input: { fileId: 123 } },
})
OCA.Assistant.openAssistantForm({
appId: 'my_app_id',
customId: 'my custom identifier',
taskType: 'core:text2text',
inputs: { input: { filePath: '/path/to/file.txt' } },
})