> For the complete documentation index, see [llms.txt](https://doc.velneo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.velneo.com/38/velneo-vdevelop/interfaz-de-velneo-vdevelop/asistente-ia.md).

# Asistente IA

El **Asistente IA** es un panel de [Velneo vDevelop](/38/velneo-vdevelop/introduccion.md) desde el que podemos pedir, en lenguaje natural, cambios sobre la solución abierta: crear aplicaciones completas, añadir o modificar tablas, campos, formularios, rejillas, búsquedas o procesos, hacer cambios masivos de propiedades, consultar dónde se usa un objeto o revisar el proyecto.

El asistente trabaja sobre los proyectos **abiertos en Velneo vDevelop**, igual que lo haríamos nosotros: los cambios se ven al momento en el editor, se guardan al guardar el proyecto y se pueden deshacer.

{% hint style="info" %}
Ejemplos de peticiones:

* *Crea una aplicación para gestionar las citas de una clínica veterinaria con clientes, mascotas y citas.*
* *Añade un campo EMAIL de 100 caracteres a la tabla CLIENTES y ponlo en su formulario.*
* *Genera una rejilla y un formulario para la tabla PEDIDOS.*
* *¿Dónde se usa el proceso CALCULAR\_TOTALES?*
* *Cambia la fuente de todos los formularios a 10 puntos.*
* *Mueve las tablas de configuración a una carpeta "Configuración".*
  {% endhint %}

## Requisitos

El asistente usa el **servicio de IA de Velneo**, sin necesidad de configurarlo. Requiere que el desarrollador haya iniciado sesión en Velneo vDevelop con su cuenta de Velneo o que el servidor tenga una licencia aplicada. El consumo se descuenta del plan de IA de la cuenta, que se puede consultar y gestionar desde la opción [Servicios IA](/38/velneo-vdevelop/interfaz-de-velneo-vdevelop/menu-objetos.md#servicios-ia) del menú Objetos.

## Abrir el asistente

El panel **Asistente IA** se encuentra acoplado por defecto a la derecha de Velneo vDevelop. Podemos mostrarlo u ocultarlo:

* Desde el menú Ver > **Herramientas** > **Asistente IA**.
* Con el atajo <kbd>Ctrl+7</kbd>, que además sitúa el cursor en la caja de texto.

Como el resto de paneles, se puede acoplar a la izquierda, a la derecha o abajo, o dejarlo flotante. Velneo vDevelop recuerda si estaba abierto o cerrado en la sesión anterior.

## Elementos del panel

* **Barra superior**:
  * **Historial**: desplegable con las conversaciones guardadas de la solución abierta. Muestra el título de la conversación actual.
  * **+ Nueva conversación**: empieza una conversación nueva.
  * **⋮ Más opciones**: acceso a **Skills…** (ver [Skills](#skills)).
* **Área de conversación**: mensajes del usuario y del asistente. Las respuestas del asistente se muestran con formato (negritas, listas, tablas, código…).
* **Caja de mensaje**: escribimos la petición y pulsamos **Intro** para enviarla. **Mayús + Intro** inserta un salto de línea.
* **Botón de envío**: **→ Enviar** envía el mensaje; mientras el asistente está trabajando cambia a **■ Parar la petición**, que cancela la petición en curso.
* **Línea de estado**: indica si el asistente está **Conectado** o **Sin conexión** y lo que está haciendo (*Pensando*, *Consultando el modelo*, *Trabajando (paso X/Y)*). Al terminar muestra *Listo* con los tokens consumidos.

### Conexión

El asistente necesita que Velneo vDevelop esté conectado a un servidor. Si no lo está, el panel muestra el mensaje *"Conéctate para usar el asistente"* y el botón **Conectar…**, que conecta con el último servidor o abre el diálogo de conexión.

### Pantalla de inicio

Al empezar una conversación, el panel muestra sugerencias (*Empieza por:*) que se pueden pulsar para enviarlas. Son distintas según haya o no una solución abierta.

### Durante la conversación

* **Respuestas rápidas**: cuando el asistente hace una pregunta con opciones cerradas, se muestran botones con las opciones. Un clic envía la respuesta.
* **Petición sugerida**: al terminar, el asistente puede sugerir el siguiente paso. Con la caja de texto vacía, pulsando **Tab** se acepta la sugerencia.
* **Objetos tocados**: al final de cada respuesta se muestran enlaces a los objetos creados o modificados. Un clic abre el objeto en Velneo vDevelop.
* Mientras el asistente trabaja, Velneo vDevelop sigue operativo. Al terminar, los árboles del proyecto se refrescan automáticamente.

### Comandos

En la caja de mensaje se pueden escribir los siguientes comandos:

* `/ayuda` (o `/help`): muestra la lista de comandos.
* `/nuevo` (o `/clear`, `/limpiar`): empieza una conversación nueva.

### Imágenes

Podemos pegar en la caja de mensaje (**Ctrl + V**) imágenes del portapapeles, por ejemplo una captura de un formulario que queremos reproducir o de un error. Se admiten hasta 4 imágenes por mensaje, que se indican con la etiqueta *Imagen adjunta ×N*; un clic sobre la etiqueta las quita.

### Contexto automático

Con cada mensaje, el asistente recibe automáticamente la solución, el proyecto y el objeto (y subobjeto) que tenemos abiertos en el editor. Así, podemos pedir *"cambia la longitud del campo NOMBRE"* con la tabla abierta sin tener que indicar de qué tabla se trata.

## Qué puede hacer

* **Soluciones y proyectos**: consultar las soluciones del servidor; crear una solución nueva, incluyendo, si se le indican las tablas, una aplicación completa (tablas, formularios, rejillas, búsquedas, acciones y navegación); añadir y eliminar proyectos; definir la navegación (menú lateral o superior, barra de herramientas, tipo de ventana) y el tema visual de la aplicación.
* **Objetos**: crear, modificar, renombrar y eliminar objetos y subobjetos (tablas, campos, índices, formularios, rejillas, informes, procesos…).
* **Generación**: generar a partir de una tabla u objeto formularios, rejillas, rejillas avanzadas, búsquedas, informes y acciones.
* **Cambios masivos**: buscar y reemplazar una propiedad en muchos objetos a la vez. Si afecta a más de 15 objetos, muestra primero una previsualización y pide confirmación.
* **Consultas**: buscar objetos y propiedades; consultar dónde se usa un objeto y qué referencia; explicar qué es un tipo de objeto o una propiedad y qué valores admite.
* **Procesos JavaScript**: validar el código JavaScript de procesos y funciones contra la API de Velneo, comprobando que existan los campos y tablas usados.
* **Ficheros del proyecto**: listar, leer y escribir ficheros del [directorio scripts ](/38/velneo-vdevelop/scripts.md)del proyecto.
* **Carpetas**: organizar el árbol del proyecto (ver [Gestión de carpetas del proyecto](#gestion-de-carpetas-del-proyecto)).
* **Deshacer**: deshacer y rehacer sus últimos cambios cuando se le pide (*"deshaz lo último"*).
* **Skills**: consultar, crear y eliminar [skills](#skills) conversando.
* **Conversaciones anteriores**: consultar las conversaciones anteriores sobre la solución abierta, para retomar un trabajo.

### Cómo se comporta

* Responde en el idioma de la conversación, de forma breve.
* Actúa de forma autónoma, pero **pregunta antes** de crear una aplicación entera desde cero, de crear tablas o formularios de más de 15 campos o cuando la petición es ambigua (*"mejóralo"*, *"arréglalo"*).
* Solo trabaja sobre la **solución abierta**. Si se le pide algo de otra solución, propone abrirla.
* Comprueba que los cambios que anuncia se han realizado realmente. Si no ha podido hacer algo, lo indica expresamente.

### Gestión de carpetas del proyecto

Podemos pedirle al asistente de IA que organice las carpetas de nuestro proyecto: que cree una carpeta nueva (incluidas subcarpetas), que la renombre, que la mueva a otra ubicación del árbol o que la elimine.

También puede asignar objetos existentes a una carpeta, sacarlos de ella, o decirnos qué carpetas y objetos hay en el proyecto.

{% hint style="warning" %}
Al crear o renombrar una subcarpeta, es posible que el dock de proyecto no se actualice solo. Si no vemos el cambio reflejado, debemos hacer clic sobre el dock para refrescarlo.
{% endhint %}

Los cambios que haga el asistente en las carpetas se reflejan en el árbol del proyecto y se guardan igual que si los hiciéramos nosotros mismos desde el [dock de proyecto](/38/velneo-vdevelop/interfaz-de-velneo-vdevelop/dock-de-proyecto.md).

## Guardar y deshacer los cambios

Los cambios del asistente se realizan sobre los proyectos abiertos en Velneo vDevelop, exactamente igual que los que hacemos nosotros:

* Se guardan al **guardar el proyecto**. Si cerramos sin guardar, se descartan.
* Se pueden deshacer pidiéndoselo al propio asistente (*"deshaz el último cambio"*), o desde el menú [Edición](/38/velneo-vdevelop/interfaz-de-velneo-vdevelop/menu-edicion.md) con **Deshacer (Ctrl + Z)** y **Rehacer (Ctrl + Y)**, junto con nuestras propias ediciones, en el orden en que se hicieron. El historial de deshacer se pierde al cerrar Velneo vDevelop.

Si cerramos Velneo vDevelop mientras el asistente está trabajando, se pedirá confirmación para cancelar la petición.

{% hint style="info" %}
Si un proyecto tiene **contraseña de edición**, el asistente no puede leerlo ni modificarlo sin ella.
{% endhint %}

## Historial de conversaciones

Cada conversación se guarda automáticamente, tras cada respuesta, en un fichero JSON en la carpeta `<carpeta del usuario>/Velneo/vdevelop/ia/history/`.

El desplegable **Historial** muestra las conversaciones de la **solución abierta**. Al seleccionar una se muestra en el panel y, al enviar el siguiente mensaje, el asistente continúa con el contexto de esa conversación.

Por seguridad, los valores que parecen contraseñas, claves o tokens se guardan en el historial ocultos (`***`).

{% hint style="info" %}
Si tienes que reportar un problema con el asistente, adjunta el fichero JSON de la conversación.
{% endhint %}

## Skills

Las **skills** son instrucciones que personalizan el comportamiento del asistente: convenciones de nomenclatura, estilo de la aplicación, reglas propias del equipo, etc. Por ejemplo: *"Los identificadores de las tablas siempre en plural y con prefijo de tres letras del módulo"*.

Las skills se guardan en Velneo vServer y se aplican a **todos los desarrolladores** que usen el asistente en ese servidor.

Se gestionan desde el menú **⋮ Más opciones** > **Skills…**, que abre el diálogo **Skills**:

* A la izquierda, la lista de skills con el buscador **Buscar skills…** y el botón **Añadir con IA**.
* A la derecha, los datos de la skill seleccionada:
  * **Nombre**: identificador único (letras, números, `-` o `_`).
  * **Descripción**: resumen en una línea; es lo que usa el asistente para decidir si la skill aplica.
  * **Cuándo usar**: frases o condiciones que la activan, por ejemplo *"al crear una tabla de clientes"*.
  * **Aplica a (tools)**: acciones del asistente en las que la skill se aplicará siempre. El botón **Elegir…** permite seleccionarlas. Se deja vacío si es una guía general.
  * **Contenido**: las instrucciones, en formato Markdown.
* Botones **Guardar** y **Cancelar**. Al borrar una skill se pide confirmación y se conserva como copia `.bak` en el servidor.

**Añadir con IA** permite crear skills describiéndolas en lenguaje natural, o cargando un fichero `.md` o `.txt`, o un fichero `.zip` con varias skills (**Cargar de fichero/zip…**). La IA completa los campos, instala la skill y la muestra para revisarla.

También podemos pedirle al asistente en la conversación que cree, liste o elimine skills. Cuando aplica una skill, se indica con el mensaje **🎓 Skill aplicada: nombre**. Si en la conversación expresamos una preferencia permanente (*"a partir de ahora…"*, *"siempre que…"*), el asistente propondrá guardarla como skill.

## Configuración del proveedor de IA

El asistente usa el **servicio de IA de Velneo**, sin necesidad de configurar nada. El consumo se asocia a la cuenta de Velneo del desarrollador conectado en Velneo vDevelop o, si no la hay, a la licencia del servidor.

## Privacidad

En cada petición, Velneo vServer envía al proveedor de IA:

* El mensaje y el historial de la conversación, incluidas las imágenes pegadas.
* Los nombres de la solución, el proyecto y el objeto abiertos.
* La definición de los objetos del proyecto que el asistente consulta para hacer su trabajo (tablas, campos, formularios, código de procesos, ficheros del proyecto…).
* Las skills del servidor.
* Con el servicio de IA de Velneo, además, el email de la cuenta de Velneo del desarrollador o la licencia del servidor.

El asistente trabaja sobre la **estructura** de las aplicaciones; no consulta los datos de las tablas.

El historial de conversaciones se guarda únicamente en el equipo del desarrollador.

## Límites

* **Pasos por petición**: 25.
* **Mensajes por minuto**: 20 por conversación.
* **Peticiones simultáneas**: 1 por conversación.
* **Tamaño del mensaje**: 256 KB.
* **Tiempo de espera de cada consulta al modelo**: 240 segundos.
* **Conversación inactiva en el servidor**: 60 minutos (se puede retomar desde el historial).

## Mensajes de error

* *El servidor no está identificado (no tiene licencia aplicada ni cuenta asociada)…*: servicio de IA de Velneo sin cuenta de desarrollador ni licencia de servidor. Inicia sesión en Velneo vDevelop o activa la licencia del servidor.
* *Sin conexión al servidor… Reconecta y vuelve a intentarlo.*: se ha perdido la conexión con Velneo vServer.
* *El proveedor de IA '…' está temporalmente saturado o no disponible…*: el proveedor de IA no responde. Inténtalo de nuevo en unos segundos.
* *Timeout al llamar al proveedor '…'*: el modelo ha tardado más de 240 segundos en responder.
* *Sesión ocupada: ya hay una petición en curso para esta sesión…*: se ha enviado un mensaje mientras se procesaba otro.
* *Rate limit por sesión: máximo 20 mensajes/minuto*: se ha superado el número de mensajes por minuto.
* *(El modelo no terminó tras N iteraciones)*: la petición necesitaba más pasos de los permitidos. Divide la petición en partes más pequeñas.
* *No hay ninguna solución abierta en vDevelop…*: abre o crea una solución antes de pedir cambios.
