Update README.md
El sistema debe ser un sitio seguro donde se requiera clave y usuario para poder acceder. Debe permitir crear nuevos usuarios, modificar usuarios y claves, y eliminar usuarios.
Menú del sistema:
• Rol
• Nombre de la gente
• Descripción de la gente
• Guiones
• Empresas
• Descripción de la empresa
• Actividad
• Documentación
• Modo de comportamiento
• Enriquecer base de datos
• Configuración del sistema
• API del sistema
Rol
El rol solo puede seleccionar datos que ya están en la base de datos.
• Nombre de la gente: Selecciona el nombre del agente de una lista de nombres disponibles.
• Descripción de la gente: Selecciona una descripción de una lista de descripciones disponibles.
• Guiones: Selecciona el tipo de guión de una lista de guiones disponibles.
• Empresa: Selecciona el nombre de la empresa de una lista de empresas disponibles.
• Descripción de la empresa: Selecciona una descripción de una lista de descripciones disponibles.
• Actividad: Selecciona una actividad de una lista de actividades disponibles.
• Documentos: Selecciona un conjunto de documentos que el sistema debe revisar.
• Modo de comportamiento: Selecciona un comportamiento de una lista de comportamientos disponibles.
• Configuración: Selecciona el modelo que queremos que responda para ese rol.
Nombre de la gente
Referencia: Dentro de los agentes se podrán crear, modificar y eliminar agentes. En la ficha de cada agente se incluirán nombre, dirección, población, provincia, código postal y DNI. Se podrán añadir tantos agentes como se desee en forma de listado.
Descripción de la gente
Referencia: Se podrá añadir una descripción de la gente, como edad, estado civil, lugar de nacimiento, procedencia, o cualquier otra información relevante. Se podrán añadir, modificar o eliminar descripciones en forma de listado.
Guiones
Descripción del guión: Los guiones llevarán temporizadores para que, si el cliente no responde en un periodo de tiempo, se continúe con la siguiente parte del guión. Se podrán añadir objeciones para responder a clientes que no estén interesados o que ya tengan el producto. Cualquier cosa no parametrizada será resuelta por la IA con la información disponible. Se podrán añadir, modificar o eliminar guiones en forma de listado.
Empresas
Referencia: Se incluirán los datos personales de la empresa, como nombre, dirección, población, provincia, teléfono, correo electrónico, página web y horarios de apertura. Se podrán añadir, modificar o eliminar empresas en forma de listado.
Descripción de la empresa
Referencia: Se describirá a qué se dedica la empresa, desde cuándo, cuáles son sus actividades, etc. Se podrán añadir, modificar o eliminar descripciones en forma de listado.
Actividad
Referencia: Se describirá la actividad, por ejemplo, si es una instaladora eléctrica, qué tipo de productos o servicios ofrece, etc. Se podrán añadir, modificar o eliminar actividades en forma de listado.
Documentación
Referencia: Se podrán crear grupos de documentos a consultar por la IA. Dentro de cada referencia se podrán añadir todos los documentos que se deseen. Se podrán añadir, modificar o eliminar documentos en forma de listado.
Modo de comportamiento
Se detallará cómo debe comportarse el sistema en ciertas situaciones. Se podrán añadir, modificar o eliminar comportamientos en forma de listado.
Enriquecer base de datos
Referencia: Aquí se incluirán los datos que queremos añadir a nuestra base de datos, por ejemplo, si se llama a un teléfono fijo y se pide un móvil, el sistema guardará dicho móvil en la base de datos. Cualquier otra información relevante también se guardará con su referencia correspondiente.
Configuración del sistema
Referencia del modelo: Se podrán cargar uno o varios modelos al mismo tiempo, con la posibilidad de añadir, modificar o eliminar modelos, y encenderlos o apagarlos. Es importante que varios modelos puedan correr de forma independiente.
Opciones configurables:
• Puerto para escuchar: 1234
• Habilitar el registro detallado para el servidor local
• Registro de solicitudes y respuestas
• Configuración de registro de solicitud/respuesta local
API del sistema
La API recibirá la siguiente información:
• Inicio de chat
• Rol: [Referencia del rol que queremos activar]
• Datos del cliente: [Referencia numérica, por ejemplo, 955862527]
• NIF: 28397616E
• Nombre completo: MANUEL BUENO VELA
• Dirección: CALLE MANZANILLA 1 1º F BLOQUE
• Población: UTRERA
• Código postal: 41710
• Correo: mailto:correo:[email protected]
• Fecha de nacimiento: 1971-02-14
• CUPS: ES0031101927596001WY0F
Ejemplo de conversación:
• [955862527] Enviar: "Buenos días, mi nombre es xxx. Le estoy llamando para ofrecerle una maquinilla de pelar ratones. ¿Le podría interesar?"
• [955862527] Recibir: "No, no me interesa. No tengo ningún ratón para pelar."
• [955862527] Enviar: "Muy bien, ¿y no le interesaría alguna otra cosa?"
• [955862527] Recibir: "No, no me interesa nada más."
• [955862527] Enviar: "Pues entonces disculpe la molestia y muchísimas gracias."
• [955862527] Recibir: "Adiós."
• [955862527] Enviar: "Cierre de chat."
Si se cae la llamada, la API indicará que debemos cerrar el chat. Una vez cerrado el chat, se enviará el informe de la conversación.
Es importante que el sistema pueda manejar múltiples hilos, es decir, muchos chats funcionando al mismo tiempo sin que se entremezclen ni se corten entre sí.
Ejemplo de selección de rol:
Imagina que en el rol puedes seleccionar que este agente se llame Juan, Pepe o Luis, el nombre que prefieras de la base de datos. Puedes seleccionar para qué empresa trabajará y qué guión llevará. Por ejemplo, seleccionas a Juan para usar el guión de placas solares y trabajar para la empresa Sesgo. Luego, decides cambiar el nombre a Luis y que trabaje para la empresa Mandrágora.
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Explicación general:
Recogida de datos mediante formularios: Cada formulario del sistema recogerá información específica dependiendo de su funcionalidad. Por ejemplo, un formulario que recoja datos de "Empresas" incluirá campos para el nombre, la descripción, la actividad, etc.
Configuración interna de cada formulario: Para que los datos recogidos sean útiles para el modelo, cada formulario debe incluir una configuración específica que defina:
Qué datos debe capturar (por ejemplo, nombre, descripción, actividad).
Cómo debe estructurarse esa información para enviarla al modelo.
Instrucciones sobre cómo utilizar esos datos: el modelo deberá saber qué hacer con esos datos (por ejemplo, almacenarlos, analizarlos o enriquecerlos).
- Envío de datos mediante la API: Una vez que los formularios recopilan la información, los datos se envían al modelo a través de una API. Cada formulario debe estar conectado a una API específica, lo que permite que el modelo procese esos datos. La API es la encargada de establecer la comunicación entre el formulario y el modelo.
Configuración de los formularios en el menú del sistema:
- Rol:
Datos a capturar: Nombre del rol, permisos y descripción.
Instrucciones para el modelo: El modelo debe almacenar la información sobre los roles y cómo estos controlan el acceso en el sistema.
API: La API envía los datos al modelo para actualizar la base de roles.
- Nombre de la gente:
Datos a capturar: Nombre completo, identificación.
Instrucciones para el modelo: El modelo puede usar estos datos para crear perfiles de usuario o asignar roles.
API: Enviar a la API que gestiona la creación y gestión de personas.
- Descripción de la gente:
Datos a capturar: Breve descripción del perfil de la persona.
Instrucciones para el modelo: El modelo puede usar esta información para enriquecer perfiles o análisis de usuarios.
API: Envía los datos al módulo que maneja la descripción de usuarios.
- Guiones:
Datos a capturar: Contenido del guion, versión, autor.
Instrucciones para el modelo: El modelo puede analizar estos guiones o almacenarlos para su uso futuro.
API: Enviar a la API que gestiona guiones o documentos de trabajo.
- Empresas:
Datos a capturar: Nombre de la empresa, sector, número de empleados.
Instrucciones para el modelo: Usar la información para análisis de mercado o gestión de relaciones.
API: Conectar con la API que maneja la información de empresas.
- Descripción de la empresa:
Datos a capturar: Descripción de la actividad empresarial.
Instrucciones para el modelo: Usar esta descripción para análisis más detallados de empresas.
API: La API procesará estos datos para alimentar el módulo de análisis empresarial.
- Actividad:
Datos a capturar: Tipo de actividad, frecuencia, resultados.
Instrucciones para el modelo: El modelo debe utilizar esta información para hacer un seguimiento de las actividades.
API: API de gestión de actividades.
- Documentación:
Datos a capturar: Tipo de documento, contenido, fecha de creación.
Instrucciones para el modelo: Organizar y clasificar la documentación para que el modelo pueda acceder a ella.
API: API de almacenamiento y gestión documental.
- Modo de comportamiento:
Datos a capturar: Reglas o patrones de comportamiento.
Instrucciones para el modelo: El modelo puede usar estas reglas para definir cómo los usuarios o el sistema deben comportarse en determinadas situaciones.
API: API que maneja las reglas de comportamiento o políticas del sistema.
- Enriquecer base de datos:
Datos a capturar: Información que ayude a mejorar los datos existentes (por ejemplo, correcciones, actualizaciones).
Instrucciones para el modelo: El modelo debe integrar estos datos y mejorar la calidad de la base de datos.
API: API que conecta con el sistema de gestión de base de datos.
- Configuración del sistema:
Datos a capturar: Parámetros de configuración, valores.
Instrucciones para el modelo: El modelo debe aplicar estos ajustes a los componentes del sistema.
API: API que actualiza las configuraciones internas del sistema.
- API del sistema:
Datos a capturar: URL, autenticación, métodos disponibles.
Instrucciones para el modelo: El modelo usará estas configuraciones para establecer la conexión y enviar los datos.
API: Esta es la configuración de la API, por lo que no requiere conexión con otra API.
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Características clave del sistema:
- Compatibilidad con múltiples modelos de IA:
El sistema debe permitir la integración de varios modelos de IA estándar (GPT, BERT, etc.), cada uno de los cuales podrá ejecutar sus tareas de manera independiente.
Se debe garantizar la flexibilidad para que cada modelo se pueda utilizar en paralelo sin interferencias entre ellos, manejando diferentes tipos de tareas o datos que se les asignen.
- Fragmentación de datos:
Los datos de los formularios deben fragmentarse adecuadamente para que cada parte relevante se envíe al modelo correspondiente.
Por ejemplo, los datos de "Empresas" se enviarán a un modelo que gestione análisis de empresas, mientras que los "Guiones" se enviarán a un modelo especializado en análisis de textos.
Esto permite optimizar el uso de cada modelo de IA según su especialización.
- Ejecución simultánea e independiente de modelos:
Cada modelo de IA puede ejecutar su tarea de forma independiente, sin necesidad de coordinarse con otros modelos.
Esto asegura que, si un modelo está ocupado procesando una tarea, otro modelo pueda trabajar simultáneamente en otra, sin retrasos ni bloqueos.
- Gestión de hilos paralelos:
El sistema gestionará múltiples hilos para permitir la ejecución en paralelo de los diferentes modelos de IA. Cada hilo se asociará con un modelo que ejecutará una tarea asignada.
Esto asegura que varios usuarios puedan interactuar con el sistema al mismo tiempo, cada uno enviando sus datos a los modelos, y recibir respuestas de manera independiente.
- Comunicación de formularios con modelos a través de APIs:
Cada formulario será configurado para enviar los datos a través de APIs independientes que se comunicarán con el modelo correspondiente.
Las APIs deben permitir que los formularios se comuniquen directamente con los modelos de IA, garantizando que los datos correctos lleguen al modelo adecuado.
La API debe manejar la respuesta del modelo de forma eficiente, enviando los resultados de vuelta al sistema o al usuario que solicitó la tarea.
- Manejo de tareas asíncronas:
Cuando un modelo termina de procesar una tarea, su respuesta se devuelve de forma asíncrona. Esto permite que el sistema no se bloquee esperando la respuesta de un modelo.
La respuesta se almacena temporalmente y se entrega al usuario que realizó la solicitud, permitiendo la gestión de múltiples solicitudes simultáneas sin interferencia.
Ejemplo de funcionamiento de los formularios y modelos de IA:
- Formulario de datos personales:
Fragmentación de datos: Nombre, edad, dirección, etc.
Envío a API: Los datos se envían a través de una API al Modelo A, encargado de procesar y gestionar información personal.
Respuesta del modelo: El modelo procesa los datos y devuelve un perfil estructurado o una validación de los datos al sistema.
- Formulario de actividad empresarial:
Fragmentación de datos: Nombre de la empresa, sector, empleados.
Envío a API: Los datos se envían a un Modelo B especializado en el análisis de empresas.
Respuesta del modelo: El modelo analiza los datos y devuelve información detallada sobre la empresa o insights del mercado, todo de manera asíncrona.
- Formulario de guiones o documentos:
Fragmentación de datos: Título del guion, contenido.
Envío a API: El contenido del guion se envía a un Modelo C, especializado en análisis de texto.
Respuesta del modelo: El modelo devuelve un resumen o análisis del guion.
Arquitectura técnica sin colaboración entre modelos:
- Gestión de hilos paralelos:
Cada hilo será una instancia independiente que manejará una solicitud de procesamiento de un usuario. Estos hilos pueden ejecutarse simultáneamente, cada uno enviando datos a un modelo diferente.
Un manejador de hilos asegurará que las solicitudes se distribuyan a los modelos adecuados, pero sin necesidad de que los modelos colaboren entre sí.
Por ejemplo, si un usuario está enviando datos de empresas, mientras otro está enviando un guion, ambos datos serán procesados por sus respectivos modelos sin interferencia.
- Interfaz API:
Cada formulario estará vinculado a una API independiente que se conectará con el modelo adecuado.
Estas APIs RESTful recibirán los datos del formulario, los enviarán al modelo para su procesamiento y manejarán la respuesta.
Cada API estará diseñada para soportar múltiples hilos, asegurando que varios usuarios puedan enviar datos al mismo modelo sin generar conflictos.
- Módulo de orquestación:
Un módulo centralizado se encargará de recibir las solicitudes de los formularios y dirigirlas al modelo correcto a través de su API. Sin embargo, este módulo no requiere coordinar la colaboración entre modelos.
Su única función es asegurarse de que cada formulario se conecte con el modelo correspondiente y que las respuestas se envíen de vuelta de manera asíncrona y ordenada.
- Manejo de respuestas asíncronas:
Una vez que un modelo haya terminado de procesar la información, la respuesta se devuelve al sistema de manera asíncrona.
El sistema debe manejar estas respuestas sin esperar, permitiendo que los usuarios sigan interactuando con el sistema mientras los resultados se procesan en segundo plano.
Resumen final (sin colaboración entre modelos):
Este enfoque simplificado se enfoca en la ejecución independiente y simultánea de múltiples modelos de IA, sin requerir colaboración entre ellos. Los datos se fragmentan y se envían directamente a los modelos correspondientes, a través de APIs, donde cada modelo procesa su tarea de forma individual.
Múltiples modelos de IA trabajando en paralelo, cada uno gestionando sus propios datos y tareas.
Ejecución en hilos independientes, permitiendo que varias solicitudes y tareas se procesen simultáneamente sin que un modelo interfiera con otro.
APIs RESTful para gestionar la comunicación entre los formularios y los modelos de IA.
Respuestas asíncronas, lo que permite al sistema manejar múltiples usuarios sin bloquearse esperando la respuesta de los modelos.
api ollama