Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Prompt engineering avanzado, Unidad 12 — Mini-proyecto avanzado, 12.1 — Proyecto integral ·

Definición del sistema

Definición del sistema

Introducción

En el mundo del desarrollo de software con LLMs (Sistemas basados en Modelos de Lenguaje de Inteligencia Artificial), la definición del sistema es una etapa crucial que implica la especificación clara y detallada de los requisitos funcionales, no funcionales y las interacciones necesarias para que el sistema funcione correctamente. Esta definición se convierte en el pilar sobre el cual se construirán todos los prompts y arquitecturas del proyecto.

La importancia de esta etapa radica en que cualquier defecto o omisión en la especificación puede tener un impacto significativo en la calidad final del producto, desde errores en la generación de texto hasta problemas de rendimiento. Por lo tanto, es esencial abordar este paso con cuidado y rigor.

Explicación principal

La definición del sistema implica varios aspectos clave:

  1. Requisitos funcionales: Estos son los resultados esperados que el sistema debe producir. Por ejemplo, si se está creando un asistente virtual para una empresa de retail, un requisito funcional podría ser "generar respuestas personalizadas basadas en la consulta del usuario y el contexto proporcionado".
  1. Requisitos no funcionales: Estos son los aspectos que no están directamente relacionados con las funciones principales pero afectan al rendimiento general del sistema, como tiempos de respuesta, seguridad o compatibilidad con diferentes plataformas.
  1. Interfaz de usuario (UI): Especifica cómo el usuario interactuará con el sistema. En un asistente virtual, esto podría incluir detalles sobre la forma en que se presentan las respuestas al usuario y cómo el usuario puede proporcionar entrada a través del chat o voz.
  1. Interfaz de sistema (SI): Define cómo otros sistemas intercambiarán datos con el sistema en cuestión. Por ejemplo, si hay un servicio de análisis de datos que se integra con nuestro asistente virtual, la interfaz de sistema especificará qué tipo y cuánta información se intercambia.

Ejemplo

# Definición del sistema para un asistente virtual en una empresa de retail
class AsistenteVirtual:
    def __init__(self):
        self.requerimientos_funcionales = [
            "Generar respuestas personalizadas basadas en la consulta del usuario y el contexto proporcionado",
            "Procesar consultas en tiempo real"
        ]
        self.requerimientos_no_funcionales = [
            "Tiempos de respuesta no superiores a 5 segundos",
            "Seguridad de datos de clientes y empleados",
            "Compatibilidad con múltiples plataformas (web, móvil, voz)"
        ]
        self.interfaz_de_usuario = {
            "Presentación de respuestas": "Texto",
            "Interacción del usuario": "Chat en vivo"
        }
        self.interfaz_de_sistema = {
            "Integración con servicio de análisis de datos": True,
            "Tipo de información intercambiada": ["Datos demográficos", "Historial de compra"]
        }

Errores típicos / trampas

  1. Omisión de requisitos: No especificar todos los aspectos necesarios puede llevar a un sistema incompleto o inutilizable.
  2. Ambigüedad en la definición: Requisitos mal formulados pueden resultar en interpretaciones diferentes por parte del equipo, lo que conduce a implementaciones inconsistentes.
  3. Requiere no funcionales subestimados: Ignorar aspectos como seguridad o rendimiento puede llevar a sistemas vulnerables y lentos.

Checklist accionable

  1. Revisar y validar los requisitos funcionales: Asegúrate de que cada requerimiento funcional es claramente definido y específico.
  2. Evaluar la viabilidad técnica: Analiza si los requisitos son técnicamente posibles con las herramientas disponibles.
  3. Establecer prioridades: Identifica cuáles son los requisitos más críticos para el éxito del proyecto.
  4. Documentar todo: Mantén un registro detallado de todos los aspectos definidos, incluyendo interacciones y requerimientos no funcionales.
  5. Involucrar a todas las partes interesadas: Garantiza que todos los actores clave estén de acuerdo con la definición del sistema antes de avanzar.

Cierre

La definición del sistema es un paso fundamental en el desarrollo de sistemas basados en LLMs, ya que establece las bases sobre las cuales se construirá todo el resto del proyecto. Es importante abordarlo con diligencia para evitar problemas posteriores y asegurar la calidad del producto final.

Siguientes pasos

  • Revisión por parte de todas las partes interesadas: Asegúrate de que todos los actores clave estén de acuerdo antes de continuar.
  • Implementación gradual: Comienza a implementar los primeros prompts basados en la definición establecida para asegurar su funcionamiento correcto.
  • Pruebas integrales: Realiza pruebas exhaustivas del sistema completo para identificar y corregir cualquier problema.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).